The Open FUSION Toolkit 1.0.0-beta5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
gs_eq Type Reference

Detailed Description

Grad-Shafranov equilibrium object.

Public Member Functions

procedure beta (self, beta_mr)
 Compute plasma Beta.
 
procedure delete (self)
 Initialize Grad-Shafranov solution with the Taylor state.
 
procedure get_chi (self)
 Compute flux potential from Grad-Shafranov solution.
 
procedure init (self)
 Initialize Grad-Shafranov solution with the Taylor state.
 
procedure init_psi (self, ierr, r0, a, kappa, delta, curr_source)
 Initialize Grad-Shafranov solution with the Taylor state.
 
procedure itor (self, psi_vec)
 Compute toroidal current for Grad-Shafranov equilibrium.
 
procedure lin_solve (self, adjust_r0, ierr)
 Compute Grad-Shafranov solution for current flux definitions.
 
procedure load_coils (self, ignore_inmesh)
 Needs Docs.
 
procedure load_limiters (self)
 Needs Docs.
 
procedure solve (self, ierr)
 Compute Grad-Shafranov solution for current flux definitions.
 
procedure vac_solve (self, psi_sol, rhs_source, ierr)
 Compute Grad-Shafranov solution for vacuum (no plasma)
 

Public Attributes

real(r8alam = 1.d0
 
logical assym = .FALSE.
 
real(r8), dimension(:,:), pointer bc_bmat => NULL()
 
real(r8), dimension(:,:), pointer bc_coil_mat => NULL()
 
real(r8), dimension(:,:), pointer bc_lmat => NULL()
 
real(r8), dimension(:,:), pointer bc_mat => NULL()
 
integer(i4bc_nrhs = 0
 
integer(i4), dimension(:), pointer bc_rhs_list => NULL()
 
logical boundary_limiter = .TRUE.
 
class(oft_vector), pointer chi => NULL()
 
real(r8), dimension(:,:), pointer coil_bounds => NULL()
 
real(r8), dimension(:), pointer coil_currs => NULL()
 
character(len=oft_path_slen) coil_file = 'none'
 
real(r8), dimension(:,:), pointer coil_nturns => NULL()
 
real(r8), dimension(:,:), pointer coil_reg_mat => NULL()
 
real(r8), dimension(:), pointer coil_reg_targets => NULL()
 
type(coil_region), dimension(:), pointer coil_regions => NULL()
 
real(r8), dimension(:), pointer coil_vcont => NULL()
 
type(axi_coil_set), dimension(:), pointer coils_ext => NULL()
 
logical compute_chi = .FALSE.
 
type(cond_region), dimension(:), pointer cond_regions => NULL()
 
real(r8), dimension(:), pointer cond_weights => NULL()
 
class(oft_matrix), pointer dels => NULL()
 
class(oft_matrix), pointer dels_dt => NULL()
 
class(oft_matrix), pointer dels_full => NULL()
 
logical diverted = .FALSE.
 
real(r8dt = -1.d0
 
real(r8dt_last = -1.d0
 
real(r8eps = 1.d-12
 
real(r8estore_target = -1.d0
 
class(flux_func), pointer eta => NULL()
 Resistivity flux function.
 
logical, dimension(:), pointer fe_flag => NULL()
 
integer(i4flux_ntargets = 0
 
real(r8), dimension(:,:), pointer flux_targets => NULL()
 
logical free = .FALSE.
 
logical full_domain = .FALSE.
 
logical has_plasma = .TRUE.
 
class(flux_func), pointer i => NULL()
 F*F' flux function.
 
class(flux_func), pointer i_ni => NULL()
 Non-inductive F*F' flux function.
 
integer(i4ierr = 0
 
real(r8ip_ratio_target = -1.d99
 
logical isoflux_grad_weight = .TRUE.
 
real(r8isoflux_grad_wt_lim = -1.d0
 
integer(i4isoflux_ntargets = 0
 
real(r8), dimension(:,:), pointer isoflux_targets => NULL()
 
real(r8itor_target = -1.d0
 
real(r8), dimension(:,:), pointer lcoils => NULL()
 
real(r8lim_area = -1.d0
 
integer(i4), dimension(:), pointer lim_con => NULL()
 
integer(i4lim_nloops = 0
 
real(r8), dimension(2) lim_point = (/-1.d0,1.d99/)
 
integer(i4), dimension(:), pointer lim_ptr => NULL()
 
real(r8lim_zmax = 1.d99
 
logical limited_only = .FALSE.
 
character(len=oft_path_slen) limiter_file = 'none'
 
integer(i4), dimension(:), pointer limiter_nds => NULL()
 
real(r8), dimension(:,:), pointer limiter_pts => NULL()
 
type(oft_lusolverlu_solver
 
type(oft_lusolverlu_solver_dt
 
integer(i4maxits = 30
 
integer(i4mode = 0
 
class(oft_matrix), pointer mop => NULL()
 
class(oft_matrix), pointer mrop => NULL()
 
integer(i4ncoil_regs = 0
 
integer(i4ncoils = 0
 
integer(i4ncoils_ext = 0
 
integer(i4ncond_eigs = 0
 
integer(i4ncond_regs = 0
 
integer(i4ninner = 4
 
real(r8nl_tol = 1.d-8
 
integer(i4nlcfs = 100
 
integer(i4nlim_con = 0
 
integer(i4nlimiter_nds = 0
 
integer(i4nlimiter_pts = 0
 
integer(i4nr0_ramp = 6
 
integer(i4nregularize = 0
 
integer(i4nx_points = 0
 
real(r8), dimension(2) o_point = (/-1.d0,1.d99/)
 
integer(i4), dimension(:), pointer olbp => NULL()
 Oriented list of boundary points.
 
class(flux_func), pointer p => NULL()
 Pressure flux function.
 
real(r8pax_target = -1.d0
 
real(r8), dimension(2) plasma_bounds = (/-1.d99,1.d99/)
 
logical plot_final = .TRUE.
 
logical plot_step = .TRUE.
 
real(r8pnorm = 1.d0
 
class(oft_vector), pointer psi => NULL()
 
class(oft_vector_ptr), dimension(:), pointer psi_coil => NULL()
 
class(oft_vector), pointer psi_dt => NULL()
 
real(r8psimax = 1.d0
 
real(r8psimin = 0.d0
 
real(r8psiscale = 1.d0
 
real(r8r0_target = -1.d0
 
type(gs_region_inforegion_info
 
real(r8), dimension(:,:), pointer rlcfs => NULL()
 
real(r8), dimension(:,:), pointer rlimiter_nds => NULL()
 
real(r8rmax = 0.d0
 
real(r8rmin = 0.d0
 
logical, dimension(:), pointer saddle_cmask => NULL()
 
integer(i4saddle_ntargets = 0
 
logical, dimension(:), pointer saddle_pmask => NULL()
 
logical, dimension(:), pointer saddle_rmask => NULL()
 
real(r8), dimension(:,:), pointer saddle_targets => NULL()
 
logical save_visit = .TRUE.
 
real(r8), dimension(2, 2) spatial_bounds = RESHAPE((/-1.d99,1.d99,-1.d99,1.d99/), (/2,2/))
 
real(r8), dimension(4) timing = 0.d0
 
class(oft_vector), pointer u_hom => NULL()
 
real(r8urf = .2d0
 
logical use_lu = .FALSE.
 
real(r8v0_target = -1.d99
 
real(r8vcont_d_gain = 0.d0
 
real(r8vcont_i_gain = 1.d-8
 
real(r8vcontrol_val = 0.d0
 
real(r8), dimension(2, max_xpointsx_points = 0.d0
 
real(r8), dimension(2, max_xpointsx_vecs = 0.d0
 

Static Public Attributes

procedure(region_eta_set), pointer, nopass set_eta => NULL()
 

Member Function/Subroutine Documentation

◆ beta()

procedure beta ( class(gs_eq), intent(inout)  self,
real(8), intent(in), optional  beta_mr 
)

Compute plasma Beta.

Parameters
[in]beta_mrMinor radius for optional calculations
Returns
Beta by several different metrics

◆ delete()

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

Initialize Grad-Shafranov solution with the Taylor state.

Parameters
[in,out]selfG-S object

◆ get_chi()

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

Compute flux potential from Grad-Shafranov solution.

Parameters
[in,out]selfG-S object

◆ init()

procedure init ( class(gs_eq), intent(inout)  self)

Initialize Grad-Shafranov solution with the Taylor state.

Parameters
[in,out]selfG-S object

◆ init_psi()

procedure init_psi ( class(gs_eq), intent(inout)  self,
integer(4), intent(out)  ierr,
real(8), dimension(2), intent(in), optional  r0,
real(8), intent(in), optional  a,
real(8), intent(in), optional  kappa,
real(8), intent(in), optional  delta,
real(8), dimension(:), intent(in), optional  curr_source 
)

Initialize Grad-Shafranov solution with the Taylor state.

Parameters
[in,out]selfG-S object

◆ itor()

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

Compute toroidal current for Grad-Shafranov equilibrium.

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

◆ lin_solve()

procedure lin_solve ( class(gs_eq), intent(inout)  self,
logical, intent(in)  adjust_r0,
integer(4), intent(out), optional  ierr 
)

Compute Grad-Shafranov solution for current flux definitions.

Parameters
[in,out]selfG-S object
[out]ierrError flag

◆ load_coils()

procedure load_coils ( class(gs_eq), intent(inout)  self,
logical, intent(in), optional  ignore_inmesh 
)

Needs Docs.

Parameters
[in,out]selfG-S object

◆ load_limiters()

procedure load_limiters ( class(gs_eq), intent(inout)  self)

Needs Docs.

Parameters
[in,out]selfG-S object

◆ solve()

procedure solve ( class(gs_eq), intent(inout)  self,
integer(4), intent(out), optional  ierr 
)

Compute Grad-Shafranov solution for current flux definitions.

Parameters
[in,out]selfG-S object
[out]ierrError flag

◆ vac_solve()

procedure vac_solve ( class(gs_eq), intent(inout)  self,
class(oft_vector), intent(inout)  psi_sol,
class(bfem_interp), intent(inout), optional  rhs_source,
integer(4), intent(out), optional  ierr 
)

Compute Grad-Shafranov solution for vacuum (no plasma)

Parameters
[in,out]selfG-S object
[in,out]psi_solInput: BCs for \( \psi \), Output: solution
[in,out]rhs_sourceSpecified current source (optional)
[out]ierrError flag

Member Data Documentation

◆ alam

real(r8) alam = 1.d0

◆ assym

logical assym = .FALSE.

◆ bc_bmat

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

◆ bc_coil_mat

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

◆ bc_lmat

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

◆ bc_mat

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

◆ bc_nrhs

integer(i4) bc_nrhs = 0

◆ bc_rhs_list

integer(i4), dimension(:), pointer bc_rhs_list => NULL()

◆ boundary_limiter

logical boundary_limiter = .TRUE.

◆ chi

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

◆ coil_bounds

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

◆ coil_currs

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

◆ coil_file

character(len=oft_path_slen) coil_file = 'none'

◆ coil_nturns

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

◆ coil_reg_mat

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

◆ coil_reg_targets

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

◆ coil_regions

type(coil_region), dimension(:), pointer coil_regions => NULL()

◆ coil_vcont

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

◆ coils_ext

type(axi_coil_set), dimension(:), pointer coils_ext => NULL()

◆ compute_chi

logical compute_chi = .FALSE.

◆ cond_regions

type(cond_region), dimension(:), pointer cond_regions => NULL()

◆ cond_weights

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

◆ dels

class(oft_matrix), pointer dels => NULL()

◆ dels_dt

class(oft_matrix), pointer dels_dt => NULL()

◆ dels_full

class(oft_matrix), pointer dels_full => NULL()

◆ diverted

logical diverted = .FALSE.

◆ dt

real(r8) dt = -1.d0

◆ dt_last

real(r8) dt_last = -1.d0

◆ eps

real(r8) eps = 1.d-12

◆ estore_target

real(r8) estore_target = -1.d0

◆ eta

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

Resistivity flux function.

◆ fe_flag

logical, dimension(:), pointer fe_flag => NULL()

◆ flux_ntargets

integer(i4) flux_ntargets = 0

◆ flux_targets

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

◆ free

logical free = .FALSE.

◆ full_domain

logical full_domain = .FALSE.

◆ has_plasma

logical has_plasma = .TRUE.

◆ 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.

◆ ierr

integer(i4) ierr = 0

◆ ip_ratio_target

real(r8) ip_ratio_target = -1.d99

◆ isoflux_grad_weight

logical isoflux_grad_weight = .TRUE.

◆ isoflux_grad_wt_lim

real(r8) isoflux_grad_wt_lim = -1.d0

◆ isoflux_ntargets

integer(i4) isoflux_ntargets = 0

◆ isoflux_targets

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

◆ itor_target

real(r8) itor_target = -1.d0

◆ lcoils

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

◆ lim_area

real(r8) lim_area = -1.d0

◆ lim_con

integer(i4), dimension(:), pointer lim_con => NULL()

◆ lim_nloops

integer(i4) lim_nloops = 0

◆ lim_point

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

◆ lim_ptr

integer(i4), dimension(:), pointer lim_ptr => NULL()

◆ lim_zmax

real(r8) lim_zmax = 1.d99

◆ limited_only

logical limited_only = .FALSE.

◆ limiter_file

character(len=oft_path_slen) limiter_file = 'none'

◆ limiter_nds

integer(i4), dimension(:), pointer limiter_nds => NULL()

◆ limiter_pts

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

◆ lu_solver

type(oft_lusolver) lu_solver

◆ lu_solver_dt

type(oft_lusolver) lu_solver_dt

◆ maxits

integer(i4) maxits = 30

◆ mode

integer(i4) mode = 0

◆ mop

class(oft_matrix), pointer mop => NULL()

◆ mrop

class(oft_matrix), pointer mrop => NULL()

◆ ncoil_regs

integer(i4) ncoil_regs = 0

◆ ncoils

integer(i4) ncoils = 0

◆ ncoils_ext

integer(i4) ncoils_ext = 0

◆ ncond_eigs

integer(i4) ncond_eigs = 0

◆ ncond_regs

integer(i4) ncond_regs = 0

◆ ninner

integer(i4) ninner = 4

◆ nl_tol

real(r8) nl_tol = 1.d-8

◆ nlcfs

integer(i4) nlcfs = 100

◆ nlim_con

integer(i4) nlim_con = 0

◆ nlimiter_nds

integer(i4) nlimiter_nds = 0

◆ nlimiter_pts

integer(i4) nlimiter_pts = 0

◆ nr0_ramp

integer(i4) nr0_ramp = 6

◆ nregularize

integer(i4) nregularize = 0

◆ nx_points

integer(i4) nx_points = 0

◆ o_point

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

◆ olbp

integer(i4), dimension(:), pointer olbp => NULL()

Oriented list of boundary points.

◆ p

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

Pressure flux function.

◆ pax_target

real(r8) pax_target = -1.d0

◆ plasma_bounds

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

◆ plot_final

logical plot_final = .TRUE.

◆ plot_step

logical plot_step = .TRUE.

◆ pnorm

real(r8) pnorm = 1.d0

◆ psi

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

◆ psi_coil

class(oft_vector_ptr), dimension(:), pointer psi_coil => NULL()

◆ psi_dt

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

◆ psimax

real(r8) psimax = 1.d0

◆ psimin

real(r8) psimin = 0.d0

◆ psiscale

real(r8) psiscale = 1.d0

◆ r0_target

real(r8) r0_target = -1.d0

◆ region_info

type(gs_region_info) region_info

◆ rlcfs

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

◆ rlimiter_nds

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

◆ rmax

real(r8) rmax = 0.d0

◆ rmin

real(r8) rmin = 0.d0

◆ saddle_cmask

logical, dimension(:), pointer saddle_cmask => NULL()

◆ saddle_ntargets

integer(i4) saddle_ntargets = 0

◆ saddle_pmask

logical, dimension(:), pointer saddle_pmask => NULL()

◆ saddle_rmask

logical, dimension(:), pointer saddle_rmask => NULL()

◆ saddle_targets

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

◆ save_visit

logical save_visit = .TRUE.

◆ set_eta

procedure(region_eta_set), pointer, nopass set_eta => NULL()
static

◆ spatial_bounds

real(r8), dimension(2,2) spatial_bounds = RESHAPE((/-1.d99,1.d99,-1.d99,1.d99/), (/2,2/))

◆ timing

real(r8), dimension(4) timing = 0.d0

◆ u_hom

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

◆ urf

real(r8) urf = .2d0

◆ use_lu

logical use_lu = .FALSE.

◆ v0_target

real(r8) v0_target = -1.d99

◆ vcont_d_gain

real(r8) vcont_d_gain = 0.d0

◆ vcont_i_gain

real(r8) vcont_i_gain = 1.d-8

◆ vcontrol_val

real(r8) vcontrol_val = 0.d0

◆ x_points

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

◆ x_vecs

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

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