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_hcurl_divout Type Referenceabstract

Detailed Description

Clean the divergence from a H1(Curl) 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(Curl)::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(Curl)::MOP.

Note
This only removes the 0-th order component, which is sufficient for orthogonalization against the H1(Curl)::WOP null space. Higher order cleaning requires the full H1 vector space.
Inheritance diagram for oft_hcurl_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.
 
integer(i4count =0
 Number of times apply has been called.
 
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 LAG::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_hcurl_divout), intent(inout)  self,
class(oft_vector), intent(inout)  u 
)

Clean divergence from field.

Note
Should only be used via class oft_hcurl_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_hcurl_divout), intent(inout)  self)

Clean-up internal storage.

Note
Should only be used via class oft_hcurl_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_hcurl_divout), intent(inout)  self,
character(len=*), intent(in)  bc 
)

Setup matrix and solver with default.

Note
Should only be used via class oft_hcurl_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.

◆ count

integer(i4) count =0

Number of times apply has been called.

◆ 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 LAG::LOP operator.


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