|
The Open FUSION Toolkit 1.0.0-beta5
Modeling tools for plasma and fusion research and engineering
|
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(r8) | alam = 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(i4) | bc_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(r8) | dt = -1.d0 |
| real(r8) | dt_last = -1.d0 |
| real(r8) | eps = 1.d-12 |
| real(r8) | estore_target = -1.d0 |
| class(flux_func), pointer | eta => NULL() |
| Resistivity flux function. | |
| logical, dimension(:), pointer | fe_flag => NULL() |
| integer(i4) | flux_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(i4) | ierr = 0 |
| real(r8) | ip_ratio_target = -1.d99 |
| logical | isoflux_grad_weight = .TRUE. |
| real(r8) | isoflux_grad_wt_lim = -1.d0 |
| integer(i4) | isoflux_ntargets = 0 |
| real(r8), dimension(:,:), pointer | isoflux_targets => NULL() |
| real(r8) | itor_target = -1.d0 |
| real(r8), dimension(:,:), pointer | lcoils => NULL() |
| real(r8) | lim_area = -1.d0 |
| integer(i4), dimension(:), pointer | lim_con => NULL() |
| integer(i4) | lim_nloops = 0 |
| real(r8), dimension(2) | lim_point = (/-1.d0,1.d99/) |
| integer(i4), dimension(:), pointer | lim_ptr => NULL() |
| real(r8) | lim_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_lusolver) | lu_solver |
| type(oft_lusolver) | lu_solver_dt |
| integer(i4) | maxits = 30 |
| integer(i4) | mode = 0 |
| class(oft_matrix), pointer | mop => NULL() |
| class(oft_matrix), pointer | mrop => NULL() |
| integer(i4) | ncoil_regs = 0 |
| integer(i4) | ncoils = 0 |
| integer(i4) | ncoils_ext = 0 |
| integer(i4) | ncond_eigs = 0 |
| integer(i4) | ncond_regs = 0 |
| integer(i4) | ninner = 4 |
| real(r8) | nl_tol = 1.d-8 |
| integer(i4) | nlcfs = 100 |
| integer(i4) | nlim_con = 0 |
| integer(i4) | nlimiter_nds = 0 |
| integer(i4) | nlimiter_pts = 0 |
| integer(i4) | nr0_ramp = 6 |
| integer(i4) | nregularize = 0 |
| integer(i4) | nx_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(r8) | pax_target = -1.d0 |
| real(r8), dimension(2) | plasma_bounds = (/-1.d99,1.d99/) |
| logical | plot_final = .TRUE. |
| logical | plot_step = .TRUE. |
| real(r8) | pnorm = 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(r8) | psimax = 1.d0 |
| real(r8) | psimin = 0.d0 |
| real(r8) | psiscale = 1.d0 |
| real(r8) | r0_target = -1.d0 |
| type(gs_region_info) | region_info |
| real(r8), dimension(:,:), pointer | rlcfs => NULL() |
| real(r8), dimension(:,:), pointer | rlimiter_nds => NULL() |
| real(r8) | rmax = 0.d0 |
| real(r8) | rmin = 0.d0 |
| logical, dimension(:), pointer | saddle_cmask => NULL() |
| integer(i4) | saddle_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(r8) | urf = .2d0 |
| logical | use_lu = .FALSE. |
| real(r8) | v0_target = -1.d99 |
| real(r8) | vcont_d_gain = 0.d0 |
| real(r8) | vcont_i_gain = 1.d-8 |
| real(r8) | vcontrol_val = 0.d0 |
| real(r8), dimension(2, max_xpoints) | x_points = 0.d0 |
| real(r8), dimension(2, max_xpoints) | x_vecs = 0.d0 |
Static Public Attributes | |
| procedure(region_eta_set), pointer, nopass | set_eta => NULL() |
| procedure beta | ( | class(gs_eq), intent(inout) | self, |
| real(8), intent(in), optional | beta_mr | ||
| ) |
Compute plasma Beta.
| [in] | beta_mr | Minor radius for optional calculations |
| procedure delete | ( | class(gs_eq), intent(inout) | self | ) |
Initialize Grad-Shafranov solution with the Taylor state.
| [in,out] | self | G-S object |
| procedure get_chi | ( | class(gs_eq), intent(inout) | self | ) |
Compute flux potential from Grad-Shafranov solution.
| [in,out] | self | G-S object |
| procedure init | ( | class(gs_eq), intent(inout) | self | ) |
Initialize Grad-Shafranov solution with the Taylor state.
| [in,out] | self | G-S object |
| 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.
| [in,out] | self | G-S object |
| procedure itor | ( | class(gs_eq), intent(inout) | self, |
| class(oft_vector), intent(inout), optional | psi_vec | ||
| ) |
Compute toroidal current for Grad-Shafranov equilibrium.
| [in,out] | self | G-S object |
| 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.
| [in,out] | self | G-S object |
| [out] | ierr | Error flag |
| procedure load_coils | ( | class(gs_eq), intent(inout) | self, |
| logical, intent(in), optional | ignore_inmesh | ||
| ) |
Needs Docs.
| [in,out] | self | G-S object |
| procedure load_limiters | ( | class(gs_eq), intent(inout) | self | ) |
Needs Docs.
| [in,out] | self | G-S object |
| procedure solve | ( | class(gs_eq), intent(inout) | self, |
| integer(4), intent(out), optional | ierr | ||
| ) |
Compute Grad-Shafranov solution for current flux definitions.
| [in,out] | self | G-S object |
| [out] | ierr | Error flag |
| 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)
| [in,out] | self | G-S object |
| [in,out] | psi_sol | Input: BCs for \( \psi \), Output: solution |
| [in,out] | rhs_source | Specified current source (optional) |
| [out] | ierr | Error flag |
| real(r8) alam = 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(i4) bc_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(r8) dt = -1.d0 |
| real(r8) dt_last = -1.d0 |
| real(r8) eps = 1.d-12 |
| real(r8) estore_target = -1.d0 |
| class(flux_func), pointer eta => NULL() |
Resistivity flux function.
| logical, dimension(:), pointer fe_flag => NULL() |
| integer(i4) flux_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(i4) ierr = 0 |
| real(r8) ip_ratio_target = -1.d99 |
| logical isoflux_grad_weight = .TRUE. |
| real(r8) isoflux_grad_wt_lim = -1.d0 |
| integer(i4) isoflux_ntargets = 0 |
| real(r8), dimension(:,:), pointer isoflux_targets => NULL() |
| real(r8) itor_target = -1.d0 |
| real(r8), dimension(:,:), pointer lcoils => NULL() |
| real(r8) lim_area = -1.d0 |
| integer(i4), dimension(:), pointer lim_con => NULL() |
| integer(i4) lim_nloops = 0 |
| real(r8), dimension(2) lim_point = (/-1.d0,1.d99/) |
| integer(i4), dimension(:), pointer lim_ptr => NULL() |
| real(r8) lim_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_lusolver) lu_solver |
| type(oft_lusolver) lu_solver_dt |
| integer(i4) maxits = 30 |
| integer(i4) mode = 0 |
| class(oft_matrix), pointer mop => NULL() |
| class(oft_matrix), pointer mrop => NULL() |
| integer(i4) ncoil_regs = 0 |
| integer(i4) ncoils = 0 |
| integer(i4) ncoils_ext = 0 |
| integer(i4) ncond_eigs = 0 |
| integer(i4) ncond_regs = 0 |
| integer(i4) ninner = 4 |
| real(r8) nl_tol = 1.d-8 |
| integer(i4) nlcfs = 100 |
| integer(i4) nlim_con = 0 |
| integer(i4) nlimiter_nds = 0 |
| integer(i4) nlimiter_pts = 0 |
| integer(i4) nr0_ramp = 6 |
| integer(i4) nregularize = 0 |
| integer(i4) nx_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(r8) pax_target = -1.d0 |
| real(r8), dimension(2) plasma_bounds = (/-1.d99,1.d99/) |
| logical plot_final = .TRUE. |
| logical plot_step = .TRUE. |
| real(r8) pnorm = 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(r8) psimax = 1.d0 |
| real(r8) psimin = 0.d0 |
| real(r8) psiscale = 1.d0 |
| real(r8) r0_target = -1.d0 |
| type(gs_region_info) region_info |
| real(r8), dimension(:,:), pointer rlcfs => NULL() |
| real(r8), dimension(:,:), pointer rlimiter_nds => NULL() |
| real(r8) rmax = 0.d0 |
| real(r8) rmin = 0.d0 |
| logical, dimension(:), pointer saddle_cmask => NULL() |
| integer(i4) saddle_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. |
|
static |
| 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(r8) urf = .2d0 |
| logical use_lu = .FALSE. |
| real(r8) v0_target = -1.d99 |
| real(r8) vcont_d_gain = 0.d0 |
| real(r8) vcont_i_gain = 1.d-8 |
| real(r8) vcontrol_val = 0.d0 |
| real(r8), dimension(2,max_xpoints) x_points = 0.d0 |
| real(r8), dimension(2,max_xpoints) x_vecs = 0.d0 |