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::EstimateDtUtility Class Reference

Estimate the time step in a fluid problem to obtain a given Courant number. More...

#include <estimate_dt_utilities.h>

Collaboration diagram for Kratos::EstimateDtUtility:

Public Member Functions

Life Cycle
 EstimateDtUtility (ModelPart &ModelPart, const double CFL, const double DtMin, const double DtMax)
 Constructor for CFD-based time step estimation. More...
 
 EstimateDtUtility (ModelPart &ModelPart, const double CFL, const double ViscousFourier, const double ThermalFourier, const bool ConsiderArtificialDiffusion, const bool NodalDensityFormulation, const double DtMin, const double DtMax, const bool ConsiderCompressibilityInCFL=false)
 Complete constructor. More...
 
 EstimateDtUtility (ModelPart &ModelPart, Parameters &rParameters)
 Constructor with Kratos parameters. More...
 
 ~EstimateDtUtility ()
 Destructor. More...
 
Operations
void SetCFL (const double CFL)
 Set the maximum CFL value allowed This method allows setting the maximum user-defined CFL number. More...
 
void SetViscousFourier (const double ViscousFourier)
 Set the maximum viscosity Peclet value allowed This method allows setting the maximum user-defined viscosity Peclet number. More...
 
void SetThermalFourier (const double ThermalFourier)
 Set the maximum conductivity Peclet value allowed This method allows setting the maximum user-defined thermal conductivity Peclet number. More...
 
void SetDtMin (const double DtMin)
 Set the minimum time step value allowed This method allows setting the minimum user-defined time increment value. More...
 
void SetDtMax (const double DtMax)
 Set the maximum time step value allowed This method allows setting the maximum user-defined time increment value. More...
 
double EstimateDt () const
 Calculate the maximum time step that satisfies the CFL user settings This method calculates the maximum time step that satisfies the Courant-Friedrichs-Lewy (CFL) condition according to the user-defined parameters (CFL and maximum/minimum delta time) More...
 

Type Definitions

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

Detailed Description

Estimate the time step in a fluid problem to obtain a given Courant number.

Member Typedef Documentation

◆ CFLCalculatorType

◆ ElementSizeFunctionType

Function type for the element size calculator function.

Constructor & Destructor Documentation

◆ EstimateDtUtility() [1/3]

Kratos::EstimateDtUtility::EstimateDtUtility ( ModelPart ModelPart,
const double  CFL,
const double  DtMin,
const double  DtMax 
)
inline

Constructor for CFD-based time step estimation.

Parameters
ModelPartThe model part containing the problem mesh
CFLThe user-defined Courant-Friedrichs-Lewy number
DtMinuser-defined minimum time increment allowed
DtMaxuser-defined maximum time increment allowed

◆ EstimateDtUtility() [2/3]

Kratos::EstimateDtUtility::EstimateDtUtility ( ModelPart ModelPart,
const double  CFL,
const double  ViscousFourier,
const double  ThermalFourier,
const bool  ConsiderArtificialDiffusion,
const bool  NodalDensityFormulation,
const double  DtMin,
const double  DtMax,
const bool  ConsiderCompressibilityInCFL = false 
)
inline

Complete constructor.

Parameters
ModelPartThe model part containing the problem mesh
CFLThe user-defined Courant-Friedrichs-Lewy number
ViscousFourierThe user-defined viscosity Peclet number
ThermalFourierThe user-defined thermal conductivity Peclet number
DtMinuser-defined minimum time increment allowed
DtMaxuser-defined maximum time increment allowed
ConsiderCompressibilityInCFLuser-defined switch to select between compressible or incompressible CFL stability conditions

◆ EstimateDtUtility() [3/3]

Kratos::EstimateDtUtility::EstimateDtUtility ( ModelPart ModelPart,
Parameters rParameters 
)
inline

Constructor with Kratos parameters.

Parameters
ModelPartThe model part containing the problem mesh
rParametersKratos parameters containing the CFL number and max time step

◆ ~EstimateDtUtility()

Kratos::EstimateDtUtility::~EstimateDtUtility ( )
inline

Destructor.

Member Function Documentation

◆ EstimateDt()

double Kratos::EstimateDtUtility::EstimateDt ( ) const

Calculate the maximum time step that satisfies the CFL user settings This method calculates the maximum time step that satisfies the Courant-Friedrichs-Lewy (CFL) condition according to the user-defined parameters (CFL and maximum/minimum delta time)

Returns
double A time step value that satisfies the user CFL condition for the current mesh and velocit field

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::EstimateDtUtility::KRATOS_CLASS_POINTER_DEFINITION ( EstimateDtUtility  )

Pointer definition of EstimateDtUtility.

◆ SetCFL()

void Kratos::EstimateDtUtility::SetCFL ( const double  CFL)

Set the maximum CFL value allowed This method allows setting the maximum user-defined CFL number.

Parameters
CFLTue user-defined maximum CFL number

◆ SetDtMax()

void Kratos::EstimateDtUtility::SetDtMax ( const double  DtMax)

Set the maximum time step value allowed This method allows setting the maximum user-defined time increment value.

Parameters
DtMaxThe user-defined maximum delta time

◆ SetDtMin()

void Kratos::EstimateDtUtility::SetDtMin ( const double  DtMin)

Set the minimum time step value allowed This method allows setting the minimum user-defined time increment value.

Parameters
DtMinThe user-defined minimum delta time

◆ SetThermalFourier()

void Kratos::EstimateDtUtility::SetThermalFourier ( const double  ThermalFourier)

Set the maximum conductivity Peclet value allowed This method allows setting the maximum user-defined thermal conductivity Peclet number.

Parameters
ThermalFourierTue user-defined maximum conductivity Peclet number

◆ SetViscousFourier()

void Kratos::EstimateDtUtility::SetViscousFourier ( const double  ViscousFourier)

Set the maximum viscosity Peclet value allowed This method allows setting the maximum user-defined viscosity Peclet number.

Parameters
ViscousFourierTue user-defined maximum viscosity Peclet number

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