|
The Open FUSION Toolkit 1.0.0-beta6
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