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

Detailed Description

Clean the divergence from a H(Curl) + Grad(H^1) 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 mass matrix 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 mass matrix.

Inheritance diagram for oft_hcurl_grad_divout:
Inheritance graph
[legend]

Public Member Functions

procedure apply (self, a)
 Clean divergence from field.
 
procedure(oft_bc_proto), deferred apply (self, a)
 Apply boundary condition to field.
 
procedure delete (self)
 Clean-up internal storage.
 
procedure(oft_bc_delete), deferred delete (self)
 Clean-up internal storage.
 
procedure setup (self, ml_hcurl_grad_rep, bc, solver)
 Setup matrix and solver with default.
 

Public Attributes

integer(i4app_freq = 1
 Frequency to apply solver.
 
class(oft_solver_bc), pointer bc => NULL()
 Boundary condition.
 
class(oft_vector), pointer bnorm => NULL()
 Normal field source on boundary.
 
integer(i4count = 0
 Number of times apply has been called.
 
logical internal_solver = .FALSE.
 Solver was constructed internally?
 
logical keep_boundary = .FALSE.
 Flag for keeping boundary gradients.
 
class(oft_ml_fem_type), pointer ml_curl => NULL()
 
class(oft_ml_fem_type), pointer ml_grad => NULL()
 
class(oft_ml_fem_comp_type), pointer ml_hcurl_full => NULL()
 
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 H^1::LOP operator.
 

Member Function/Subroutine Documentation

◆ apply() [1/2]

procedure apply ( class(oft_hcurl_grad_divout), intent(inout)  self,
class(oft_vector), intent(inout)  a 
)

Clean divergence from field.

Parameters
[in,out]aField for divergence cleaning

◆ apply() [2/2]

procedure(oft_bc_proto), deferred apply ( class(oft_solver_bc), intent(inout)  self,
class(oft_vector), intent(inout)  a 
)
pure virtualinherited

Apply boundary condition to field.

Parameters
[in,out]selfBoundary condition object
[in,out]aField to apply BC to

◆ delete() [1/2]

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

Clean-up internal storage.

◆ delete() [2/2]

procedure(oft_bc_delete), deferred delete ( class(oft_solver_bc), intent(inout)  self)
pure virtualinherited

Clean-up internal storage.

Parameters
[in,out]selfBoundary condition object

◆ setup()

procedure setup ( class(oft_hcurl_grad_divout), intent(inout)  self,
class(oft_ml_fem_comp_type), intent(inout), target  ml_hcurl_grad_rep,
character(len=*), intent(in)  bc,
class(oft_solver), intent(in), optional, target  solver 
)

Setup matrix and solver with default.

Parameters
[in]bcBoundary condition

Member Data Documentation

◆ app_freq

integer(i4) app_freq = 1

Frequency to apply solver.

◆ bc

class(oft_solver_bc), pointer bc => NULL()

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.

◆ internal_solver

logical internal_solver = .FALSE.

Solver was constructed internally?

◆ keep_boundary

logical keep_boundary = .FALSE.

Flag for keeping boundary gradients.

◆ ml_curl

class(oft_ml_fem_type), pointer ml_curl => NULL()

◆ ml_grad

class(oft_ml_fem_type), pointer ml_grad => NULL()

◆ ml_hcurl_full

class(oft_ml_fem_comp_type), pointer ml_hcurl_full => NULL()

◆ 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 H^1::LOP operator.


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