XicsrtPlasmaCylindrical

xicsrt.sources._XicsrtPlasmaCylindrical.XicsrtPlasmaCylindrical

New Members

class XicsrtPlasmaCylindrical(*args, **kwargs)[source]

Bases: xicsrt.sources._XicsrtPlasmaGeneric.XicsrtPlasmaGeneric

A cylindrical plasma oriented along the Y axis.

Warning

This class is broken and out of date and needs to be updated.

This class is meant only to be used as an example for generating more complicated classes for specific plasmas.

plasma normal = absolute X plasma x orientation = absolute Z plasma y orientation = absolute Y

Configuration Options:

xsize
The size of this element along the xaxis direction.
ysize
The size of this element along the yaxis direction.
zsize
The size of this element along the zaxis direction.
angular_dist : string (‘isotropic’)
The type of angular distribution to use for the emitted rays. Available distributions: ‘isotropic’, ‘isotropic_xy’, ‘flat’, ‘flat_xy’, ‘gaussian’, and ‘gaussian_flat’. See XicsrtSourceGeneric for documentation of each distribution. Warning: Only the ‘isotropic’ distribution is currently supported!
spread : float (None) [radians]
The angular spread for the emission cone. The spread defines the half-angle of the cone. See ‘angular_dist’ in XicsrtSourceGeneric for detailed documentation.
spread_radius : float (None) [meters]
If specified, the spread will be calculated for each bundle such that the spotsize at the target matches the given radius. This is useful when working with very extended plasma sources. This options is incompatible with ‘spread’.
use_poisson
No documentation yet. Please help improve XICSRT!
wavelength_dist : string (‘voigt’)
No documentation yet. Please help improve XICSRT!
wavelength : float (1.0) [Angstroms]
No documentation yet. Please help improve XICSRT!
mass_number : float (1.0) [au]
No documentation yet. Please help improve XICSRT!
linewidth : float (0.0) [1/s]
No documentation yet. Please help improve XICSRT!
emissivity : float (0.0) [ph/m^3]
No documentation yet. Please help improve XICSRT!
temperature : float (0.0) [eV]
No documentation yet. Please help improve XICSRT!
velocity : float (0.0) [m/s]
No documentation yet. Please help improve XICSRT!
time_resolution : float (1e-3) [s]
No documentation yet. Please help improve XICSRT!
bundle_type : string (‘voxel’)
Define how the origin of rays within the bundle should be distributed. Available options are: ‘voxel’ or ‘point’.
bundle_volume : float (1e-3) [m^3]
The volume in which the rays within the bundle should distributed. if bundle_type is ‘point’ this will not affect the distribution, though it will still affect the number of bundles if bundle_count is set to None.
bundle_count : int (None)
The number of bundles to generate. If set to None then this number will be automatically determined by volume/bundle_volume. This default means that each bundle represents exactly the given bundle_volume in the plasma. For high quality raytracing studies this value should generally be set to a value much larger than volume/bundle_volume!
max_rays : int (1e7)
No documentation yet. Please help improve XICSRT!
max_bundles : int (1e7)
No documentation yet. Please help improve XICSRT!
filters
No documentation yet. Please help improve XICSRT!
origin
The x,y,x origin of this element in global coordinates.
zaxis
A unit-vector defining the z-axis of the element in global coordinates. For most optics: z-axis defines the surface normal direction.
xaxis : (optional)
A unit-vector defining the x-axis of the element in global coordinates. For most optics: x-axis defines the ‘width’ direction. If xaxis is not provided it will be automatically generated by: cross(zaxis, [0,1,0]). The yaxis is always automatically generated and defined by: cross(zaxis, xaxis)
class_name
Automatically generated.
yo_mama
Is a wonderful person!
bundle_generate(bundle_input)[source]

New Private Members

class XicsrtPlasmaCylindrical[source]

Inherited Members

class XicsrtPlasmaCylindrical[source]
__init__(*args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

aim_to_point(aim_point, xaxis=None)

Set the Z-Axis to aim at a particular point.

bundle_filter(bundle_input)
bundle_generate(bundle_input)[source]
check_config()

Check the config before copying to the internal param. This is called during object instantiation (__init__) and therefore before setup is called.

check_param()

Check the internal parameters prior to initialization. This will be called after setup and before initialize.

create_sources(bundle_input)

Generate rays from a list of bundles.

bundle_input
a list containing dictionaries containing the locations, emissivities, temperatures and velocitities and of all ray bundles to be emitted.
default_config()
xsize
The size of this element along the xaxis direction.
ysize
The size of this element along the yaxis direction.
zsize
The size of this element along the zaxis direction.
angular_dist : string (‘isotropic’)

The type of angular distribution to use for the emitted rays. Available distributions: ‘isotropic’, ‘isotropic_xy’, ‘flat’, ‘flat_xy’, ‘gaussian’, and ‘gaussian_flat’. See XicsrtSourceGeneric for documentation of each distribution.

Warning: Only the ‘isotropic’ distribution is currently supported!

spread: float (None) [radians]
The angular spread for the emission cone. The spread defines the half-angle of the cone. See ‘angular_dist’ in XicsrtSourceGeneric for detailed documentation.
spread_radius: float (None) [meters]
If specified, the spread will be calculated for each bundle such that the spotsize at the target matches the given radius. This is useful when working with very extended plasma sources. This options is incompatible with ‘spread’.
use_poisson
No documentation yet. Please help improve XICSRT!
wavelength_dist : string (‘voigt’)
No documentation yet. Please help improve XICSRT!
wavelength : float (1.0) [Angstroms]
No documentation yet. Please help improve XICSRT!
mass_number : float (1.0) [au]
No documentation yet. Please help improve XICSRT!
linewidth : float (0.0) [1/s]
No documentation yet. Please help improve XICSRT!
emissivity : float (0.0) [ph/m^3]
No documentation yet. Please help improve XICSRT!
temperature : float (0.0) [eV]
No documentation yet. Please help improve XICSRT!
velocity : float (0.0) [m/s]
No documentation yet. Please help improve XICSRT!
time_resolution : float (1e-3) [s]
No documentation yet. Please help improve XICSRT!
bundle_type : string (‘voxel’)
Define how the origin of rays within the bundle should be distributed. Available options are: ‘voxel’ or ‘point’.
bundle_volume : float (1e-3) [m^3]
The volume in which the rays within the bundle should distributed. if bundle_type is ‘point’ this will not affect the distribution, though it will still affect the number of bundles if bundle_count is set to None.
bundle_count : int (None)
The number of bundles to generate. If set to None then this number will be automatically determined by volume/bundle_volume. This default means that each bundle represents exactly the given bundle_volume in the plasma. For high quality raytracing studies this value should generally be set to a value much larger than volume/bundle_volume!
max_rays : int (1e7)
No documentation yet. Please help improve XICSRT!
max_bundles : int (1e7)
No documentation yet. Please help improve XICSRT!
filters
No documentation yet. Please help improve XICSRT!
generate_rays()
get_config()
get_default_xaxis(zaxis)

Get the X-axis using a default definition.

In order to fully define the orientation of a component both, a z-axis and an x-axis are expected. For certain types of components the x-axis definition is unimportant and can be defined using a default definition.

get_emissivity(rho)
get_temperature(rho)
get_velocity(rho)
initialize()

Initialize the object.

point_to_external(point_local)
point_to_local(point_external)
ray_to_external(ray_local, copy=False)
ray_to_local(ray_external, copy=False)
set_orientation(zaxis, xaxis=None)
setup()

Perform any setup actions that are needed prior to initialization.

setup_bundle_spread(bundle_input)

Calculate the spread and solid angle for each bundle.

If the config option ‘spread_radius’ is provide the spread will be determined for each bundle by a spotsize at the target.

Note: Even if the idea of a spread radius is added to the generic
source object we still need to calculate and save the results here so that we can correctly calcuate the bundle intensities.
setup_bundles()
to_ndarray(vector_in)
to_vector_array(vector_in)

Convert a vector to a numpy vector array (if needed).

update_config(config_new, **kwargs)

Overwrite any config values in this object with the ones given. This will be done recursively for all nested dictionaries.

vector_to_external(vector)
vector_to_local(vector)