Stellarator-Tools
Loading...
Searching...
No Matches
limiter_iso_t::limiter_iso_class Interface Reference

Base class representing a limiter_iso function. More...

Inheritance diagram for limiter_iso_t::limiter_iso_class:
limiter::limiter_class signal::signal_class

Public Member Functions

procedure get_max_fval (this, num_theta, phi_index, r, z, rphiz_at_max)
 Calculates the maximum value of the iso function.
 
procedure get_type (this)
 Gets a discription of the limiter iso type.
 
procedure get_value (this, r, z)
 Computes the iso value at an r, phi, z position.
 
FINAL limiter_iso_destruct (this)
 Deconstruct a limiter_iso object.
 
class(limiter_iso_class) function, pointer limiter_iso_construct (arz, rc, zc, numin, vgrid, on_edge)
 Construct a limiter iso function.
 
- Public Member Functions inherited from limiter::limiter_class
procedure get_modeled_signal_last (this, a_model, sigma, last_value)
 Calculates the modeled signal.
 
procedure get_header (this, header)
 Gets a discription of the model and model sigma array indices.
 
procedure get_type (this)
 Gets a discription of the limiter type.
 
procedure get_max_fval (this, num_theta, phi_index, r, z, rphiz_at_max)
 Calculates the maximum value of the limiter function.
 
FINAL limiter_destruct (this)
 Deconstruct a limiter_class object.
 
- Public Member Functions inherited from signal::signal_class
procedure get_modeled_signal_cache (this, a_model, sigma, use_cache, last_value)
 Calculates the modeled signal.
 
procedure get_modeled_signal_last (this, a_model, sigma, last_value)
 Calculates the modeled signal.
 
GENERIC get_modeled_signal get_modeled_signal_cache, get_modeled_signal_last
 
procedure get_observed_signal (this, a_model)
 Calculates the observed signal.
 
procedure get_g2 (this, a_model, use_cache, last_value)
 Calculates the g^2 contribution of a signal.
 
procedure get_e (this, a_model, use_cache, last_value)
 Calculates the e contribution of a signal.
 
procedure get_sigma2 (this)
 Calculates the total sigma^2 of a signal.
 
procedure get_type (this)
 Gets a discription of the signal type.
 
procedure get_header (this, header)
 Gets a discription of the model and model sigma array indices.
 
procedure get_gp_i (this, a_model, i, flags)
 Gets the guassian process kernel for a signal and a position.
 
procedure get_gp_s (this, a_model, signal, flags)
 Gets the guassian process kernel for a signal and a signal.
 
procedure get_gp_x (this, a_model, x_cart, flags)
 Gets the guassian process kernel for a signal and cartesian position.
 
GENERIC get_gp get_gp_i, get_gp_s, get_gp_x
 
procedure scale_and_offset (this, a_model, value)
 Apply scale and offset to the value.
 
procedure sync_child (this, index, recon_comm)
 Syncronize a child signal state to the parent.
 
procedure write_header (this, iou)
 Write out the signal header information to an output file.
 
procedure write (this, iou, index, a_model)
 Write out the signal information to an output file.
 
procedure write_auxiliary (this, iou, index, a_model)
 Write out any auxiliary signal information to an output file.
 
procedure write_step_data (this, a_model, result_ncid, current_step, index, signal_model_value_id, signal_sigma_value_id)
 Write out the signal data for a step to the result netcdf file.
 
FINAL signal_destruct (this)
 Deconstruct a signal_class object.
 

Public Attributes

real(rprec), dimension(0:4, 0:4) arz
 Coefficients for the iso function.
 
real(rprec) rc
 R offset for function.
 
real(rprec) zc
 Z offset for function.
 
integer numin
 Minimum number of poloidal angles for s=1 surface.
 
- Public Attributes inherited from limiter::limiter_class
logical on_edge = .false.
 If true, the reconstruction tries to place the edge on the limiter. Otherwise, the plasma edge is kept inside the limiter.
 
real(rprec), dimension(:), pointer phi => null()
 Limiter phi planes the limiters are defined at.
 
