The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
|
Base Lagrange FE class and basis evaluation.
Data Types | |
type | oft_scalar_bfem |
Lagrange operator container. More... | |
type | oft_scalar_fem |
Lagrange operator container. More... | |
Functions/Subroutines | |
logical function | oft_2d_lagrange_cast (self, source) |
Cast abstract FE type to 2D lagrange finite element type. | |
logical function | oft_3d_lagrange_cast (self, source) |
Cast abstract FE type to 3D lagrange finite element type. | |
subroutine | oft_blag_d2eval (self, cell, dof, f, val, g2op) |
Evaluate lagrange gradient function. | |
subroutine | oft_blag_eval (self, face, dof, f, val) |
Evaluate lagrange interpolation function. | |
subroutine | oft_blag_geval (self, face, dof, f, val, gop) |
Evaluate lagrange gradient function. | |
subroutine | oft_blag_npos (self, cell, dof, f) |
Retrieve lagrange node locations in logical coordinates. | |
subroutine | oft_lag_boundary (lag_rep) |
Compute surface normals for use in boundary conditions. | |
subroutine | oft_lag_d2eval (self, cell, dof, f, val, g2op) |
Evaluate lagrange gradient function. | |
subroutine | oft_lag_eval (self, cell, dof, f, val) |
Evaluate lagrange interpolation function. | |
subroutine | oft_lag_eval_all (self, cell, f, rop) |
Evaluate all lagrange interpolation functions. | |
subroutine | oft_lag_geval (self, cell, dof, f, val, gop) |
Evaluate lagrange gradient function. | |
subroutine | oft_lag_geval_all (self, cell, f, rop, gop) |
Evaluate all lagrange interpolation functions. | |
subroutine | oft_lag_nodes (order, ed_nodes, fc_nodes, c_nodes) |
Retrieve all lagrange node locations in logical coordinates. | |
subroutine | oft_lag_npos (self, cell, dof, f) |
Retrieve lagrange node locations in logical coordinates. | |
subroutine | oft_lag_setup (mg_mesh, order, ml_lag_obj, ml_blag_obj, ml_vlag_obj, minlev) |
Construct lagrange scalar FE on each mesh level. | |
subroutine | oft_lag_setup_bmesh (self, tmesh, order) |
Construct lagrange scalar FE for a given order. | |
subroutine | oft_lag_setup_vol (self, tmesh, order) |
Construct lagrange scalar FE for a given order. | |
subroutine | scalar_bfem_delete (self) |
Destroy boundary FE object. | |
subroutine | scalar_fem_delete (self) |
Destroy FE object. | |
Variables | |
integer(i4), parameter | oft_lagrange_id = 1 |
FE type ID. | |
logical function oft_2d_lagrange_cast | ( | class(oft_scalar_bfem), intent(out), pointer | self, |
class(oft_afem_type), intent(in), target | source | ||
) |
Cast abstract FE type to 2D lagrange finite element type.
The source matrix must be oft_scalar_bfem or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source object to reference |
logical function oft_3d_lagrange_cast | ( | class(oft_scalar_fem), intent(out), pointer | self, |
class(oft_afem_type), intent(in), target | source | ||
) |
Cast abstract FE type to 3D lagrange finite element type.
The source matrix must be oft_scalar_fem or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source object to reference |
subroutine oft_blag_d2eval | ( | class(oft_scalar_bfem), intent(in) | self, |
integer(i4), intent(in) | cell, | ||
integer(i4), intent(in) | dof, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), dimension(6), intent(out) | val, | ||
real(r8), dimension(6,6), intent(in), optional | g2op | ||
) |
Evaluate lagrange gradient function.
[in] | self | Lagrange type for evaluation |
[in] | cell | Cell for evaluation |
[in] | dof | Element to evaluate |
[in] | f | Position in cell in logical space |
[out] | val | Second derivatives of function [6] |
[in] | g2op | Grid Hessian [6,6] |
subroutine oft_blag_eval | ( | class(oft_scalar_bfem), intent(in) | self, |
integer(i4), intent(in) | face, | ||
integer(i4), intent(in) | dof, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), intent(out) | val | ||
) |
Evaluate lagrange interpolation function.
[in] | self | Lagrange type for evaluation |
[in] | face | Cell for evaluation |
[in] | dof | Element to evaluate |
[in] | f | Position in cell in logical space |
[out] | val | Value of interpolation function (dof) at point (f) |
subroutine oft_blag_geval | ( | class(oft_scalar_bfem), intent(in) | self, |
integer(i4), intent(in) | face, | ||
integer(i4), intent(in) | dof, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), dimension(3), intent(out) | val, | ||
real(r8), dimension(3,3), intent(in), optional | gop | ||
) |
Evaluate lagrange gradient function.
[in] | self | Lagrange type for evaluation |
[in] | face | Cell for evaluation |
[in] | dof | Element to evaluate |
[in] | f | Position in cell in logical space |
[out] | val | Gradient of lagrange element (dof) at point (f) [3] |
[in] | gop | Cell Jacobian matrix at point (f) [3,4] |
subroutine oft_blag_npos | ( | class(oft_scalar_bfem), intent(in) | self, |
integer(i4), intent(in) | cell, | ||
integer(i4), intent(in) | dof, | ||
real(r8), dimension(:), intent(out) | f | ||
) |
Retrieve lagrange node locations in logical coordinates.
[in] | self | Lagrange type for evaluation |
[in] | cell | Cell for evaluation |
[in] | dof | Element to locate |
[out] | f | Position of node in logical space |
subroutine oft_lag_boundary | ( | class(oft_scalar_fem), intent(inout) | lag_rep | ) |
Compute surface normals for use in boundary conditions.
subroutine oft_lag_d2eval | ( | class(oft_scalar_fem), intent(in) | self, |
integer(i4), intent(in) | cell, | ||
integer(i4), intent(in) | dof, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), dimension(6), intent(out) | val, | ||
real(r8), dimension(6,10), intent(in), optional | g2op | ||
) |
Evaluate lagrange gradient function.
[in] | self | Lagrange type for evaluation |
[in] | cell | Cell for evaluation |
[in] | dof | Element to evaluate |
[in] | f | Position in cell in logical space |
[out] | val | Second derivatives of function [6] |
[in] | g2op | Grid Hessian [6,6] |
subroutine oft_lag_eval | ( | class(oft_scalar_fem), intent(in) | self, |
integer(i4), intent(in) | cell, | ||
integer(i4), intent(in) | dof, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), intent(out) | val | ||
) |
Evaluate lagrange interpolation function.
[in] | self | Lagrange type for evaluation |
[in] | cell | Cell for evaluation |
[in] | dof | Element to evaluate |
[in] | f | Position in cell in logical space |
[out] | val | Value of interpolation function (dof) at point (f) |
subroutine oft_lag_eval_all | ( | class(oft_scalar_fem), intent(in) | self, |
integer(i4), intent(in) | cell, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), dimension(:), intent(out), contiguous | rop | ||
) |
Evaluate all lagrange interpolation functions.
[in] | self | Lagrange type for evaluation |
[in] | cell | Cell for evaluation |
[in] | f | Position in cell in logical space |
[out] | rop | Value of interpolation functions at point (f) [ncdofs] |
subroutine oft_lag_geval | ( | class(oft_scalar_fem), intent(in) | self, |
integer(i4), intent(in) | cell, | ||
integer(i4), intent(in) | dof, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), dimension(3), intent(out) | val, | ||
real(r8), dimension(:,:), intent(in) | gop | ||
) |
Evaluate lagrange gradient function.
[in] | self | Lagrange type for evaluation |
[in] | cell | Cell for evaluation |
[in] | dof | Element to evaluate |
[in] | f | Position in cell in logical space |
[in] | gop | Gradient of lagrange element (dof) at point (f) [3] |
[out] | val | Cell Jacobian matrix at point (f) [3,4] |
subroutine oft_lag_geval_all | ( | class(oft_scalar_fem), intent(in) | self, |
integer(i4), intent(in) | cell, | ||
real(r8), dimension(:), intent(in) | f, | ||
real(r8), dimension(:,:), intent(out), contiguous | rop, | ||
real(r8), dimension(:,:), intent(in) | gop | ||
) |
Evaluate all lagrange interpolation functions.
[in] | self | Lagrange type for evaluation |
[in] | cell | Cell for evaluation |
[in] | f | Position in cell in logical space |
[out] | rop | Value of interpolation functions at point (f) [3,ncdofs] |
[in] | gop | Cell Jacobian matrix at point (f) [3,4] |
subroutine oft_lag_nodes | ( | integer(i4), intent(in) | order, |
real(r8), dimension(:,:), intent(out), pointer | ed_nodes, | ||
real(r8), dimension(:,:), intent(out), pointer | fc_nodes, | ||
real(r8), dimension(:,:), intent(out), pointer | c_nodes | ||
) |
Retrieve all lagrange node locations in logical coordinates.
[in] | order | Needs docs |
[out] | ed_nodes | Needs docs |
[out] | fc_nodes | Needs docs |
[out] | c_nodes | Needs docs |
subroutine oft_lag_npos | ( | class(oft_scalar_fem), intent(in) | self, |
integer(i4), intent(in) | cell, | ||
integer(i4), intent(in) | dof, | ||
real(r8), dimension(:), intent(out) | f | ||
) |
Retrieve lagrange node locations in logical coordinates.
[in] | self | Lagrange type for evaluation |
[in] | cell | Cell for evaluation |
[in] | dof | Element to locate |
[out] | f | Position of node in logical space |
subroutine oft_lag_setup | ( | type(multigrid_mesh), intent(inout), target | mg_mesh, |
integer(i4), intent(in) | order, | ||
type(oft_ml_fem_type), intent(inout), optional, target | ml_lag_obj, | ||
type(oft_ml_fem_type), intent(inout), optional | ml_blag_obj, | ||
type(oft_ml_fem_comp_type), intent(inout), optional | ml_vlag_obj, | ||
integer(i4), intent(in), optional | minlev | ||
) |
Construct lagrange scalar FE on each mesh level.
[in] | order | Order of representation desired |
[in] | minlev | Lowest level to construct |
subroutine oft_lag_setup_bmesh | ( | class(oft_afem_type), intent(out), pointer | self, |
class(oft_bmesh), intent(in), target | tmesh, | ||
integer(i4), intent(in) | order | ||
) |
Construct lagrange scalar FE for a given order.
[out] | self | Needs docs |
[in] | tmesh | Needs docs |
[in] | order | Order of representation desired |
subroutine oft_lag_setup_vol | ( | class(oft_afem_type), intent(out), pointer | self, |
class(oft_mesh), intent(in), target | tmesh, | ||
integer(i4), intent(in) | order | ||
) |
Construct lagrange scalar FE for a given order.
[out] | self | Needs docs |
[in] | tmesh | Needs docs |
[in] | order | Order of representation desired |
subroutine scalar_bfem_delete | ( | class(oft_scalar_bfem), intent(inout) | self | ) |
Destroy boundary FE object.
subroutine scalar_fem_delete | ( | class(oft_scalar_fem), intent(inout) | self | ) |
Destroy FE object.
integer(i4), parameter oft_lagrange_id = 1 |
FE type ID.