KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::FluidCharacteristicNumbersUtilities Class Reference

Fluid characteristic numbers calculation utility This class provides static methods to calculate the common adimensional magnitudes that characterize any fluid flow. More...

#include <fluid_characteristic_numbers_utilities.h>

Collaboration diagram for Kratos::FluidCharacteristicNumbersUtilities:

Public Member Functions

Life Cycle
 FluidCharacteristicNumbersUtilities ()=delete
 Intentionally deleting default constructor. More...
 

Type Definitions

typedef std::function< double(const Geometry< Node > &)> ElementSizeFunctionType
 Function type for the element size calculator function. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (FluidCharacteristicNumbersUtilities)
 Pointer definition of FluidCharacteristicNumbersUtilities. More...
 

Operations

static void CalculateLocalCFL (ModelPart &rModelPart)
 Calculate each element's CFL for the current time step and provided model part The elemental CFL is stored in the CFL_NUMBER elemental variable To visualize in the post-process file, remember to print CFL_NUMBER as a Gauss point result. More...
 
static double CalculateElementCFL (const Element &rElement, const ElementSizeFunctionType &rElementSizeCalculator, const double Dt)
 Calulate element CFL number For the given element, this method calculates the CFL number. More...
 
static double CalculateElementCFLWithSoundVelocity (const Element &rElement, const ElementSizeFunctionType &rElementSizeCalculator, const double Dt)
 Calulate element CFL number for compressible flows (considering sound velocity) For the given element, this method calculates the CFL number. More...
 
template<bool ConsiderArtificialMagnitudes>
static double CalculateElementPrandtlNumber (const Element &rElement)
 Calculate the element Prandtl number For the given element, this method calculates the Prandtl number. More...
 
template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
static std::pair< double, doubleCalculateElementPecletNumbers (const Element &rElement, const ElementSizeFunctionType &rElementSizeCalculator)
 Calculate the elemental Peclet numbers For the given element, this method calculates the Peclet number considering both the dynamic viscosity and the shear conductivity. More...
 
template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
static double CalculateElementViscousPecletNumber (const Element &rElement, const ElementSizeFunctionType &rElementSizeCalculator)
 Calculate the elemental Peclet number For the given element, this method calculates the Peclet number. More...
 
template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
static double CalculateElementThermalPecletNumber (const Element &rElement, const ElementSizeFunctionType &rElementSizeCalculator)
 Calculate the elemental Peclet number For the given element, this method calculates the Peclet number. More...
 
template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
static std::pair< double, doubleCalculateElementFourierNumbers (const Element &rElement, const ElementSizeFunctionType &rElementSizeCalculator, const double Dt)
 Calculate the elemental Fourier numbers For the given element, this method calculates the Fourier number considering both the dynamic viscosity and the shear conductivity. More...
 
template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
static double CalculateElementViscousFourierNumber (const Element &rElement, const ElementSizeFunctionType &rElementSizeCalculator, const double Dt)
 Calculate the elemental Fourier number For the given element, this method calculates the viscous Fourier number. More...
 
template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
static double CalculateElementThermalFourierNumber (const Element &rElement, const ElementSizeFunctionType &rElementSizeCalculator, const double Dt)
 Calculate the elemental Fourier number For the given element, this method calculates the thermal Fourier number. More...
 
static double CalculateElementMachNumber (const Element &rElement)
 Calculate the element Mach number For the given element, this method calculates the midpoint Mach number Note that it requires the velocity to be stored in the nodal historical database and the sound velocity to be stored in the non-historical one. More...
 
static ElementSizeFunctionType GetMinimumElementSizeFunction (const Geometry< Node > &rGeometry)
 Get the minimum element size calculation function This method checks the geometry of the provided element and returns the corresponding minimum element size calculation fucntion. More...
 
static ElementSizeFunctionType GetAverageElementSizeFunction (const Geometry< Node > &rGeometry)
 Get the average element size calculation function This method checks the geometry of the provided element and returns the corresponding average element size calculation fucntion. More...
 

Detailed Description

Fluid characteristic numbers calculation utility This class provides static methods to calculate the common adimensional magnitudes that characterize any fluid flow.

Member Typedef Documentation

◆ ElementSizeFunctionType

Function type for the element size calculator function.

Constructor & Destructor Documentation

◆ FluidCharacteristicNumbersUtilities()

Kratos::FluidCharacteristicNumbersUtilities::FluidCharacteristicNumbersUtilities ( )
delete

Intentionally deleting default constructor.

Member Function Documentation

◆ CalculateElementCFL()

double Kratos::FluidCharacteristicNumbersUtilities::CalculateElementCFL ( const Element rElement,
const ElementSizeFunctionType rElementSizeCalculator,
const double  Dt 
)
static

Calulate element CFL number For the given element, this method calculates the CFL number.

Parameters
rElementElement to calculate the CFL number
rGeometryInfoAuxiliary geometry data container
DtCurrent time increment
Returns
double The element CFL number

◆ CalculateElementCFLWithSoundVelocity()

double Kratos::FluidCharacteristicNumbersUtilities::CalculateElementCFLWithSoundVelocity ( const Element rElement,
const ElementSizeFunctionType rElementSizeCalculator,
const double  Dt 
)
static

Calulate element CFL number for compressible flows (considering sound velocity) For the given element, this method calculates the CFL number.

Parameters
rElementElement to calculate the CFL number
rGeometryInfoAuxiliary geometry data container
DtCurrent time increment
Returns
double The element CFL number

◆ CalculateElementFourierNumbers()

template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
template std::pair< double, double > Kratos::FluidCharacteristicNumbersUtilities::CalculateElementFourierNumbers< false, false > ( const Element rElement,
const ElementSizeFunctionType rElementSizeCalculator,
const double  Dt 
)
static

Calculate the elemental Fourier numbers For the given element, this method calculates the Fourier number considering both the dynamic viscosity and the shear conductivity.

Template Parameters
ConsiderArtificialMagnitudesTemplate parameter specifying if the artificial values are considered
DensityIsNodalTemplate parameter specifying if the density is nodally stored
Parameters
rElementElement to calculate the Fourier number
Returns
std::pair<double,double> Pair containing the viscosity (first position) and thermal (second position) Fourier numbers

◆ CalculateElementMachNumber()

double Kratos::FluidCharacteristicNumbersUtilities::CalculateElementMachNumber ( const Element rElement)
static

Calculate the element Mach number For the given element, this method calculates the midpoint Mach number Note that it requires the velocity to be stored in the nodal historical database and the sound velocity to be stored in the non-historical one.

Parameters
rElementElement to calculate the Mach number
Returns
double The element Mach number

◆ CalculateElementPecletNumbers()

template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
template std::pair< double, double > Kratos::FluidCharacteristicNumbersUtilities::CalculateElementPecletNumbers< false, false > ( const Element rElement,
const ElementSizeFunctionType rElementSizeCalculator 
)
static

Calculate the elemental Peclet numbers For the given element, this method calculates the Peclet number considering both the dynamic viscosity and the shear conductivity.

Template Parameters
ConsiderArtificialMagnitudesTemplate parameter specifying if the artificial values are considered
DensityIsNodalTemplate parameter specifying if the density is nodally stored
Parameters
rElementElement to calculate the Peclet number
Returns
std::pair<double,double> Pair containing the viscosity (first position) and conductivity (second position) Peclet numbers

◆ CalculateElementPrandtlNumber()

template<bool ConsiderArtificialMagnitudes>
template double Kratos::FluidCharacteristicNumbersUtilities::CalculateElementPrandtlNumber< false > ( const Element rElement)
static

Calculate the element Prandtl number For the given element, this method calculates the Prandtl number.

Template Parameters
ConsiderArtificialMagnitudesTemplate parameter specifying if the artificial values are considered
Parameters
rElementElement to calculate the Prandtl number
Returns
double The element Prandtl number

◆ CalculateElementThermalFourierNumber()

