The Open FUSION Toolkit 1.0.0-beta6
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
oft_hcurl_basis Module Reference

Detailed Description

Base H(Curl) FE class and basis evaluation.

  • FE Construction
  • Basis evaluation
    • Interpolation
    • Curl
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.