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

Detailed Description

Surface lagrange FE operator definitions.

Authors
Chris Hansen
Date
August 2011

Data Types

type  oft_blag_zerob
 Needs docs. More...
 
type  oft_blag_zeroe
 Needs docs. More...
 
type  oft_blag_zerogrnd
 Needs docs. More...
 
type  oft_lag_bg2interp
 Interpolate \( \frac{\partial }{\partial x_i \partial x_j} \) of a Lagrange field. More...
 
type  oft_lag_bginterp
 Interpolate \( \nabla \) of a Lagrange field. More...
 
type  oft_lag_brinterp
 Interpolate a surface Lagrange field. More...
 
type  oft_lag_bvrinterp
 Interpolate a boundary Lagrange vector field. More...
 

Functions/Subroutines

subroutine lag_bg2interp (self, cell, f, gop, val)
 Reconstruct the Hessian of a surface Lagrange scalar field.
 
subroutine lag_bginterp (self, cell, f, gop, val)
 Reconstruct the gradient of a surface Lagrange scalar field.
 
subroutine lag_brinterp (self, cell, f, gop, val)
 Reconstruct a surface Lagrange scalar field.
 
subroutine lag_brinterp_delete (self)
 Destroy temporary internal storage.
 
subroutine lag_brinterp_setup (self, lag_rep)
 Setup interpolator for boundary Lagrange scalar fields.
 
subroutine lag_brinterp_share (self, source_obj)
 Setup interpolator by linking to another interpolator of the same class.
 
subroutine lag_bvrinterp (self, cell, f, gop, val)
 Reconstruct a boundary Lagrange vector field.
 
subroutine lag_bvrinterp_delete (self)
 Destroy temporary internal storage.
 
subroutine lag_bvrinterp_setup (self, lag_rep)
 Setup interpolator for boundary Lagrange vector fields.
 
subroutine oft_blag_getlop (fe_rep, mat, bc, parent_geom_flag)
 Construct laplacian matrix for Lagrange scalar representation.
 
subroutine oft_blag_getmop (fe_rep, mat, bc)
 Construct mass matrix for a boundary Lagrange scalar representation.
 
subroutine oft_blag_nproject (fe_rep, vmesh, field, x)
 Project the normal component of a vector field onto a boundary Lagrange basis.
 
subroutine oft_blag_project (fe_rep, field, x)
 Project a scalar field onto a boundary Lagrange basis.
 
subroutine oft_blag_vproject (fe_rep, field, x, y, z)
 Project a vector field onto a boundary Lagrange basis.
 
subroutine zerob_apply (self, a)
 Zero a surface Lagrange scalar field at all boundary nodes.
 
subroutine zerob_delete (self)
 Zero a surface Lagrange scalar field at all boundary nodes.
 
subroutine zeroe_apply (self, a)
 Zero a surface Lagrange scalar field at all edge nodes.
 
subroutine zerogrnd_apply (self, a)
 Zero a surface Lagrange scalar field at the mesh "grounding" node.
 

Variables

real(r8), dimension(fem_max_levels) df_lop_surf =-1.d99
 
integer(i4), dimension(fem_max_levels) nu_lop_surf =0
 
real(r8), dimension(:,:), pointer oft_blag_gop => NULL()
 
real(r8), dimension(:), pointer oft_blag_rop => NULL()
 

Function/Subroutine Documentation

◆ lag_bg2interp()

subroutine lag_bg2interp ( class(oft_lag_bg2interp), intent(inout)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(3,3), intent(in)  gop,
real(r8), dimension(:), intent(out)  val 
)

Reconstruct the Hessian of a surface Lagrange scalar field.

Parameters
[in]cellCell for interpolation
[in]fPosition in cell in logical coord [3]
[in]gopLogical gradient vectors at f [3,3]
[out]valReconstructed field at f [6]

◆ lag_bginterp()

subroutine lag_bginterp ( class(oft_lag_bginterp), intent(inout)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(3,3), intent(in)  gop,
real(r8), dimension(:), intent(out)  val 
)

Reconstruct the gradient of a surface Lagrange scalar field.

Parameters
[in]cellCell for interpolation
[in]fPosition in cell in logical coord [3]
[in]gopLogical gradient vectors at f [3,3]
[out]valReconstructed field at f [3]

◆ lag_brinterp()

subroutine lag_brinterp ( class(oft_lag_brinterp), intent(inout)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(3,3), intent(in)  gop,
real(r8), dimension(:), intent(out)  val 
)

Reconstruct a surface Lagrange scalar field.

Parameters
[in]cellCell for interpolation
[in]fPosition in cell in logical coord [3]
[in]gopLogical gradient vectors at f [3,3]
[out]valReconstructed field at f [1]

◆ lag_brinterp_delete()

subroutine lag_brinterp_delete ( class(oft_lag_brinterp), intent(inout)  self)

Destroy temporary internal storage.

◆ lag_brinterp_setup()

subroutine lag_brinterp_setup ( class(oft_lag_brinterp), intent(inout)  self,
class(oft_afem_type), intent(inout), target  lag_rep 
)

Setup interpolator for boundary Lagrange scalar fields.

Fetches local representation used for interpolation from solution vector

◆ lag_brinterp_share()

subroutine lag_brinterp_share ( class(oft_lag_brinterp), intent(inout)  self,
class(oft_lag_brinterp), intent(in)  source_obj 
)

Setup interpolator by linking to another interpolator of the same class.

◆ lag_bvrinterp()

subroutine lag_bvrinterp ( class(oft_lag_bvrinterp), intent(inout)  self,
integer(i4), intent(in)  cell,
real(r8), dimension(:), intent(in)  f,
real(r8), dimension(3,3), intent(in)  gop,
real(r8), dimension(:), intent(out)  val 
)

Reconstruct a boundary Lagrange vector field.

Parameters
[in]cellCell for interpolation
[in]fPosition in cell in logical coord [3]
[in]gopLogical gradient vectors at f [3,3]
[out]valReconstructed field at f [3]

◆ lag_bvrinterp_delete()

subroutine lag_bvrinterp_delete ( class(oft_lag_bvrinterp), intent(inout)  self)

Destroy temporary internal storage.

◆ lag_bvrinterp_setup()

subroutine lag_bvrinterp_setup ( class(oft_lag_bvrinterp), intent(inout)  self,
class(oft_afem_type), intent(inout), target  lag_rep 
)

Setup interpolator for boundary Lagrange vector fields.

Fetches local representation used for interpolation from vector object

◆ oft_blag_getlop()

subroutine oft_blag_getlop ( class(oft_afem_type), intent(inout), target  fe_rep,
class(oft_matrix), intent(inout), pointer  mat,
character(len=*), intent(in)  bc,
integer(i4), dimension(:), intent(in), optional  parent_geom_flag 
)

Construct laplacian matrix for Lagrange scalar representation.

Supported boundary conditions

  • ‘'none’Full matrix -'zerob'Dirichlet for all boundary DOF -'grnd'` Dirichlet for only groundin point
    Parameters
    [in,out]matMatrix object
    [in]bcBoundary condition
    [in]parent_geom_flagParent FE geometry type flag

◆ oft_blag_getmop()

subroutine oft_blag_getmop ( class(oft_afem_type), intent(inout), target  fe_rep,
class(oft_matrix), intent(inout), pointer  mat,
character(len=*), intent(in)  bc 
)

Construct mass matrix for a boundary Lagrange scalar representation.

Supported boundary conditions

  • ‘'none’Full matrix -'zerob'` Dirichlet for all boundary DOF
    Parameters
    [in,out]matMatrix object
    [in]bcBoundary condition

◆ oft_blag_nproject()

subroutine oft_blag_nproject ( class(oft_afem_type), intent(inout), target  fe_rep,
class(oft_mesh), intent(inout), target  vmesh,
class(fem_interp), intent(inout)  field,
class(oft_vector), intent(inout)  x 
)

Project the normal component of a vector field onto a boundary Lagrange basis.

Note
This subroutine only performs the integration of the field with boundary test functions for a Lagrange basis.
Parameters
[in,out]fieldVector field for projection
[in,out]xField projected onto boundary Lagrange basis

◆ oft_blag_project()

subroutine oft_blag_project ( class(oft_afem_type), intent(inout), target  fe_rep,
class(bfem_interp), intent(inout)  field,
class(oft_vector), intent(inout)  x 
)

Project a scalar field onto a boundary Lagrange basis.

Note
This subroutine only performs the integration of the field with boundary test functions for a Lagrange basis.
Parameters
[in,out]fieldScalar field for projection
[in,out]xField projected onto boundary Lagrange basis

◆ oft_blag_vproject()

subroutine oft_blag_vproject ( class(oft_afem_type), intent(inout), target  fe_rep,
class(bfem_interp), intent(inout)  field,
class(oft_vector), intent(inout)  x,
class(oft_vector), intent(inout)  y,
class(oft_vector), intent(inout)  z 
)

Project a vector field onto a boundary Lagrange basis.

Note
This subroutine only performs the integration of the field with boundary test functions for a Lagrange basis.
Parameters
[in,out]fieldVector field for projection
[in,out]xField projected onto boundary Lagrange basis
[in,out]yField projected onto boundary Lagrange basis
[in,out]zField projected onto boundary Lagrange basis

◆ zerob_apply()

subroutine zerob_apply ( class(oft_blag_zerob), intent(inout)  self,
class(oft_vector), intent(inout)  a 
)

Zero a surface Lagrange scalar field at all boundary nodes.

Parameters
[in,out]aField to be zeroed

◆ zerob_delete()

subroutine zerob_delete ( class(oft_blag_zerob), intent(inout)  self)

Zero a surface Lagrange scalar field at all boundary nodes.

◆ zeroe_apply()

subroutine zeroe_apply ( class(oft_blag_zeroe), intent(inout)  self,
class(oft_vector), intent(inout)  a 
)

Zero a surface Lagrange scalar field at all edge nodes.

Parameters
[in,out]aField to be zeroed

◆ zerogrnd_apply()

subroutine zerogrnd_apply ( class(oft_blag_zerogrnd), intent(inout)  self,
class(oft_vector), intent(inout)  a 
)

Zero a surface Lagrange scalar field at the mesh "grounding" node.

Note
Presently the first boundary node is used as the "grounding" node
Parameters
[in,out]aField to be zeroed

Variable Documentation

◆ df_lop_surf

real(r8), dimension(fem_max_levels) df_lop_surf =-1.d99

◆ nu_lop_surf

integer(i4), dimension(fem_max_levels) nu_lop_surf =0

◆ oft_blag_gop

real(r8), dimension(:,:), pointer oft_blag_gop => NULL()

◆ oft_blag_rop

real(r8), dimension(:), pointer oft_blag_rop => NULL()