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.
Public Member Functions | Protected Member Functions | List of all members
Kratos::DynamicVMS< TDim > Class Template Reference

A stabilized element for the incompressible Navier-Stokes equations. More...

#include <dynamic_vms.h>

Inheritance diagram for Kratos::DynamicVMS< TDim >:
Collaboration diagram for Kratos::DynamicVMS< TDim >:

Public Member Functions

void EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const
 
void EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const
 
void GetDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const
 
void GetDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const
 
Life Cycle
 DynamicVMS (IndexType NewId, const NodesArrayType &ThisNodes)
 Constructor using an array of nodes. More...
 
 DynamicVMS (IndexType NewId, GeometryType::Pointer pGeometry)
 Constructor using a geometry object. More...
 
 DynamicVMS (IndexType NewId, GeometryType::Pointer pGeometry, const GeometryData::IntegrationMethod ThisIntegrationMethod)
 Constructor using a geometry object and a custom integration rule. More...
 
 DynamicVMS (IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties)
 Constuctor using geometry and properties. More...
 
 DynamicVMS (IndexType NewId, GeometryType::Pointer pGeometry, Properties::Pointer pProperties, const GeometryData::IntegrationMethod ThisIntegrationMethod)
 Constructor using geometry, properties and custom integration rule. More...
 
 ~DynamicVMS () override
 Destructor. More...
 
