The Open FUSION Toolkit 1.0.0-6f445ef
An open-source framework for fusion and plasma science and engineering
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
gs_equil Type Reference

Detailed Description

Grad-Shafranov equilibrium object.

Public Member Functions

procedure copy (self, source)
 Needs docs.
 
procedure delete (self)
 Destory G-S object.
 
procedure fit_isoflux (self, psi_full, ierr)
 Compute coil currents to best fit isoflux, flux, and saddle targets at current solution.
 
procedure get_chi (self)
 Compute toroidal field potential.
 
procedure itor (self, psi_vec)
 Compute approximate toroidal current as \( \int \Delta^* \psi dA \).
 
procedure new (self, device)
 Needs docs.
 

Public Attributes

class(oft_vector), pointer chi => NULL()
 Toroidal field potential (if computed)
 
real(r8), dimension(:), pointer coil_currs => NULL()
 Coil currents.
 
real(r8), dimension(:,:), pointer coil_reg_mat => NULL()
 Coil regularization terms.
 
real(r8), dimension(:), pointer coil_reg_targets => NULL()
 Targets for coil regularization terms.
 
type(gs_factory), pointer device => NULL()
 Device/factory object for equilibrium.
 
real(r8dipole_a = 0.d0
 Anisotropy exponent for dipole pressure profiles.
 
logical diverted = .FALSE.
 Equilibrium is diverted?
 
real(r8estore_target = -1.d0
 Stored energy target.
 
class(flux_func), pointer eta => NULL()
 Resistivity flux function.
 
real(r8ffp_scale = 1.d0
 Scale factor for F*F' or F' profile (see mode)
 
integer(i4flux_ntargets = 0
 Number of \( \psi \) target locations.
 
real(r8), dimension(:,:), pointer flux_targets => NULL()
 Flux target locations and values.
 
logical has_plasma = .TRUE.
 Solve with plasma? (otherwise vacuum)
 
class(flux_func), pointer i => NULL()
 F*F' flux function.
 
class(flux_func), pointer i_ni => NULL()
 Non-inductive F*F' flux function.
 
real(r8ip_ratio_target = -1.d99
 Ip ratio target.
 
integer(i4isoflux_ntargets = 0
 Number of isoflux target locations.
 
real(r8), dimension(:,:), pointer isoflux_targets => NULL()
 Isoflux target locations.
 
real(r8itor_target = -1.d0
 Toroidal current target.
 
real(r8), dimension(2) lim_point = [-1.d0,1.d99]
 Location of limiting point or active X-point.
 
real(r8mirror_bturn = 0.d0
 Turning point for mirror pressure profiles.
 
real(r8mirror_n = -1.d0
 Anisotropy exponent for mirror pressure profiles.
 
real(r8mirror_zthroat = 0.d0
 Mirror peak field point.
 
integer(i4mode = 0
 RHS source mode (0 -> F*F', 1 -> F')
 
integer(i4nregularize = 0
 Number of regularization terms.
 
integer(i4nx_points = 0
 Number of X-points in current solution.
 
real(r8), dimension(2) o_point = [-1.d0,1.d99]
 Location of magnetic axis.
 
class(flux_func), pointer p => NULL()
 Pressure flux function.
 
class(gs_ani_press), pointer p_ani => NULL()
 Anisotropic flux interpolator.
 
real(r8p_scale = 1.d0
 Scale factor for P' profile.
 
real(r8pax_target = -1.d0
 On-axis pressure target.
 
real(r8), dimension(2) plasma_bounds = [-1.d99,1.d99]
 Boundaing \( \psi \) values on [LCFS, axis].
 
class(oft_vector), pointer psi => NULL()
 Current \( \psi \) solution.
 
real(r8psimax = 1.d0
 Maximum \( \psi \) value for homogeneous equilibria.
 
real(r8psiscale = 1.d0
 Solution scale factor for homogeneous equilibria.
 
real(r8r0_target = -1.d0
 Magnetic axis radial target.
 
integer(i4saddle_ntargets = 0
 Number of saddle target locations.
 
real(r8), dimension(:,:), pointer saddle_targets => NULL()
 Saddle target locations.
 
real(r8v0_target = -1.d99
 Magnetic axis vertical target.
 
real(r8vcontrol_val = 0.d0
 Amplitude of virtual VSC "current".
 
real(r8), dimension(2, max_xpointsx_points = 0.d0
 Location of tracked X-points.
 
real(r8), dimension(2, max_xpointsx_vecs = 0.d0
 Vectors point from X-points to O-point.
 

Member Function/Subroutine Documentation

◆ copy()

procedure copy ( class(gs_equil), intent(inout)  self,
class(gs_equil), intent(in)  source 
)

Needs docs.

Parameters
[in,out]selfG-S equilibrium object
[in]sourceSource G-S equilibrium object

◆ delete()

procedure delete ( class(gs_equil), intent(inout)  self)

Destory G-S object.

Parameters
[in,out]selfG-S object

◆ fit_isoflux()

procedure fit_isoflux ( class(gs_equil), intent(inout)  self,
class(oft_vector), intent(inout), target  psi_full,
integer(4), intent(out)  ierr 
)

Compute coil currents to best fit isoflux, flux, and saddle targets at current solution.

Parameters
[in,out]selfG-S object
[in,out]psi_fullCurrent \( \psi \)
[out]ierrError flag

◆ get_chi()

procedure get_chi ( class(gs_equil), intent(inout)  self)

Compute toroidal field potential.

Parameters
[in,out]selfG-S object

◆ itor()

procedure itor ( class(gs_equil), intent(inout)  self,
class(oft_vector), intent(inout), optional  psi_vec 
)

Compute approximate toroidal current as \( \int \Delta^* \psi dA \).

Parameters
[in,out]selfG-S object
[in,out]psi_vecNeeds docs
Returns
Toroidal current

◆ new()

procedure new ( class(gs_equil), intent(inout)  self,
type(gs_factory), intent(in), target  device 
)

Needs docs.

Parameters
[in,out]selfG-S equilibrium object
[in]deviceG-S factory/device object

Member Data Documentation

◆ chi

class(oft_vector), pointer chi => NULL()

Toroidal field potential (if computed)

◆ coil_currs

real(r8), dimension(:), pointer coil_currs => NULL()

Coil currents.

◆ coil_reg_mat

real(r8), dimension(:,:), pointer coil_reg_mat => NULL()

Coil regularization terms.

◆ coil_reg_targets

real(r8), dimension(:), pointer coil_reg_targets => NULL()

Targets for coil regularization terms.

◆ device

type(gs_factory), pointer device => NULL()

Device/factory object for equilibrium.

◆ dipole_a

real(r8) dipole_a = 0.d0

Anisotropy exponent for dipole pressure profiles.

◆ diverted

logical diverted = .FALSE.

Equilibrium is diverted?

◆ estore_target

real(r8) estore_target = -1.d0

Stored energy target.

◆ eta

class(flux_func), pointer eta => NULL()

Resistivity flux function.

◆ ffp_scale

real(r8) ffp_scale = 1.d0

Scale factor for F*F' or F' profile (see mode)

◆ flux_ntargets

integer(i4) flux_ntargets = 0

Number of \( \psi \) target locations.

◆ flux_targets

real(r8), dimension(:,:), pointer flux_targets => NULL()

Flux target locations and values.

◆ has_plasma

logical has_plasma = .TRUE.

Solve with plasma? (otherwise vacuum)

◆ i

class(flux_func), pointer i => NULL()

F*F' flux function.

◆ i_ni

class(flux_func), pointer i_ni => NULL()

Non-inductive F*F' flux function.

◆ ip_ratio_target

real(r8) ip_ratio_target = -1.d99

Ip ratio target.

◆ isoflux_ntargets

integer(i4) isoflux_ntargets = 0

Number of isoflux target locations.

◆ isoflux_targets

real(r8), dimension(:,:), pointer isoflux_targets => NULL()

Isoflux target locations.

◆ itor_target

real(r8) itor_target = -1.d0

Toroidal current target.

◆ lim_point

real(r8), dimension(2) lim_point = [-1.d0,1.d99]

Location of limiting point or active X-point.

◆ mirror_bturn

real(r8) mirror_bturn = 0.d0

Turning point for mirror pressure profiles.

◆ mirror_n

real(r8) mirror_n = -1.d0

Anisotropy exponent for mirror pressure profiles.

◆ mirror_zthroat

real(r8) mirror_zthroat = 0.d0

Mirror peak field point.

◆ mode

integer(i4) mode = 0

RHS source mode (0 -> F*F', 1 -> F')

◆ nregularize

integer(i4) nregularize = 0

Number of regularization terms.

◆ nx_points

integer(i4) nx_points = 0

Number of X-points in current solution.

◆ o_point

real(r8), dimension(2) o_point = [-1.d0,1.d99]

Location of magnetic axis.

◆ p

class(flux_func), pointer p => NULL()

Pressure flux function.

◆ p_ani

class(gs_ani_press), pointer p_ani => NULL()

Anisotropic flux interpolator.

◆ p_scale

real(r8) p_scale = 1.d0

Scale factor for P' profile.

◆ pax_target

real(r8) pax_target = -1.d0

On-axis pressure target.

◆ plasma_bounds

real(r8), dimension(2) plasma_bounds = [-1.d99,1.d99]

Boundaing \( \psi \) values on [LCFS, axis].

◆ psi

class(oft_vector), pointer psi => NULL()

Current \( \psi \) solution.

◆ psimax

real(r8) psimax = 1.d0

Maximum \( \psi \) value for homogeneous equilibria.

◆ psiscale

real(r8) psiscale = 1.d0

Solution scale factor for homogeneous equilibria.

◆ r0_target

real(r8) r0_target = -1.d0

Magnetic axis radial target.

◆ saddle_ntargets

integer(i4) saddle_ntargets = 0

Number of saddle target locations.

◆ saddle_targets

real(r8), dimension(:,:), pointer saddle_targets => NULL()

Saddle target locations.

◆ v0_target

real(r8) v0_target = -1.d99

Magnetic axis vertical target.

◆ vcontrol_val

real(r8) vcontrol_val = 0.d0

Amplitude of virtual VSC "current".

◆ x_points

real(r8), dimension(2,max_xpoints) x_points = 0.d0

Location of tracked X-points.

◆ x_vecs

real(r8), dimension(2,max_xpoints) x_vecs = 0.d0

Vectors point from X-points to O-point.


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