The Open FUSION Toolkit 1.0.0-beta6
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
lagrange_operators.F90 File Reference
#include "local.h"

Data Types

type  oft_lag_ginterp
 Interpolate \( \nabla \) of a Lagrange field. More...
type  oft_lag_rinterp
 Interpolate a Lagrange field. More...
type  oft_lag_vcinterp
 Interpolate \( \nabla \times \) of a Lagrange vector field. More...
type  oft_lag_vdinterp
 Interpolate \( \nabla \) of a Lagrange vector field. More...
type  oft_lag_vrinterp
 Interpolate a Lagrange vector field. More...
type  oft_lag_zerob
 Zero Lagrange FE vector at all global boundary nodes. More...
type  oft_lag_zerogrnd
 Zero Lagrange FE vector at all global grounding node(s). More...
type  oft_vlag_zerob
 Zero all components of vector Lagrange FE vector at all global boundary nodes. More...
type  oft_vlag_zeron
 Zero normal component of vector Lagrange FE vector at all global boundary nodes. More...
type  oft_vlag_zerot
 Zero tangential component of vector Lagrange FE vector at all global boundary nodes. More...

Modules

module  oft_lag_operators
 Lagrange FE operator definitions.

Functions/Subroutines

subroutine lag_base_pop (self, acors, afine)
 Transfer a base level Lagrange scalar field to the next MPI level.
subroutine lag_base_push (self, afine, acors)
 Transfer a MPI level Lagrange scalar field to the base level.
subroutine lag_div (fe_rep, a, reg)
 Compute the divergence of a Lagrange vector field.
subroutine lag_getlop_pre (ml_lag_rep, pre, mats, level, nlevels)
 Construct default MG preconditioner for LAG::LOP.
subroutine lag_ginterp_apply (self, cell, f, gop, val)
 Reconstruct the gradient of a Lagrange scalar field.
subroutine lag_ginterpmatrix (mat)
 Construct interpolation matrix for polynomial levels.
subroutine lag_lop_eigs (ml_lag_rep, minlev)
 Compute eigenvalues and smoothing coefficients for the operator LAG::LOP.
subroutine lag_mloptions ()
 Read-in options for the basic Lagrange ML preconditioners.
subroutine lag_pinterpmatrix (mat)
 Construct interpolation matrix for polynomial levels.
subroutine lag_rinterp (self, cell, f, gop, val)
 Reconstruct a Lagrange scalar field.
subroutine lag_rinterp_delete (self)
 Destroy temporary internal storage and nullify references.
subroutine lag_rinterp_setup (self, lag_rep)
 Setup interpolator for Lagrange scalar fields.
subroutine lag_setup_interp (ml_lag_rep, ml_vlag_rep)
 Construct interpolation matrices on each MG level.
subroutine lag_vbc_diag (lag_rep, j_lag, bc_type, nn)
 Get diagonal entries for a given boundary condition and desired node in a Lagrange vector field.
subroutine lag_vbc_tensor (lag_rep, j_lag, bc_type, nn)
 Get boundary condition tensor for desired node in a Lagrange vector field.
subroutine lag_vcinterp (self, cell, f, gop, val)
 Reconstruct the curl of a Lagrange vector field.
subroutine lag_vdinterp (self, cell, f, gop, val)
 Reconstruct \( \nabla v \) for a Lagrange vector field.
subroutine lag_vrinterp (self, cell, f, gop, val)
 Reconstruct a Lagrange vector field.
subroutine lag_vrinterp_delete (self)
 Destroy temporary internal storage and nullify references.
subroutine lag_vrinterp_setup (self, lag_rep)
 Setup interpolator for Lagrange vector fields.
subroutine oft_lag_getlop (fe_rep, mat, bc)
 Construct laplacian matrix for Lagrange scalar representation.
subroutine oft_lag_getmop (fe_rep, mat, bc)
 Construct mass matrix for Lagrange scalar representation.
subroutine oft_lag_getpdop (fe_rep, mat, field, bc, perp, be_flag)
 Construct parallel diffusion matrix for Lagrange scalar representation.
subroutine oft_lag_project (fe_rep, field, x)
 Project a scalar field onto a lagrange basis.
subroutine oft_lag_project_div (fe_rep, field, x)
 Project the divergence of a scalar field onto a lagrange basis.
subroutine oft_lag_vgetmop (vlag_rep, mat, bc)
 Construct mass matrix for Lagrange vector representation.
subroutine oft_lag_vproject (fe_rep, field, x)
 Project a vector field onto a lagrange basis.
subroutine vzerob_apply (self, a)
 Zero a surface Lagrange vector field at all edge nodes.
subroutine vzerob_delete (self)
 Destroy temporary internal storage and nullify references.
subroutine vzeron_apply (self, a)
 Zero normal component of a Lagrange vector field at boundary nodes.
subroutine vzerot_apply (self, a)
 Zero tangential component of a Lagrange vector field at boundary nodes.
subroutine zerob_apply (self, a)
 Zero a Lagrange scalar field at all boundary nodes.
subroutine zerob_delete (self)
 Destroy temporary internal storage and nullify references.
subroutine zerogrnd_apply (self, a)
 Zero a Lagrange scalar field at the global grounding node.

Variables

real(r8), dimension(fem_max_levels) df_lop =-1.d99
real(r8), dimension(fem_max_levels), private df_pdop =-1.d99
integer(i4), dimension(fem_max_levels) nu_lop =0
integer(i4), dimension(fem_max_levels), private nu_pdop =0
real(r8), dimension(:,:), pointer oft_lag_gop => NULL()
real(r8), dimension(:), pointer oft_lag_rop => NULL()

Function/Subroutine Documentation

◆ lag_ginterpmatrix()

subroutine lag_ginterpmatrix ( class(oft_matrix), intent(inout), pointer mat)
private

Construct interpolation matrix for polynomial levels.

Parameters
[in,out]matNeeds docs

◆ lag_pinterpmatrix()

subroutine lag_pinterpmatrix ( class(oft_matrix), intent(inout), pointer mat)
private

Construct interpolation matrix for polynomial levels.

Parameters
[in,out]matNeeds docs