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

Detailed Description

Base Lagrange FE class and basis evaluation.

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