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

Detailed Description

Base Lagrange FE class and basis evaluation.

Authors
Chris Hansen
Date
August 2011

Data Types

type  oft_scalar_bfem
 Lagrange operator container. More...
 
type  oft_scalar_fem
 Lagrange operator container. More...
 

Functions/Subroutines

logical function oft_2d_lagrange_cast (self, source)
 Cast abstract FE type to 2D lagrange finite element type.
 
logical function oft_3d_lagrange_cast (self, source)
 Cast abstract FE type to 3D lagrange finite element type.
 
subroutine oft_blag_d2eval (self, cell, dof, f, val, g2op)
 Evaluate lagrange gradient function.
 
subroutine oft_blag_eval (self, face, dof, f, val)
 Evaluate lagrange interpolation function.
 
subroutine oft_blag_geval (self, face, dof, f, val, gop)
 Evaluate lagrange gradient function.
 
subroutine oft_blag_npos (self, cell, dof, f)
 Retrieve lagrange node locations in logical coordinates.
 
subroutine oft_lag_boundary (lag_rep)
 Compute surface normals for use in boundary conditions.
 
subroutine oft_lag_d2eval (self, cell, dof, f, val, g2op)
 Evaluate lagrange gradient function.
 
subroutine oft_lag_eval (self, cell, dof, f, val)
 Evaluate lagrange interpolation function.
 
subroutine oft_lag_eval_all (self, cell, f, rop)
 Evaluate all lagrange interpolation functions.
 
subroutine oft_lag_geval (self, cell, dof, f, val, gop)
 Evaluate lagrange gradient function.
 
subroutine oft_lag_geval_all (self, cell, f, rop, gop)
 Evaluate all lagrange interpolation functions.
 
subroutine oft_lag_nodes (order, ed_nodes, fc_nodes, c_nodes)
 Retrieve all lagrange node locations in logical coordinates.
 
subroutine oft_lag_npos (self, cell, dof, f)
 Retrieve lagrange node locations in logical coordinates.
 
subroutine oft_lag_setup (mg_mesh, order, ml_lag_obj, ml_blag_obj, ml_vlag_obj, minlev)
 Construct lagrange scalar FE on each mesh level.
 
subroutine oft_lag_setup_bmesh (self, tmesh, order)
 Construct lagrange scalar FE for a given order.
 
subroutine oft_lag_setup_vol (self, tmesh, order)
 Construct lagrange scalar FE for a given order.
 
subroutine scalar_bfem_delete (self)
 Destroy boundary FE object.
 
subroutine scalar_fem_delete (self)
 Destroy FE object.
 

Variables

integer(i4), parameter oft_lagrange_id = 1
 FE type ID.
 

Function/Subroutine Documentation

◆ oft_2d_lagrange_cast()

logical function oft_2d_lagrange_cast ( class(oft_scalar_bfem), intent(out), pointer  self,
class(oft_afem_type), intent(in), target  source 
)

Cast abstract FE type to 2D lagrange finite element type.

The source matrix must be oft_scalar_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_lagrange_cast()

logical function oft_3d_lagrange_cast ( class(oft_scalar_fem), intent(out), pointer  self,
class(oft_afem_type), intent(in), target  source 
)

Cast abstract FE type to 3D lagrange finite element type.

The source matrix must be oft_scalar_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_blag_d2eval()

subroutine oft_blag_d2eval ( class(oft_scalar_bfem), 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,6), intent(in), optional  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]valSecond derivatives of function [6]
[in]g2opGrid Hessian [6,6]

◆ oft_blag_eval()

subroutine oft_blag_eval ( class(oft_scalar_bfem), 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 lagrange interpolation function.

Note
Evaluation is performed in logical coordinates
Parameters
[in]selfLagrange type for evaluation
[in]faceCell for evaluation
[in]dofElement to evaluate
[in]fPosition in cell in logical space
[out]valValue of interpolation function (dof) at point (f)

◆ oft_blag_geval()

subroutine oft_blag_geval ( class(oft_scalar_bfem), 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(3,3), intent(in), optional  gop 
)

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]faceCell 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_blag_npos()

