The Open FUSION Toolkit 1.0.0-beta5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines | Variables
oft_h0_basis Module Reference

Detailed Description

Base Nedelec H0 FE class and basis evaluation.

Authors
Chris Hansen
Date
August 2011

Data Types

type  h0_ops
 Needs docs. More...
 
type  oft_h0_bfem
 Needs docs. More...
 
type  oft_h0_fem
 Needs docs. More...
 

Functions/Subroutines

subroutine oft_bh0_eval (self, face, dof, f, val)
 Evaluate Nedelec H0 interpolation function on the boundary.
 
subroutine oft_bh0_geval (self, face, dof, f, val, gop)
 Evaluate Nedelec H0 gradient function on the boundary.
 
subroutine oft_h0_d2eval (self, cell, dof, f, val, g2op)
 Evaluate lagrange gradient function.
 
subroutine oft_h0_d2evalc (order, dof, f, val)
 Evaluate cell based gradient functions.
 
subroutine oft_h0_d2evale (order, ed, el, dof, f, val)
 Evaluate edge based gradient functions.
 
subroutine oft_h0_d2evalf (order, fc, el, dof, f, val)
 Evaluate cell based gradient functions.
 
subroutine oft_h0_eval (self, cell, dof, f, val)
 Evaluate Nedelec H0 interpolation function.
 
subroutine oft_h0_eval_all (self, cell, f, rop)
 Evaluate all lagrange interpolation functions.
 
subroutine oft_h0_eval_all2 (self, cell, f, rop)
 Evaluate all lagrange interpolation functions (quadratic)
 
subroutine oft_h0_eval_all3 (self, cell, f, rop)
 Evaluate all lagrange interpolation functions (cubic)
 
subroutine oft_h0_eval_all4 (self, cell, f, rop)
 Evaluate all lagrange interpolation functions (quartic)
 
subroutine oft_h0_eval_all5 (self, cell, f, rop)
 Evaluate all lagrange interpolation functions (quartic)
 
subroutine oft_h0_evalc (order, dof, f, val)
 Evaluate cell based interpolation functions.
 
subroutine oft_h0_evale (order, ed, dof, f, val)
 Evaluate edge based interpolation functions.
 
subroutine oft_h0_evalf (order, fc, dof, f, val)
 Evaluate face based interpolation functions.
 
subroutine oft_h0_evalp (order, pt, f, val)
 Evaluate point based interpolation functions.
 
subroutine oft_h0_geval (self, cell, dof, f, val, gop)
 Evaluate Nedelec H0 gradient function.
 
