Shared storage and allocation logic for linear finite-volume cell gradients for variables in the system attribute of this class. More...
#include <LinearFVGradientInterface.h>
Public Member Functions | |
| LinearFVGradientInterface (SystemBase &sys) | |
| const std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > & | linearFVGradientContainer () const |
| Access the stored raw cell-centered gradient components. More... | |
| void | requestLinearFVLimitedGradients (const Moose::FV::GradientLimiterType limiter_type, unsigned int variable_number) |
| Request storage and assembly of limiter-specific cell gradients. More... | |
| const std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > & | linearFVLimitedGradientContainer (const Moose::FV::GradientLimiterType limiter_type) const |
| Access the stored raw or limited cell-centered gradient components. More... | |
| const std::unordered_set< Moose::FV::GradientLimiterType > & | requestedLinearFVLimitedGradientTypes () const |
| Access the limiter types requested for this system. More... | |
Protected Member Functions | |
| void | computeGradients () |
| Compute and store raw and requested limited Green-Gauss gradients for linear FV variables. More... | |
| void | rebuildLinearFVGradientStorage () |
| Rebuild persistent raw and temporary gradient storage after mesh/DOF changes. More... | |
| std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > & | temporaryLinearFVGradientContainer () |
| Return temporary storage for gradients during gradient assembly. More... | |
| std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > & | temporaryLinearFVLimitedGradientContainer (const Moose::FV::GradientLimiterType limiter_type) |
| Return temporary storage for limited gradients during gradient assembly. More... | |
| std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > & | rawLinearFVLimitedGradientContainer (const Moose::FV::GradientLimiterType limiter_type) |
| Access the persisted limited-gradient storage for a specific limiter. More... | |
| const std::unordered_set< unsigned int > & | requestedLinearFVLimitedGradientVariables (const Moose::FV::GradientLimiterType limiter_type) const |
| Access the variable numbers that requested limited gradients for a specific limiter. More... | |
| bool | needsLinearFVGradientStorage () const |
| void | initializeContainer (std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number >>> &container) const |
Protected Attributes | |
| SystemBase & | _sys |
| Reference to the system object. More... | |
| std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > | _temporary_gradient |
| Scratch storage for raw gradients assembled during the current compute pass. More... | |
| std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > | _raw_grad_container |
| Persisted raw cell-centered gradient components keyed by spatial direction. More... | |
| std::unordered_set< Moose::FV::GradientLimiterType > | _requested_limited_gradient_types |
| Set of requested limiter types for which limited gradients should be computed. More... | |
| std::unordered_map< Moose::FV::GradientLimiterType, std::unordered_set< unsigned int > > | _requested_limited_gradient_variables |
| Variable numbers requesting limited gradients, keyed by limiter type. More... | |
| std::unordered_map< Moose::FV::GradientLimiterType, std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > > | _raw_limited_grad_containers |
| Persisted limited gradient components keyed by limiter type. More... | |
| std::unordered_map< Moose::FV::GradientLimiterType, std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > > | _temporary_limited_gradient |
| Scratch storage for limited gradients assembled during the current compute pass. More... | |
Shared storage and allocation logic for linear finite-volume cell gradients for variables in the system attribute of this class.
Definition at line 35 of file LinearFVGradientInterface.h.
|
inline |
Definition at line 38 of file LinearFVGradientInterface.h.
|
protected |
Compute and store raw and requested limited Green-Gauss gradients for linear FV variables.
Definition at line 27 of file LinearFVGradientInterface.C.
Referenced by AuxiliarySystem::compute(), and LinearSystem::computeLinearSystemInternal().
|
protected |
Definition at line 131 of file LinearFVGradientInterface.C.
|
inline |
Access the stored raw cell-centered gradient components.
Definition at line 45 of file LinearFVGradientInterface.h.
| const std::vector< std::unique_ptr< NumericVector< Number > > > & LinearFVGradientInterface::linearFVLimitedGradientContainer | ( | const Moose::FV::GradientLimiterType | limiter_type | ) | const |
Access the stored raw or limited cell-centered gradient components.
| limiter_type | The limiter type whose gradient container is being requested. |
Definition at line 198 of file LinearFVGradientInterface.C.
|
protected |
Definition at line 121 of file LinearFVGradientInterface.C.
|
inlineprotected |
Access the persisted limited-gradient storage for a specific limiter.
| limiter_type | The limiter type whose persisted storage is being accessed. |
Definition at line 117 of file LinearFVGradientInterface.h.
|
protected |
Rebuild persistent raw and temporary gradient storage after mesh/DOF changes.
Definition at line 142 of file LinearFVGradientInterface.C.
Referenced by AuxiliarySystem::AuxiliarySystem(), LinearSystem::initialSetup(), AuxiliarySystem::reinit(), and LinearSystem::reinit().
|
inline |
Access the limiter types requested for this system.
Definition at line 72 of file LinearFVGradientInterface.h.
|
inlineprotected |
Access the variable numbers that requested limited gradients for a specific limiter.
| limiter_type | The limiter type whose request set is being accessed. |
Definition at line 128 of file LinearFVGradientInterface.h.
| void LinearFVGradientInterface::requestLinearFVLimitedGradients | ( | const Moose::FV::GradientLimiterType | limiter_type, |
| unsigned int | variable_number | ||
| ) |
Request storage and assembly of limiter-specific cell gradients.
| limiter_type | The limiter whose gradient storage should be made available. |
| variable_number | The libMesh variable number requesting the limited gradients. |
Definition at line 166 of file LinearFVGradientInterface.C.
|
inlineprotected |
Return temporary storage for gradients during gradient assembly.
The returned vectors are persistent scratch storage reused across calls and swapped with the final gradient container before gradient assembly returns.
Definition at line 94 of file LinearFVGradientInterface.h.
|
inlineprotected |
Return temporary storage for limited gradients during gradient assembly.
The returned vectors are persistent scratch storage reused across calls and swapped with the final limited-gradient container before gradient assembly returns.
| limiter_type | The limiter type whose temporary storage is being accessed. |
Definition at line 106 of file LinearFVGradientInterface.h.
|
protected |
Persisted raw cell-centered gradient components keyed by spatial direction.
Definition at line 145 of file LinearFVGradientInterface.h.
Referenced by AuxiliarySystem::compute(), and linearFVGradientContainer().
|
protected |
Persisted limited gradient components keyed by limiter type.
Definition at line 157 of file LinearFVGradientInterface.h.
Referenced by rawLinearFVLimitedGradientContainer().
|
protected |
Set of requested limiter types for which limited gradients should be computed.
Definition at line 148 of file LinearFVGradientInterface.h.
Referenced by requestedLinearFVLimitedGradientTypes().
|
protected |
Variable numbers requesting limited gradients, keyed by limiter type.
Definition at line 152 of file LinearFVGradientInterface.h.
Referenced by requestedLinearFVLimitedGradientVariables().
|
protected |
Reference to the system object.
Definition at line 139 of file LinearFVGradientInterface.h.
|
protected |
Scratch storage for raw gradients assembled during the current compute pass.
Definition at line 142 of file LinearFVGradientInterface.h.
Referenced by temporaryLinearFVGradientContainer().
|
protected |
Scratch storage for limited gradients assembled during the current compute pass.
Definition at line 162 of file LinearFVGradientInterface.h.
Referenced by temporaryLinearFVLimitedGradientContainer().
1.8.14