![]() |
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.
|
Compressible Navier-Stokes explicit element This element implements a compressible Navier-Stokes explicit formulation. The formulation is written in conservative form so the element unknowns are the DENSITY, MOMENTUM and TOTAL_ENERGY variables. This element is intended to work with the Kratos explicit DOF based strategy. Hence, the explicit residual is written in the corresponding REACTION variables. More...
#include <compressible_navier_stokes_explicit.h>
Classes | |
struct | ElementDataStruct |
Public Member Functions | |
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) |
Life Cycle | |
CompressibleNavierStokesExplicit (IndexType NewId, GeometryType::Pointer pGeometry) | |
Default constructor. More... | |
CompressibleNavierStokesExplicit (IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties) | |
~CompressibleNavierStokesExplicit () override=default | |
Destructor. More... | |
Operations | |
Element::Pointer | Create (IndexType NewId, NodesArrayType const &rThisNodes, PropertiesType::Pointer pProperties) const override |
It creates a new element pointer. More... | |
Element::Pointer | Create (IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override |
It creates a new element pointer. More... | |
void | CalculateLocalSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateRightHandSide (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override |
void | AddExplicitContribution (const ProcessInfo &rCurrentProcessInfo) override |
virtual void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override |
virtual void | CalculateLumpedMassVector (VectorType &rLumpedMassVector, const ProcessInfo &rCurrentProcessInfo) const override |
Calculate the lumped mass vector This is called during the assembling process in order to calculate the elemental lumped mass vector. More... | |
int | Check (const ProcessInfo &rCurrentProcessInfo) const override |
Implementation of template-parameter independent methods. More... | |
void | Calculate (const Variable< double > &rVariable, double &Output, const ProcessInfo &rCurrentProcessInfo) override |
void | Calculate (const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &Output, const ProcessInfo &rCurrentProcessInfo) override |
void | Calculate (const Variable< Matrix > &rVariable, Matrix &Output, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateOnIntegrationPoints (const Variable< double > &rVariable, std::vector< double > &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 |
Input and output | |
const Parameters | GetSpecifications () const override |
This method provides the specifications/requirements of the element. More... | |
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 | GetFirstDerivativesVector (Vector &values, int Step=0) const |
virtual void | GetSecondDerivativesVector (Vector &values, int Step=0) const |
virtual void | Initialize (const ProcessInfo &rCurrentProcessInfo) |
virtual void | ResetConstitutiveLaw () |
virtual void | InitializeSolutionStep (const ProcessInfo &rCurrentProcessInfo) |
virtual void | InitializeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo) |
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 | 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< Vector > &rVariable, Vector &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, 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< Vector > &rVariable, std::vector< Vector > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateOnIntegrationPoints (const Variable< Matrix > &rVariable, std::vector< Matrix > &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< double > &rVariable, const std::vector< double > &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 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 | CalculateLocalVelocityContribution (MatrixType &rDampingMatrix, VectorType &rRightHandSideVector, 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... | |
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 | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | GetDofList (DofsVectorType &ElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | CalculateMomentumProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateDensityProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateTotalEnergyProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateRightHandSideInternal (BoundedVector< double, 12 > &rRightHandSideBoundedVector, const ProcessInfo &rCurrentProcessInfo) |
void | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | GetDofList (DofsVectorType &ElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | CalculateMomentumProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateDensityProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateTotalEnergyProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateRightHandSideInternal (BoundedVector< double, DofSize > &rRightHandSideBoundedVector, const ProcessInfo &rCurrentProcessInfo) |
void | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | GetDofList (DofsVectorType &ElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | CalculateMomentumProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateDensityProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateTotalEnergyProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateRightHandSideInternal (BoundedVector< double, 20 > &rRightHandSideBoundedVector, const ProcessInfo &rCurrentProcessInfo) |
void | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | GetDofList (DofsVectorType &ElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | CalculateMomentumProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateDensityProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateTotalEnergyProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateRightHandSideInternal (BoundedVector< double, 12 > &rRightHandSideBoundedVector, const ProcessInfo &rCurrentProcessInfo) |
void | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | GetDofList (DofsVectorType &ElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | CalculateMomentumProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateDensityProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateTotalEnergyProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateRightHandSideInternal (BoundedVector< double, DofSize > &rRightHandSideBoundedVector, const ProcessInfo &rCurrentProcessInfo) |
void | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | GetDofList (DofsVectorType &ElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | CalculateMomentumProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateDensityProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateTotalEnergyProjection (const ProcessInfo &rCurrentProcessInfo) |
void | CalculateRightHandSideInternal (BoundedVector< double, 20 > &rRightHandSideBoundedVector, const ProcessInfo &rCurrentProcessInfo) |
Protected member Variables | |
void | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const override |
void | GetDofList (DofsVectorType &ElementalDofList, const ProcessInfo &rCurrentProcessInfo) const override |
Protected Operators | |
CompressibleNavierStokesExplicit ()=default | |
Protected Operations | |
void | FillElementData (ElementDataStruct &rData, const ProcessInfo &rCurrentProcessInfo) |
Fill element data Auxiliary function to fill the element data structure. More... | |
void | CalculateRightHandSideInternal (BoundedVector< double, BlockSize *TNumNodes > &rRightHandSideBoundedVector, const ProcessInfo &rCurrentProcessInfo) |
Internal CalculateRightHandSide() method This auxiliary RHS calculated method is created to bypass the element API In this way bounded vectors can be used in the explicit residual calculation. More... | |
void | CalculateMomentumProjection (const ProcessInfo &rCurrentProcessInfo) |
Calculate the momentum projection Auxiliary method to calculate the momentum projections for the OSS. Note that this method threadsafe adds the elemental RHS values of the L2 projection to the nodes. The division by the lumped mass matrix values requires to be done at the strategy level. More... | |
void | CalculateDensityProjection (const ProcessInfo &rCurrentProcessInfo) |
Calculate the density projection Auxiliary method to calculate the denstiy projections for the OSS. Note that this method threadsafe adds the elemental RHS values of the L2 projection to the nodes. The division by the lumped mass matrix values requires to be done at the strategy level. More... | |
void | CalculateTotalEnergyProjection (const ProcessInfo &rCurrentProcessInfo) |
Calculate the total energy projection Auxiliary method to calculate the total energy projections for the OSS. Note that this method threadsafe adds the elemental RHS values of the L2 projection to the nodes. The division by the lumped mass matrix values requires to be done at the strategy level. More... | |
Type Definitions | |
constexpr static unsigned int | Dim = TDim |
Compile-time known quantities. More... | |
constexpr static unsigned int | NumNodes = TNumNodes |
constexpr static unsigned int | BlockSize = Dim + 2 |
constexpr static unsigned int | DofSize = NumNodes * BlockSize |
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (CompressibleNavierStokesExplicit) | |
Counted pointer of. 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) |
Compressible Navier-Stokes explicit element This element implements a compressible Navier-Stokes explicit formulation. The formulation is written in conservative form so the element unknowns are the DENSITY, MOMENTUM and TOTAL_ENERGY variables. This element is intended to work with the Kratos explicit DOF based strategy. Hence, the explicit residual is written in the corresponding REACTION variables.
TDim | The space dimension (2 or 3) |
TNumNodes | The number of nodes |
|
inline |
Default constructor.
|
inline |
|
overridedefault |
Destructor.
|
protecteddefault |
|
overridevirtual |
This is called during the assembling process in order to calculate the elemental contribution in explicit calculation. NodalData is modified Inside the function, so the The "AddEXplicit" FUNCTIONS THE ONLY FUNCTIONS IN WHICH AN ELEMENT IS ALLOWED TO WRITE ON ITS NODES. the caller is expected to ensure thread safety hence SET/UNSETLOCK MUST BE PERFORMED IN THE STRATEGY BEFORE CALLING THIS FUNCTION
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
overridevirtual |
Reimplemented from Kratos::Element.
|
overridevirtual |
Calculate a Element variable usually associated to a integration point the Output is given on integration points and characterizes the element Calculate(..) methods are: OPTIONAL
Reimplemented from Kratos::Element.
|
overridevirtual |
Reimplemented from Kratos::Element.
|
protected |
Calculate the density projection Auxiliary method to calculate the denstiy projections for the OSS. Note that this method threadsafe adds the elemental RHS values of the L2 projection to the nodes. The division by the lumped mass matrix values requires to be done at the strategy level.
rCurrentProcessInfo | Reference to the current process info |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
inlineoverridevirtual |
This is called during the assembling process in order to calculate all elemental contributions to the global system matrix and the right hand side Note that this is explicitly forbidden as this element is conceived to only work with explicit time integration schemes
rLeftHandSideMatrix | the elemental left hand side matrix |
rRightHandSideVector | the elemental right hand side |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
overridevirtual |
Calculate the lumped mass vector This is called during the assembling process in order to calculate the elemental lumped mass vector.
rLumpedMassVector | the elemental lumped mass vector |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
virtual |
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.
|
virtual |
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.
|
virtual |
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.
|
virtual |
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.
|
virtual |
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.
|
virtual |
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.
|
overridevirtual |
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.
|
protected |
Calculate the momentum projection Auxiliary method to calculate the momentum projections for the OSS. Note that this method threadsafe adds the elemental RHS values of the L2 projection to the nodes. The division by the lumped mass matrix values requires to be done at the strategy level.
rCurrentProcessInfo | Reference to the current process info |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
overridevirtual |
Reimplemented from Kratos::Element.
|
overridevirtual |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
This is called during the assembling process in order to calculate the elemental right hand side vector only. Note that this is explicitly forbidden as this element is conceived to work with bounded arrays for the sake of efficiency. A CalculateRightHandSideInternal() method is implemented instead.
rRightHandSideVector | the elemental right hand side vector |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Internal CalculateRightHandSide() method This auxiliary RHS calculated method is created to bypass the element API In this way bounded vectors can be used in the explicit residual calculation.
rRightHandSideBoundedVector | Reference to the auxiliary RHS vector |
rCurrentProcessInfo | Reference to the current process info |
|
protected |
|
protected |
|
protected |
Calculate the total energy projection Auxiliary method to calculate the total energy projections for the OSS. Note that this method threadsafe adds the elemental RHS values of the L2 projection to the nodes. The division by the lumped mass matrix values requires to be done at the strategy level.
rCurrentProcessInfo | Reference to the current process info |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
overridevirtual |
Implementation of template-parameter independent methods.
This function provides the place to perform checks on the completeness of the input. It is designed to be called only once (or anyway, not often) typically at the beginning of the calculations, so to verify that nothing is missing from the input or that no common error is found.
rCurrentProcessInfo | The ProcessInfo of the ModelPart that contains this element. |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
It creates a new element pointer.
NewId | the ID of the new element |
pGeom | the geometry to be employed |
pProperties | the properties assigned to the new element |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
It creates a new element pointer.
ELEMENTS inherited from this class have to implement next Create and Clone methods: MANDATORY
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.
|
protectedvirtual |
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.
|
protectedvirtual |
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.
|
protectedvirtual |
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.
|
protectedvirtual |
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.
|
protectedvirtual |
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.
|
protectedvirtual |
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.
|
overrideprotectedvirtual |
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.
|
protected |
Fill element data Auxiliary function to fill the element data structure.
rData | Reference to the element data structure to be filled |
rCurrentProcessInfo | Reference to the current process info |
|
protectedvirtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protectedvirtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protectedvirtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protectedvirtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protectedvirtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protectedvirtual |
determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
overrideprotectedvirtual |
Determines the elemental list of DOFs
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
overridevirtual |
This method provides the specifications/requirements of the element.
This can be used to enhance solvers and analysis. The following is an example: { "time_integration" : [], // NOTE: Options are static, implicit, explicit "framework" : "eulerian", // NOTE: Options are eulerian, lagrangian, ALE "symmetric_lhs" : true, // NOTE: Options are true/false "positive_definite_lhs" : false, // NOTE: Options are true/false "output" : { // NOTE: Values compatible as output "gauss_point" : ["INTEGRATION_WEIGTH"], "nodal_historical" : ["DISPLACEMENT"], "nodal_non_historical" : [], "entity" : [] }, "required_variables" : ["DISPLACEMENT"], // NOTE: Fill with the required variables "required_dofs" : ["DISPLACEMENT_X", "DISPLACEMENT_Y"], // NOTE: Fill with the required dofs "flags_used" : ["BOUNDARY", "ACTIVE"], // NOTE: Fill with the flags used "compatible_geometries" : ["Triangle2D3"], // NOTE: Compatible geometries. Options are "Point2D", "Point3D", "Sphere3D1", "Line2D2", "Line2D3", "Line3D2", "Line3D3", "Triangle2D3", "Triangle2D6", "Triangle3D3", "Triangle3D6", "Quadrilateral2D4", "Quadrilateral2D8", "Quadrilateral2D9", "Quadrilateral3D4", "Quadrilateral3D8", "Quadrilateral3D9", "Tetrahedra3D4" , "Tetrahedra3D10" , "Prism3D6" , "Prism3D15" , "Hexahedra3D8" , "Hexahedra3D20" , "Hexahedra3D27" "element_integrates_in_time" : true, // NOTE: Options are true/false "compatible_constitutive_laws": { "type" : ["PlaneStress","PlaneStrain"], // NOTE: List of CL compatible types. Options are "PlaneStress", "PlaneStrain", "3D" "dimension" : ["2D", "2D"], // NOTE: List of dimensions. Options are "2D", "3D", "2DAxysimm" "strain_size" : [3,3] // NOTE: List of strain sizes }, "documentation" : "This is an element" // NOTE: The documentation of the entity }
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Element.
Kratos::CompressibleNavierStokesExplicit< TDim, TNumNodes >::KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION | ( | CompressibleNavierStokesExplicit< TDim, TNumNodes > | ) |
Counted pointer of.
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Element.
|
friend |
|
staticconstexpr |
|
staticconstexpr |
Compile-time known quantities.
|
staticconstexpr |
|
staticconstexpr |