The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
|
FEM utility classes and functions.
Data Types | |
type | bfem_interp |
Base class for interpolation of a FE field. More... | |
type | cc_interp |
Interpolator for cell centered fields. More... | |
type | cross_interp |
Interpolator for cross-product of two fields. More... | |
type | diff_interp |
Interpolator for difference between two fields. More... | |
type | dot_interp |
Interpolator for dot-product of two fields. More... | |
type | fem_interp |
Base class for interpolation of a FE field. More... | |
interface | oft_bfem_interp |
Protoype for FE interpolation method. More... | |
interface | oft_fem_interp |
Protoype for FE interpolation method. More... | |
type | tensor_dot_interp |
Interpolator for the product of a vector and tensor field. More... | |
Functions/Subroutines | |
subroutine | bfem_interp_delete (self) |
Dummy destroy function. | |
subroutine | bfem_map_flag (fem_obj, vert_flag, edge_flag, fe_flag) |
Set diagonal elements to one on owned rows according to BC flag. | |
subroutine | cc_interp_apply (self, cell, f, gop, val) |
Reconstruct a cell centered field. | |
subroutine | cross_interp_apply (self, cell, f, gop, val) |
Reconstruct the cross-product of two fields. | |
subroutine | diff_interp_apply (self, cell, f, gop, val) |
Reconstruct the difference between two fields. | |
subroutine | dot_interp_apply (self, cell, f, gop, val) |
Reconstruct the dot-product of two fields. | |
subroutine | fem_avg_bcc (mesh, field, bcc, order, n) |
Average a FE interpolator field to cell centers, by volume averaging. | |
subroutine | fem_dirichlet_diag (fem_obj, mat, flag, iblock) |
Set diagonal elements to one on owned rows according to BC flag. | |
subroutine | fem_dirichlet_vec (fem_obj, vecin, vecout, flag) |
Replace values in local vector according to BC flag. | |
subroutine | fem_interp_delete (self) |
Dummy destroy function. | |
subroutine | fem_map_flag (fem_obj, vert_flag, edge_flag, face_flag, fe_flag) |
Set diagonal elements to one on owned rows according to BC flag. | |
subroutine | fem_partition (self, part, nparts) |
Partition FE weights based on geometric connectivity. | |
subroutine | tensor_dot_interp_apply (self, cell, f, gop, val) |
Reconstruct the product of a vector and tensor field. | |
subroutine | tensor_dot_interp_delete (self) |
Destroy temporary internal storage. | |
subroutine | tensor_dot_interp_setup (self, mesh) |
Setup composite interpolator for a matrix-vector product. | |
subroutine bfem_interp_delete | ( | class(bfem_interp), intent(inout) | self | ) |
Dummy destroy function.
subroutine bfem_map_flag | ( | class(oft_bfem_type), intent(inout) | fem_obj, |
logical, dimension(:), intent(in) | vert_flag, | ||
logical, dimension(:), intent(in) | edge_flag, | ||
logical, dimension(:), intent(inout) | fe_flag | ||
) |
Set diagonal elements to one on owned rows according to BC flag.
[in,out] | fem_obj | Needs docs |
[in] | vert_flag | Needs docs |
[in] | edge_flag | Needs docs |
[in,out] | fe_flag | Needs docs |
subroutine cc_interp_apply | ( | class(cc_interp), 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 cell centered 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 [1] |
subroutine cross_interp_apply | ( | class(cross_interp), 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 the cross-product of two fields.
[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 [1] |
subroutine diff_interp_apply | ( | class(diff_interp), 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 the difference between two fields.
[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 [1] |
subroutine dot_interp_apply | ( | class(dot_interp), 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 the dot-product of two fields.
[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 [1] |
subroutine fem_avg_bcc | ( | class(oft_mesh), intent(in) | mesh, |
class(fem_interp), intent(inout) | field, | ||
real(r8), dimension(:,:), intent(inout) | bcc, | ||
integer(i4), intent(in) | order, | ||
integer(i4), intent(in), optional | n | ||
) |
Average a FE interpolator field to cell centers, by volume averaging.
[in,out] | field | Source field intepolator |
[in,out] | bcc | Averaged field over each cell |
[in] | order | Desired integration order |
[in] | n | Dimension of field (optional) |
subroutine fem_dirichlet_diag | ( | class(oft_afem_type), intent(inout) | fem_obj, |
class(oft_matrix), intent(inout) | mat, | ||
logical, dimension(:), intent(in) | flag, | ||
integer(i4), intent(in), optional | iblock | ||
) |
Set diagonal elements to one on owned rows according to BC flag.
[in,out] | fem_obj | Needs docs |
[in,out] | mat | Needs docs |
[in] | flag | Needs docs |
[in] | iblock | Needs docs |
subroutine fem_dirichlet_vec | ( | class(oft_afem_type), intent(inout) | fem_obj, |
real(r8), dimension(:), intent(inout) | vecin, | ||
real(r8), dimension(:), intent(inout) | vecout, | ||
logical, dimension(:), intent(in) | flag | ||
) |
Replace values in local vector according to BC flag.
[in,out] | fem_obj | Needs docs |
[in,out] | vecin | Needs docs |
[in,out] | vecout | Needs docs |
[in] | flag | Needs docs |
subroutine fem_interp_delete | ( | class(fem_interp), intent(inout) | self | ) |
Dummy destroy function.
subroutine fem_map_flag | ( | class(oft_fem_type), intent(inout) | fem_obj, |
logical, dimension(:), intent(in) | vert_flag, | ||
logical, dimension(:), intent(in) | edge_flag, | ||
logical, dimension(:), intent(in) | face_flag, | ||
logical, dimension(:), intent(inout) | fe_flag | ||
) |
Set diagonal elements to one on owned rows according to BC flag.
[in,out] | fem_obj | Needs docs |
[in] | vert_flag | Needs docs |
[in] | edge_flag | Needs docs |
[in] | face_flag | Needs docs |
[in,out] | fe_flag | Needs docs |
subroutine fem_partition | ( | class(oft_fem_type), intent(inout) | self, |
integer(i4), dimension(:), intent(inout) | part, | ||
integer(i4), intent(in) | nparts | ||
) |
Partition FE weights based on geometric connectivity.
[in,out] | self | Finite element structure |
[in,out] | part | Weight partitioning [selfne] |
[in] | nparts | Number of partitions |
subroutine tensor_dot_interp_apply | ( | class(tensor_dot_interp), 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 the product of a vector and tensor 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 [1] |
subroutine tensor_dot_interp_delete | ( | class(tensor_dot_interp), intent(inout) | self | ) |
Destroy temporary internal storage.
subroutine tensor_dot_interp_setup | ( | class(tensor_dot_interp), intent(inout) | self, |
class(oft_mesh), intent(inout), target | mesh | ||
) |
Setup composite interpolator for a matrix-vector product.
Allocates local interpolation objects. Setup of component fields must be called separately before the interpolator may be used