OGS
|
It defines an isotropic diffusion stabilization, the simplest stabilization method.
The method adds an artificial isotropic balancing dissipation to the diffusion coefficient in order to force the Péclet number to be smaller than 1. The isotropic balancing dissipation is defined as
\[ \mathbf{K}_{\delta} = \frac{1}{2}\alpha ||\mathbf v||h \mathbf I \]
with \(\alpha \in [0,1] \) the tuning parameter, \(h\) the element size (e.g. the maximum edge length of element), and \(\mathbf I\) the identity matrix.
Definition at line 52 of file NumericalStabilization.h.
#include <NumericalStabilization.h>
Public Member Functions | |
IsotropicDiffusionStabilization (double const cutoff_velocity, double const tuning_parameter, std::vector< double > &&element_sizes) | |
double | computeArtificialDiffusion (std::size_t const element_id, double const velocity_norm) const |
Private Attributes | |
double const | cutoff_velocity_ |
double const | tuning_parameter_ = 0.5 |
The tuning parameter in the range [0,1]. | |
std::vector< double > const | element_sizes_ |
NumLib::IsotropicDiffusionStabilization::IsotropicDiffusionStabilization | ( | double const | cutoff_velocity, |
double const | tuning_parameter, | ||
std::vector< double > && | element_sizes ) |
Definition at line 21 of file NumericalStabilization.cpp.
References OGS_FATAL, and tuning_parameter_.
double NumLib::IsotropicDiffusionStabilization::computeArtificialDiffusion | ( | std::size_t const | element_id, |
double const | velocity_norm ) const |
Definition at line 38 of file NumericalStabilization.cpp.
References cutoff_velocity_, element_sizes_, and tuning_parameter_.
Referenced by NumLib::detail::getHydrodynamicDispersionWithArtificialDiffusion().
|
private |
The cutoff velocity. The stabilization is not applied if the velocity magnitude is below the cutoff velocity.
Definition at line 65 of file NumericalStabilization.h.
Referenced by computeArtificialDiffusion().
|
private |
Element sizes, which are represented by the maximum element edge lengths.
Definition at line 72 of file NumericalStabilization.h.
Referenced by computeArtificialDiffusion().
|
private |
The tuning parameter in the range [0,1].
Definition at line 68 of file NumericalStabilization.h.
Referenced by IsotropicDiffusionStabilization(), and computeArtificialDiffusion().