- 
                Notifications
    
You must be signed in to change notification settings  - Fork 225
 
update dispersive laser #5484
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update dispersive laser #5484
Conversation
| [16, -16], | ||
| [16, -16], | ||
| ], | ||
| picongpu_huygens_surface_positions: typing.List[typing.List[int]] = ([[16, -16], [16, -16], [16, -16]]), | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this follow our code style rules?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And why is this set here, if this is also set (in exactly the same way) in the GaussianLaser init?
This looks like code duplication and should be avoided.
| if duration <= 0: | ||
| raise ValueError(f"laser pulse duration must be > 0. You gave {duration=}.") | ||
| # Initialize standard Gaussian laser fields | ||
| super().__init__(**kw) | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How is the case handled with Laguerre modes?
It looks like that this code just takes them (as they are part of GaussianLaser), but will not treat them correctly in pypicongpu. I think this is not a valid solution.
Issue with:
picongpu_laguerre_modespicongpu_laguerre_phases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@steindev, you, as the ultimate authority on lasers 😜, what is your opinion?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
requested changes were included
@steindev please comment/review and decide on merging
| 
           @steindev,  @PrometheusPi  , @chillenzer  | 
    
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 
           Also: Have you tested that this works as expected? Test coverage for lasers is poor as of now. Not 100% how   | 
    
| 
           Any updates with respect to testing this?  | 
    
| 
           I ran the main.py instead of picmi.GaussianLaser i used picmi.DispersivePulseLaser. I complied and then ran via tbg and saw the simoutput files. laser_duration = 30.0e-15 / 2.354820045
laser_pulse_init = 20.0
laser = picmi.DispersivePulseLaser(
    wavelength = 800.e-9, 
    waist = 19.4e-6,
    duration = laser_duration,
    propagation_direction = [0.0, 1.0, 0.0],
    polarization_direction = [1.0, 0.0, 0.0],
    focal_position=[
        float(numberCells[0] * cellSize[0] / 2.0),
        1.05e-3,
        float(numberCells[2] * cellSize[2] / 2.0),
    ],
    centroid_position=[
        float(numberCells[0] * cellSize[0] / 2.0),
        -0.5 * laser_duration * laser_pulse_init * c,
        float(numberCells[2] * cellSize[2] / 2.0),
    ],
    picongpu_polarization_type = picmi.lasers.PolarizationType.LINEAR,
    a0 = 2.3127,
    phi0 = 0.0,
    #picongpu_gdd_si = 37700.0,
) | 
    
09f0a58
      into
      
  
    ComputationalRadiationPhysics:dev
  
    | 
           @mafshari64 and it works also with the commented out   | 
    
| 
           I did not add but if you want I can rerun it again.  | 
    
| 
           It would be great if you could test it, because right now, we would see no difference if it falls back to the default Gaussian.  | 
    
No description provided.