|
The Open FUSION Toolkit 1.0.0-beta5
Modeling tools for plasma and fusion research and engineering
|
Nedelec H0 FE operator definitions.
Data Types | |
| type | oft_h0_ginterp |
| Interpolate \( \nabla \) of a H0 field. More... | |
| type | oft_h0_rinterp |
| Interpolate a H0 field. More... | |
Functions/Subroutines | |
| subroutine | h0_base_pop (acors, afine) |
| Transfer a base level H0 scalar field to the next MPI level. | |
| subroutine | h0_base_push (afine, acors) |
| Transfer a MPI level H0 scalar field to the base level. | |
| subroutine | h0_getlop_pre (pre, mats, level, nlevels) |
| Compute eigenvalues and smoothing coefficients for the operator H0::LOP. | |
| subroutine | h0_ginterp_apply (self, cell, f, gop, val) |
| Reconstruct the gradient of a Nedelec H0 scalar field. | |
| subroutine | h0_ginterpmatrix (mat) |
| Construct interpolation matrix for transfer between geometric levels of H0 finite element space. | |
| subroutine | h0_inject (afine, acors) |
| Inject a fine level H0 scalar field to the next coarsest level. | |
| subroutine | h0_interp (acors, afine) |
| Interpolate a coarse level H0 scalar field to the next finest level. | |
| subroutine | h0_lop_eigs (minlev) |
| Compute eigenvalues and smoothing coefficients for the operator H0::LOP. | |
| subroutine | h0_mloptions |
| Read-in options for the basic Nedelec H0 ML preconditioners. | |
| subroutine | h0_pinterpmatrix (mat) |
| Construct interpolation matrix for transfer between polynomial levels of H0 finite element space. | |
| subroutine | h0_rinterp (self, cell, f, gop, val) |
| Reconstruct a Nedelec H0 scalar field. | |
| subroutine | h0_rinterp_delete (self) |
| Destroy temporary internal storage. | |
| subroutine | h0_rinterp_setup (self) |
| Setup interpolator for H0 scalar fields. | |
| subroutine | h0_setup_interp |
| Construct interpolation matrices for transfer between H0 finite element spaces. | |
| subroutine | h0_zerob (a) |
| Zero a Nedelec H0 scalar field at all boundary nodes. | |
| subroutine | h0_zerogrnd (a) |
| Zero a Nedelec H0 scalar field at the global grounding node. | |
| subroutine | h0_zeroi (a) |
| Zero a Nedelec H0 scalar field at all interior nodes. | |
| subroutine | oft_h0_getlop (mat, bc) |
| Construct laplacian matrix for H0 scalar representation. | |
| subroutine | oft_h0_getmop (mat, bc) |
| Construct mass matrix for H0 scalar representation. | |
| subroutine | oft_h0_project (field, x) |
| Project a scalar field onto a H0 basis. | |
Variables | |
| real(r8), dimension(fem_max_levels) | df_lop =-1.d99 |
| integer(i4), dimension(fem_max_levels) | nu_lop =0 |
| real(r8), dimension(:,:), pointer | oft_h0_gop => NULL() |
| real(r8), dimension(:), pointer | oft_h0_rop => NULL() |
| subroutine h0_base_pop | ( | class(oft_vector), intent(inout) | acors, |
| class(oft_vector), intent(inout) | afine | ||
| ) |
Transfer a base level H0 scalar field to the next MPI level.
| [in] | acors | Vector to transfer |
| [in,out] | afine | Fine vector from transfer |
| subroutine h0_base_push | ( | class(oft_vector), intent(inout) | afine, |
| class(oft_vector), intent(inout) | acors | ||
| ) |
Transfer a MPI level H0 scalar field to the base level.
| [in] | afine | Vector to transfer |
| [in,out] | acors | Fine vector from transfer |
| subroutine h0_getlop_pre | ( | class(oft_solver), intent(out), pointer | pre, |
| type(oft_matrix_ptr), dimension(:), intent(inout), pointer | mats, | ||
| integer(i4), intent(in), optional | level, | ||
| integer(i4), intent(in), optional | nlevels | ||
| ) |
Compute eigenvalues and smoothing coefficients for the operator H0::LOP.
| subroutine h0_ginterp_apply | ( | class(oft_h0_ginterp), 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 gradient of a Nedelec H0 scalar field.
| [in] | cell | Cell for interpolation |
| [in] | f | Possition in cell in logical coord [4] |
| [in] | gop | Logical gradient vectors at f [3,4] |
| [out] | val | Reconstructed gradient at f [3] |
| subroutine h0_ginterpmatrix | ( | class(oft_matrix), intent(inout), pointer | mat | ) |
Construct interpolation matrix for transfer between geometric levels of H0 finite element space.
| subroutine h0_inject | ( | class(oft_vector), intent(inout) | afine, |
| class(oft_vector), intent(inout) | acors | ||
| ) |
Inject a fine level H0 scalar field to the next coarsest level.
| [in] | afine | Vector to inject |
| [in,out] | acors | Coarse vector from injection |
| subroutine h0_interp | ( | class(oft_vector), intent(inout) | acors, |
| class(oft_vector), intent(inout) | afine | ||
| ) |
Interpolate a coarse level H0 scalar field to the next finest level.
| [in] | acors | Vector to interpolate |
| [in,out] | afine | Fine vector from interpolation |
| subroutine h0_lop_eigs | ( | integer(i4), intent(in) | minlev | ) |
Compute eigenvalues and smoothing coefficients for the operator H0::LOP.
| subroutine h0_mloptions |
Read-in options for the basic Nedelec H0 ML preconditioners.
| subroutine h0_pinterpmatrix | ( | class(oft_matrix), intent(inout), pointer | mat | ) |
Construct interpolation matrix for transfer between polynomial levels of H0 finite element space.
| subroutine h0_rinterp | ( | class(oft_h0_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 Nedelec H0 scalar field.
| [in] | cell | Cell for interpolation |
| [in] | f | Possition in cell in logical coord [4] |
| [in] | gop | Logical gradient vectors at f [3,4] |
| [out] | val | Reconstructed field at f [1] |
| subroutine h0_rinterp_delete | ( | class(oft_h0_rinterp), intent(inout) | self | ) |
Destroy temporary internal storage.
| subroutine h0_rinterp_setup | ( | class(oft_h0_rinterp), intent(inout) | self | ) |
Setup interpolator for H0 scalar fields.
Fetches local representation used for interpolation from vector object
| subroutine h0_setup_interp |
Construct interpolation matrices for transfer between H0 finite element spaces.
| subroutine h0_zerob | ( | class(oft_vector), intent(inout) | a | ) |
Zero a Nedelec H0 scalar field at all boundary nodes.
| [in,out] | a | Field to be zeroed |
| subroutine h0_zerogrnd | ( | class(oft_vector), intent(inout) | a | ) |
Zero a Nedelec H0 scalar field at the global grounding node.
| [in,out] | a | Field to be zeroed |
| subroutine h0_zeroi | ( | class(oft_vector), intent(inout) | a | ) |
Zero a Nedelec H0 scalar field at all interior nodes.
| [in,out] | a | Field to be zeroed |
| subroutine oft_h0_getlop | ( | class(oft_matrix), intent(inout), pointer | mat, |
| character(len=*), intent(in) | bc | ||
| ) |
Construct laplacian matrix for H0 scalar representation.
Supported boundary conditions
'none' Full matrix'zerob' Dirichlet for all boundary DOF'grnd' Dirichlet for only groundin point| [in,out] | mat | Matrix object |
| [in] | bc | Boundary condition |
| subroutine oft_h0_getmop | ( | class(oft_matrix), intent(inout), pointer | mat, |
| character(len=*), intent(in) | bc | ||
| ) |
Construct mass matrix for H0 scalar representation.
Supported boundary conditions
'none' Full matrix'zerob' Dirichlet for all boundary DOF| [in,out] | mat | Matrix object |
| [in] | bc | Boundary condition |
| subroutine oft_h0_project | ( | class(fem_interp), intent(inout) | field, |
| class(oft_vector), intent(inout) | x | ||
| ) |
Project a scalar field onto a H0 basis.
| [in,out] | field | Vector field for projection |
| [in,out] | x | Field projected onto H0 basis |
| real(r8), dimension(fem_max_levels) df_lop =-1.d99 |
| integer(i4), dimension(fem_max_levels) nu_lop =0 |
| real(r8), dimension(:,:), pointer oft_h0_gop => NULL() |
| real(r8), dimension(:), pointer oft_h0_rop => NULL() |