https://mooseframework.inl.gov
Classes | Namespaces | Enumerations | Functions
MathFVUtils.h File Reference

Go to the source code of this file.

Classes

class  MooseVariableFV< OutputType >
 This class provides variable solution values for other classes/objects to bind to when looping over faces or elements. More...
 

Namespaces

 Moose
 MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to address this in their environment if C++17 compatibility isn't found.
 
 Moose::FV
 

Enumerations

enum  Moose::FV::InterpMethod {
  Moose::FV::InterpMethod::Average, Moose::FV::InterpMethod::HarmonicAverage, Moose::FV::InterpMethod::SkewCorrectedAverage, Moose::FV::InterpMethod::Upwind,
  Moose::FV::InterpMethod::RhieChow, Moose::FV::InterpMethod::VanLeer, Moose::FV::InterpMethod::MinMod, Moose::FV::InterpMethod::SOU,
  Moose::FV::InterpMethod::QUICK, Moose::FV::InterpMethod::Venkatakrishnan
}
 This codifies a set of available ways to interpolate with elem+neighbor solution information to calculate values (e.g. More...
 
enum  Moose::FV::LinearFVComputationMode { Moose::FV::LinearFVComputationMode::RHS, Moose::FV::LinearFVComputationMode::Matrix, Moose::FV::LinearFVComputationMode::FullSystem }
 

Functions

MooseEnum Moose::FV::interpolationMethods ()
 Returns an enum with all the currently supported interpolation methods and the current default for FV: first-order upwind. More...
 
InputParameters Moose::FV::advectedInterpolationParameter ()
 
InterpMethod Moose::FV::selectInterpolationMethod (const std::string &interp_method)
 
bool Moose::FV::setInterpolationMethod (const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string &param_name)
 Sets one interpolation method. More...
 
template<typename T = Real>
std::pair< Real, RealMoose::FV::interpCoeffs (const InterpMethod m, const FaceInfo &fi, const bool one_is_elem, const T &face_flux=0.0)
 Produce the interpolation coefficients in the equation: More...
 
template<typename T , typename T2 >
libMesh::CompareTypes< T, T2 >::supertype Moose::FV::linearInterpolation (const T &value1, const T2 &value2, const FaceInfo &fi, const bool one_is_elem, const InterpMethod interp_method=InterpMethod::Average)
 A simple linear interpolation of values between cell centers to a cell face. More...
 
template<typename T1 , typename T2 >
libMesh::CompareTypes< T1, T2 >::supertype Moose::FV::harmonicInterpolation (const T1 &value1, const T2 &value2, const FaceInfo &fi, const bool one_is_elem)
 Computes the harmonic mean (1/(gc/value1+(1-gc)/value2)) of Reals, RealVectorValues and RealTensorValues while accounting for the possibility that one or both of them are AD. More...
 
template<typename T , typename T2 , typename T3 >
libMesh::CompareTypes< T, T2 >::supertype Moose::FV::skewCorrectedLinearInterpolation (const T &value1, const T2 &value2, const T3 &face_gradient, const FaceInfo &fi, const bool one_is_elem)
 Linear interpolation with skewness correction using the face gradient. More...
 
template<typename T , typename T2 , typename T3 >
void Moose::FV::interpolate (InterpMethod m, T &result, const T2 &value1, const T3 &value2, const FaceInfo &fi, const bool one_is_elem)
 Provides interpolation of face values for non-advection-specific purposes (although it can/will still be used by advective kernels sometimes). More...
 
template<typename T , FunctorEvaluationKind FEK = FunctorEvaluationKind::Value>
Moose::FV::linearInterpolation (const FunctorBase< T > &functor, const FaceArg &face, const StateArg &time)
 perform a possibly skew-corrected linear interpolation by evaluating the supplied functor with the provided functor face argument More...
 
template<typename T1 , typename T2 , typename T3 , template< typename > class Vector1, template< typename > class Vector2>
void Moose::FV::interpolate (InterpMethod m, Vector1< T1 > &result, const T2 &fi_elem_advected, const T2 &fi_neighbor_advected, const Vector2< T3 > &fi_elem_advector, const Vector2< T3 > &fi_neighbor_advector, const FaceInfo &fi)
 Computes the product of the advected and the advector based on the given interpolation method. More...
 
template<typename T , typename T2 , typename T3 , typename Vector >
void Moose::FV::interpolate (InterpMethod m, T &result, const T2 &value1, const T3 &value2, const Vector &advector, const FaceInfo &fi, const bool one_is_elem)
 Provides interpolation of face values for advective flux kernels. More...
 
ADReal Moose::FV::gradUDotNormal (const FaceInfo &face_info, const MooseVariableFV< Real > &fv_var, const Moose::StateArg &time, bool correct_skewness=false)
 Calculates and returns "grad_u dot normal" on the face to be used for diffusive terms. More...
 
template<typename Scalar , typename Vector >
Scalar Moose::FV::rF (const Scalar &phiC, const Scalar &phiD, const Vector &gradC, const RealVectorValue &dCD)
 From Moukalled 12.30. More...
 
template<typename T >
std::pair< T, T > Moose::FV::interpCoeffs (const Limiter< T > &limiter, const T &phi_upwind, const T &phi_downwind, const libMesh::VectorValue< T > *const grad_phi_upwind, const libMesh::VectorValue< T > *const grad_phi_face, const Real &max_value, const Real &min_value, const FaceInfo &fi, const bool fi_elem_is_upwind)
 Produce the interpolation coefficients in the equation: More...
 
template<typename Scalar , typename Vector , typename Enable = typename std::enable_if<libMesh::ScalarTraits<Scalar>::value>::type>
Scalar Moose::FV::interpolate (const Limiter< Scalar > &limiter, const Scalar &phi_upwind, const Scalar &phi_downwind, const Vector *const grad_phi_upwind, const FaceInfo &fi, const bool fi_elem_is_upwind)
 Interpolates with a limiter. More...
 
template<typename Limiter , typename T , typename Tensor >
libMesh::VectorValue< T > Moose::FV::interpolate (const Limiter &limiter, const TypeVector< T > &phi_upwind, const TypeVector< T > &phi_downwind, const Tensor *const grad_phi_upwind, const FaceInfo &fi, const bool fi_elem_is_upwind)
 Vector overload. More...
 
template<typename T >
Moose::FV::fullLimitedInterpolation (const Limiter< T > &limiter, const T &phi_upwind, const T &phi_downwind, const VectorValue< T > *const grad_phi_upwind, const VectorValue< T > *const grad_phi_face, const Real &max_value, const Real &min_value, const FaceArg &face)
 This function performs a full limited interpolation of a variable, taking into account the values and gradients at both upwind and downwind locations, as well as geometric information and limits. More...
 
template<typename T , FunctorEvaluationKind FEK = FunctorEvaluationKind::Value, typename Enable = typename std::enable_if<ScalarTraits<T>::value>::type>
std::pair< Real, RealMoose::FV::computeMinMaxValue (const FunctorBase< T > &functor, const FaceArg &face, const StateArg &time)
 This function calculates the minimum and maximum values within a two-cell stencil. More...
 
template<typename T >
std::pair< Real, RealMoose::FV::computeMinMaxValue (const FunctorBase< VectorValue< T >> &functor, const FaceArg &face, const StateArg &time, const unsigned int &component)
 This function calculates the minimum and maximum values of a specified component within a two-cell stencil. More...
 
template<typename T , FunctorEvaluationKind FEK = FunctorEvaluationKind::Value, typename Enable = typename std::enable_if<libMesh::ScalarTraits<T>::value>::type>
std::pair< std::pair< T, T >, std::pair< T, T > > Moose::FV::interpCoeffsAndAdvected (const FunctorBase< T > &functor, const FaceArg &face, const StateArg &time)
 This function interpolates values using a specified limiter and face argument. More...
 
template<typename T , FunctorEvaluationKind FEK = FunctorEvaluationKind::Value, typename Enable = typename std::enable_if<libMesh::ScalarTraits<T>::value>::type>
Moose::FV::interpolate (const FunctorBase< T > &functor, const FaceArg &face, const StateArg &time)
 This function interpolates values at faces in a computational grid using a specified functor, face argument, and evaluation kind. More...
 
template<typename T >
libMesh::VectorValue< T > Moose::FV::interpolate (const FunctorBase< libMesh::VectorValue< T >> &functor, const FaceArg &face, const StateArg &time)
 This function interpolates vector values at faces in a computational grid using a specified functor, face argument, and limiter type. More...
 
template<typename T >
Moose::FV::containerInterpolate (const FunctorBase< T > &functor, const FaceArg &face, const StateArg &time)
 This function interpolates container values at faces in a computational grid using a specified functor, face argument, and limiter type. More...
 
template<typename T >
std::vector< T > Moose::FV::interpolate (const FunctorBase< std::vector< T >> &functor, const FaceArg &face, const StateArg &time)
 
template<typename T , std::size_t N>
std::array< T, N > Moose::FV::interpolate (const FunctorBase< std::array< T, N >> &functor, const FaceArg &face, const StateArg &time)
 
template<typename SubdomainRestrictable >
bool Moose::FV::onBoundary (const SubdomainRestrictable &obj, const FaceInfo &fi)
 Return whether the supplied face is on a boundary of the object's execution. More...
 
bool Moose::FV::onBoundary (const std::set< SubdomainID > &subs, const FaceInfo &fi)
 Determine whether the passed-in face is on the boundary of an object that lives on the provided subdomains. More...