![]() |
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.
|
A stabilized element for the incompressible Navier-Stokes equations. More...
#include <dynamic_vms.h>
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... | |
![]() | |
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... | |
Element & | operator= (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 |
PropertiesType & | GetProperties () |
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) | |
![]() | |
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... | |
GeometricalObject & | operator= (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... | |
GeometryType & | GetGeometry () |
Returns the reference of the geometry. More... | |
GeometryType const & | GetGeometry () const |
Returns the reference of the geometry (const version) More... | |
Flags & | GetFlags () |
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... | |
DataValueContainer & | Data () |
DataValueContainer & | GetData () |
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... | |
![]() | |
IndexedObject (IndexType NewId=0) | |
Default constructor. More... | |
virtual | ~IndexedObject () |
Destructor. More... | |
IndexedObject (IndexedObject const &rOther) | |
Copy constructor. More... | |
IndexedObject & | operator= (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) |
IndexType & | DepricatedIdAccess () |
TODO: remove this function when removing data_file_io object. More... | |
KRATOS_CLASS_POINTER_DEFINITION (IndexedObject) | |
Pointer definition of IndexedObject. More... | |
![]() | |
Flags & | operator= (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 Flags & | operator|= (const Flags &Other) |
const Flags & | operator&= (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 | |
![]() | |
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< NodeType > | GeometryType |
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< double > | DofType |
typedef std::vector< std::size_t > | EquationIdVectorType |
typedef std::vector< DofType::Pointer > | DofsVectorType |
typedef PointerVectorSet< DofType > | DofsArrayType |
typedef GeometryData::IntegrationMethod | IntegrationMethod |
Type definition for integration methods. More... | |
typedef GeometryData | GeometryDataType |
![]() | |
typedef Node | NodeType |
Definition of the node type. More... | |
typedef Geometry< NodeType > | GeometryType |
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... | |
![]() | |
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... | |
![]() | |
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 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 const Flags | AllDefined () |
static const Flags | AllTrue () |
static Flags | Create (IndexType ThisPosition, bool Value=true) |
A stabilized element for the incompressible Navier-Stokes equations.
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.
typedef Kratos::Matrix Kratos::DynamicVMS< TDim >::ShapeDerivativesType |
Type for shape function derivatives container.
typedef Kratos::Vector Kratos::DynamicVMS< TDim >::ShapeFunctionsType |
Type for shape function values container.
Kratos::DynamicVMS< TDim >::DynamicVMS | ( | IndexType | NewId, |
const NodesArrayType & | ThisNodes | ||
) |
Constructor using an array of nodes.
NewId | Index of the new element |
ThisNodes | An array containing the nodes of the new element |
Kratos::DynamicVMS< TDim >::DynamicVMS | ( | IndexType | NewId, |
GeometryType::Pointer | pGeometry | ||
) |
Constructor using a geometry object.
NewId | Index of the new element |
pGeometry | Pointer to a geometry object |
Kratos::DynamicVMS< TDim >::DynamicVMS | ( | IndexType | NewId, |
GeometryType::Pointer | pGeometry, | ||
const GeometryData::IntegrationMethod | ThisIntegrationMethod | ||
) |
Constructor using a geometry object and a custom integration rule.
NewId | Index of the new element |
pGeometry | Pointer to a geometry object |
ThisIntegrationMethod | Integration method to use in all element integrals. |
Kratos::DynamicVMS< TDim >::DynamicVMS | ( | IndexType | NewId, |
GeometryType::Pointer | pGeometry, | ||
PropertiesType::Pointer | pProperties | ||
) |
Constuctor using geometry and properties.
NewId | Index of the new element |
pGeometry | Pointer to a geometry object |
pProperties | Pointer to the element's properties |
Kratos::DynamicVMS< TDim >::DynamicVMS | ( | IndexType | NewId, |
GeometryType::Pointer | pGeometry, | ||
Properties::Pointer | pProperties, | ||
const GeometryData::IntegrationMethod | ThisIntegrationMethod | ||
) |
Constructor using geometry, properties and custom integration rule.
NewId | Index of the new element. |
pGeometry | Pointer to a geometry object. |
pProperties | Pointer to the element's properties. |
ThisIntegrationMethod | Integration method to use in all element integrals. |
|
override |
Destructor.
|
protected |
|
protected |
|
protectedvirtual |
|
protectedvirtual |
|
overridevirtual |
Reimplemented from Kratos::Element.
|
protectedvirtual |
|
protectedvirtual |
Initialize shape functions derivatives and calculate the determinant of the element's Jacobian.
|
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
rLeftHandSideMatrix | the elemental left hand side matrix |
rRightHandSideVector | the elemental right hand side |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
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).
rDampingMatrix | Will be filled with the velocity-proportional "damping" matrix |
rRightHandSideVector | the elemental right hand side vector |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
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
rMassMatrix | the elemental mass matrix |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
override |
|
inlineoverride |
Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning.
|
overridevirtual |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning.
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Empty implementation of unused CalculateOnIntegrationPoints overloads to avoid compilation warning.
Reimplemented from Kratos::Element.
|
protectedvirtual |
|
overridevirtual |
this is called during the assembling process in order to calculate the elemental right hand side vector only
rRightHandSideVector | the elemental right hand side vector |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protectedvirtual |
|
protectedvirtual |
|
overridevirtual |
Create a new element of this type.
NewId | Index of the new element |
pGeom | A pointer to the geometry of the new element |
pProperties | Pointer to the element's properties |
Reimplemented from Kratos::Element.
|
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.
NewId | the ID of the new element. |
ThisNodes | the nodes of the new element. |
pProperties | the properties assigned to the new element. |
Reimplemented from Kratos::Element.
|
protected |
|
protected |
|
protectedvirtual |
|
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
rResult | the elemental equation ID vector |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
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
rResult | the elemental equation ID vector |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
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
rResult | A vector containing the global Id of each row |
rCurrentProcessInfo | the current process info object (unused) |
Reimplemented from Kratos::Element.
|
protectedvirtual |
|
protectedvirtual |
|
inlineprotected |
|
inlineprotected |
|
protectedvirtual |
Evaluate kinematic viscosity at the given area coordinates. This function is intended to be used for the implementation of Smagorinsky in derived classes.
rViscosity | Container for result |
rN | Array of area coordinates. |
|
protected |
|
protected |
|
protected |
|
virtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
virtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
overridevirtual |
Returns a list of the element's Dofs.
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
overridevirtual |
Returns VELOCITY_X, VELOCITY_Y, (VELOCITY_Z,) PRESSURE for each node.
Values | Vector of nodal unknowns |
Step | Get result from 'Step' steps back, 0 is current step. (Must be smaller than buffer size) |
Reimplemented from Kratos::Element.
|
overridevirtual |
Accessor to the integration method.
GiDIO uses it to determine the number of Gauss Points on each element.
Reimplemented from Kratos::Element.
|
overridevirtual |
Returns ACCELERATION_X, ACCELERATION_Y, (ACCELERATION_Z,) 0 for each node.
Values | Vector of nodal second derivatives |
Step | Get result from 'Step' steps back, 0 is current step. (Must be smaller than buffer size) |
Reimplemented from Kratos::Element.
|
overridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Element.
|
overridevirtual |
Initialize containters for subscales on integration points.
Reimplemented from Kratos::Element.
|
overridevirtual |
Calculate a new value for the velocity subscale.
rCurrentProcessInfo | ProcessInfo instance containig the time step as DELTA_TIME |
Reimplemented from Kratos::Element.
|
overridevirtual |
Prepare the element for a new solution step. Update the values on the subscales and evaluate elemental shape functions.
rCurrentProcessInfo. | ProcessInfo instance (unused). |
Reimplemented from Kratos::Element.
|
protectedvirtual |
Calculate 1 / TauTime.
Kratos::DynamicVMS< TDim >::KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION | ( | DynamicVMS< TDim > | ) |
Pointer definition of DynamicVMS.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
overridevirtual |
Print object's data.
Reimplemented from Kratos::Element.
|
overridevirtual |
Print information about this object.
Reimplemented from Kratos::Element.
|
overridevirtual |
Reimplemented from Kratos::Element.
|
protectedvirtual |
Calculate velocity subscale stabilization parameter.
Density | Density at integration point. |
Viscosity | Kinematic viscosity at integration point. |
ConvVel | Convective velocity norm (including subscale contribution). |
|
protectedvirtual |
Calculate 1 / ( rho/dt + 1/TauOne )
Density | Density at integration point. |
Viscosity | Kinematic viscosity at integration point. |
ConvVel | Convective velocity norm (including subscale contribution). |
Dt | Time Step. |
|
protectedvirtual |
Calculate pressure subscale stabilization parameter.
Density | Density at integration point. |
Viscosity | Kinematic viscosity at integration point. |
ConvVel | Convective velocity norm (including subscale contribution). |
|
protectedvirtual |
Calculate the value of the subscale velocity for next iteration.
rCurrentProcessInfo | ProcessInfo instance containing OSS_SWITCH and the time step as DELTA_TIME. |
|
friend |