- Public Attributes inherited from signal::signal_class
character(len=data_short_name_lengths_name
 Short name of the signal.
 
character(len=data_name_lengthl_name
 Long name of the signal.
 
character(len=data_short_name_lengthunits
 Physical units the signal measures.
 
real(rprec) observed
 Eperimentally measured signal value.
 
real(rprec) observed_sigma
 Eperimentally measured signal uncertainty.
 
real(rprec) weight
 Weighting parameter of the signal.
 
real(rprec), dimension(4) modeled
 Cached value of the modeled signal.
 
real(rprec), dimension(4) modeled_sigma
 Cached value of the modeled sigma.
 
integer scale_index
 Scale factor index.
 
integer offset_index
 Offset factor index.
 

Detailed Description

Base class representing a limiter_iso function.

Interface for iso contour limiter constructor.

1) Limiter iso: limiter_iso Contains the data to define a scalar function of position, so that the iso-contour f=0 of the function corresponds to a geometric limit to the plasma. Also contains data to specify the minimum number poloidal points on the s=1 surface to use, and the toroidal planes on which to s=1 surface will be evaluated

Second attempt:

e = SUM_over_i(0,4)_j(0,4) [arz(i,j) (r - rc)^i (z - zc)^j] f = e / |grad(e)|

  • Note
  1. For now, axisymmetric
  2. Easy to put in circles, ellipses, and planes
  3. Function f is approximately distance.

Member Function/Subroutine Documentation

◆ get_max_fval()

procedure limiter_iso_t::limiter_iso_class::get_max_fval ( class (limiter_iso_class), intent(in)  this,
integer, intent(in)  num_theta,
integer, intent(in)  phi_index,
real (rprec), dimension(:), intent(in)  r,
real (rprec), dimension(:), intent(in)  z,
real (rprec), dimension(3), intent(out)  rphiz_at_max 
)

Calculates the maximum value of the iso function.

Parameters
[in]thisA limiter_class instance.
[in]num_thetaNumber of points in the theta direction.
[in]phi_indexCurrent phi index.
[in]rR positions of the last closed flux surface.
[in]zZ positions of the last closed flux surface.
[out]rphiz_at_maxR, Phi, Z position of the maximum function.
Returns
The maximum value of the iso function.

◆ get_type()

procedure limiter_iso_t::limiter_iso_class::get_type ( class (limiter_iso_class), intent(in)  this)

Gets a discription of the limiter iso type.

Returns a description of the limiter type for use when writting output files.

Parameters
[in]thisA limiter_iso_class instance.
Returns
A string describing the limiter type.

◆ get_value()

procedure limiter_iso_t::limiter_iso_class::get_value ( class (limiter_iso_class), intent(in)  this,
real (rprec), intent(in)  r,
real (rprec), intent(in)  z 
)

Computes the iso value at an r, phi, z position.

Limiter iso function is computed as

e = SUM_over_i(0,4)_j(0,4) [arz(i,j) (r - rc)^i (z - zc)^j] f = e / |grad(e)|

Parameters
[in]thisA limiter_iso instance.
[in]rpz_argThe r point to evaluate at.
[in]rpz_argThe z point to evaluate at.
Returns
The value of iso function at the r, phi, z point.

◆ limiter_iso_construct()

class (limiter_iso_class) function, pointer limiter_iso_t::limiter_iso_class::limiter_iso_construct ( real (rprec), dimension(0:4,0:4), intent(in)  arz,
real (rprec), intent(in)  rc,
real (rprec), intent(in)  zc,
integer, intent(in)  numin,
real (rprec), dimension(:), intent(in)  vgrid,
logical, intent(in)  on_edge 
)

Construct a limiter iso function.

Allocates memory and initializes a limiter_iso object.

Parameters
[in]arzCoefficients for the iso function.
[in]rcR offset for function.
[in]zcZ offset for function.
[in]numinMinimum number of poloidal angles for s=1 surface.
[in]vgridValues of toroidal angle at which to compute s=1 surface.
[in]on_edgeSpecifies if the edge should touch the limiter or not. If true, the reconstruction tries to have the limiter touch the limiter. If false, the edge will only just fall inside the limiter.
Returns
A pointer to a constructed limiter_iso object.

◆ limiter_iso_destruct()

FINAL limiter_iso_t::limiter_iso_class::limiter_iso_destruct ( type (limiter_iso_class), intent(inout)  this)
final

Deconstruct a limiter_iso object.

Deallocates memory and uninitializes a limiter_iso object.

Parameters
[in,out]thisA limiter_iso instance.

The documentation for this interface was generated from the following file: