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.
Classes
PfemFluidDynamicsApplication

Classes

class  Kratos::PfemFluidConstitutiveLaw
 This class contains the common infrastructure for the pfem fluid constitutive laws. More...
 
class  Kratos::CalculateWaveHeightUtility
 This function computes the wave height at a given point. More...
 
class  Kratos::TwoStepVPSolverSettings< TSparseSpace, TDenseSpace, TLinearSolver >
 Helper class to define solution strategies for TwoStepVPStrategy. More...
 
class  Kratos::SetMaterialPropertiesForThermalCouplingProcess
 This process sets the nodal value of thermal properties (density, conductivity and capacity) that depends on the temperature, which is necesssary for solving the termal part, since the convection-diffusion solver gets these nodal values for assembling the system. The value of these properties are computed according to the constitutive law of the incident elements of each node, using the nodal temperature, and the average is taken as the nodal value for the property. More...
 
class  Kratos::SetMeshVelocityForThermalCouplingProcess
 This method sets the MESH_VELOCITY equal to the nodal VELOCITY. More...
 
class  Kratos::UpdateConditionsOnFreeSurfaceProcess
 This process updates the conditions applied to the free surface after the remeshing. More...
 
class  Kratos::UpdateThermalModelPartProcess
 

Type Definitions

typedef ConstitutiveLaw Kratos::PfemFluidConstitutiveLaw::BaseType
 
typedef std::size_t Kratos::PfemFluidConstitutiveLaw::SizeType
 
 Kratos::PfemFluidConstitutiveLaw::KRATOS_CLASS_POINTER_DEFINITION (PfemFluidConstitutiveLaw)
 

Serialization

class Kratos::PfemFluidConstitutiveLaw::Serializer
 

Life Cycle

 Kratos::PfemFluidConstitutiveLaw::PfemFluidConstitutiveLaw ()
 Default constructor. More...
 
 Kratos::PfemFluidConstitutiveLaw::PfemFluidConstitutiveLaw (const PfemFluidConstitutiveLaw &rOther)
 Copy constructor. More...
 
 Kratos::PfemFluidConstitutiveLaw::~PfemFluidConstitutiveLaw () override
 Destructor. More...
 

Operations

ConstitutiveLaw::Pointer Kratos::PfemFluidConstitutiveLaw::Clone () const override
 Initialize a new instance of this type of law. More...
 
void Kratos::PfemFluidConstitutiveLaw::CalculateMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 Calculate the response of the material for the current strain rates. More...
 
int Kratos::PfemFluidConstitutiveLaw::Check (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const ProcessInfo &rCurrentProcessInfo) const override
 Validate the data received by the constitutive law. More...
 

Access

doubleKratos::PfemFluidConstitutiveLaw::CalculateValue (ConstitutiveLaw::Parameters &rParameters, const Variable< double > &rThisVariable, double &rValue) override
 

Inquiry

SizeType Kratos::PfemFluidConstitutiveLaw::WorkingSpaceDimension () override
 This lets user classes know if the constitutive law is defined for 1D, 2D or 3D. More...
 
SizeType Kratos::PfemFluidConstitutiveLaw::GetStrainSize () const override
 This lets the user know the size of the strain rate vector (in Voigt notation) used by the constitutive law. More...
 

Input and output

std::string Kratos::PfemFluidConstitutiveLaw::Info () const override
 
void Kratos::PfemFluidConstitutiveLaw::PrintInfo (std::ostream &rOStream) const override
 Print basic information about this constitutive law instance. More...
 
void Kratos::PfemFluidConstitutiveLaw::PrintData (std::ostream &rOStream) const override
 Print detailed information about this constitutive law instance and its managed data. More...
 

Protected Operations

void Kratos::PfemFluidConstitutiveLaw::EffectiveViscousConstitutiveMatrix2D (double EffectiveViscosity, Matrix &rC)
 Helper function to write the constitutive matrix using an effective viscosity (2D version). More...
 
void Kratos::PfemFluidConstitutiveLaw::EffectiveViscousConstitutiveMatrix3D (double EffectiveViscosity, Matrix &rC)
 Helper function to write the constitutive matrix using an effective viscosity (3D version). More...
 
double Kratos::PfemFluidConstitutiveLaw::GetThetaMomentumForPressureIntegration ()
 

Protected Access

virtual double Kratos::PfemFluidConstitutiveLaw::GetEffectiveMaterialParameter (ConstitutiveLaw::Parameters &rParameters, const Variable< double > &rVariable) const
 Get the Effective Density object Get the effective density for the fluid. More...
 
virtual double Kratos::PfemFluidConstitutiveLaw::CalculateAveragedVariable (const Variable< double > &rVariableInput, ConstitutiveLaw::Parameters &rParameters, unsigned int step) const
 Get the averaged value of the Input Variable. More...
 
virtual double Kratos::PfemFluidConstitutiveLaw::CalculateInGaussPoint (const Variable< double > &rVariableInput, ConstitutiveLaw::Parameters &rParameters, unsigned int step) const
 Get the averaged value of the Input Variable. More...
 
virtual double Kratos::PfemFluidConstitutiveLaw::GetValueFromTable (const Variable< double > &rIndependentVariable, const Variable< double > &rDependentVariable, ConstitutiveLaw::Parameters &rParameters) const
 Get the Value From Table object For an table independent variable, this method returns the table dependent variable value. Note that the properties container must have a table relating the two variables. More...
 

Input and output

template<class TDenseSpace , class TSparseSpace , class TLinearSolver >
std::istream & Kratos::operator>> (std::istream &rIStream, TwoStepVPSolverSettings< TSparseSpace, TDenseSpace, TLinearSolver > &rThis)
 input stream function More...
 
template<class TDenseSpace , class TSparseSpace , class TLinearSolver >
std::ostream & Kratos::operator<< (std::ostream &rOStream, const TwoStepVPSolverSettings< TSparseSpace, TDenseSpace, TLinearSolver > &rThis)
 output stream function More...
 

Detailed Description

Typedef Documentation

◆ BaseType

◆ SizeType

Function Documentation

◆ CalculateAveragedVariable()

double Kratos::PfemFluidConstitutiveLaw::CalculateAveragedVariable ( const Variable< double > &  rVariableInput,
ConstitutiveLaw::Parameters rParameters,
unsigned int  step 
) const
protectedvirtual

Get the averaged value of the Input Variable.

Parameters
rParametersinput variable, constitutive law parameters, step in which the variable is to evaluated
Returns
double obtained averaged variable

◆ CalculateInGaussPoint()

double Kratos::PfemFluidConstitutiveLaw::CalculateInGaussPoint ( const Variable< double > &  rVariableInput,
ConstitutiveLaw::Parameters rParameters,
unsigned int  step 
) const
protectedvirtual

Get the averaged value of the Input Variable.

Parameters
rParametersinput variable, constitutive law parameters, step in which the variable is to evaluated
Returns
double obtained averaged variable

◆ CalculateMaterialResponseCauchy()

void Kratos::PfemFluidConstitutiveLaw::CalculateMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
overridevirtual

Calculate the response of the material for the current strain rates.

This is the main method for fluid constitutive laws. These are returned as rValues.GetConstitutiveMatrix() and rValues.GetStressVector(), respectively.

Note
Besides computing the response, derived constitutive laws are responsible for setting the effective viscosity for the law, which will be used by the element to calculate the stabilization Tau.

Reimplemented from Kratos::ConstitutiveLaw.

Reimplemented in Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, and Kratos::FrictionalViscoplastic2DLaw.

◆ CalculateValue()

double & Kratos::PfemFluidConstitutiveLaw::CalculateValue ( ConstitutiveLaw::Parameters rParameters,
const Variable< double > &  rThisVariable,
double rValue 
)
overridevirtual
Returns
The effective density

Reimplemented from Kratos::ConstitutiveLaw.

◆ Check()

int Kratos::PfemFluidConstitutiveLaw::Check ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const ProcessInfo rCurrentProcessInfo 
) const
overridevirtual

◆ Clone()

ConstitutiveLaw::Pointer Kratos::PfemFluidConstitutiveLaw::Clone ( ) const
overridevirtual

◆ EffectiveViscousConstitutiveMatrix2D()

void Kratos::PfemFluidConstitutiveLaw::EffectiveViscousConstitutiveMatrix2D ( double  EffectiveViscosity,
Matrix rC 
)
protected

Helper function to write the constitutive matrix using an effective viscosity (2D version).

It returns a matrix with the same structure as for a Newtonian fluid, using the given viscosity.

Parameters
[in]EffectiveViscosityEquivalent viscosity for the fluid (dynamic units – Pa s – assumed).
[out]rCResulting constitutive matrix.

◆ EffectiveViscousConstitutiveMatrix3D()

void Kratos::PfemFluidConstitutiveLaw::EffectiveViscousConstitutiveMatrix3D ( double  EffectiveViscosity,
Matrix rC 
)
protected

Helper function to write the constitutive matrix using an effective viscosity (3D version).

It returns a matrix with the same structure as for a Newtonian fluid, using the given viscosity.

Parameters
[in]EffectiveViscosityEquivalent viscosity for the fluid (dynamic units – Pa s – assumed).
[out]rCResulting constitutive matrix.

◆ GetEffectiveMaterialParameter()

double Kratos::PfemFluidConstitutiveLaw::GetEffectiveMaterialParameter ( ConstitutiveLaw::Parameters rParameters,
const Variable< double > &  rVariable 
) const
protectedvirtual

◆ GetStrainSize()

ConstitutiveLaw::SizeType Kratos::PfemFluidConstitutiveLaw::GetStrainSize ( ) const
overridevirtual

This lets the user know the size of the strain rate vector (in Voigt notation) used by the constitutive law.

Returns
The size of the strain rate vector.

Reimplemented from Kratos::ConstitutiveLaw.

Reimplemented in Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, and Kratos::FrictionalViscoplastic2DLaw.

◆ GetThetaMomentumForPressureIntegration()

double Kratos::PfemFluidConstitutiveLaw::GetThetaMomentumForPressureIntegration ( )
inlineprotected

◆ GetValueFromTable()

double Kratos::PfemFluidConstitutiveLaw::GetValueFromTable ( const Variable< double > &  rIndependentVariable,
const Variable< double > &  rDependentVariable,
ConstitutiveLaw::Parameters rParameters 
) const
protectedvirtual

Get the Value From Table object For an table independent variable, this method returns the table dependent variable value. Note that the properties container must have a table relating the two variables.

Parameters
rIndependentVariableindependent variable
rDependentVariabledependent variable
rParametersconstitutive law parameters container
Returns
double output variable value

◆ Info()

std::string Kratos::PfemFluidConstitutiveLaw::Info ( ) const
overridevirtual

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::PfemFluidConstitutiveLaw::KRATOS_CLASS_POINTER_DEFINITION ( PfemFluidConstitutiveLaw  )

◆ operator<<()

template<class TDenseSpace , class TSparseSpace , class TLinearSolver >
std::ostream& Kratos::operator<< ( std::ostream &  rOStream,
const TwoStepVPSolverSettings< TSparseSpace, TDenseSpace, TLinearSolver > &  rThis 
)
inline

output stream function

◆ operator>>()

template<class TDenseSpace , class TSparseSpace , class TLinearSolver >
std::istream& Kratos::operator>> ( std::istream &  rIStream,
TwoStepVPSolverSettings< TSparseSpace, TDenseSpace, TLinearSolver > &  rThis 
)
inline

input stream function

◆ PfemFluidConstitutiveLaw() [1/2]

Kratos::PfemFluidConstitutiveLaw::PfemFluidConstitutiveLaw ( )

Default constructor.

◆ PfemFluidConstitutiveLaw() [2/2]

Kratos::PfemFluidConstitutiveLaw::PfemFluidConstitutiveLaw ( const PfemFluidConstitutiveLaw rOther)

Copy constructor.

◆ PrintData()

void Kratos::PfemFluidConstitutiveLaw::PrintData ( std::ostream &  rOStream) const
overridevirtual

Print detailed information about this constitutive law instance and its managed data.

Reimplemented from Kratos::ConstitutiveLaw.

◆ PrintInfo()

void Kratos::PfemFluidConstitutiveLaw::PrintInfo ( std::ostream &  rOStream) const
overridevirtual

Print basic information about this constitutive law instance.

Reimplemented from Kratos::ConstitutiveLaw.

◆ WorkingSpaceDimension()

ConstitutiveLaw::SizeType Kratos::PfemFluidConstitutiveLaw::WorkingSpaceDimension ( )
overridevirtual

This lets user classes know if the constitutive law is defined for 1D, 2D or 3D.

Returns
The number of spatial dimensions (1, 2 or 3).

Reimplemented from Kratos::ConstitutiveLaw.

Reimplemented in Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, and Kratos::FrictionalViscoplastic2DLaw.

◆ ~PfemFluidConstitutiveLaw()

Kratos::PfemFluidConstitutiveLaw::~PfemFluidConstitutiveLaw ( )
override

Destructor.

Friends

◆ Serializer

friend class Serializer
friend