subroutine oft_h0_geval_all (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions.
 
subroutine oft_h0_geval_all2 (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions (quadratic)
 
subroutine oft_h0_geval_all3 (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions (cubic)
 
subroutine oft_h0_geval_all4 (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions (quartic)
 
subroutine oft_h0_geval_all5 (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions (quartic)
 
subroutine oft_h0_gevalc (order, dof, f, val)
 Evaluate cell based curl functions.
 
subroutine oft_h0_gevale (order, ed, dof, f, val)
 Evaluate edge based curl functions.
 
subroutine oft_h0_gevalf (order, fc, dof, f, val)
 Evaluate face based curl functions.
 
subroutine oft_h0_gevalp (order, pt, f, val)
 Evaluate point based gradient functions.
 
subroutine oft_h0_set_level (level)
 Set the current level for Nedelec H0 finite elements.
 
subroutine oft_h0_setup (order, minlev)
 Construct Nedelec H0 scalar FE on each mesh level.
 

Variables

logical, private hex_mesh = .FALSE.
 
type(oft_ml_fem_type), target ml_oft_bh0
 ML container for all FE representations.
 
type(oft_ml_fem_type), target ml_oft_h0
 ML container for all FE representations.
 
type(h0_ops), dimension(:), pointer ml_oft_h0_ops
 ML container for all operators.
 
type(oft_h0_bfem), pointer oft_bh0
 Active FE representation.
 
type(oft_h0_bfem), pointer oft_bh0_lin
 Highest linear element representation.
 
class(oft_h0_fem), pointer oft_h0
 Active FE representation.
 
integer(i4oft_h0_blevel =0
 Highest level on base meshes.
 
integer(i4), parameter oft_h0_id = 2
 FE type ID.
 
integer(i4oft_h0_lev = 0
 Active FE level.
 
integer(i4oft_h0_level = 0
 Active FE level.
 
class(oft_h0_fem), pointer oft_h0_lin
 Highest linear element representation.
 
integer(i4oft_h0_lin_level = 0
 Highest linear element level.
 
integer(i4oft_h0_minlev = 0
 Lowest level for multilevel runs.
 
integer(i4oft_h0_nlevels = 0
 Number of total levels.
 
type(h0_ops), pointer oft_h0_ops
 Active operators.
 
type(h0_ops), pointer oft_h0_ops_lin
 Highest linear element operators.
 

Function/Subroutine Documentation

◆ oft_bh0_eval()

subroutine oft_bh0_eval ( class(oft_bfem_type), intent(in)  self,
integer(i4), intent(in)  face,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), intent(out)  val 
)

Evaluate Nedelec H0 interpolation function on the boundary.

Note
Evaluation is performed in logical coordinates with the resulting vector in physical coordinates.
Parameters
[in]selfNedelec type for evaluation (bfem)
[in]faceFace for evaluation
[in]dofElement to evaluate
[in]fPosition on face in logical space [4]
[out]valValue of interpolation function (dof) at point (f)
[in]gopFace Jacobian matrix at point (f) [3,3]

◆ oft_bh0_geval()

subroutine oft_bh0_geval ( class(oft_bfem_type), intent(in)  self,
integer(i4), intent(in)  face,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(3), intent(out)  val,
real(r8), dimension(:,:), intent(in), optional  gop 
)

Evaluate Nedelec H0 gradient function on the boundary.

Note
Evaluation is performed in logical coordinates with the resulting vector in, and gradient with respect to, physical coordinates.
Parameters
[in]selfNedelec type for evaluation (bfem)
[in]faceFace for evaluation
[in]dofElement to evaluate
[in]fPosition on face in logical space [4]
[out]valCurl of nedelec element (dof) at point (f) [3]
[in]gopFace Jacobian matrix at point (f) [3,3]

◆ oft_h0_d2eval()

subroutine oft_h0_d2eval ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(6), intent(out)  val,
real(r8), dimension(6,10), intent(in)  g2op 
)

Evaluate lagrange gradient function.

Note
Evaluation is performed in logical coordinates with the resulting gradient with respect to physical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]dofElement to evaluate
[in]fPosition in cell in logical space
[out]valGradient of lagrange element (dof) at point (f) [3]
[in]gopCell Jacobian matrix at point (f) [3,4]

◆ oft_h0_d2evalc()

subroutine oft_h0_d2evalc ( integer(i4), intent(in)  order,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(10), intent(out)  val 
)

Evaluate cell based gradient functions.

◆ oft_h0_d2evale()

subroutine oft_h0_d2evale ( integer(i4), intent(in)  order,
integer(i4), dimension(2), intent(in)  ed,
integer(i4), intent(in)  el,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(10), intent(out)  val 
)

Evaluate edge based gradient functions.

◆ oft_h0_d2evalf()

subroutine oft_h0_d2evalf ( integer(i4), intent(in)  order,
integer(i4), dimension(3), intent(in)  fc,
integer(i4), intent(in)  el,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(10), intent(out)  val 
)

Evaluate cell based gradient functions.

◆ oft_h0_eval()

subroutine oft_h0_eval ( class(oft_h0_fem), intent(in)  self,
integer(i4), intent(in)  cell,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), intent(out)  val 
)

Evaluate Nedelec H0 interpolation function.

Note
Evaluation is performed in logical coordinates with the resulting vector in physical coordinates.
Parameters
[in]selfNedelec type for evaluation
[in]cellCell for evaluation
[in]dofElement to evaluate
[in]fPosition in cell in logical space
[out]valValue of interpolation function (dof) at point (f)
[in]gopCell Jacobian matrix at point (f) [3,4]

◆ oft_h0_eval_all()

subroutine oft_h0_eval_all ( class(oft_h0_fem), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(:), intent(out), contiguous  rop 
)

Evaluate all lagrange interpolation functions.

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_eval_all2()

subroutine oft_h0_eval_all2 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(10), intent(out)  rop 
)

Evaluate all lagrange interpolation functions (quadratic)

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_eval_all3()

subroutine oft_h0_eval_all3 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(20), intent(out)  rop 
)

Evaluate all lagrange interpolation functions (cubic)

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_eval_all4()

subroutine oft_h0_eval_all4 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(35), intent(out)  rop 
)

Evaluate all lagrange interpolation functions (quartic)

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_eval_all5()

subroutine oft_h0_eval_all5 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(56), intent(out)  rop 
)

Evaluate all lagrange interpolation functions (quartic)

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_evalc()

subroutine oft_h0_evalc ( integer(i4), intent(in)  order,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), intent(out)  val 
)

Evaluate cell based interpolation functions.

◆ oft_h0_evale()

subroutine oft_h0_evale ( integer(i4), intent(in)  order,
integer(i4), dimension(2), intent(in)  ed,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), intent(out)  val 
)

Evaluate edge based interpolation functions.

◆ oft_h0_evalf()

subroutine oft_h0_evalf ( integer(i4), intent(in)  order,
integer(i4), dimension(3), intent(in)  fc,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), intent(out)  val 
)

Evaluate face based interpolation functions.

◆ oft_h0_evalp()

subroutine oft_h0_evalp ( integer(i4), intent(in)  order,
integer(i4), intent(in)  pt,
real(r8), dimension(:), intent(in)  f,
real(r8), intent(out)  val 
)

Evaluate point based interpolation functions.

◆ oft_h0_geval()

subroutine oft_h0_geval ( class(oft_h0_fem), intent(in)  self,
integer(i4), intent(in)  cell,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(:), intent(out)  val,
real(r8), dimension(:,:), intent(in)  gop 
)

Evaluate Nedelec H0 gradient function.

Note
Evaluation is performed in logical coordinates with the resulting vector in, and gradient with respect to, physical coordinates.
Parameters
[in]selfNedelec type for evaluation
[in]cellCell for evaluation
[in]dofElement to evaluate
[in]fPosition in cell in logical space
[out]valCurl of nedelec element (dof) at point (f) [3]
[in]gopCell Jacobian matrix at point (f) [3,4]

◆ oft_h0_geval_all()

subroutine oft_h0_geval_all ( class(oft_h0_fem), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(:,:), intent(out), contiguous  rop,
real(r8), dimension(:,:), intent(in)  gop 
)

Evaluate all lagrange interpolation functions.

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [3,ncdofs]
[in]gopCell Jacobian matrix at point (f) [3,4]

◆ oft_h0_geval_all2()

subroutine oft_h0_geval_all2 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,10), intent(out)  rop,
real(r8), dimension(3,4), intent(in)  gop 
)

Evaluate all lagrange interpolation functions (quadratic)

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_geval_all3()

subroutine oft_h0_geval_all3 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,20), intent(out)  rop,
real(r8), dimension(3,4), intent(in)  gop 
)

Evaluate all lagrange interpolation functions (cubic)

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_geval_all4()

subroutine oft_h0_geval_all4 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,35), intent(out)  rop,
real(r8), dimension(3,4), intent(in)  gop 
)

Evaluate all lagrange interpolation functions (quartic)

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_geval_all5()

subroutine oft_h0_geval_all5 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,56), intent(out)  rop,
real(r8), dimension(3,4), intent(in)  gop 
)

Evaluate all lagrange interpolation functions (quartic)

Note
Evaluation is performed in logical coordinates.
Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [ncdofs]

◆ oft_h0_gevalc()

subroutine oft_h0_gevalc ( integer(i4), intent(in)  order,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(4), intent(out)  val 
)

Evaluate cell based curl functions.

◆ oft_h0_gevale()

subroutine oft_h0_gevale ( integer(i4), intent(in)  order,
integer(i4), dimension(2), intent(in)  ed,
integer(i4), intent(in)  dof,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(4), intent(out)  val 
)

Evaluate edge based curl functions.

◆ oft_h0_gevalf()

subroutine oft_h0_gevalf ( integer(i4), intent(in)  order,
integer(i4), dimension(3), intent(in)  fc,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(4), intent(out)  val 
)

Evaluate face based curl functions.

◆ oft_h0_gevalp()

subroutine oft_h0_gevalp ( integer(i4), intent(in)  order,
integer(i4), intent(in)  pt,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(4), intent(out)  val 
)

Evaluate point based gradient functions.

◆ oft_h0_set_level()

subroutine oft_h0_set_level ( integer(i4), intent(in)  level)

Set the current level for Nedelec H0 finite elements.

Parameters
[in]levelDesired level

◆ oft_h0_setup()

subroutine oft_h0_setup ( integer(i4), intent(in)  order,
integer(i4), intent(in), optional  minlev 
)

Construct Nedelec H0 scalar FE on each mesh level.

Note
Highest supported representation is Quartic.
Parameters
[in]orderOrder of representation desired

Variable Documentation

◆ hex_mesh

logical, private hex_mesh = .FALSE.
private

◆ ml_oft_bh0

type(oft_ml_fem_type), target ml_oft_bh0

ML container for all FE representations.

◆ ml_oft_h0

type(oft_ml_fem_type), target ml_oft_h0

ML container for all FE representations.

◆ ml_oft_h0_ops

type(h0_ops), dimension(:), pointer ml_oft_h0_ops

ML container for all operators.

◆ oft_bh0

type(oft_h0_bfem), pointer oft_bh0

Active FE representation.

◆ oft_bh0_lin

type(oft_h0_bfem), pointer oft_bh0_lin

Highest linear element representation.

◆ oft_h0

class(oft_h0_fem), pointer oft_h0

Active FE representation.

◆ oft_h0_blevel

integer(i4) oft_h0_blevel =0

Highest level on base meshes.

◆ oft_h0_id

integer(i4), parameter oft_h0_id = 2

FE type ID.

◆ oft_h0_lev

integer(i4) oft_h0_lev = 0

Active FE level.

◆ oft_h0_level

integer(i4) oft_h0_level = 0

Active FE level.

◆ oft_h0_lin

class(oft_h0_fem), pointer oft_h0_lin

Highest linear element representation.

◆ oft_h0_lin_level

integer(i4) oft_h0_lin_level = 0

Highest linear element level.

◆ oft_h0_minlev

integer(i4) oft_h0_minlev = 0

Lowest level for multilevel runs.

◆ oft_h0_nlevels

integer(i4) oft_h0_nlevels = 0

Number of total levels.

◆ oft_h0_ops

type(h0_ops), pointer oft_h0_ops

Active operators.

◆ oft_h0_ops_lin

type(h0_ops), pointer oft_h0_ops_lin

Highest linear element operators.