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_hcurl_basis Module Reference

Detailed Description

Base Nedelec H1(Curl) FE class and basis evaluation.

Authors
Chris Hansen
Date
August 2011

Data Types

type  oft_hcurl_bfem
 Needs docs. More...
 
type  oft_hcurl_fem
 Needs docs. More...
 
type  oft_nedelec_ops
 Needs docs. More...
 

Functions/Subroutines

subroutine hcurl_2d_grid (order, inds)
 Need docs.
 
subroutine hcurl_3d_grid (order, inds)
 Need docs.
 
subroutine oft_bhcurl_ceval (self, face, dof, f, val, gop)
 Evaluate Nedelec H1(Curl) curl function on the boundary.
 
subroutine oft_bhcurl_eval (self, face, dof, f, val, gop)
 Evaluate Nedelec H1(Curl) interpolation function on the boundary.
 
subroutine oft_hcurl_ceval (self, cell, dof, f, val, gop)
 Evaluate Nedelec H1(Curl) curl function in the interior.
 
subroutine oft_hcurl_ceval_all (self, cell, f, rop, cgop)
 Evaluate all lagrange interpolation functions.
 
subroutine oft_hcurl_ceval_all2 (self, cell, f, rop, cgop)
 Evaluate all lagrange interpolation functions (quadratic)
 
subroutine oft_hcurl_ceval_all3 (self, cell, f, rop, cgop)
 Evaluate all lagrange interpolation functions (cubic)
 
subroutine oft_hcurl_ceval_all4 (self, cell, f, rop, cgop)
 Evaluate all lagrange interpolation functions (quartic)
 
subroutine oft_hcurl_cevalc (order, dof, f, grads, val)
 Evaluate cell based curl functions.
 
subroutine oft_hcurl_cevale (order, ed, dof, f, grads, val)
 Evaluate edge based curl functions.
 
subroutine oft_hcurl_cevalf (order, fc, dof, f, grads, val)
 Evaluate face based curl functions.
 
subroutine oft_hcurl_eval (self, cell, dof, f, val, gop)
 Evaluate Nedelec H1(Curl) interpolation function in the interior.
 
subroutine oft_hcurl_eval_all (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions.
 
subroutine oft_hcurl_eval_all2 (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions (quadratic)
 
subroutine oft_hcurl_eval_all3 (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions (cubic)
 
subroutine oft_hcurl_eval_all4 (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions (quartic)
 
subroutine oft_hcurl_evalc (order, dof, f, val)
 Evaluate cell based interpolation functions.
 
subroutine oft_hcurl_evale (order, ed, dof, f, val)
 Evaluate edge based interpolation functions.
 
subroutine oft_hcurl_evalf (order, fc, dof, f, val)
 Evaluate face based interpolation functions.
 
subroutine oft_hcurl_get_cgops (gop, cgop)
 Evaluate all lagrange interpolation functions.
 
subroutine oft_hcurl_set_level (level)
 Set the current level for Nedelec H1(Curl) FE.
 
subroutine oft_hcurl_setup (order, minlev)
 Construct Nedelec H1(Curl) FE on each mesh level.
 

Variables

integer(i4), dimension(4, 4), parameter cgop_map = RESHAPE((/0,-1,-2,-3,1,0,-4,-5,2,4,0,-6,3,5,6,0/), (/4,4/))
 
logical, private hex_mesh = .FALSE.
 
type(oft_ml_fem_type), target ml_oft_bhcurl
 ML container for all FE representations.
 
type(oft_ml_fem_type), target ml_oft_hcurl
 ML container for all FE representations.
 
type(oft_nedelec_ops), dimension(:), pointer ml_oft_hcurl_ops
 ML container for all operators.
 
type(oft_hcurl_bfem), pointer oft_bhcurl
 Active FE representation.
 
type(oft_hcurl_bfem), pointer oft_bhcurl_lin
 Highest linear element representation.
 
class(oft_hcurl_fem), pointer oft_hcurl
 Active FE representation.
 
integer(i4oft_hcurl_blevel = 0
 Highest level on base meshes.
 
integer(i4), parameter oft_hcurl_id = 3
 FE type ID.
 
integer(i4oft_hcurl_lev = 0
 Active FE level.
 
integer(i4oft_hcurl_level = 0
 Active FE level.
 
class(oft_hcurl_fem), pointer oft_hcurl_lin
 Highest linear element representation.
 
integer(i4oft_hcurl_lin_level = 0
 Highest linear element level.
 
integer(i4oft_hcurl_minlev = 0
 
integer(i4oft_hcurl_nlevels = 0
 Number of total levels.
 
type(oft_nedelec_ops), pointer oft_hcurl_ops
 Active operators.
 
type(oft_nedelec_ops), pointer oft_hcurl_ops_lin
 Highest linear element operators.
 

Function/Subroutine Documentation

◆ hcurl_2d_grid()

subroutine hcurl_2d_grid ( integer(i4), intent(in)  order,
integer(i4), dimension(:,:), intent(out), pointer  inds 
)

Need docs.

◆ hcurl_3d_grid()

subroutine hcurl_3d_grid ( integer(i4), intent(in)  order,
integer(i4), dimension(:,:), intent(out), pointer  inds 
)

Need docs.

◆ oft_bhcurl_ceval()

subroutine oft_bhcurl_ceval ( 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 H1(Curl) curl function on the boundary.

Note
Evaluation is performed in logical coordinates with the resulting vector in, and curl 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_bhcurl_eval()

subroutine oft_bhcurl_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), dimension(3), intent(out)  val,
real(r8), dimension(:,:), intent(in), optional  gop 
)

Evaluate Nedelec H1(Curl) 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) [3]
[in]gopFace Jacobian matrix at point (f) [3,3]

◆ oft_hcurl_ceval()

subroutine oft_hcurl_ceval ( class(oft_hcurl_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(3,4), intent(in)  gop 
)

Evaluate Nedelec H1(Curl) curl function in the interior.

Note
Evaluation is performed in logical coordinates with the resulting vector in, and curl 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 [4]
[out]valCurl of nedelec element (dof) at point (f) [3]
[in]gopCell Jacobian matrix at point (f) [3,4]

◆ oft_hcurl_ceval_all()

subroutine oft_hcurl_ceval_all ( class(oft_hcurl_fem), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(:,:), intent(out), contiguous  rop,
real(r8), dimension(3,6), intent(in)  cgop 
)

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_hcurl_ceval_all2()

subroutine oft_hcurl_ceval_all2 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,14), intent(out)  rop,
real(r8), dimension(3,6), intent(in)  cgop 
)

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_hcurl_ceval_all3()

subroutine oft_hcurl_ceval_all3 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,29), intent(out)  rop,
real(r8), dimension(3,6), intent(in)  cgop 
)

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_hcurl_ceval_all4()

subroutine oft_hcurl_ceval_all4 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,53), intent(out)  rop,
real(r8), dimension(3,6), intent(in)  cgop 
)

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_hcurl_cevalc()

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

Evaluate cell based curl functions.

◆ oft_hcurl_cevale()

subroutine oft_hcurl_cevale ( 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), dimension(3,4), intent(in)  grads,
real(r8), dimension(3), intent(out)  val 
)

Evaluate edge based curl functions.

◆ oft_hcurl_cevalf()

subroutine oft_hcurl_cevalf ( 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(3,4), intent(in)  grads,
real(r8), dimension(3), intent(out)  val 
)

Evaluate face based curl functions.

◆ oft_hcurl_eval()

subroutine oft_hcurl_eval ( class(oft_hcurl_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 H1(Curl) interpolation function in the interior.

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

◆ oft_hcurl_eval_all()

subroutine oft_hcurl_eval_all ( class(oft_hcurl_fem), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(:,:), intent(out), contiguous  rop,
real(r8), dimension(3,4), 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_hcurl_eval_all2()

subroutine oft_hcurl_eval_all2 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,14), 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_hcurl_eval_all3()

subroutine oft_hcurl_eval_all3 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,29), 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_hcurl_eval_all4()

subroutine oft_hcurl_eval_all4 ( class(oft_fem_type), intent(in)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(4), intent(in)  f,
real(r8), dimension(3,53), 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_hcurl_evalc()

subroutine oft_hcurl_evalc ( 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 interpolation functions.

◆ oft_hcurl_evale()

subroutine oft_hcurl_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), dimension(4), intent(out)  val 
)

Evaluate edge based interpolation functions.

◆ oft_hcurl_evalf()

subroutine oft_hcurl_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), dimension(4), intent(out)  val 
)

Evaluate face based interpolation functions.

◆ oft_hcurl_get_cgops()

subroutine oft_hcurl_get_cgops ( real(r8), dimension(3,4), intent(in)  gop,
real(r8), dimension(3,6), intent(out)  cgop 
)

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_hcurl_set_level()

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

Set the current level for Nedelec H1(Curl) FE.

Parameters
[in]levelDesired level

◆ oft_hcurl_setup()

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

Construct Nedelec H1(Curl) FE on each mesh level.

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

Variable Documentation

◆ cgop_map

integer(i4), dimension(4,4), parameter cgop_map = RESHAPE((/0,-1,-2,-3,1,0,-4,-5,2,4,0,-6,3,5,6,0/), (/4,4/))

◆ hex_mesh

logical, private hex_mesh = .FALSE.
private

◆ ml_oft_bhcurl

type(oft_ml_fem_type), target ml_oft_bhcurl

ML container for all FE representations.

◆ ml_oft_hcurl

type(oft_ml_fem_type), target ml_oft_hcurl

ML container for all FE representations.

◆ ml_oft_hcurl_ops

type(oft_nedelec_ops), dimension(:), pointer ml_oft_hcurl_ops

ML container for all operators.

◆ oft_bhcurl

type(oft_hcurl_bfem), pointer oft_bhcurl

Active FE representation.

◆ oft_bhcurl_lin

type(oft_hcurl_bfem), pointer oft_bhcurl_lin

Highest linear element representation.

◆ oft_hcurl

class(oft_hcurl_fem), pointer oft_hcurl

Active FE representation.

◆ oft_hcurl_blevel

integer(i4) oft_hcurl_blevel = 0

Highest level on base meshes.

◆ oft_hcurl_id

integer(i4), parameter oft_hcurl_id = 3

FE type ID.

◆ oft_hcurl_lev

integer(i4) oft_hcurl_lev = 0

Active FE level.

◆ oft_hcurl_level

integer(i4) oft_hcurl_level = 0

Active FE level.

◆ oft_hcurl_lin

class(oft_hcurl_fem), pointer oft_hcurl_lin

Highest linear element representation.

◆ oft_hcurl_lin_level

integer(i4) oft_hcurl_lin_level = 0

Highest linear element level.

◆ oft_hcurl_minlev

integer(i4) oft_hcurl_minlev = 0

◆ oft_hcurl_nlevels

integer(i4) oft_hcurl_nlevels = 0

Number of total levels.

◆ oft_hcurl_ops

type(oft_nedelec_ops), pointer oft_hcurl_ops

Active operators.

◆ oft_hcurl_ops_lin

type(oft_nedelec_ops), pointer oft_hcurl_ops_lin

Highest linear element operators.