Compute limited cell gradients for linear FV variables. More...
#include <ComputeLinearFVLimitedGradientThread.h>
Public Types | |
| using | ElemInfoRange = StoredRange< MooseMesh::const_elem_info_iterator, const ElemInfo * > |
Public Member Functions | |
| ComputeLinearFVLimitedGradientThread (FEProblemBase &fe_problem, SystemBase &system, std::vector< std::unique_ptr< NumericVector< Number > > > &gradient, const Moose::FV::GradientLimiterType limiter_type, const std::unordered_set< unsigned int > &requested_variables) | |
| Class constructor. | |
| ComputeLinearFVLimitedGradientThread (ComputeLinearFVLimitedGradientThread &x, Threads::split split) | |
| Splitting constructor. | |
| ~ComputeLinearFVLimitedGradientThread () | |
| void | operator() (const ElemInfoRange &range) |
| Apply the limiter over the provided element range. | |
| void | join (const ComputeLinearFVLimitedGradientThread &y) |
| Join threads at the end of the execution. | |
Protected Attributes | |
| FEProblemBase & | _fe_problem |
| Reference to the problem. | |
| const unsigned int | _dim |
| The dimension of the domain. | |
| SystemBase & | _system |
| The system wrapper this thread operates on. | |
| const libMesh::System & | _libmesh_system |
| Reference to the libMesh system backing the wrapper system. | |
| const unsigned int | _system_number |
| Global system number in the libMesh equation system. | |
| std::vector< std::unique_ptr< NumericVector< Number > > > & | _gradient |
| Gradient storage limited in place. | |
| std::vector< Number * > | _gradient_data |
| Writable local arrays, one per gradient component. | |
| const bool | _owns_gradient_data |
| True only for the original thread object that acquired and must restore the arrays. | |
| const Moose::FV::GradientLimiterType | _limiter_type |
| The type of limiter requested. | |
| const std::unordered_set< unsigned int > & | _requested_variables |
| Variable numbers that requested the current limiter. | |
| THREAD_ID | _tid |
| Thread ID. | |
| MooseLinearVariableFV< Real > * | _current_var |
| Pointer to the current variable we are operating on. | |
Compute limited cell gradients for linear FV variables.
This thread currently supports gradients limited by scaling each cell gradient with a per-cell limiter coefficient (e.g. Venkatakrishnan).
Definition at line 32 of file ComputeLinearFVLimitedGradientThread.h.
| using ComputeLinearFVLimitedGradientThread::ElemInfoRange = StoredRange<MooseMesh::const_elem_info_iterator, const ElemInfo *> |
Definition at line 60 of file ComputeLinearFVLimitedGradientThread.h.
| ComputeLinearFVLimitedGradientThread::ComputeLinearFVLimitedGradientThread | ( | FEProblemBase & | fe_problem, |
| SystemBase & | system, | ||
| std::vector< std::unique_ptr< NumericVector< Number > > > & | gradient, | ||
| const Moose::FV::GradientLimiterType | limiter_type, | ||
| const std::unordered_set< unsigned int > & | requested_variables | ||
| ) |
Class constructor.
| fe_problem | Reference to the problem. |
| system | The system whose variables are assembled by this thread. |
| gradient | Gradient storage to limit in place. |
| limiter_type | The type of limiter which should be computed. |
| requested_variables | Variable numbers that requested this limiter. |
Definition at line 25 of file ComputeLinearFVLimitedGradientThread.C.
| ComputeLinearFVLimitedGradientThread::ComputeLinearFVLimitedGradientThread | ( | ComputeLinearFVLimitedGradientThread & | x, |
| Threads::split | split | ||
| ) |
Splitting constructor.
| x | Reference to the other thread. |
| split | The thread split. |
Definition at line 50 of file ComputeLinearFVLimitedGradientThread.C.
| ComputeLinearFVLimitedGradientThread::~ComputeLinearFVLimitedGradientThread | ( | ) |
Definition at line 65 of file ComputeLinearFVLimitedGradientThread.C.
| void ComputeLinearFVLimitedGradientThread::join | ( | const ComputeLinearFVLimitedGradientThread & | y | ) |
Join threads at the end of the execution.
Definition at line 215 of file ComputeLinearFVLimitedGradientThread.C.
| void ComputeLinearFVLimitedGradientThread::operator() | ( | const ElemInfoRange & | range | ) |
Apply the limiter over the provided element range.
| range | The range of ElemInfos which should be computed. |
Definition at line 77 of file ComputeLinearFVLimitedGradientThread.C.
|
protected |
Pointer to the current variable we are operating on.
Definition at line 110 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().
|
protected |
The dimension of the domain.
Definition at line 74 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().
|
protected |
Reference to the problem.
Definition at line 71 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().
|
protected |
Gradient storage limited in place.
Definition at line 86 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by ComputeLinearFVLimitedGradientThread(), operator()(), and ~ComputeLinearFVLimitedGradientThread().
|
protected |
Writable local arrays, one per gradient component.
_gradient_data[component][local_dof] stores that component at a local DOF.
The original thread object acquires the arrays before threaded execution. Threaded copies share the pointers and write only to DOFs in their element range.
Definition at line 95 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by ComputeLinearFVLimitedGradientThread(), and operator()().
|
protected |
Reference to the libMesh system backing the wrapper system.
Definition at line 80 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().
|
protected |
The type of limiter requested.
Definition at line 101 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().
|
protected |
True only for the original thread object that acquired and must restore the arrays.
Definition at line 98 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by ~ComputeLinearFVLimitedGradientThread().
|
protected |
Variable numbers that requested the current limiter.
Definition at line 104 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().
|
protected |
The system wrapper this thread operates on.
Definition at line 77 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().
|
protected |
Global system number in the libMesh equation system.
Definition at line 83 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().
|
protected |
Thread ID.
Definition at line 107 of file ComputeLinearFVLimitedGradientThread.h.
Referenced by operator()().