The Open FUSION Toolkit 1.0.0-beta5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
oft_h1_divout Type Referenceabstract

Detailed Description

Clean the divergence from a H1 vector field.

Divergence is removed by adding a gradient field, such that \( f = f + \nabla \phi \), where \( \nabla^2 \phi = - \nabla \cdot f \). Cleaning may also be applied to a field which is pre-multiplied by the H1::MOP in which case \( \nabla^2 \phi = - \nabla^T f \) and \( f = f + M \nabla \phi \). The mass matrix version is applied if mop is associated with the corresponding H1::MOP.

Inheritance diagram for oft_h1_divout:
Inheritance graph
[legend]

Public Member Functions

procedure apply (self, u)
 Clean divergence from field.
 
procedure(orthog_apply), deferred apply (self, u)
 Orthogonalize field.
 
procedure delete (self)
 Clean-up internal storage.
 
procedure(orthog_delete), deferred delete (self)
 Clean-up internal storage.
 
procedure setup (self, bc)
 Setup matrix and solver with default.
 

Public Attributes

integer(i4app_freq = 1
 Frequency to apply solver.
 
class(oft_vector), pointer bnorm => NULL()
 Normal field source on boundary.
 
integer(i4count = 0
 Number of times apply has been called.
 
logical keep_boundary = .FALSE.
 Flag for keeping boundary gradients.
 
class(oft_matrix), pointer mop => NULL()
 Mass matrix, applies divoutm if associated.
 
logical pm = .FALSE.
 Flag for solver convergence monitor.
 
class(oft_solver), pointer solver => NULL()
 Solver object for H0::LOP operator.
 

Static Public Attributes

procedure(oft_bc_proto), pointer, nopass bc => NULL()
 Boundary condition.
 

Member Function/Subroutine Documentation

◆ apply() [1/2]

procedure apply ( class(oft_h1_divout), intent(inout)  self,
class(oft_vector), intent(inout)  u 
)

Clean divergence from field.

Note
Should only be used via class oft_h1_divout
Parameters
[in,out]uField for divergence cleaning

◆ apply() [2/2]

procedure(orthog_apply), deferred apply ( class(oft_orthog), intent(inout)  self,
class(oft_vector), intent(inout)  u 
)
pure virtualinherited

Orthogonalize field.

◆ delete() [1/2]

procedure delete ( class(oft_h1_divout), intent(inout)  self)

Clean-up internal storage.

Note
Should only be used via class oft_h1_divout

◆ delete() [2/2]

procedure(orthog_delete), deferred delete ( class(oft_orthog), intent(inout)  self)
pure virtualinherited

Clean-up internal storage.

◆ setup()

procedure setup ( class(oft_h1_divout), intent(inout)  self,
character(len=*), intent(in)  bc 
)

Setup matrix and solver with default.

Note
Should only be used via class oft_h1_divout
Parameters
[in]bcBoundary condition

Member Data Documentation

◆ app_freq

integer(i4) app_freq = 1

Frequency to apply solver.

◆ bc

procedure(oft_bc_proto), pointer, nopass bc => NULL()
static

Boundary condition.

◆ bnorm

class(oft_vector), pointer bnorm => NULL()

Normal field source on boundary.

◆ count

integer(i4) count = 0

Number of times apply has been called.

◆ keep_boundary

logical keep_boundary = .FALSE.

Flag for keeping boundary gradients.

◆ mop

class(oft_matrix), pointer mop => NULL()

Mass matrix, applies divoutm if associated.

◆ pm

logical pm = .FALSE.

Flag for solver convergence monitor.

◆ solver

class(oft_solver), pointer solver => NULL()

Solver object for H0::LOP operator.


The documentation for this type was generated from the following file: