The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
|
Subroutines and fields for Taylor state calculations using mimetic operators.
Data Types | |
type | oft_taylor_hmodes |
Force-free, uniform \( \lambda \) eigenmode object. More... | |
type | oft_taylor_ifield |
Force-free, uniform \( \lambda \) field object (inhomogeneous BCs) More... | |
type | oft_taylor_rinterp |
Interpolate a Taylor state field. More... | |
Functions/Subroutines | |
subroutine | ff_delete (self, storage_only) |
Setup eigenmodes object. | |
subroutine | ff_setup (self, nh, hcpc, hcpv, htags, ml_hcurl, ml_h1, ml_hcurl_grad, ml_h1grad, ml_lagrange, minlev) |
Setup eigenmodes object. | |
subroutine | hmodes_delete (self, storage_only) |
Setup eigenmodes object. | |
subroutine | hmodes_setup (self, ml_hcurl, ml_lagrange, minlev, htor_axis) |
Setup eigenmodes object. | |
subroutine | taylor_hmodes (self, nm, rst_filename) |
Compute 'taylor_nm' Force-Free eignemodes. | |
subroutine | taylor_injector_single (self, hmodes, lambda, fluxes, gffa) |
Compute force-free plasma response to external fields generated by taylor_vacuum. | |
subroutine | taylor_injectors (self, hmodes, lambda, rst_filename) |
Compute force-free plasma response to external fields generated by taylor_injectors. | |
subroutine | taylor_rinterp (self, cell, f, gop, val) |
Reconstruct a composite Taylor state field. | |
subroutine | taylor_rinterp_setup1 (self, hcurl_grad_rep) |
Setup interpolator for composite Taylor state fields. | |
subroutine | taylor_rinterp_setup2 (self, hcurl_rep, hgrad_rep) |
Setup interpolator for composite Taylor state fields. | |
subroutine | taylor_vac_curr (self, hmodes, rst_filename) |
Generate vector potential whose corresponding current matches the vacuum fields stored in taylor::taylor_hvac. | |
subroutine | taylor_vacuum (self, energy, hmodes, rst_filename) |
Generate vacuum fields for specified handle (cut planes) | |
Variables | |
integer(i4), parameter | taylor_tag_size = 4 |
Size of jump planes character tags. | |
subroutine ff_delete | ( | class(oft_taylor_ifield), intent(inout) | self, |
logical, intent(in), optional | storage_only | ||
) |
Setup eigenmodes object.
[in,out] | self | Force-free eigenmode object |
[in] | storage_only | Only reset storage, but do not clear references |
subroutine ff_setup | ( | class(oft_taylor_ifield), intent(inout) | self, |
integer(i4), intent(in) | nh, | ||
real(r8), dimension(3,nh), intent(in) | hcpc, | ||
real(r8), dimension(3,nh), intent(in) | hcpv, | ||
character(len=taylor_tag_size), dimension(nh), intent(in), optional | htags, | ||
type(oft_ml_fem_type), intent(in), optional, target | ml_hcurl, | ||
type(oft_ml_fem_type), intent(in), optional, target | ml_h1, | ||
type(oft_ml_fem_comp_type), intent(in), optional, target | ml_hcurl_grad, | ||
type(oft_ml_fem_type), intent(in), optional, target | ml_h1grad, | ||
type(oft_ml_fem_type), intent(in), optional, target | ml_lagrange, | ||
integer(i4), intent(in), optional | minlev | ||
) |
Setup eigenmodes object.
[in,out] | self | Force-free field object |
[in] | nh | Number of jump planes |
[in] | hcpc | Jump plane center possitions [3,nh] |
[in] | hcpv | Jump plane normal vectors [3,nh] |
[in] | htags | Names for each jump plane [LEN=taylor_tag_size,nh] (optional) |
[in] | ml_hcurl | Multi-level H(Curl) FE representation |
[in] | ml_h1 | Multi-level H^1 FE representation |
[in] | ml_hcurl_grad | Multi-level H(Curl) + grad(H^1) FE representation |
[in] | ml_h1grad | Multi-level grad(H^1) FE representation |
[in] | ml_lagrange | Multi-level Lagrange FE representation |
subroutine hmodes_delete | ( | class(oft_taylor_hmodes), intent(inout) | self, |
logical, intent(in), optional | storage_only | ||
) |
Setup eigenmodes object.
[in,out] | self | Force-free eigenmode object |
[in] | storage_only | Only reset storage, but do not clear references |
subroutine hmodes_setup | ( | class(oft_taylor_hmodes), intent(inout) | self, |
type(oft_ml_fem_type), intent(in), optional, target | ml_hcurl, | ||
type(oft_ml_fem_type), intent(in), optional, target | ml_lagrange, | ||
integer(i4), intent(in), optional | minlev, | ||
integer(i4), intent(in), optional | htor_axis | ||
) |
Setup eigenmodes object.
[in,out] | self | Force-free eigenmode object |
[in] | ml_hcurl | Multi-level H(Curl) FE representation |
[in] | ml_lagrange | Multi-level Lagrange FE representation |
subroutine taylor_hmodes | ( | type(oft_taylor_hmodes), intent(inout) | self, |
integer(i4), intent(in), optional | nm, | ||
character(len=*), intent(in), optional | rst_filename | ||
) |
Compute 'taylor_nm' Force-Free eignemodes.
[in,out] | self | Force-free eigenmode object |
[in] | nm | Number of modes to compute (optional: 1) |
[in] | rst_filename | File name to store/load restart information |
subroutine taylor_injector_single | ( | type(oft_taylor_ifield), intent(inout) | self, |
type(oft_taylor_hmodes), intent(inout) | hmodes, | ||
real(r8), intent(in) | lambda, | ||
real(r8), dimension(:), intent(in) | fluxes, | ||
class(oft_vector), intent(inout), pointer | gffa | ||
) |
Compute force-free plasma response to external fields generated by taylor_vacuum.
[in,out] | self | Force-free field object |
[in,out] | hmodes | Force-free eigenmode object |
[in] | lambda | Desired lambda for force-free state |
[in] | fluxes | Flux for each handle |
[in,out] | gffa | Plasma component (non-vacuum) of handle field |
subroutine taylor_injectors | ( | type(oft_taylor_ifield), intent(inout) | self, |
type(oft_taylor_hmodes), intent(inout) | hmodes, | ||
real(r8), intent(in) | lambda, | ||
character(len=*), intent(in), optional | rst_filename | ||
) |
Compute force-free plasma response to external fields generated by taylor_injectors.
[in,out] | self | Force-free field object |
[in,out] | hmodes | Force-free eigenmode object |
[in] | lambda | Desired lambda for force-free state |
[in] | rst_filename | File name to store/load restart information (optional) |
subroutine taylor_rinterp | ( | class(oft_taylor_rinterp), intent(inout) | self, |
integer(i4), intent(in) | cell, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), dimension(3,4), intent(in) | gop, | ||
real(r8), dimension(:), intent(out) | val | ||
) |
Reconstruct a composite Taylor state field.
[in] | cell | Cell for interpolation |
[in] | f | Position in cell in logical coord [4] |
[in] | gop | Logical gradient vectors at f [3,4] |
[out] | val | Reconstructed field at f [3] |
subroutine taylor_rinterp_setup1 | ( | class(oft_taylor_rinterp), intent(inout) | self, |
class(oft_fem_comp_type), intent(inout), target | hcurl_grad_rep | ||
) |
Setup interpolator for composite Taylor state fields.
Fetches local representation used for interpolation from vector object
subroutine taylor_rinterp_setup2 | ( | class(oft_taylor_rinterp), intent(inout) | self, |
class(oft_afem_type), intent(inout), target | hcurl_rep, | ||
class(oft_afem_type), intent(inout), target | hgrad_rep | ||
) |
Setup interpolator for composite Taylor state fields.
Fetches local representation used for interpolation from vector object
subroutine taylor_vac_curr | ( | type(oft_taylor_ifield), intent(inout) | self, |
type(oft_taylor_hmodes), intent(inout) | hmodes, | ||
character(len=*), intent(in), optional | rst_filename | ||
) |
Generate vector potential whose corresponding current matches the vacuum fields stored in taylor::taylor_hvac.
[in,out] | self | Force-free field object |
[in,out] | hmodes | Force-free eigenmode object |
[in] | rst_filename | File name to store/load restart information (optional) |
subroutine taylor_vacuum | ( | type(oft_taylor_ifield), intent(inout) | self, |
real(r8), dimension(:), intent(out), optional | energy, | ||
type(oft_taylor_hmodes), intent(inout), optional | hmodes, | ||
character(len=*), intent(in), optional | rst_filename | ||
) |
Generate vacuum fields for specified handle (cut planes)
[in,out] | self | Force-free field object |
[out] | energy | Vacuum energy for each handle (optional) |
[in,out] | hmodes | Force-free eigenmode object (optional) |
[in] | rst_filename | File name to store/load restart information (optional) |
integer(i4), parameter taylor_tag_size = 4 |
Size of jump planes character tags.