V3FIT
Data Types | Functions/Subroutines
limiter_iso_t Module Reference

Defines the base class of the type limiter_iso. More...

Data Types

interface  limiter_iso_class
 Base class representing a limiter_iso function. More...
 

Functions/Subroutines

class(limiter_iso_class) function, pointer limiter_iso_construct (arz, rc, zc, numin, vgrid, on_edge)
 Construct a limiter iso function. More...
 
subroutine limiter_iso_destruct (this)
 Deconstruct a limiter_iso object. More...
 
real(rprec) function limiter_iso_get_max_fval (this, num_theta, phi_index, r, z, rphiz_at_max)
 Calculates the maximum value of the iso function. More...
 
real(rprec) function limiter_iso_get_value (this, r, z)
 Computes the iso value at an r, phi, z position. More...
 
character(len=data_name_length) function limiter_iso_get_type (this)
 Gets a discription of the limiter iso type. More...
 

Detailed Description

Defines the base class of the type limiter_iso.

Function/Subroutine Documentation

◆ limiter_iso_construct()

class (limiter_iso_class) function, pointer limiter_iso_t::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.

Definition at line 93 of file limiter_iso_T.f.

◆ limiter_iso_destruct()

subroutine limiter_iso_t::limiter_iso_destruct ( type (limiter_iso_class), intent(inout)  this)

Deconstruct a limiter_iso object.

Deallocates memory and uninitializes a limiter_iso object.

Parameters
[in,out]thisA limiter_iso instance.

Definition at line 138 of file limiter_iso_T.f.

◆ limiter_iso_get_max_fval()

real (rprec) function limiter_iso_t::limiter_iso_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.

Definition at line 172 of file limiter_iso_T.f.

◆ limiter_iso_get_type()

character (len=data_name_length) function limiter_iso_t::limiter_iso_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.

Definition at line 293 of file limiter_iso_T.f.

◆ limiter_iso_get_value()

real (rprec) function limiter_iso_t::limiter_iso_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.

Definition at line 225 of file limiter_iso_T.f.