V3FIT
|
Implements motional stark effect diagnostic. Defines the base class of the type mse_class. More...
Data Types | |
interface | mse_class |
Base class representing a mse signal. More... | |
Functions/Subroutines | |
class(mse_class) function, pointer | mse_construct_vec (point, view_start, view_end, beam_start, beam_end, in_degrees, is_ratio) |
Construct a mse_class object representing a motional stark effect diagnostic. More... | |
class(mse_class) function, pointer | mse_construct_rad (point, alpha, omega, delta, theta, in_degrees, is_ratio) |
Construct a mse_class object representing a motional stark effect diagnostic. More... | |
subroutine | mse_destruct (this) |
Deconstruct a mse_class object. More... | |
real(rprec) function, dimension(4) | mse_get_modeled_signal (this, a_model, sigma, last_value) |
Calculates the modeled signal. More... | |
character(len=data_name_length) function | mse_get_type (this) |
Gets a discription of the mse type. More... | |
subroutine | mse_get_header (this, header) |
Gets a discription of the model and model sigma array indices. More... | |
real(rprec) function, private | mse_angle_to_bt_proj (this, vec) |
Computes the angle with respect to toroidal field. More... | |
real(rprec) function, private | mse_angle_to_horizontal (vec) |
Computes the angle with respect to horizontal. More... | |
Variables | |
integer, parameter | mse_degrees_flag = 1 |
Bit position for the use coil response flag. | |
integer, parameter | mse_ratio_flag = 2 |
Bit position for the force coil response flag. | |
Implements motional stark effect diagnostic. Defines the base class of the type mse_class.
|
private |
Computes the angle with respect to toroidal field.
Returns the angle projected to the horizontal between an arbitray vector and and the toroidal field. This angle is computed by.
angle = acos(n_t.vxy/|vxy|) (1)
where n_t is the unit vector in the toroidal direction at the measurement point.
n_t = (-p_y, p_x)/|p| (2)
[in] | this | A mse_class instance. |
[in] | vec | An arbitray vector. |
[in] | bvec | The magnetic filed vector. |
|
private |
class (mse_class) function, pointer mse::mse_construct_rad | ( | real (rprec), dimension(3), intent(in) | point, |
real (rprec), intent(in) | alpha, | ||
real (rprec), intent(in) | omega, | ||
real (rprec), intent(in) | delta, | ||
real (rprec), intent(in) | theta, | ||
logical, intent(in) | in_degrees, | ||
logical, intent(in) | is_ratio | ||
) |
Construct a mse_class object representing a motional stark effect diagnostic.
Allocates memory and initializes a mse_class object. Uses angle representation.
[in] | point | Measurement point of the mse diagnostic. |
[in] | omega | Angle between the neutral beam and the toroidal in the horizontal. |
[in] | alpha | Angle between the view chord and the toroidal in the horizontal. |
[in] | delta | Pitch angle to the horizontal and the neutral beam. |
[in] | theta | Pitch angle to the horizontal and the view chord. |
[in] | in_degrees | Channel measures degrees. |
[in] | is_ratio | Channel measures ratio. |
class (mse_class) function, pointer mse::mse_construct_vec | ( | real (rprec), dimension(3), intent(in) | point, |
real (rprec), dimension(3), intent(in) | view_start, | ||
real (rprec), dimension(3), intent(in) | view_end, | ||
real (rprec), dimension(3), intent(in) | beam_start, | ||
real (rprec), dimension(3), intent(in) | beam_end, | ||
logical, intent(in) | in_degrees, | ||
logical, intent(in) | is_ratio | ||
) |
Construct a mse_class object representing a motional stark effect diagnostic.
Allocates memory and initializes a mse_class object. Uses vector representation.
[in] | point | Measurement point of the mse diagnostic. |
[in] | view_start | Starting point of the view vector. |
[in] | view_end | Ending point of the view vector. |
[in] | beam_start | Starting point of the beam vector. |
[in] | beam_end | Ending point of the beam vector. |
[in] | in_degrees | Channel measures degrees. |
[in] | is_ratio | Channel measures ratio. |
subroutine mse::mse_destruct | ( | type (mse_class), intent(inout) | this | ) |
subroutine mse::mse_get_header | ( | class (mse_class), intent(in) | this, |
character (len=data_name_length), dimension(7), intent(inout) | header | ||
) |
Gets a discription of the model and model sigma array indices.
Returns a description of the array indices for use when writting output files.
[in] | this | A mse_class instance. |
[in,out] | header | Buffer arrays to write header strings to. |
real (rprec) function, dimension(4) mse::mse_get_modeled_signal | ( | class (mse_class), intent(inout) | this, |
type (model_class), pointer | a_model, | ||
real (rprec), dimension(4), intent(out) | sigma, | ||
real (rprec), dimension(4), intent(in) | last_value | ||
) |
Calculates the modeled signal.
Calculates the modeled signal by Equation 1 of Hawkes et. al. doi:10.1063/1.1149415. The polarization angle gamma_m is determined from.
tan(gamma_m) = E_h/E_v (1)
E_h = -[B_v*Cos(delta)*Cos(omega + alpha) + Sin(delta)*(B_r*Sin(omega) - B_t*Cos(omega)] (2)
E_v = -B_v*Sin(theta)*Cos(delta)*Sin(omega + alpha)
The magnetic field components are defined as
The angles are defined as
[in,out] | this | A mse_class instance. |
[in] | a_model | A model instance. |
[out] | sigma | The modeled sigma. |
[in] | last_value | Last good value in case the signal did not change. |
character (len=data_name_length) function mse::mse_get_type | ( | class (mse_class), intent(in) | this | ) |