Registration, update, and allocation logic for linear finite-volume cell gradients. More...
#include <LinearFVGradientInterface.h>
Classes | |
| struct | LinearFVGradientContainer |
| Gradient values for all variables using the same gradient method. More... | |
Public Member Functions | |
| LinearFVGradientInterface (SystemBase &sys) | |
| const FVGradientMethod & | resolveFVGradientMethod (const GradientMethodName &method_name) |
| Resolve a named gradient method, constructing a built-in method when needed. | |
| LinearFVGradientReader | registerFVGradient (unsigned int variable_number, const FVGradientMethod &method) |
| Register a variable for gradient values produced by a method object. | |
Protected Types | |
| using | GradientContainer = LinearFVGradientReader::GradientContainer |
| One vector per spatial component of a cell-centered gradient field. | |
Protected Member Functions | |
| void | computeGradients () |
| Compute and finalize all registered linear FV gradient fields. | |
| void | updateFVGradient (const LinearFVGradientReader &reader) |
| Update a registered gradient reader explicitly. | |
| void | rebuildLinearFVGradientStorage () |
| Rebuild cached gradient values and reusable scratch storage after mesh/DOF changes. | |
| bool | hasLinearFVGradients () const |
| Whether any linear finite-volume gradient fields have been registered to this object. | |
| void | initializeContainer (GradientContainer &container) const |
| Allocate one zeroed vector per spatial component for gradient storage. | |
| LinearFVGradientContainer & | computeLinearFVGradientContainer (const FVGradientMethod &method) |
| Compute replacement field values for a registered gradient method. | |
| void | finalizeLinearFVGradientContainer (LinearFVGradientContainer &container) |
| Replace the current gradient storage with the freshly computed new gradients. | |
Protected Attributes | |
| SystemBase & | _sys |
| Reference to the system object. | |
| std::unordered_map< const FVGradientMethod *, LinearFVGradientContainer > | _linear_fv_gradient_container_by_method |
| Gradient containers keyed by the method object that produces them. | |
Registration, update, and allocation logic for linear finite-volume cell gradients.
This interface should be inherited by system classes that may own linear finite-volume variables
Definition at line 38 of file LinearFVGradientInterface.h.
|
protected |
One vector per spatial component of a cell-centered gradient field.
Definition at line 63 of file LinearFVGradientInterface.h.
|
inline |
| sys | System that owns registered linear finite-volume gradient fields. |
Definition at line 44 of file LinearFVGradientInterface.h.
|
protected |
Compute and finalize all registered linear FV gradient fields.
Definition at line 77 of file LinearFVGradientInterface.C.
Referenced by AuxiliarySystem::compute().
|
protected |
Compute replacement field values for a registered gradient method.
| method | Gradient method used to compute the replacement values. |
Definition at line 148 of file LinearFVGradientInterface.C.
Referenced by computeGradients(), and updateFVGradient().
|
protected |
Replace the current gradient storage with the freshly computed new gradients.
| container | Method container whose gradient values should be finalized. |
Definition at line 165 of file LinearFVGradientInterface.C.
Referenced by computeGradients(), and updateFVGradient().
|
protected |
Whether any linear finite-volume gradient fields have been registered to this object.
Definition at line 132 of file LinearFVGradientInterface.C.
Referenced by AuxiliarySystem::compute(), and rebuildLinearFVGradientStorage().
|
protected |
Allocate one zeroed vector per spatial component for gradient storage.
| container | Component-vector container to rebuild. |
Definition at line 138 of file LinearFVGradientInterface.C.
Referenced by rebuildLinearFVGradientStorage().
|
protected |
Rebuild cached gradient values and reusable scratch storage after mesh/DOF changes.
Definition at line 173 of file LinearFVGradientInterface.C.
Referenced by AuxiliarySystem::AuxiliarySystem(), LinearSystem::initialSetup(), AuxiliarySystem::reinit(), and LinearSystem::reinit().
| LinearFVGradientReader LinearFVGradientInterface::registerFVGradient | ( | unsigned int | variable_number, |
| const FVGradientMethod & | method | ||
| ) |
Register a variable for gradient values produced by a method object.
| variable_number | Variable number whose gradient should be stored. |
| method | Gradient method that computes the field values. |
Definition at line 52 of file LinearFVGradientInterface.C.
| const FVGradientMethod & LinearFVGradientInterface::resolveFVGradientMethod | ( | const GradientMethodName & | method_name | ) |
Resolve a named gradient method, constructing a built-in method when needed.
| method_name | Name of the gradient method to retrieve. |
Definition at line 26 of file LinearFVGradientInterface.C.
|
protected |
Update a registered gradient reader explicitly.
| reader | Gradient reader to update. |
Definition at line 102 of file LinearFVGradientInterface.C.
|
protected |
Gradient containers keyed by the method object that produces them.
Definition at line 119 of file LinearFVGradientInterface.h.
Referenced by computeGradients(), computeLinearFVGradientContainer(), hasLinearFVGradients(), rebuildLinearFVGradientStorage(), and updateFVGradient().
|
protected |
Reference to the system object.
Definition at line 115 of file LinearFVGradientInterface.h.
Referenced by computeGradients(), computeLinearFVGradientContainer(), initializeContainer(), registerFVGradient(), resolveFVGradientMethod(), and updateFVGradient().