|
The Open FUSION Toolkit 1.0.0-beta5
Modeling tools for plasma and fusion research and engineering
|
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.

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(i4) | app_freq = 1 |
| Frequency to apply solver. | |
| class(oft_vector), pointer | bnorm => NULL() |
| Normal field source on boundary. | |
| integer(i4) | count = 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. | |
| procedure apply | ( | class(oft_h1_divout), intent(inout) | self, |
| class(oft_vector), intent(inout) | u | ||
| ) |
Clean divergence from field.
| [in,out] | u | Field for divergence cleaning |
|
pure virtualinherited |
Orthogonalize field.
| procedure delete | ( | class(oft_h1_divout), intent(inout) | self | ) |
Clean-up internal storage.
|
pure virtualinherited |
Clean-up internal storage.
| procedure setup | ( | class(oft_h1_divout), intent(inout) | self, |
| character(len=*), intent(in) | bc | ||
| ) |
Setup matrix and solver with default.
| [in] | bc | Boundary condition |
| integer(i4) app_freq = 1 |
Frequency to apply solver.
|
static |
Boundary condition.
| class(oft_vector), pointer bnorm => NULL() |
Normal field source on boundary.
| integer(i4) count = 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.