Operations
Element::Pointer Create (IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
 Create a new element of this type. More...
 
Element::Pointer Create (IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override
 Create a new element of this type. More...
 
void Initialize (const ProcessInfo &rCurrentProcessInfo) override
 Initialize containters for subscales on integration points. More...
 
void InitializeSolutionStep (const ProcessInfo &rCurrentProcessInfo) override
 Prepare the element for a new solution step. Update the values on the subscales and evaluate elemental shape functions. More...
 
void InitializeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo) override
 Calculate a new value for the velocity subscale. More...
 
void CalculateLocalSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
 
void CalculateRightHandSide (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
 
void CalculateLocalVelocityContribution (MatrixType &rDampingMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
 Computes the local contribution associated to 'new' velocity and pressure values. More...
 
void CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override
 
void EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const override
 Provides the global indices for each one of this element's local rows. More...
 
void GetDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const override
 Returns a list of the element's Dofs. More...
 
void GetFirstDerivativesVector (Vector &rValues, int Step=0) const override
 Returns VELOCITY_X, VELOCITY_Y, (VELOCITY_Z,) PRESSURE for each node. More...
 
void GetSecondDerivativesVector (Vector &rValues, int Step=0) const override
 Returns ACCELERATION_X, ACCELERATION_Y, (ACCELERATION_Z,) 0 for each node. More...
 
void Calculate (const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &rOutput, const ProcessInfo &rCurrentProcessInfo) override
 
void CalculateOnIntegrationPoints (const Variable< array_1d< double, 3 > > &rVariable, std::vector< array_1d< double, 3 > > &rOutput, const ProcessInfo &rCurrentProcessInfo) override
 
void CalculateOnIntegrationPoints (const Variable< double > &rVariable, std::vector< double > &rValues, const ProcessInfo &rCurrentProcessInfo) override
 
void CalculateOnIntegrationPoints (const Variable< array_1d< double, 6 > > &rVariable, std::vector< array_1d< double, 6 > > &rValues, const ProcessInfo &rCurrentProcessInfo) override
 Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning. More...
 
void CalculateOnIntegrationPoints (const Variable< Vector > &rVariable, std::vector< Vector > &rValues, const ProcessInfo &rCurrentProcessInfo) override
 Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning. More...
 
void CalculateOnIntegrationPoints (const Variable< Matrix > &rVariable, std::vector< Matrix > &rValues, const ProcessInfo &rCurrentProcessInfo) override
 Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning. More...
 
void SetValuesOnIntegrationPoints (const Variable< double > &rVariable, const std::vector< double > &rValues, const ProcessInfo &rCurrentProcessInfo) override
 
Access
GeometryData::IntegrationMethod GetIntegrationMethod () const override
 Accessor to the integration method. More...
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::Element
 Element (IndexType NewId=0)
 
 Element (IndexType NewId, const NodesArrayType &ThisNodes)
 
 Element (IndexType NewId, GeometryType::Pointer pGeometry)
 
 Element (IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties)
 
 Element (Element const &rOther)
 Copy constructor. More...
 
 ~Element () override
 Destructor. More...
 
Elementoperator= (Element const &rOther)
 Assignment operator. More...
 
virtual Pointer Clone (IndexType NewId, NodesArrayType const &ThisNodes) const
 It creates a new element pointer and clones the previous element data. More...
 
virtual void GetValuesVector (Vector &values, int Step=0) const
 
virtual void ResetConstitutiveLaw ()
 
virtual void FinalizeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo)
 
virtual void FinalizeSolutionStep (const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateLeftHandSide (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateFirstDerivativesContributions (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateFirstDerivativesLHS (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateFirstDerivativesRHS (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateSecondDerivativesContributions (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateSecondDerivativesLHS (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateSecondDerivativesRHS (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateDampingMatrix (MatrixType &rDampingMatrix, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateLumpedMassVector (VectorType &rLumpedMassVector, const ProcessInfo &rCurrentProcessInfo) const
 
virtual void AddExplicitContribution (const ProcessInfo &rCurrentProcessInfo)
 
virtual void AddExplicitContribution (const VectorType &rRHSVector, const Variable< VectorType > &rRHSVariable, const Variable< double > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo)
 This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the double version) More...
 
virtual void AddExplicitContribution (const VectorType &rRHSVector, const Variable< VectorType > &rRHSVariable, const Variable< array_1d< double, 3 > > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo)
 This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the vector version) More...
 
virtual void AddExplicitContribution (const MatrixType &rLHSMatrix, const Variable< MatrixType > &rLHSVariable, const Variable< Matrix > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo)
 This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the matrix version) More...
 
virtual void Calculate (const Variable< double > &rVariable, double &Output, const ProcessInfo &rCurrentProcessInfo)
 
virtual void Calculate (const Variable< Vector > &rVariable, Vector &Output, const ProcessInfo &rCurrentProcessInfo)
 
virtual void Calculate (const Variable< Matrix > &rVariable, Matrix &Output, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateOnIntegrationPoints (const Variable< bool > &rVariable, std::vector< bool > &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateOnIntegrationPoints (const Variable< int > &rVariable, std::vector< int > &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateOnIntegrationPoints (const Variable< array_1d< double, 3 >> &rVariable, std::vector< array_1d< double, 3 >> &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateOnIntegrationPoints (const Variable< array_1d< double, 4 >> &rVariable, std::vector< array_1d< double, 4 >> &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateOnIntegrationPoints (const Variable< array_1d< double, 6 >> &rVariable, std::vector< array_1d< double, 6 >> &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateOnIntegrationPoints (const Variable< array_1d< double, 9 >> &rVariable, std::vector< array_1d< double, 9 >> &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateOnIntegrationPoints (const Variable< ConstitutiveLaw::Pointer > &rVariable, std::vector< ConstitutiveLaw::Pointer > &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< bool > &rVariable, const std::vector< bool > &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< int > &rVariable, const std::vector< int > &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< array_1d< double, 3 >> &rVariable, const std::vector< array_1d< double, 3 >> &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< array_1d< double, 4 >> &rVariable, const std::vector< array_1d< double, 4 >> &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< array_1d< double, 6 >> &rVariable, const std::vector< array_1d< double, 6 >> &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< array_1d< double, 9 >> &rVariable, const std::vector< array_1d< double, 9 >> &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< Vector > &rVariable, const std::vector< Vector > &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< Matrix > &rVariable, const std::vector< Matrix > &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void SetValuesOnIntegrationPoints (const Variable< ConstitutiveLaw::Pointer > &rVariable, const std::vector< ConstitutiveLaw::Pointer > &rValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual int Check (const ProcessInfo &rCurrentProcessInfo) const
 
virtual void MassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo)
 
virtual void AddMassMatrix (MatrixType &rLeftHandSideMatrix, double coeff, const ProcessInfo &rCurrentProcessInfo)
 
virtual void DampMatrix (MatrixType &rDampMatrix, const ProcessInfo &rCurrentProcessInfo)
 
virtual void AddInertiaForces (VectorType &rRightHandSideVector, double coeff, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateSensitivityMatrix (const Variable< double > &rDesignVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateSensitivityMatrix (const Variable< array_1d< double, 3 > > &rDesignVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
PropertiesType::Pointer pGetProperties ()
 returns the pointer to the property of the element. Does not throw an error, to allow copying of elements which don't have any property assigned. More...
 
const PropertiesType::Pointer pGetProperties () const
 
PropertiesTypeGetProperties ()
 
PropertiesType const & GetProperties () const
 
void SetProperties (PropertiesType::Pointer pProperties)
 
bool HasProperties () const
 Check that the Element has a correctly initialized pointer to a Properties instance. More...
 
virtual const Parameters GetSpecifications () const
 This method provides the specifications/requirements of the element. More...
 
 KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (Element)
 
- Public Member Functions inherited from Kratos::GeometricalObject
 GeometricalObject (IndexType NewId=0)
 Default constructor. More...
 
 GeometricalObject (IndexType NewId, GeometryType::Pointer pGeometry)
 Default constructor. More...
 
 ~GeometricalObject () override
 Destructor. More...
 
 GeometricalObject (GeometricalObject const &rOther)
 Copy constructor. More...
 
GeometricalObjectoperator= (GeometricalObject const &rOther)
 Assignment operator. More...
 
virtual void SetGeometry (GeometryType::Pointer pGeometry)
 Sets the pointer to the geometry. More...
 
GeometryType::Pointer pGetGeometry ()
 Returns the pointer to the geometry. More...
 
const GeometryType::Pointer pGetGeometry () const
 Returns the pointer to the geometry (const version) More...
 
GeometryTypeGetGeometry ()
 Returns the reference of the geometry. More...
 
GeometryType const & GetGeometry () const
 Returns the reference of the geometry (const version) More...
 
FlagsGetFlags ()
 Returns the flags of the object. More...
 
Flags const & GetFlags () const
 Returns the flags of the object (const version) More...
 
void SetFlags (Flags const &rThisFlags)
 Sets the flags of the object. More...
 
DataValueContainerData ()
 
DataValueContainerGetData ()
 
DataValueContainer const & GetData () const
 
void SetData (DataValueContainer const &rThisData)
 
template<class TDataType >
bool Has (const Variable< TDataType > &rThisVariable) const
 
template<class TVariableType >
void SetValue (const TVariableType &rThisVariable, typename TVariableType::Type const &rValue)
 
template<class TVariableType >
TVariableType::Type & GetValue (const TVariableType &rThisVariable)
 
template<class TVariableType >
TVariableType::Type const & GetValue (const TVariableType &rThisVariable) const
 
unsigned int use_count () const noexcept
 
 KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (GeometricalObject)
 Pointer definition of GeometricalObject. More...
 
bool IsActive () const
 Checks if the GeometricalObject is active. More...
 
- Public Member Functions inherited from Kratos::IndexedObject
 IndexedObject (IndexType NewId=0)
 Default constructor. More...
 
virtual ~IndexedObject ()
 Destructor. More...
 
 IndexedObject (IndexedObject const &rOther)
 Copy constructor. More...
 
IndexedObjectoperator= (IndexedObject const &rOther)
 Assignment operator. More...
 
template<class TObjectType >
IndexType operator() (TObjectType const &rThisObject) const
 
IndexType Id () const
 
IndexType GetId () const
 
virtual void SetId (IndexType NewId)
 
IndexTypeDepricatedIdAccess ()
 TODO: remove this function when removing data_file_io object. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (IndexedObject)
 Pointer definition of IndexedObject. More...
 
- Public Member Functions inherited from Kratos::Flags
Flagsoperator= (Flags const &rOther)
 Assignment operator. More...
 
 operator bool () const
 
Flags operator~ () const
 
bool operator! () const
 
void AssignFlags (Flags const &rOther)
 
void Set (const Flags ThisFlag)
 
void Set (const Flags ThisFlag, bool Value)
 
void Reset (const Flags ThisFlag)
 
void Flip (const Flags ThisFlag)
 
void SetPosition (IndexType Position, bool Value=true)
 
bool GetPosition (IndexType Position) const
 
void FlipPosition (IndexType Position)
 
void ClearPosition (IndexType Position)
 
void Clear ()
 
Flags AsFalse () const
 
bool Is (Flags const &rOther) const
 
bool IsDefined (Flags const &rOther) const
 
bool IsNot (Flags const &rOther) const
 
bool IsNotDefined (Flags const &rOther) const
 
 KRATOS_CLASS_POINTER_DEFINITION (Flags)
 Pointer definition of Flags. More...
 
const Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. More...
 

Protected Member Functions

void AddViscousTerm (MatrixType &rDampingMatrix, const double Weight, const ShapeDerivativesType &rDN_DX)
 
void AddViscousTerm (MatrixType &rDampingMatrix, const double Weight, const ShapeDerivativesType &rDN_DX)
 
void DenseSystemSolve (const Matrix &rA, const Vector &rB, Vector &rX)
 
void DenseSystemSolve (const Matrix &rA, const Vector &rB, Vector &rX)
 
void EvaluateVorticity (array_1d< double, 3 > &rVorticity, const ShapeDerivativesType &rDN_DX)
 
void EvaluateVorticity (array_1d< double, 3 > &rVorticity, const ShapeDerivativesType &rDN_DX)
 
Protected Operations
virtual void CalculateGeometryData ()
 Initialize shape functions derivatives and calculate the determinant of the element's Jacobian. More...
 
virtual void UpdateSubscale (const ProcessInfo &rCurrentProcessInfo)
 Calculate the value of the subscale velocity for next iteration. More...
 
virtual void LinearUpdateSubscale (const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateASGSVelocityContribution (MatrixType &rDampingMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
 
virtual void CalculateOSSVelocityContribution (MatrixType &rDampingMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
 
virtual void LumpedMassMatrix (MatrixType &rMassMatrix)
 
virtual void ConsistentMassMatrix (MatrixType &rMassMatrix)
 
template<typename TValueType >
void EvaluateInPoint (TValueType &rValue, const Kratos::Variable< TValueType > &rVariable, const ShapeFunctionsType &rN)
 
template<typename TValueType >
void EvaluateInPoint (TValueType &rValue, const Kratos::Variable< TValueType > &rVariable, const ShapeFunctionsType &rN, const unsigned int Step)
 
virtual void EvaluateConvVelocity (array_1d< double, 3 > &rConvection, const ShapeFunctionsType &rN)
 
virtual void EvaluateConvVelocity (array_1d< double, 3 > &rConvection, const array_1d< double, 3 > &rSubscaleVel, const ShapeFunctionsType &rN)
 
virtual void EvaluateViscosity (double &rViscosity, const ShapeFunctionsType &rN)
 Evaluate kinematic viscosity at the given area coordinates. This function is intended to be used for the implementation of Smagorinsky in derived classes. More...
 
virtual void ConvectionOperator (Vector &rResult, const array_1d< double, 3 > &rConvVel)
 
virtual double TauOne (const double Density, const double Viscosity, const double ConvVel)
 Calculate velocity subscale stabilization parameter. More...
 
virtual double TauTwo (const double Density, const double Viscosity, const double ConvVel)
 Calculate pressure subscale stabilization parameter. More...
 
virtual double TauTime (const double Density, const double Viscosity, const double ConvVel, const double Dt)
 Calculate 1 / ( rho/dt + 1/TauOne ) More...
 
virtual double InvTauTime (const double Density, const double Viscosity, const double ConvVel, const double Dt)
 Calculate 1 / TauTime. More...
 
virtual void ASGSMomentumResidual (array_1d< double, 3 > &rResult, const double Density, const array_1d< double, 3 > &rConvVel, const ShapeFunctionsType &rN)
 
virtual void OSSMomentumResidual (array_1d< double, 3 > &rResult, const double Density, const array_1d< double, 3 > &rConvVel, const ShapeFunctionsType &rN)
 
virtual void MassResidual (double &rResult)
 
virtual void AddViscousTerm (MatrixType &rDampingMatrix, const double Weight, const ShapeDerivativesType &rDN_DX)
 
virtual void DenseSystemSolve (const Matrix &rA, const Vector &rB, Vector &rX)
 
void EvaluateVorticity (array_1d< double, 3 > &rVorticity, const ShapeDerivativesType &rDN_DX)
 

Type Definitions

typedef Kratos::Vector ShapeFunctionsType
 Type for shape function values container. More...
 
typedef Kratos::Matrix ShapeDerivativesType
 Type for shape function derivatives container. More...
 
 KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (DynamicVMS)
 Pointer definition of DynamicVMS. More...
 

Serialization

class Serializer
 

Additional Inherited Members

- Public Types inherited from Kratos::Element
typedef Element ElementType
 definition of element type More...
 
typedef GeometricalObject BaseType
 base type: an GeometricalObject that automatically has a unique number More...
 
typedef Node NodeType
 definition of node type (default is: Node) More...
 
typedef Properties PropertiesType
 
typedef Geometry< NodeTypeGeometryType
 definition of the geometry type with given NodeType More...
 
typedef Geometry< NodeType >::PointsArrayType NodesArrayType
 definition of nodes container type, redefined from GeometryType More...
 
typedef Vector VectorType
 
typedef Matrix MatrixType
 
typedef std::size_t IndexType
 
typedef std::size_t SizeType
 
typedef Dof< doubleDofType
 
typedef std::vector< std::size_t > EquationIdVectorType
 
typedef std::vector< DofType::PointerDofsVectorType
 
typedef PointerVectorSet< DofTypeDofsArrayType
 
typedef GeometryData::IntegrationMethod IntegrationMethod
 Type definition for integration methods. More...
 
typedef GeometryData GeometryDataType
 
- Public Types inherited from Kratos::GeometricalObject
typedef Node NodeType
 Definition of the node type. More...
 
typedef Geometry< NodeTypeGeometryType
 The geometry type definition. More...
 
typedef std::size_t IndexType
 Defines the index type. More...
 
typedef std::size_t result_type
 Defines the result type. More...
 
- Public Types inherited from Kratos::IndexedObject
typedef std::size_t IndexType
 The definition of the index type. More...
 
typedef std::size_t result_type
 The definition of the result_type. More...
 
- Public Types inherited from Kratos::Flags
enum  FlagsList {
  Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 ,
  Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 ,
  Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 ,
  Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 ,
  Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 ,
  Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 ,
  Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 ,
  Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30
}
 
typedef int64_t BlockType
 
typedef int64_t FlagType
 
typedef std::size_t IndexType
 
- Static Public Member Functions inherited from Kratos::GeometricalObject
static bool HasSameType (const GeometricalObject &rLHS, const GeometricalObject &rRHS)
 Checks if two GeometricalObject have the same type. More...
 
static bool HasSameType (const GeometricalObject *rLHS, const GeometricalObject *rRHS)
 Checks if two GeometricalObject have the same type (pointer version) More...
 
static bool HasSameGeometryType (const GeometricalObject &rLHS, const GeometricalObject &rRHS)
 Checks if two GeometricalObject have the same geometry type. More...
 
static bool HasSameGeometryType (const GeometricalObject *rLHS, const GeometricalObject *rRHS)
 Checks if two GeometricalObject have the same geometry type (pointer version) More...
 
static bool IsSame (const GeometricalObject &rLHS, const GeometricalObject &rRHS)
 Checks if two GeometricalObject are the same. More...
 
static bool IsSame (const GeometricalObject *rLHS, const GeometricalObject *rRHS)
 Checks if two GeometricalObject are the same (pointer version) More...
 
- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 

Detailed Description

template<unsigned int TDim>
class Kratos::DynamicVMS< TDim >

A stabilized element for the incompressible Navier-Stokes equations.

Todo:
Rewrite this documentation This class implements a stabilized formulation based on the Variational Multiscale framework. The the subscales can be modeled using either Algebraic Subgird Scales (ASGS) or Orthogonal Subscales (OSS). In the case of OSS, the projection terms are treated explicitly (computed using the results of the previous iteration) and the subscales are not tracked in time. The choice of subscale model is made based on the ProcessInfo variable OSS_SWITCH (OSS if 1, ASGS otherwise). This class implements both the 2D and 3D versions of the element.

The ASGS implementation follows Ramon Codina, A stabilized finite element method for generalized stationary incompressible flows, Computer Methods in Applied Mechanics and Engineering. Vol. 190 (2001), 2681-2706.

The OSS implementation corresponds to the case identified as explicit, quasi- static orthogonal subscales in Ramon Codina, Stabilized finite element approximation of transient incompressible flows using orthogonal subscales, Computer Methods in Applied Mechanics and Engineering. Vol. 191 (2002), 4295-4321.

In addition to the stabilization, this element implements the Smagorinsky model of turbulence. This turbulent term is only activated if the elemental value C_SMAGORINSKY is set to something other than zero.

This class requires at least the following variables:
On each Node, as solution step variables VELOCITY, PRESSURE, ACCELERATION, MESH_VELOCITY.
On ProcessInfo OSS_SWITCH, DELTA_TIME.
If OSS is used, the nodes also require NODAL_AREA, ADVPROJ and DIVPROJ as solution step variables.
If Smagorinsky is used, C_SMAGORINSKY has to be defined on the elements.
Error estimation stores ERROR_RATIO on the elements.
Some additional variables can be used to print results on the element: TAUONE, TAUTWO, MU, VORTICITY.

Note
Unlike VMS, this class does not use the DYNAMIC_TAU ProcessInfo value, which is always assumed 1.0
See also
ResidualBasedEliminationBuilderAndSolver compatible monolithic solution strategy.
PressureSplittingBuilderAndSolver compatible segregated solution strategy.
TrilinosPressureSplittingBuilderAndSolver compatible mpi strategy.
DynamicSmagorinskyUtils to set the Smagorinsky parameter dynamically.
ResidualBasedPredictorCorrectorVelocityBossakScheme time scheme that can use OSS stabilization.

Member Typedef Documentation

◆ ShapeDerivativesType

template<unsigned int TDim>
typedef Kratos::Matrix Kratos::DynamicVMS< TDim >::ShapeDerivativesType

Type for shape function derivatives container.

◆ ShapeFunctionsType

template<unsigned int TDim>
typedef Kratos::Vector Kratos::DynamicVMS< TDim >::ShapeFunctionsType

Type for shape function values container.

Constructor & Destructor Documentation

◆ DynamicVMS() [1/5]

template<unsigned int TDim>
Kratos::DynamicVMS< TDim >::DynamicVMS ( IndexType  NewId,
const NodesArrayType ThisNodes 
)

Constructor using an array of nodes.

Parameters
NewIdIndex of the new element
ThisNodesAn array containing the nodes of the new element

◆ DynamicVMS() [2/5]

template<unsigned int TDim>
Kratos::DynamicVMS< TDim >::DynamicVMS ( IndexType  NewId,
GeometryType::Pointer  pGeometry 
)

Constructor using a geometry object.

Parameters
NewIdIndex of the new element
pGeometryPointer to a geometry object

◆ DynamicVMS() [3/5]

template<unsigned int TDim>
Kratos::DynamicVMS< TDim >::DynamicVMS ( IndexType  NewId,
GeometryType::Pointer  pGeometry,
const GeometryData::IntegrationMethod  ThisIntegrationMethod 
)

Constructor using a geometry object and a custom integration rule.

Parameters
NewIdIndex of the new element
pGeometryPointer to a geometry object
ThisIntegrationMethodIntegration method to use in all element integrals.
Note
Only GI_GAUSS_1 (exact integrals for linear terms) or GI_GAUSS_2 (exact integrals up to quadratic terms) make sense as integration method.

◆ DynamicVMS() [4/5]

template<unsigned int TDim>
Kratos::DynamicVMS< TDim >::DynamicVMS ( IndexType  NewId,
GeometryType::Pointer  pGeometry,
PropertiesType::Pointer  pProperties 
)

Constuctor using geometry and properties.

Parameters
NewIdIndex of the new element
pGeometryPointer to a geometry object
pPropertiesPointer to the element's properties

◆ DynamicVMS() [5/5]

template<unsigned int TDim>
Kratos::DynamicVMS< TDim >::DynamicVMS ( IndexType  NewId,
GeometryType::Pointer  pGeometry,
Properties::Pointer  pProperties,
const GeometryData::IntegrationMethod  ThisIntegrationMethod 
)

Constructor using geometry, properties and custom integration rule.

Parameters
NewIdIndex of the new element.
pGeometryPointer to a geometry object.
pPropertiesPointer to the element's properties.
ThisIntegrationMethodIntegration method to use in all element integrals.
Note
Only GI_GAUSS_1 (exact integrals for linear terms) or GI_GAUSS_2 (exact integrals up to quadratic terms) make sense as integration method.

◆ ~DynamicVMS()

template<unsigned int TDim>
Kratos::DynamicVMS< TDim >::~DynamicVMS
override

Destructor.

Member Function Documentation

◆ AddViscousTerm() [1/3]

void Kratos::DynamicVMS< 2 >::AddViscousTerm ( MatrixType rDampingMatrix,
const double  Weight,
const ShapeDerivativesType rDN_DX 
)
protected

◆ AddViscousTerm() [2/3]

void Kratos::DynamicVMS< 3 >::AddViscousTerm ( MatrixType rDampingMatrix,
const double  Weight,
const ShapeDerivativesType rDN_DX 
)
protected

◆ AddViscousTerm() [3/3]

template<unsigned int TDim>
virtual void Kratos::DynamicVMS< TDim >::AddViscousTerm ( MatrixType rDampingMatrix,
const double  Weight,
const ShapeDerivativesType rDN_DX 
)
protectedvirtual

◆ ASGSMomentumResidual()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::ASGSMomentumResidual ( array_1d< double, 3 > &  rResult,
const double  Density,
const array_1d< double, 3 > &  rConvVel,
const ShapeFunctionsType rN 
)
protectedvirtual

◆ Calculate()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::Calculate ( const Variable< array_1d< double, 3 > > &  rVariable,
array_1d< double, 3 > &  rOutput,
const ProcessInfo rCurrentProcessInfo 
)
overridevirtual

Reimplemented from Kratos::Element.

◆ CalculateASGSVelocityContribution()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateASGSVelocityContribution ( MatrixType rDampingMatrix,
VectorType rRightHandSideVector,
const ProcessInfo rCurrentProcessInfo 
)
protectedvirtual

◆ CalculateGeometryData()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateGeometryData
protectedvirtual

Initialize shape functions derivatives and calculate the determinant of the element's Jacobian.

Todo:
Use heights

◆ CalculateLocalSystem()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateLocalSystem ( MatrixType rLeftHandSideMatrix,
VectorType rRightHandSideVector,
const ProcessInfo rCurrentProcessInfo 
)
overridevirtual

ELEMENTS inherited from this class have to implement next CalculateLocalSystem, CalculateLeftHandSide and CalculateRightHandSide methods they can be managed internally with a private method to do the same calculations only once: MANDATORY this is called during the assembling process in order to calculate all elemental contributions to the global system matrix and the right hand side

Parameters
rLeftHandSideMatrixthe elemental left hand side matrix
rRightHandSideVectorthe elemental right hand side
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ CalculateLocalVelocityContribution()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateLocalVelocityContribution ( MatrixType rDampingMatrix,
VectorType rRightHandSideVector,
const ProcessInfo rCurrentProcessInfo 
)
overridevirtual

Computes the local contribution associated to 'new' velocity and pressure values.

Provides local contributions to the system associated to the velocity and pressure terms (convection, diffusion, pressure gradient/velocity divergence and stabilization).

Parameters
rDampingMatrixWill be filled with the velocity-proportional "damping" matrix
rRightHandSideVectorthe elemental right hand side vector
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ CalculateMassMatrix()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateMassMatrix ( MatrixType rMassMatrix,
const ProcessInfo rCurrentProcessInfo 
)
overridevirtual

ELEMENTS inherited from this class must implement this methods if they need to add dynamic element contributions CalculateMassMatrix, CalculateDampingMatrix and CalculateLumpedMassVector methods are: OPTIONAL this is called during the assembling process in order to calculate the elemental mass matrix

Parameters
rMassMatrixthe elemental mass matrix
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ CalculateOnIntegrationPoints() [1/5]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateOnIntegrationPoints ( const Variable< array_1d< double, 3 > > &  rVariable,
std::vector< array_1d< double, 3 > > &  rOutput,
const ProcessInfo rCurrentProcessInfo 
)
override

◆ CalculateOnIntegrationPoints() [2/5]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateOnIntegrationPoints ( const Variable< array_1d< double, 6 > > &  rVariable,
std::vector< array_1d< double, 6 > > &  rValues,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverride

Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning.

◆ CalculateOnIntegrationPoints() [3/5]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateOnIntegrationPoints ( const Variable< double > &  rVariable,
std::vector< double > &  rValues,
const ProcessInfo rCurrentProcessInfo 
)
overridevirtual
Todo:
Use suitable variable as iteration counter

Reimplemented from Kratos::Element.

◆ CalculateOnIntegrationPoints() [4/5]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateOnIntegrationPoints ( const Variable< Matrix > &  rVariable,
std::vector< Matrix > &  rValues,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning.

Reimplemented from Kratos::Element.

◆ CalculateOnIntegrationPoints() [5/5]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateOnIntegrationPoints ( const Variable< Vector > &  rVariable,
std::vector< Vector > &  rValues,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning.

Reimplemented from Kratos::Element.

◆ CalculateOSSVelocityContribution()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateOSSVelocityContribution ( MatrixType rDampingMatrix,
VectorType rRightHandSideVector,
const ProcessInfo rCurrentProcessInfo 
)
protectedvirtual

◆ CalculateRightHandSide()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::CalculateRightHandSide ( VectorType rRightHandSideVector,
const ProcessInfo rCurrentProcessInfo 
)
overridevirtual

this is called during the assembling process in order to calculate the elemental right hand side vector only

Parameters
rRightHandSideVectorthe elemental right hand side vector
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ ConsistentMassMatrix()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::ConsistentMassMatrix ( MatrixType rMassMatrix)
protectedvirtual

◆ ConvectionOperator()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::ConvectionOperator ( Vector rResult,
const array_1d< double, 3 > &  rConvVel 
)
protectedvirtual

◆ Create() [1/2]

template<unsigned int TDim>
Element::Pointer Kratos::DynamicVMS< TDim >::Create ( IndexType  NewId,
GeometryType::Pointer  pGeom,
PropertiesType::Pointer  pProperties 
) const
overridevirtual

Create a new element of this type.

Parameters
NewIdIndex of the new element
pGeomA pointer to the geometry of the new element
pPropertiesPointer to the element's properties

Reimplemented from Kratos::Element.

◆ Create() [2/2]

template<unsigned int TDim>
Element::Pointer Kratos::DynamicVMS< TDim >::Create ( IndexType  NewId,
NodesArrayType const &  ThisNodes,
PropertiesType::Pointer  pProperties 
) const
overridevirtual

Create a new element of this type.

Returns a pointer to a new DynamicVMS element, created using given input. The new element will use the same number of integration points as the original.

Parameters
NewIdthe ID of the new element.
ThisNodesthe nodes of the new element.
pPropertiesthe properties assigned to the new element.
Returns
a Pointer to the new element.

Reimplemented from Kratos::Element.

◆ DenseSystemSolve() [1/3]

void Kratos::DynamicVMS< 2 >::DenseSystemSolve ( const Matrix rA,
const Vector rB,
Vector rX 
)
protected

◆ DenseSystemSolve() [2/3]

void Kratos::DynamicVMS< 3 >::DenseSystemSolve ( const Matrix rA,
const Vector rB,
Vector rX 
)
protected

◆ DenseSystemSolve() [3/3]

template<unsigned int TDim>
virtual void Kratos::DynamicVMS< TDim >::DenseSystemSolve ( const Matrix rA,
const Vector rB,
Vector rX 
)
protectedvirtual

◆ EquationIdVector() [1/3]

void Kratos::DynamicVMS< 2 >::EquationIdVector ( EquationIdVectorType rResult,
const ProcessInfo rCurrentProcessInfo 
) const
virtual

ELEMENTS inherited from this class have to implement next EquationIdVector and GetDofList methods: MANDATORY this determines the elemental equation ID vector for all elemental DOFs

Parameters
rResultthe elemental equation ID vector
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ EquationIdVector() [2/3]

void Kratos::DynamicVMS< 3 >::EquationIdVector ( EquationIdVectorType rResult,
const ProcessInfo rCurrentProcessInfo 
) const
virtual

ELEMENTS inherited from this class have to implement next EquationIdVector and GetDofList methods: MANDATORY this determines the elemental equation ID vector for all elemental DOFs

Parameters
rResultthe elemental equation ID vector
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ EquationIdVector() [3/3]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::EquationIdVector ( EquationIdVectorType rResult,
const ProcessInfo rCurrentProcessInfo 
) const
overridevirtual

Provides the global indices for each one of this element's local rows.

this determines the elemental equation ID vector for all elemental DOFs

Parameters
rResultA vector containing the global Id of each row
rCurrentProcessInfothe current process info object (unused)

Reimplemented from Kratos::Element.

◆ EvaluateConvVelocity() [1/2]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::EvaluateConvVelocity ( array_1d< double, 3 > &  rConvection,
const array_1d< double, 3 > &  rSubscaleVel,
const ShapeFunctionsType rN 
)
protectedvirtual

◆ EvaluateConvVelocity() [2/2]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::EvaluateConvVelocity ( array_1d< double, 3 > &  rConvection,
const ShapeFunctionsType rN 
)
protectedvirtual

◆ EvaluateInPoint() [1/2]

template<unsigned int TDim>
template<typename TValueType >
void Kratos::DynamicVMS< TDim >::EvaluateInPoint ( TValueType &  rValue,
const Kratos::Variable< TValueType > &  rVariable,
const ShapeFunctionsType rN 
)
inlineprotected

◆ EvaluateInPoint() [2/2]

template<unsigned int TDim>
template<typename TValueType >
void Kratos::DynamicVMS< TDim >::EvaluateInPoint ( TValueType &  rValue,
const Kratos::Variable< TValueType > &  rVariable,
const ShapeFunctionsType rN,
const unsigned int  Step 
)
inlineprotected

◆ EvaluateViscosity()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::EvaluateViscosity ( double rViscosity,
const ShapeFunctionsType rN 
)
protectedvirtual

Evaluate kinematic viscosity at the given area coordinates. This function is intended to be used for the implementation of Smagorinsky in derived classes.

Parameters
rViscosityContainer for result
rNArray of area coordinates.

◆ EvaluateVorticity() [1/3]

void Kratos::DynamicVMS< 2 >::EvaluateVorticity ( array_1d< double, 3 > &  rVorticity,
const ShapeDerivativesType rDN_DX 
)
protected

◆ EvaluateVorticity() [2/3]

void Kratos::DynamicVMS< 3 >::EvaluateVorticity ( array_1d< double, 3 > &  rVorticity,
const ShapeDerivativesType rDN_DX 
)
protected

◆ EvaluateVorticity() [3/3]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::EvaluateVorticity ( array_1d< double, 3 > &  rVorticity,
const ShapeDerivativesType rDN_DX 
)
protected

◆ GetDofList() [1/3]

void Kratos::DynamicVMS< 2 >::GetDofList ( DofsVectorType rElementalDofList,
const ProcessInfo rCurrentProcessInfo 
) const
virtual

determines the elemental list of DOFs

Parameters
ElementalDofListthe list of DOFs
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ GetDofList() [2/3]

void Kratos::DynamicVMS< 3 >::GetDofList ( DofsVectorType rElementalDofList,
const ProcessInfo rCurrentProcessInfo 
) const
virtual

determines the elemental list of DOFs

Parameters
ElementalDofListthe list of DOFs
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ GetDofList() [3/3]

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::GetDofList ( DofsVectorType rElementalDofList,
const ProcessInfo rCurrentProcessInfo 
) const
overridevirtual

Returns a list of the element's Dofs.

Parameters
ElementalDofListthe list of DOFs
rCurrentProcessInfothe current process info instance

Reimplemented from Kratos::Element.

◆ GetFirstDerivativesVector()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::GetFirstDerivativesVector ( Vector rValues,
int  Step = 0 
) const
overridevirtual

Returns VELOCITY_X, VELOCITY_Y, (VELOCITY_Z,) PRESSURE for each node.

Parameters
ValuesVector of nodal unknowns
StepGet result from 'Step' steps back, 0 is current step. (Must be smaller than buffer size)

Reimplemented from Kratos::Element.

◆ GetIntegrationMethod()

template<unsigned int TDim>
GeometryData::IntegrationMethod Kratos::DynamicVMS< TDim >::GetIntegrationMethod
overridevirtual

Accessor to the integration method.

GiDIO uses it to determine the number of Gauss Points on each element.

Reimplemented from Kratos::Element.

◆ GetSecondDerivativesVector()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::GetSecondDerivativesVector ( Vector rValues,
int  Step = 0 
) const
overridevirtual

Returns ACCELERATION_X, ACCELERATION_Y, (ACCELERATION_Z,) 0 for each node.

Parameters
ValuesVector of nodal second derivatives
StepGet result from 'Step' steps back, 0 is current step. (Must be smaller than buffer size)

Reimplemented from Kratos::Element.

◆ Info()

template<unsigned int TDim>
std::string Kratos::DynamicVMS< TDim >::Info
overridevirtual

Turn back information as a string.

Reimplemented from Kratos::Element.

◆ Initialize()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::Initialize ( const ProcessInfo rCurrentProcessInfo)
overridevirtual

Initialize containters for subscales on integration points.

Reimplemented from Kratos::Element.

◆ InitializeNonLinearIteration()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::InitializeNonLinearIteration ( const ProcessInfo rCurrentProcessInfo)
overridevirtual

Calculate a new value for the velocity subscale.

Parameters
rCurrentProcessInfoProcessInfo instance containig the time step as DELTA_TIME

Reimplemented from Kratos::Element.

◆ InitializeSolutionStep()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::InitializeSolutionStep ( const ProcessInfo rCurrentProcessInfo)
overridevirtual

Prepare the element for a new solution step. Update the values on the subscales and evaluate elemental shape functions.

Parameters
rCurrentProcessInfo.ProcessInfo instance (unused).

Reimplemented from Kratos::Element.

◆ InvTauTime()

template<unsigned int TDim>
double Kratos::DynamicVMS< TDim >::InvTauTime ( const double  Density,
const double  Viscosity,
const double  ConvVel,
const double  Dt 
)
protectedvirtual

Calculate 1 / TauTime.

◆ KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION()

template<unsigned int TDim>
Kratos::DynamicVMS< TDim >::KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION ( DynamicVMS< TDim >  )

Pointer definition of DynamicVMS.

◆ LinearUpdateSubscale()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::LinearUpdateSubscale ( const ProcessInfo rCurrentProcessInfo)
protectedvirtual

◆ LumpedMassMatrix()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::LumpedMassMatrix ( MatrixType rMassMatrix)
protectedvirtual

◆ MassResidual()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::MassResidual ( double rResult)
protectedvirtual

◆ OSSMomentumResidual()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::OSSMomentumResidual ( array_1d< double, 3 > &  rResult,
const double  Density,
const array_1d< double, 3 > &  rConvVel,
const ShapeFunctionsType rN 
)
protectedvirtual

◆ PrintData()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::PrintData ( std::ostream &  rOStream) const
overridevirtual

Print object's data.

Reimplemented from Kratos::Element.

◆ PrintInfo()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::PrintInfo ( std::ostream &  rOStream) const
overridevirtual

Print information about this object.

Reimplemented from Kratos::Element.

◆ SetValuesOnIntegrationPoints()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::SetValuesOnIntegrationPoints ( const Variable< double > &  rVariable,
const std::vector< double > &  rValues,
const ProcessInfo rCurrentProcessInfo 
)
overridevirtual

Reimplemented from Kratos::Element.

◆ TauOne()

template<unsigned int TDim>
double Kratos::DynamicVMS< TDim >::TauOne ( const double  Density,
const double  Viscosity,
const double  ConvVel 
)
protectedvirtual

Calculate velocity subscale stabilization parameter.

Parameters
DensityDensity at integration point.
ViscosityKinematic viscosity at integration point.
ConvVelConvective velocity norm (including subscale contribution).
Returns
TauOne

◆ TauTime()

template<unsigned int TDim>
double Kratos::DynamicVMS< TDim >::TauTime ( const double  Density,
const double  Viscosity,
const double  ConvVel,
const double  Dt 
)
protectedvirtual

Calculate 1 / ( rho/dt + 1/TauOne )

Parameters
DensityDensity at integration point.
ViscosityKinematic viscosity at integration point.
ConvVelConvective velocity norm (including subscale contribution).
DtTime Step.
Returns
TauTime

◆ TauTwo()

template<unsigned int TDim>
double Kratos::DynamicVMS< TDim >::TauTwo ( const double  Density,
const double  Viscosity,
const double  ConvVel 
)
protectedvirtual

Calculate pressure subscale stabilization parameter.

Parameters
DensityDensity at integration point.
ViscosityKinematic viscosity at integration point.
ConvVelConvective velocity norm (including subscale contribution).
Returns
TauTwo

◆ UpdateSubscale()

template<unsigned int TDim>
void Kratos::DynamicVMS< TDim >::UpdateSubscale ( const ProcessInfo rCurrentProcessInfo)
protectedvirtual

Calculate the value of the subscale velocity for next iteration.

Parameters
rCurrentProcessInfoProcessInfo instance containing OSS_SWITCH and the time step as DELTA_TIME.

Friends And Related Function Documentation

◆ Serializer

template<unsigned int TDim>
friend class Serializer
friend

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