template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
template double Kratos::FluidCharacteristicNumbersUtilities::CalculateElementThermalFourierNumber< false, false > ( const Element rElement,
const ElementSizeFunctionType rElementSizeCalculator,
const double  Dt 
)
static

Calculate the elemental Fourier number For the given element, this method calculates the thermal Fourier number.

Template Parameters
ConsiderArtificialMagnitudesTemplate parameter specifying if the artificial values are considered
DensityIsNodalTemplate parameter specifying if the density is nodally stored
Parameters
rElementElement to calculate the Fourier number
Returns
double The element Fourier number

◆ CalculateElementThermalPecletNumber()

template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
template double Kratos::FluidCharacteristicNumbersUtilities::CalculateElementThermalPecletNumber< false, false > ( const Element rElement,
const ElementSizeFunctionType rElementSizeCalculator 
)
static

Calculate the elemental Peclet number For the given element, this method calculates the Peclet number.

Template Parameters
ConsiderArtificialMagnitudesTemplate parameter specifying if the artificial values are considered
DensityIsNodalTemplate parameter specifying if the density is nodally stored
Parameters
rElementElement to calculate the Peclet number
Returns
double The element Peclet number

◆ CalculateElementViscousFourierNumber()

template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
template double Kratos::FluidCharacteristicNumbersUtilities::CalculateElementViscousFourierNumber< false, false > ( const Element rElement,
const ElementSizeFunctionType rElementSizeCalculator,
const double  Dt 
)
static

Calculate the elemental Fourier number For the given element, this method calculates the viscous Fourier number.

Template Parameters
ConsiderArtificialMagnitudesTemplate parameter specifying if the artificial values are considered
DensityIsNodalTemplate parameter specifying if the density is nodally stored
Parameters
rElementElement to calculate the Fourier number
Returns
double The element Fourier number

◆ CalculateElementViscousPecletNumber()

template<bool ConsiderArtificialMagnitudes, bool DensityIsNodal>
template double Kratos::FluidCharacteristicNumbersUtilities::CalculateElementViscousPecletNumber< false, false > ( const Element rElement,
const ElementSizeFunctionType rElementSizeCalculator 
)
static

Calculate the elemental Peclet number For the given element, this method calculates the Peclet number.

Template Parameters
ConsiderArtificialMagnitudesTemplate parameter specifying if the artificial values are considered
DensityIsNodalTemplate parameter specifying if the density is nodally stored
Parameters
rElementElement to calculate the Peclet number
Returns
double The element Peclet number

◆ CalculateLocalCFL()

void Kratos::FluidCharacteristicNumbersUtilities::CalculateLocalCFL ( ModelPart rModelPart)
static

Calculate each element's CFL for the current time step and provided model part The elemental CFL is stored in the CFL_NUMBER elemental variable To visualize in the post-process file, remember to print CFL_NUMBER as a Gauss point result.

◆ GetAverageElementSizeFunction()

FluidCharacteristicNumbersUtilities::ElementSizeFunctionType Kratos::FluidCharacteristicNumbersUtilities::GetAverageElementSizeFunction ( const Geometry< Node > &  rGeometry)
static

Get the average element size calculation function This method checks the geometry of the provided element and returns the corresponding average element size calculation fucntion.

Parameters
rGeometryGeoemtry in which the element size is to be computed
Returns
ElementSizeFunctionType Function to calculate the average element size

◆ GetMinimumElementSizeFunction()

FluidCharacteristicNumbersUtilities::ElementSizeFunctionType Kratos::FluidCharacteristicNumbersUtilities::GetMinimumElementSizeFunction ( const Geometry< Node > &  rGeometry)
static

Get the minimum element size calculation function This method checks the geometry of the provided element and returns the corresponding minimum element size calculation fucntion.

Parameters
rGeometryGeoemtry in which the element size is to be computed
Returns
ElementSizeFunctionType Function to calculate the minimum element size

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::FluidCharacteristicNumbersUtilities::KRATOS_CLASS_POINTER_DEFINITION ( FluidCharacteristicNumbersUtilities  )

Pointer definition of FluidCharacteristicNumbersUtilities.


The documentation for this class was generated from the following files: