![]() |
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 <fractional_step.h>
Public Member Functions | |
Life Cycle | |
FractionalStep (IndexType NewId=0) | |
Default constuctor. More... | |
FractionalStep (IndexType NewId, const NodesArrayType &ThisNodes) | |
Constructor using an array of nodes. More... | |
FractionalStep (IndexType NewId, GeometryType::Pointer pGeometry) | |
Constructor using a geometry object. More... | |
FractionalStep (IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties) | |
Constuctor using geometry and properties. More... | |
~FractionalStep () override | |
Destructor. More... | |
Operations | |
Element::Pointer | Create (IndexType NewId, NodesArrayType const &ThisNodes, Element::PropertiesType::Pointer pProperties) const override |
Create a new element of this type. More... | |
Element::Pointer | Create (IndexType NewId, Element::GeometryType::Pointer pGeom, Element::PropertiesType::Pointer pProperties) const override |
Element::Pointer | Clone (IndexType NewId, NodesArrayType const &rThisNodes) const override |
void | Initialize (const ProcessInfo &rCurrentProcessInfo) override |
void | InitializeSolutionStep (const ProcessInfo &rCurrentProcessInfo) override |
Initializes the element and all geometric information required for the problem. More... | |
void | InitializeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateLocalSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override |
Calculate the element's local contribution to the system for the current step. More... | |
void | CalculateLeftHandSide (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override |
void | CalculateRightHandSide (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override |
void | Calculate (const Variable< double > &rVariable, double &rOutput, const ProcessInfo &rCurrentProcessInfo) override |
void | Calculate (const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &rOutput, 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... | |
GeometryData::IntegrationMethod | GetIntegrationMethod () const override |
void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 3 > > &rVariable, std::vector< array_1d< double, 3 > > &rValues, const ProcessInfo &rCurrentProcessInfo) override |
Obtain an array_1d<double,3> elemental variable, evaluated on gauss points. More... | |
void | CalculateOnIntegrationPoints (const Variable< double > &rVariable, std::vector< double > &rValues, const ProcessInfo &rCurrentProcessInfo) override |
Obtain a double elemental variable, evaluated on gauss points. More... | |
void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 6 > > &rVariable, std::vector< array_1d< double, 6 > > &rValues, const ProcessInfo &rCurrentProcessInfo) override |
Obtain an array_1d<double,6> elemental variable, evaluated on gauss points. More... | |
void | CalculateOnIntegrationPoints (const Variable< Vector > &rVariable, std::vector< Vector > &rValues, const ProcessInfo &rCurrentProcessInfo) override |
Obtain a Vector elemental variable, evaluated on gauss points. More... | |
void | CalculateOnIntegrationPoints (const Variable< Matrix > &rVariable, std::vector< Matrix > &rValues, const ProcessInfo &rCurrentProcessInfo) override |
Obtain a Matrix elemental variable, evaluated on gauss points. More... | |
Elemental Data | |
int | Check (const ProcessInfo &rCurrentProcessInfo) const override |
Checks the input and that all required Kratos variables have been registered. More... | |
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... | |
![]() | |
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 | Create (IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const |
It creates a new element pointer. More... | |
virtual Pointer | Create (IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const |
It creates a new element pointer. 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 | ResetConstitutiveLaw () |
virtual void | FinalizeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo) |
virtual void | FinalizeSolutionStep (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 | CalculateMassMatrix (MatrixType &rMassMatrix, 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< 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< 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... | |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. 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 |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. More... | |
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 | VelocityEquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | VelocityEquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | GetVelocityDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | GetVelocityDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | GetVelocityValues (Vector &rValues, const int Step) const |
void | GetVelocityValues (Vector &rValues, const int Step) const |
void | AddViscousTerm (MatrixType &rDampingMatrix, const ShapeFunctionDerivativesType &rShapeDeriv, const double Weight) |
void | AddViscousTerm (MatrixType &rDampingMatrix, const ShapeFunctionDerivativesType &rShapeDeriv, const double Weight) |
Protected Operations | |
virtual void | CalculateLocalFractionalVelocitySystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
virtual void | CalculateLocalPressureSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateEndOfStepSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
void | VelocityEquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | PressureEquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const |
void | GetVelocityDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | GetPressureDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const |
void | GetPressureValues (Vector &rValues, const int Step=0) const |
void | GetVelocityValues (Vector &rValues, const int Step=0) const |
virtual void | CalculateGeometryData (ShapeFunctionDerivativesArrayType &rDN_DX, Matrix &rNContainer, Vector &rGaussWeights) |
Determine integration point weights and shape funcition derivatives from the element's geometry. More... | |
double | ElementSize () |
virtual double | EffectiveViscosity (double Density, const ShapeFunctionsType &rN, const ShapeFunctionDerivativesType &rDN_DX, double ElemSize, const ProcessInfo &rProcessInfo) |
EffectiveViscosity Calculate the viscosity at given integration point, using Smagorinsky if enabled. More... | |
double | EquivalentStrainRate (const ShapeFunctionDerivativesType &rDN_DX) const |
EquivalentStrainRate Calculate the second invariant of the strain rate tensor GammaDot = (2SijSij)^0.5. More... | |
void | AddMomentumMassTerm (Matrix &rMassMatrix, const ShapeFunctionsType &rN, const double Weight) |
Add integration point contribution to the mass matrix. More... | |
virtual void | AddMomentumSystemTerms (Matrix &rLHSMatrix, Vector &rRHSVector, const double Density, const Vector &rConvOperator, const array_1d< double, 3 > &rBodyForce, const double OldPressure, const double TauOne, const double TauTwo, const array_1d< double, 3 > &rMomentumProjection, const double MassProjection, const ShapeFunctionsType &rN, const ShapeFunctionDerivativesType &rDN_DX, const double Weight) |
void | AddViscousTerm (MatrixType &rDampingMatrix, const ShapeFunctionDerivativesType &rShapeDeriv, const double Weight) |
virtual void | CalculateTau (double &TauOne, double &TauTwo, double ElemSize, const array_1d< double, 3 > &rAdvVel, const double Density, const double Viscosity, const ProcessInfo &rCurrentProcessInfo) |
Calculate Stabilization parameters. More... | |
virtual void | CalculateProjectionRHS (VectorType &rMomentumRHS, VectorType &rMassRHS, const ShapeFunctionsType &rN, const ShapeFunctionDerivativesType &rDN_DX, const double Weight) |
virtual void | CalculateProjectionRHS (VectorType &rConvTerm, VectorType &rPresTerm, VectorType &rDivTerm, const ShapeFunctionsType &rN, const ShapeFunctionDerivativesType &rDN_DX, const double Weight) |
void | ModulatedGradientDiffusion (MatrixType &rDampingMatrix, const ShapeFunctionDerivativesType &rDN_DX, const double Weight) |
void | ConvectionOperator (Vector &rResult, const array_1d< double, 3 > &rConvVel, const ShapeFunctionDerivativesType &DN_DX) |
Write the convective operator evaluated at this point (for each nodal funciton) to an array. More... | |
virtual void | EvaluateConvVelocity (array_1d< double, 3 > &rConvVel, const ShapeFunctionsType &N) |
Evaluate ALE convective velocity (velocity-mesh velocity) at a given point. More... | |
template<class TVariableType > | |
void | EvaluateInPoint (TVariableType &rResult, const Kratos::Variable< TVariableType > &Var, const ShapeFunctionsType &rShapeFunc) |
Write the value of a variable at a point inside the element to a double. More... | |
template<class TVariableType > | |
void | EvaluateInPoint (TVariableType &rResult, const Kratos::Variable< TVariableType > &Var, const ShapeFunctionsType &rShapeFunc, const IndexType Step) |
Write the value of a variable at a point inside the element to a double. More... | |
void | EvaluateGradientInPoint (array_1d< double, TDim > &rResult, const Kratos::Variable< double > &Var, const ShapeFunctionDerivativesType &rDN_DX) |
void | EvaluateDivergenceInPoint (double &rResult, const Kratos::Variable< array_1d< double, 3 > > &Var, const ShapeFunctionDerivativesType &rDN_DX) |
template<class TValueType > | |
void | GetElementalValueForOutput (const Kratos::Variable< TValueType > &rVariable, std::vector< TValueType > &rOutput) |
Helper function to print results on gauss points. More... | |
Type Definitions | |
typedef Node | NodeType |
Node type (default is: Node) More... | |
typedef Geometry< NodeType > | GeometryType |
Geometry type (using with given NodeType) More... | |
typedef Geometry< NodeType >::PointsArrayType | NodesArrayType |
Definition of nodes container type, redefined from GeometryType. More... | |
typedef Vector | VectorType |
Vector type for local contributions to the linear system. More... | |
typedef Matrix | MatrixType |
Matrix type for local contributions to the linear system. More... | |
typedef std::size_t | IndexType |
typedef std::size_t | SizeType |
typedef std::vector< std::size_t > | EquationIdVectorType |
typedef std::vector< Dof< double >::Pointer > | DofsVectorType |
typedef PointerVectorSet< Dof< double >, IndexedObject > | DofsArrayType |
typedef Kratos::Vector | ShapeFunctionsType |
Type for shape function values container. More... | |
typedef Kratos::Matrix | ShapeFunctionDerivativesType |
Type for a matrix containing the shape function gradients. More... | |
typedef GeometryType::ShapeFunctionsGradientsType | ShapeFunctionDerivativesArrayType |
Type for an array of shape function gradient matrices. More... | |
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (FractionalStep) | |
Pointer definition of FractionalStep. 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.
typedef PointerVectorSet<Dof<double>, IndexedObject> Kratos::FractionalStep< TDim >::DofsArrayType |
typedef std::vector< Dof<double>::Pointer > Kratos::FractionalStep< TDim >::DofsVectorType |
typedef std::vector<std::size_t> Kratos::FractionalStep< TDim >::EquationIdVectorType |
typedef Geometry<NodeType> Kratos::FractionalStep< TDim >::GeometryType |
Geometry type (using with given NodeType)
typedef std::size_t Kratos::FractionalStep< TDim >::IndexType |
typedef Matrix Kratos::FractionalStep< TDim >::MatrixType |
Matrix type for local contributions to the linear system.
typedef Geometry<NodeType>::PointsArrayType Kratos::FractionalStep< TDim >::NodesArrayType |
Definition of nodes container type, redefined from GeometryType.
typedef Node Kratos::FractionalStep< TDim >::NodeType |
typedef GeometryType::ShapeFunctionsGradientsType Kratos::FractionalStep< TDim >::ShapeFunctionDerivativesArrayType |
Type for an array of shape function gradient matrices.
typedef Kratos::Matrix Kratos::FractionalStep< TDim >::ShapeFunctionDerivativesType |
Type for a matrix containing the shape function gradients.
typedef Kratos::Vector Kratos::FractionalStep< TDim >::ShapeFunctionsType |
Type for shape function values container.
typedef std::size_t Kratos::FractionalStep< TDim >::SizeType |
typedef Vector Kratos::FractionalStep< TDim >::VectorType |
Vector type for local contributions to the linear system.
|
inline |
Default constuctor.
NewId | Index number of the new element (optional) |
|
inline |
Constructor using an array of nodes.
NewId | Index of the new element |
ThisNodes | An array containing the nodes of the new element |
|
inline |
Constructor using a geometry object.
NewId | Index of the new element |
pGeometry | Pointer to a geometry object |
|
inline |
Constuctor using geometry and properties.
NewId | Index of the new element |
pGeometry | Pointer to a geometry object |
pProperties | Pointer to the element's properties |
|
inlineoverride |
Destructor.
|
protected |
Add integration point contribution to the mass matrix.
A constistent mass matrix is used.
rMassMatrix | The local matrix where the result will be added. |
rN | Elemental shape functions. |
Weight | Multiplication coefficient for the matrix, typically Density times integration point weight. |
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
|
overridevirtual |
rVariable | Use ADVPROJ or VELOCITY |
Output | (unused) |
rCurrentProcessInfo | Process info instance (unused) |
Reimplemented from Kratos::Element.
Reimplemented in Kratos::FractionalStepDiscontinuous< TDim >, Kratos::FractionalStepDiscontinuous< 2 >, and Kratos::FractionalStepDiscontinuous< 3 >.
|
overridevirtual |
rVariable | Use DIVPROJ |
rOutput | (unused) |
rCurrentProcessInfo | Process info instance (unused) |
Reimplemented from Kratos::Element.
Reimplemented in Kratos::FractionalStepDiscontinuous< TDim >, Kratos::FractionalStepDiscontinuous< 2 >, and Kratos::FractionalStepDiscontinuous< 3 >.
|
protected |
|
protectedvirtual |
Determine integration point weights and shape funcition derivatives from the element's geometry.
Reimplemented in Kratos::FractionalStepDiscontinuous< TDim >, Kratos::FractionalStepDiscontinuous< 2 >, and Kratos::FractionalStepDiscontinuous< 3 >.
|
inlineoverridevirtual |
this is called during the assembling process in order to calculate the elemental left hand side matrix only
rLeftHandSideMatrix | the elemental left hand side matrix |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
protectedvirtual |
|
protectedvirtual |
|
overridevirtual |
Calculate the element's local contribution to the system for the current step.
Reimplemented from Kratos::Element.
Reimplemented in Kratos::FractionalStepDiscontinuous< TDim >, Kratos::FractionalStepDiscontinuous< 2 >, and Kratos::FractionalStepDiscontinuous< 3 >.
|
override |
Obtain an array_1d<double,3> elemental variable, evaluated on gauss points.
|
inlineoverride |
Obtain an array_1d<double,6> elemental variable, evaluated on gauss points.
|
overridevirtual |
Obtain a double elemental variable, evaluated on gauss points.
rVariable | Kratos vector variable to compute |
Output | Will be filled with the values of the variable on integrartion points |
rCurrentProcessInfo | Process info instance |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Obtain a Matrix elemental variable, evaluated on gauss points.
rVariable | Kratos vector variable to compute |
Output | Will be filled with the values of the variable on integrartion points |
rCurrentProcessInfo | Process info instance |
Reimplemented from Kratos::Element.
|
inlineoverridevirtual |
Obtain a Vector elemental variable, evaluated on gauss points.
rVariable | Kratos vector variable to compute |
Output | Will be filled with the values of the variable on integrartion points |
rCurrentProcessInfo | Process info instance |
Reimplemented from Kratos::Element.
|
protectedvirtual |
|
protectedvirtual |
|
inlineoverridevirtual |
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 |
Calculate Stabilization parameters.
Calculates both tau parameters based on a given advective velocity. Takes time step and dynamic coefficient from given ProcessInfo instance. ProcessInfo variables DELTA_TIME and DYNAMIC_TAU will be used.
TauOne | First stabilization parameter (momentum equation) |
TauTwo | Second stabilization parameter (mass equation) |
ElemSize | Characteristic element size (h) |
rAdvVel | advection velocity |
Area | Elemental area |
Density | Density on integrartion point |
Viscosity | Dynamic viscosity (mu) on integrartion point |
rCurrentProcessInfo | Process info instance |
|
overridevirtual |
Checks the input and that all required Kratos variables have been registered.
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 |
Clones the selected element variables, creating a new one
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 |
Write the convective operator evaluated at this point (for each nodal funciton) to an array.
Evaluate the convective operator for each node's shape function at an arbitrary point
rResult | Output vector |
rVelocity | Velocity evaluated at the integration point |
rShapeDeriv | Derivatives of shape functions evaluated at the integration point |
|
inlineoverride |
Returns a pointer to a new FractionalStep element, created using given input
NewId | the ID of the new element |
pGeom | a pointer to the geometry |
pProperties | the properties assigned to the new element |
|
inlineoverride |
Create a new element of this type.
Returns a pointer to a new FractionalStep element, created using given input
NewId | the ID of the new element |
ThisNodes | the nodes of the new element |
pProperties | the properties assigned to the new element |
|
protectedvirtual |
EffectiveViscosity Calculate the viscosity at given integration point, using Smagorinsky if enabled.
The Smagorinsky model is used only if the C_SMAGORINSKY is defined on the elemental data container.
Density | The fluid's density at the integration point. |
rN | Nodal shape functions evaluated at the integration points (area coordinates for the point). |
rDN_DX | Shape function derivatives at the integration point. |
ElemSize | Representative length of the element (used only for Smagorinsky). |
rProcessInfo | ProcessInfo instance passed from the ModelPart. |
|
protected |
|
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.
|
protected |
EquivalentStrainRate Calculate the second invariant of the strain rate tensor GammaDot = (2SijSij)^0.5.
rDN_DX | Shape function derivatives at the integration point. |
|
protectedvirtual |
Evaluate ALE convective velocity (velocity-mesh velocity) at a given point.
rConvVel | container for result. |
N | Shape functions at point of evaluation. |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
Write the value of a variable at a point inside the element to a double.
Evaluate a nodal variable in the point where the form functions take the values given by rShapeFunc and write the result to rResult. This is an auxiliary function used to compute values in integration points.
rResult | The variable where the value will be added to |
rVariable | The nodal variable to be read |
rShapeFunc | The values of the form functions in the point |
|
inlineprotected |
Write the value of a variable at a point inside the element to a double.
Evaluate a nodal variable in the point where the form functions take the values given by rShapeFunc and write the result to rResult. This is an auxiliary function used to compute values in integration points.
rResult | The variable where the value will be added to |
rVariable | The nodal variable to be read |
rShapeFunc | The values of the form functions in the point |
Step | Number of time steps back |
|
overridevirtual |
Returns a list of the element's Dofs.
ElementalDofList | the list of DOFs |
rCurrentProcessInfo | the current process info instance |
Reimplemented from Kratos::Element.
|
inlineprotected |
Helper function to print results on gauss points.
Reads a variable from the element's database and returns it in a format that can be used by CalculateOnIntegrationPoints functions.
|
overridevirtual |
returns the used integration method. In the general case this is the default integration method of the used geometry. I an other integration method is used the method has to be overwritten within the element
Reimplemented from Kratos::Element.
|
protected |
|
protected |
|
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.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Element.
Reimplemented in Kratos::FractionalStepDiscontinuous< TDim >, Kratos::FractionalStepDiscontinuous< 2 >, Kratos::FractionalStepDiscontinuous< 3 >, Kratos::BinghamFluid< Kratos::FractionalStepDiscontinuous< 2 > >, and Kratos::BinghamFluid< Kratos::FractionalStepDiscontinuous< 3 > >.
|
overridevirtual |
ELEMENTS inherited from this class must implement next methods Initialize, ResetConstitutiveLaw if the element needs to perform any operation before any calculation is done reset material and constitutive parameters or clean memory deleting obsolete variables these methods are: OPTIONAL is called to initialize the element if the element needs to perform any operation before any calculation is done the elemental variables will be initialized and set using this method
Reimplemented from Kratos::Element.
|
overridevirtual |
this is called for non-linear analysis at the beginning of the iteration process
Reimplemented from Kratos::Element.
|
overridevirtual |
Initializes the element and all geometric information required for the problem.
Reimplemented from Kratos::Element.
Kratos::FractionalStep< TDim >::KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION | ( | FractionalStep< TDim > | ) |
Pointer definition of FractionalStep.
|
protected |
|
protected |
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Element.
Reimplemented in Kratos::FractionalStepDiscontinuous< TDim >, Kratos::FractionalStepDiscontinuous< 2 >, Kratos::FractionalStepDiscontinuous< 3 >, Kratos::BinghamFluid< Kratos::FractionalStepDiscontinuous< 2 > >, and Kratos::BinghamFluid< Kratos::FractionalStepDiscontinuous< 3 > >.
|
protected |
|
protected |
|
protected |
|
friend |