Skip to content

Add focal_length property to the Beam #419

@vsnever

Description

@vsnever

Currently Beam has it's minimum width at Z = 0. However, I came across a problem where a focused beam was injected into the plasma, having a minimum width in the region of the central plasma. Since it seems natural that Z=0 in the beam coordinates corresponds to the entry point of the beam into the plasma, I suggest adding the focal_length property, which defaults to 0.

This will change how the beam width is calculated. Instead of this:

sigma0_sqr = self._beam.get_sigma()**2
sigma_x = sqrt(sigma0_sqr + (z * self._tanxdiv)**2)
sigma_y = sqrt(sigma0_sqr + (z * self._tanydiv)**2)

we'll have this:

sigmaf_sqr = self._beam.get_sigma()**2  # sigma at beam focus
z_to_focal = z - self._beam.get_focal_length()
sigma_x = sqrt(sigmaf_sqr + (z_to_focal * self._tanxdiv)**2)
sigma_y = sqrt(sigmaf_sqr + (z_to_focal * self._tanydiv)**2)

This change also affects the _generate_geometry() method.

I already have this implemented in the fork, so I can make a PR with this feature and the the changes discussed in #414.

@Mateasek, @jacklovell, what do you think of this feature?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions