The Open FUSION Toolkit 1.0.0-8905cc5
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 H(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...
 

Functions/Subroutines

subroutine hcurl_2d_grid (order, inds)
 Need docs.
 
subroutine hcurl_3d_grid (order, inds)
 Need docs.
 
logical function oft_2d_hcurl_cast (self, source)
 Cast abstract FE type to 2D H(Curl) finite element type.
 
logical function oft_3d_hcurl_cast (self, source)
 Cast abstract FE type to 3D H(Curl) finite element type.
 
subroutine oft_bhcurl_ceval (self, face, dof, f, val, gop)
 Evaluate H(Curl) curl function on the boundary.
 
subroutine oft_bhcurl_eval (self, face, dof, f, val, gop)
 Evaluate H(Curl) interpolation function on the boundary.
 
subroutine oft_hcurl_ceval (self, cell, dof, f, val, gop)
 Evaluate H(Curl) curl function in the interior.
 
subroutine oft_hcurl_ceval_all (self, cell, f, rop, cgop)
 Evaluate all lagrange interpolation functions.
 
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 H(Curl) interpolation function in the interior.
 
subroutine oft_hcurl_eval_all (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions.
 
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)
 Get cross-products of spatial jacobian vectors.
 
subroutine oft_hcurl_grad_setup (ml_hcurl_obj, ml_h1_obj, ml_hcurl_grad_obj, ml_h1grad_obj, minlev)
 Construct a vector FE space for H(Curl) and it's compliment ( \( \nabla H^1 \))
 
subroutine oft_hcurl_setup (mg_mesh, order, ml_hcurl_obj, ml_bhcurl_obj, minlev)
 Construct H(Curl) FE basis on each mesh level.
 
subroutine oft_hcurl_setup_surf (self, tmesh, order)
 Needs docs.
 
subroutine oft_hcurl_setup_vol (self, tmesh, order)
 Needs docs.
 

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/))
 
integer(i4), parameter oft_hcurl_id = 3
 FE type ID.
 

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

logical function oft_2d_hcurl_cast ( class(oft_hcurl_bfem), intent(out), pointer  self,
class(oft_afem_type), intent(in), target  source 
)

Cast abstract FE type to 2D H(Curl) finite element type.

The source matrix must be oft_hcurl_bfem or a child class, otherwise pointer will be returned as null and success == .FALSE.

Parameters
[out]selfReference to source object with desired class
[in]sourceSource object to reference
Returns
Cast success flag

◆ oft_3d_hcurl_cast()

logical function oft_3d_hcurl_cast ( class(oft_hcurl_fem), intent(out), pointer  self,
class(oft_afem_type), intent(in), target  source 
)

Cast abstract FE type to 3D H(Curl) finite element type.

The source matrix must be oft_hcurl_fem or a child class, otherwise pointer will be returned as null and success == .FALSE.

Parameters
[out]selfReference to source object with desired class
[in]sourceSource object to reference
Returns
Cast success flag

◆ 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 H(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]faceCell for evaluation
[in]dofElement to evaluate
[in]fPosition on face in logical space [4]
[out]valCurl of H(Curl) 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 H(Curl) interpolation function on the boundary.

Note
Evaluation is performed in logical coordinates with the resulting vector in physical coordinates
Parameters
[in]faceCell for evaluation
[in]dofElement to evaluate
[in]fPosition on face in logical space [4]
[in]gopValue of interpolation function (dof) at point (f) [3]
[out]valFace 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 H(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]cellCell for evaluation
[in]dofElement to evaluate
[in]fPosition in cell in logical space [4]
[out]valCurl of H(Curl) elements (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]cellCell for evaluation
[in]fPosition in cell in logical space
[out]ropValue of interpolation functions at point (f) [3,ncdofs]
[in]cgopCross-products of spatial jacobian vectors

◆ 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 H(Curl) interpolation function in the interior.

Note
Evaluation is performed in logical coordinates with the resulting vector in physical coordinates
Parameters
[in]cellCell for evaluation
[in]dofElement to evaluate
[in]fPosition in cell in logical space [4]
[in]gopValue of interpolation function (dof) at point (f) [3]
[out]valCell 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]cellCell for evaluation
[in]fPosition in cell in logical space
[in]gopValue of interpolation functions at point (f) [3,ncdofs]
[out]ropCell Jacobian matrix at point (f) [3,4]

◆ 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 
)

Get cross-products of spatial jacobian vectors.

◆ oft_hcurl_grad_setup()

subroutine oft_hcurl_grad_setup ( type(oft_ml_fem_type), intent(inout), target  ml_hcurl_obj,
type(oft_ml_fem_type), intent(inout)  ml_h1_obj,
type(oft_ml_fem_comp_type), intent(inout)  ml_hcurl_grad_obj,
type(oft_ml_fem_type), intent(inout), target  ml_h1grad_obj,
integer(i4), intent(in), optional  minlev 
)

Construct a vector FE space for H(Curl) and it's compliment ( \( \nabla H^1 \))

◆ oft_hcurl_setup()

subroutine oft_hcurl_setup ( type(multigrid_mesh), intent(inout), target  mg_mesh,
integer(i4), intent(in)  order,
type(oft_ml_fem_type), intent(inout), optional  ml_hcurl_obj,
type(oft_ml_fem_type), intent(inout), optional  ml_bhcurl_obj,
integer(i4), intent(in), optional  minlev 
)

Construct H(Curl) FE basis on each mesh level.

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

◆ oft_hcurl_setup_surf()

subroutine oft_hcurl_setup_surf ( class(oft_afem_type), intent(out), pointer  self,
class(oft_bmesh), intent(in), target  tmesh,
integer(i4), intent(in)  order 
)

Needs docs.

Parameters
[out]selfNeeds docs
[in]tmeshNeeds docs
[in]orderOrder of representation desired

◆ oft_hcurl_setup_vol()

subroutine oft_hcurl_setup_vol ( class(oft_afem_type), intent(out), pointer  self,
class(oft_mesh), intent(in), target  tmesh,
integer(i4), intent(in)  order 
)

Needs docs.

Parameters
[out]selfNeeds docs
[in]tmeshNeeds docs
[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/))

◆ oft_hcurl_id

integer(i4), parameter oft_hcurl_id = 3

FE type ID.