subroutine oft_blag_npos ( class(oft_scalar_bfem), intent(in)  self,
integer(i4), intent(in)  cell,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(out)  f 
)

Retrieve lagrange node locations in logical coordinates.

Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]dofElement to locate
[out]fPosition of node in logical space

◆ oft_lag_boundary()

subroutine oft_lag_boundary ( class(oft_scalar_fem), intent(inout)  lag_rep)

Compute surface normals for use in boundary conditions.

◆ oft_lag_d2eval()

subroutine oft_lag_d2eval ( class(oft_scalar_fem), 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), optional  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]valSecond derivatives of function [6]
[in]g2opGrid Hessian [6,6]

◆ oft_lag_eval()

subroutine oft_lag_eval ( class(oft_scalar_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 lagrange interpolation function.

Note
Evaluation is performed in logical coordinates
Parameters
[in]selfLagrange 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)

◆ oft_lag_eval_all()

subroutine oft_lag_eval_all ( class(oft_scalar_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_lag_geval()

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

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
[in]gopGradient of lagrange element (dof) at point (f) [3]
[out]valCell Jacobian matrix at point (f) [3,4]

◆ oft_lag_geval_all()

subroutine oft_lag_geval_all ( class(oft_scalar_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_lag_nodes()

subroutine oft_lag_nodes ( integer(i4), intent(in)  order,
real(r8), dimension(:,:), intent(out), pointer  ed_nodes,
real(r8), dimension(:,:), intent(out), pointer  fc_nodes,
real(r8), dimension(:,:), intent(out), pointer  c_nodes 
)

Retrieve all lagrange node locations in logical coordinates.

Parameters
[in]orderNeeds docs
[out]ed_nodesNeeds docs
[out]fc_nodesNeeds docs
[out]c_nodesNeeds docs

◆ oft_lag_npos()

subroutine oft_lag_npos ( class(oft_scalar_fem), intent(in)  self,
integer(i4), intent(in)  cell,
integer(i4), intent(in)  dof,
real(r8), dimension(:), intent(out)  f 
)

Retrieve lagrange node locations in logical coordinates.

Parameters
[in]selfLagrange type for evaluation
[in]cellCell for evaluation
[in]dofElement to locate
[out]fPosition of node in logical space

◆ oft_lag_setup()

subroutine oft_lag_setup ( type(multigrid_mesh), intent(inout), target  mg_mesh,
integer(i4), intent(in)  order,
type(oft_ml_fem_type), intent(inout), optional, target  ml_lag_obj,
type(oft_ml_fem_type), intent(inout), optional  ml_blag_obj,
type(oft_ml_fem_comp_type), intent(inout), optional  ml_vlag_obj,
integer(i4), intent(in), optional  minlev 
)

Construct lagrange scalar FE on each mesh level.

Note
Highest supported representation is quartic
Parameters
[in]orderOrder of representation desired
[in]minlevLowest level to construct

◆ oft_lag_setup_bmesh()

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

Construct lagrange scalar FE for a given order.

Note
Highest supported representation is quartic
Parameters
[out]selfNeeds docs
[in]tmeshNeeds docs
[in]orderOrder of representation desired

◆ oft_lag_setup_vol()

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

Construct lagrange scalar FE for a given order.

Note
Highest supported representation is quartic
Parameters
[out]selfNeeds docs
[in]tmeshNeeds docs
[in]orderOrder of representation desired

◆ scalar_bfem_delete()

subroutine scalar_bfem_delete ( class(oft_scalar_bfem), intent(inout)  self)

Destroy boundary FE object.

◆ scalar_fem_delete()

subroutine scalar_fem_delete ( class(oft_scalar_fem), intent(inout)  self)

Destroy FE object.

Variable Documentation

◆ oft_lagrange_id

integer(i4), parameter oft_lagrange_id = 1

FE type ID.