|
T | limit (const T &, const T &, const VectorValue< T > *grad_phi_upwind, const VectorValue< T > *, const RealVectorValue &dCD, const Real &max_value, const Real &min_value, const FaceInfo *, const bool &) const override final |
| This method overrides the pure virtual limit method in the base Limiter class. More...
|
|
bool | constant () const override final |
|
InterpMethod | interpMethod () const override final |
|
| SOULimiter ()=default |
|
virtual T | limit (const T &phi_upwind, const T &phi_downwind, const libMesh::VectorValue< T > *grad_phi_upwind, const libMesh::VectorValue< T > *grad_phi_downwind, const RealVectorValue &dCD, const Real &max_value, const Real &min_value, const FaceInfo *fi, const bool &fi_elem_is_upwind) const =0 |
| This method computes the flux limiting ratio based on the provided scalar values, gradient vectors, direction vector, maximum and minimum allowable values, and geometric information from the face and cell centroids. More...
|
|
T | operator() (const T &phi_upwind, const T &phi_downwind, const libMesh::VectorValue< T > *grad_phi_upwind, const RealVectorValue &dCD) const |
|
T | operator() (const T &phi_upwind, const T &phi_downwind, const VectorValue< T > *grad_phi_upwind, const VectorValue< T > *grad_phi_downwind, const RealVectorValue &dCD, const Real &max_value, const Real &min_value, const FaceInfo *fi, const bool &fi_elem_is_upwind) const |
|
T | rf_grad (const VectorValue< T > *grad_phi_upwind, const VectorValue< T > *grad_phi_downwind, const RealVectorValue &dCD) const |
|
T | rf_minmax (const T &phi_upwind, const VectorValue< T > *grad_phi_upwind, const Real &max_value, const Real &min_value, const FaceInfo *fi, const bool &fi_elem_is_upwind) const |
|
template<typename T>
class Moose::FV::SOULimiter< T >
The SOU limiter is used for reproducing the second-order-upwind scheme.
The limiter function $(delta_max)$ is defined as:
\[ \beta(delta_max) = min(1, delta_face/delta_max) \]
where: ( delta_max ) is the maximum variation admited for the computatioanl stencil ( delta_max ) is the variation at the face computed with SOU
- Template Parameters
-
T | The data type of the scalar values and the return type. |
Definition at line 34 of file SOULimiter.h.
This method computes the flux limiting ratio based on the provided scalar values, gradient vectors, direction vector, maximum and minimum allowable values, and geometric information from the face and cell centroids.
It must be overridden by any derived class implementing a specific limiting strategy.
- Template Parameters
-
T | The data type of the field values and the return type. |
- Parameters
-
phi_upwind | The field value at the upwind location. |
phi_downwind | The field value at the downwind location. |
grad_phi_upwind | Pointer to the gradient of the field at the upwind location. |
grad_phi_downwind | Pointer to the gradient of the field at the downwind location. |
dCD | A constant direction vector representing the direction of the cell face. |
max_value | The maximum allowable value. |
min_value | The minimum allowable value. |
fi | FaceInfo object containing geometric details such as face centroid and cell centroids. |
fi_elem_is_upwind | Boolean indicating if the face info element is upwind. |
- Returns
- The computed flux limiting ratio.
This pure virtual function is intended to be defined in derived classes, which will implement the specific limiting algorithm. Derived classes will provide the actual logic for computing the flux limiting ratio, ensuring that the result adheres to the constraints and properties required by the specific limiting method.
Referenced by Moose::FV::Limiter< T >::operator()().