The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
|
Base FEM class and functions for construction of FE linkage.
Data Types | |
interface | afem_ncdofs |
Needs docs. More... | |
interface | afem_setup |
Needs docs. More... | |
type | dof_map |
Cell DOF type information. More... | |
type | fem_mpi_global |
Global vector information and indicies. More... | |
type | fem_parent |
Parent FE information and indicies. More... | |
interface | ml_fe_base_pop |
Needs docs. More... | |
interface | ml_fe_base_push |
Needs docs. More... | |
type | oft_afem_type |
Base FE type. More... | |
type | oft_bfem_type |
Base FE type for boundary (triangle) meshes. More... | |
type | oft_fem_ptr |
Needs docs. More... | |
type | oft_fem_type |
Base FE type. More... | |
type | oft_ml_fe_vecspace |
Needs docs. More... | |
type | oft_ml_fem_ptr |
Needs docs. More... | |
type | oft_ml_fem_type |
Needs docs. More... | |
Functions/Subroutines | |
subroutine | afem_delete (self) |
Needs docs. | |
subroutine | afem_fill_lgraph (row, col, nee, kee, lee) |
Supplement local graph with interactions from other processors. | |
subroutine | afem_mat_create (self, new) |
Create self-matrix for FE representation. | |
subroutine | afem_self_linkage (self) |
Compute element to element linkage for a FE representation. | |
subroutine | afem_vec_create (self, new, cache, native) |
Create weight vector for FE representation. | |
subroutine | afem_vec_load (self, source, filename, path, err_flag) |
Load a Lagrange scalar field from a HDF5 restart file. | |
subroutine | afem_vec_save (self, source, filename, path, append) |
Save a Lagrange scalar field to a HDF5 restart file. | |
subroutine, public | bfem_delete (self) |
Destroy boundary FE object. | |
subroutine | bfem_global_linkage (self) |
Compute FE global context and stitching information. | |
subroutine | bfem_ncdofs (self, cell, dofs) |
Retrieve the indices of elements beloning to a given face. | |
subroutine | bfem_nfdofs_map (self) |
Construct face element mapping. | |
subroutine | bfem_setup (self, quad_order) |
Constructs a finite element representation on the associated surface mesh. | |
subroutine, public | fem_common_linkage (self, other, nee, kee, lee) |
Compute element to element linkage between two FE representations. | |
subroutine, public | fem_delete (self) |
Destroy FE object. | |
subroutine | fem_global_linkage (self) |
Compute FE global context and stitching information. | |
subroutine | fem_ncdofs (self, cell, dofs) |
Retrieve the indices of elements beloning to a given cell. | |
subroutine | fem_ncdofs_map (self) |
Construct cell element mapping. | |
subroutine | fem_setup (self, quad_order) |
Constructs a finite element representation on the associated volume mesh. | |
subroutine | ml_fe_vecspace_create (self, new, level, cache, native) |
Needs docs. | |
subroutine | ml_fe_vecspace_inject (self, afine, acors) |
Interpolate a coarse level Lagrange scalar field to the next finest level. | |
subroutine | ml_fe_vecspace_interp (self, acors, afine) |
Interpolate a coarse level Lagrange scalar field to the next finest level. | |
subroutine | ml_fem_delete (self) |
Destroy boundary multi-level FE object. | |
subroutine | ml_fem_set_level (self, level) |
Set the current level for a ML FE structure. | |
subroutine | ml_fem_vec_create (self, new, level, cache, native) |
Create weight vector for FE representation. | |
Variables | |
character(len=16), parameter, public | fem_idx_path ="OFT_idx_Version" |
HDF5 field name. | |
integer(i4), parameter, public | fem_idx_ver =1 |
File version for array indexing. | |
integer(i4), parameter, public | fem_max_levels =10 |
Maximum number of FE levels. | |
subroutine afem_delete | ( | class(oft_afem_type), intent(inout) | self | ) |
Needs docs.
|
private |
Supplement local graph with interactions from other processors.
Due to domain decomposition not all matrix elements for the local block may be present in the graph constructed from the local mesh. This subroutine expands the local matrix graph to include all entries in the local block (interaction between elements owned by the local processor)
[in] | row | FE representation for row space |
[in] | col | FE representation for column space |
[in,out] | nee | Number of entries in graph |
[in,out] | kee | Row pointer into column list [selfne+1] |
[in,out] | lee | Column list [nee] |
|
private |
Create self-matrix for FE representation.
[out] | new | Matrix to create |
|
private |
Compute element to element linkage for a FE representation.
Creates a CSR graph representing the interaction between elements in a single finite element representation. This interaction comes from performing a volume integration of test functions against basis functions, which in Galerkin finite element are the same sets. As a result interactions are present for any two elements who share a common cell.
[in,out] | self | Finite element representation |
|
private |
Create weight vector for FE representation.
[out] | new | Vector to create |
[in] | cache | Allow caching (optional) |
[in] | native | Force native representation (optional) |
|
private |
Load a Lagrange scalar field from a HDF5 restart file.
[in,out] | source | Destination vector |
[in] | filename | Name of source file |
[in] | path | Field path in file |
[out] | err_flag | Error flag |
|
private |
Save a Lagrange scalar field to a HDF5 restart file.
[in,out] | source | Source field |
[in] | filename | Name of destination file |
[in] | path | Field label in file |
[in] | append | Append to file instead of creating? |
subroutine, public bfem_delete | ( | class(oft_bfem_type), intent(inout) | self | ) |
Destroy boundary FE object.
|
private |
Compute FE global context and stitching information.
This subroutine is the equilivalent of fem_global_linkage for triangular grids and fem_base::oft_bfem_type
[in,out] | self | Finite element representation |
|
private |
Retrieve the indices of elements beloning to a given face.
[in] | self | Finite element representation |
[in] | cell | Desired cell in mesh |
[in,out] | dofs | Indices of face elements [selfnfe] |
|
private |
Construct face element mapping.
Sets up the structure fmap, which defines the local type, index, and geometric linkage of DOFs on a face
[in,out] | self | Finite element representation |
|
private |
Constructs a finite element representation on the associated surface mesh.
This subroutine is the equilivalent of fem_setup for trangular grids and fem_base::oft_bfem_type. Generally this method is used to construct a finite element representation for the boundary mesh, however it may be used with arbitrary triangular grids
[in,out] | self | FE representation to construct |
[in] | quad_order | Desired quadrature order |
subroutine, public fem_common_linkage | ( | class(oft_afem_type), intent(in) | self, |
class(oft_afem_type), intent(in) | other, | ||
integer(i4), intent(out) | nee, | ||
integer(i4), dimension(:), intent(out), pointer | kee, | ||
integer(i4), dimension(:), intent(out), pointer | lee | ||
) |
Compute element to element linkage between two FE representations.
Creates a CSR graph representing the interaction between elements of two different finite element representations. This listed is constructed as in fem_self_linkage, however in this case self
is used as the test functions and other
is used as the basis set in the Galerkin intergral. These correspond to the row and columns of the CSR graph respectively
[in] | self | Finite element representation for test set (rows) |
[in] | other | Finite element representation for basis set (columns) |
[out] | nee | Number of entries in graph |
[out] | kee | Row pointer into column list [selfne+1] |
[out] | lee | Column list [nee] |
subroutine, public fem_delete | ( | class(oft_fem_type), intent(inout) | self | ) |
Destroy FE object.
|
private |
Compute FE global context and stitching information.
Sets up structures and information for distributed meshes. Primarily this supports the creation of vector and matrix objects for the full mesh during linear solves.
[in,out] | self | Finite element representation |
|
private |
Retrieve the indices of elements beloning to a given cell.
[in] | self | Finite element representation |
[in] | cell | Desired cell in mesh |
[in,out] | dofs | Indices of cell elements [selfnce] |
|
private |
Construct cell element mapping.
Sets up the structure cmap, which defines the local type, index, and geometric linkage of DOFs in a cell
[in,out] | self | Finite element representation |
|
private |
Constructs a finite element representation on the associated volume mesh.
Constructs a finite element representation from a specified geometric mapping, provided by gstruct, and the assigned mesh. The result is a fully defined finite element type which my be used to define weight vectors, matrix graphs, etc. required to employ the finite element method on the chosen tetrahedral grid.
[in,out] | self | FE representation to construct |
[in] | quad_order | Desired quadrature order |
|
private |
Needs docs.
|
private |
Interpolate a coarse level Lagrange scalar field to the next finest level.
[in,out] | afine | Fine vector from interpolation |
[in,out] | acors | Vector to interpolate |
|
private |
Interpolate a coarse level Lagrange scalar field to the next finest level.
[in,out] | acors | Vector to interpolate |
[in,out] | afine | Fine vector from interpolation |
|
private |
Destroy boundary multi-level FE object.
|
private |
Set the current level for a ML FE structure.
[in] | level | Desired level |
|
private |
Create weight vector for FE representation.
[out] | new | Vector to create |
[in] | level | FE level for init (optional) |
[in] | cache | Allow caching (optional) |
[in] | native | Force native representation (optional) |
character(len=16), parameter, public fem_idx_path ="OFT_idx_Version" |
HDF5 field name.
integer(i4), parameter, public fem_idx_ver =1 |
File version for array indexing.
integer(i4), parameter, public fem_max_levels =10 |
Maximum number of FE levels.