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.
List of all members
Kratos::EmbeddedFluidElement< TBaseElement > Class Template Reference

#include <embedded_fluid_element.h>

Inheritance diagram for Kratos::EmbeddedFluidElement< TBaseElement >:
Collaboration diagram for Kratos::EmbeddedFluidElement< TBaseElement >:

Public Member Functions

Life Cycle
 EmbeddedFluidElement (IndexType NewId=0)
 Default constuctor. More...
 
 EmbeddedFluidElement (IndexType NewId, const NodesArrayType &ThisNodes)
 Constructor using an array of nodes. More...
 
 EmbeddedFluidElement (IndexType NewId, Geometry< NodeType >::Pointer pGeometry)
 Constructor using a geometry object. More...
 
 EmbeddedFluidElement (IndexType NewId, Geometry< NodeType >::Pointer pGeometry, Properties::Pointer pProperties)
 Constuctor using geometry and properties. More...
 
 ~EmbeddedFluidElement () override
 Destructor. More...
 
Operations
Element::Pointer Create (IndexType NewId, NodesArrayType const &ThisNodes, Properties::Pointer pProperties) const override
 Create a new element of this type. More...
 
Element::Pointer Create (IndexType NewId, Geometry< NodeType >::Pointer pGeom, Properties::Pointer pProperties) const override
 Create a new element of this type using given geometry. More...
 
void Initialize (const ProcessInfo &rCurrentProcessInfo) override
 Set up the element for solution. More...
 
void CalculateLocalSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
 Calculates both LHS and RHS contributions. More...
 
void Calculate (const Variable< double > &rVariable, double &rOutput, const ProcessInfo &rCurrentProcessInfo) override
 Computes an elemental double value. More...
 
void Calculate (const Variable< array_1d< double, 3 >> &rVariable, array_1d< double, 3 > &rOutput, const ProcessInfo &rCurrentProcessInfo) override
 Computes an elemental 3 components array value. More...
 
void Calculate (const Variable< Vector > &rVariable, Vector &rOutput, const ProcessInfo &rCurrentProcessInfo) override
 Computes an elemental vector value. More...
 
void Calculate (const Variable< Matrix > &rVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo) override
 Computes an elemental matrix value. More...
 
Access
void CalculateOnIntegrationPoints (const Variable< array_1d< double, 3 >> &rVariable, std::vector< array_1d< double, 3 >> &rValues, const ProcessInfo &rCurrentProcessInfo) override
 Get the Value On Integration Points object Computes the value in the Gauss pts. for a three component array variable. More...
 
Inquiry
int Check (const ProcessInfo &rCurrentProcessInfo) const override
 
Input and output
const Parameters GetSpecifications () const override
 
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...
 

Protected Member Functions

Protected Operators
void InitializeGeometryData (EmbeddedElementData &rData) const
 
void DefineStandardGeometryData (EmbeddedElementData &rData) const
 
void DefineCutGeometryData (EmbeddedElementData &rData) const
 
void NormalizeInterfaceNormals (typename EmbeddedElementData::InterfaceNormalsType &rNormals, double Tolerance) const
 
void AddSlipNormalPenaltyContribution (MatrixType &rLHS, VectorType &rRHS, const EmbeddedElementData &rData) const
 
void AddSlipNormalSymmetricCounterpartContribution (MatrixType &rLHS, VectorType &rRHS, const EmbeddedElementData &rData) const
 
void AddSlipTangentialPenaltyContribution (MatrixType &rLHS, VectorType &rRHS, const EmbeddedElementData &rData) const
 
void AddSlipTangentialSymmetricCounterpartContribution (MatrixType &rLHS, VectorType &rRHS, const EmbeddedElementData &rData) const
 
double ComputeSlipNormalPenaltyCoefficient (const EmbeddedElementData &rData, const Vector &rN) const
 
std::pair< const double, const doubleComputeSlipTangentialPenaltyCoefficients (const EmbeddedElementData &rData) const
 
std::pair< const double, const doubleComputeSlipTangentialNitscheCoefficients (const EmbeddedElementData &rData) const
 
void AddBoundaryConditionPenaltyContribution (MatrixType &rLHS, VectorType &rRHS, const EmbeddedElementData &rData) const
 
double ComputePenaltyCoefficient (const EmbeddedElementData &rData, const Vector &rN) const
 
void DropOuterNodesVelocityContribution (MatrixType &rLHS, VectorType &rRHS, const EmbeddedElementData &rData) const
 
void AddBoundaryConditionModifiedNitscheContribution (MatrixType &rLHS, VectorType &rRHS, const EmbeddedElementData &rData) const
 

Type Definitions

typedef Node NodeType
 Node type (default is: Node) 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 >, IndexedObjectDofsArrayType
 
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 Geometry< NodeType >::ShapeFunctionsGradientsType ShapeFunctionDerivativesArrayType
 Type for an array of shape function gradient matrices. More...
 
using BaseElementData = typename TBaseElement::ElementData
 
using EmbeddedElementData = EmbeddedData< BaseElementData >
 
constexpr static unsigned int Dim = TBaseElement::Dim
 
constexpr static unsigned int NumNodes = TBaseElement::NumNodes
 
constexpr static unsigned int BlockSize = TBaseElement::BlockSize
 
constexpr static unsigned int LocalSize = TBaseElement::LocalSize
 
constexpr static unsigned int StrainSize = TBaseElement::StrainSize
 
 KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (EmbeddedFluidElement)
 Pointer definition of EmbeddedFluidElement. More...
 

Serialization

class Serializer
 

Member Typedef Documentation

◆ BaseElementData

template<class TBaseElement >
using Kratos::EmbeddedFluidElement< TBaseElement >::BaseElementData = typename TBaseElement::ElementData

◆ DofsArrayType

template<class TBaseElement >
typedef PointerVectorSet<Dof<double>, IndexedObject> Kratos::EmbeddedFluidElement< TBaseElement >::DofsArrayType

◆ DofsVectorType

template<class TBaseElement >
typedef std::vector< Dof<double>::Pointer > Kratos::EmbeddedFluidElement< TBaseElement >::DofsVectorType

◆ EmbeddedElementData

template<class TBaseElement >
using Kratos::EmbeddedFluidElement< TBaseElement >::EmbeddedElementData = EmbeddedData< BaseElementData >

◆ EquationIdVectorType

template<class TBaseElement >
typedef std::vector<std::size_t> Kratos::EmbeddedFluidElement< TBaseElement >::EquationIdVectorType

◆ IndexType

template<class TBaseElement >
typedef std::size_t Kratos::EmbeddedFluidElement< TBaseElement >::IndexType

◆ MatrixType

template<class TBaseElement >
typedef Matrix Kratos::EmbeddedFluidElement< TBaseElement >::MatrixType

Matrix type for local contributions to the linear system.

◆ NodesArrayType

template<class TBaseElement >
typedef Geometry<NodeType>::PointsArrayType Kratos::EmbeddedFluidElement< TBaseElement >::NodesArrayType

Definition of nodes container type, redefined from GeometryType.

◆ NodeType

template<class TBaseElement >
typedef Node Kratos::EmbeddedFluidElement< TBaseElement >::NodeType

Node type (default is: Node)

◆ ShapeFunctionDerivativesArrayType

template<class TBaseElement >
typedef Geometry<NodeType>::ShapeFunctionsGradientsType Kratos::EmbeddedFluidElement< TBaseElement >::ShapeFunctionDerivativesArrayType

Type for an array of shape function gradient matrices.

◆ ShapeFunctionDerivativesType

template<class TBaseElement >
typedef Kratos::Matrix Kratos::EmbeddedFluidElement< TBaseElement >::ShapeFunctionDerivativesType

Type for a matrix containing the shape function gradients.

◆ ShapeFunctionsType

template<class TBaseElement >
typedef Kratos::Vector Kratos::EmbeddedFluidElement< TBaseElement >::ShapeFunctionsType

Type for shape function values container.

◆ SizeType

template<class TBaseElement >
typedef std::size_t Kratos::EmbeddedFluidElement< TBaseElement >::SizeType

◆ VectorType

template<class TBaseElement >
typedef Vector Kratos::EmbeddedFluidElement< TBaseElement >::VectorType

Vector type for local contributions to the linear system.

Constructor & Destructor Documentation

◆ EmbeddedFluidElement() [1/4]

template<class TBaseElement >
Kratos::EmbeddedFluidElement< TBaseElement >::EmbeddedFluidElement ( IndexType  NewId = 0)

Default constuctor.

Parameters
NewIdIndex number of the new element (optional)

◆ EmbeddedFluidElement() [2/4]

template<class TBaseElement >
Kratos::EmbeddedFluidElement< TBaseElement >::EmbeddedFluidElement ( IndexType  NewId,
const NodesArrayType ThisNodes 
)

Constructor using an array of nodes.

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

◆ EmbeddedFluidElement() [3/4]

template<class TBaseElement >
Kratos::EmbeddedFluidElement< TBaseElement >::EmbeddedFluidElement ( IndexType  NewId,
Geometry< NodeType >::Pointer  pGeometry 
)

Constructor using a geometry object.

Parameters
NewIdIndex of the new element
pGeometryPointer to a geometry object

◆ EmbeddedFluidElement() [4/4]

template<class TBaseElement >
Kratos::EmbeddedFluidElement< TBaseElement >::EmbeddedFluidElement ( IndexType  NewId,
Geometry< NodeType >::Pointer  pGeometry,
Properties::Pointer  pProperties 
)

Constuctor using geometry and properties.

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

◆ ~EmbeddedFluidElement()

template<class TBaseElement >
Kratos::EmbeddedFluidElement< TBaseElement >::~EmbeddedFluidElement
override

Destructor.

Member Function Documentation

◆ AddBoundaryConditionModifiedNitscheContribution()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::AddBoundaryConditionModifiedNitscheContribution ( MatrixType rLHS,
VectorType rRHS,
const EmbeddedElementData rData 
) const
protected

This functions adds the level set strong boundary condition imposition contribution.

Parameters
rLHSreference to the LHS matrix
rRHSreference to the RHS vector
rDatareference to element data structure

◆ AddBoundaryConditionPenaltyContribution()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::AddBoundaryConditionPenaltyContribution ( MatrixType rLHS,
VectorType rRHS,
const EmbeddedElementData rData 
) const
protected

This functions adds the penalty extra term level set contribution.

Parameters
rLHSreference to the LHS matrix
rRHSreference to the RHS vector
rDatareference to element data structure

◆ AddSlipNormalPenaltyContribution()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::AddSlipNormalPenaltyContribution ( MatrixType rLHS,
VectorType rRHS,
const EmbeddedElementData rData 
) const
protected

This functions adds the no-penetration condition penalty level set contribution.

Parameters
rLHSreference to the LHS matrix
rRHSreference to the RHS vector
rDatareference to element data structure

◆ AddSlipNormalSymmetricCounterpartContribution()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::AddSlipNormalSymmetricCounterpartContribution ( MatrixType rLHS,
VectorType rRHS,
const EmbeddedElementData rData 
) const
protected

This functions adds the no-penetration condition adjoint term level set contribution.

Parameters
rLHSreference to the LHS matrix
rRHSreference to the RHS vector
rDatareference to element data structure

◆ AddSlipTangentialPenaltyContribution()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::AddSlipTangentialPenaltyContribution ( MatrixType rLHS,
VectorType rRHS,
const EmbeddedElementData rData 
) const
protected

This functions adds the tangential stress condition penalty level set contribution.

Parameters
rLHSreference to the LHS matrix
rRHSreference to the RHS vector
rDatareference to element data structure

◆ AddSlipTangentialSymmetricCounterpartContribution()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::AddSlipTangentialSymmetricCounterpartContribution ( MatrixType rLHS,
VectorType rRHS,
const EmbeddedElementData rData 
) const
protected

This functions adds the tangential stress condition adjoint term level set contribution.

Parameters
rLHSreference to the LHS matrix
rRHSreference to the RHS vector
rDatareference to element data structure

◆ Calculate() [1/4]

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::Calculate ( const Variable< array_1d< double, 3 >> &  rVariable,
array_1d< double, 3 > &  rOutput,
const ProcessInfo rCurrentProcessInfo 
)
override

Computes an elemental 3 components array value.

Given a 3 components array variable, this function computes its value inside de element. If the function has not implemented this variable computation, calls the base class one.

Parameters
rVariableVariable to be computed
rOutputReference to the output array
rCurrentProcessInfoReference to the process info

◆ Calculate() [2/4]

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::Calculate ( const Variable< double > &  rVariable,
double rOutput,
const ProcessInfo rCurrentProcessInfo 
)
override

Computes an elemental double value.

Given a double variable, this function computes its value inside de element. If the function has not implemented this variable computation, calls the base class one.

Parameters
rVariableVariable to be computed
rOutputReference to the output double
rCurrentProcessInfoReference to the process info

◆ Calculate() [3/4]

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::Calculate ( const Variable< Matrix > &  rVariable,
Matrix rOutput,
const ProcessInfo rCurrentProcessInfo 
)
override

Computes an elemental matrix value.

Given a matrix variable, this function computes its value inside de element. If the function has not implemented this variable computation, calls the base class one.

Parameters
rVariableVariable to be computed
rOutputReference to the output matrix
rCurrentProcessInfoReference to the process info

◆ Calculate() [4/4]

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::Calculate ( const Variable< Vector > &  rVariable,
Vector rOutput,
const ProcessInfo rCurrentProcessInfo 
)
override

Computes an elemental vector value.

Given a vector variable, this function computes its value inside de element. If the function has not implemented this variable computation, calls the base class one.

Parameters
rVariableVariable to be computed
rOutputReference to the output vector
rCurrentProcessInfoReference to the process info

◆ CalculateLocalSystem()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::CalculateLocalSystem ( MatrixType rLeftHandSideMatrix,
VectorType rRightHandSideVector,
const ProcessInfo rCurrentProcessInfo 
)
override

Calculates both LHS and RHS contributions.

Computes the LHS and RHS elementar matrices. If the element is split includes the contribution of the level set boundary condition imposition.

Parameters
rLeftHandSideMatrixreference to the LHS matrix
rRightHandSideVectorreference to the RHS vector
rCurrentProcessInforeference to the ProcessInfo

◆ CalculateOnIntegrationPoints()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::CalculateOnIntegrationPoints ( const Variable< array_1d< double, 3 >> &  rVariable,
std::vector< array_1d< double, 3 >> &  rValues,
const ProcessInfo rCurrentProcessInfo 
)
override

Get the Value On Integration Points object Computes the value in the Gauss pts. for a three component array variable.

Parameters
rVariableArray variable to be computed
rValuesComputed gauss point values
rCurrentProcessInfoCurrent process info

◆ Check()

template<class TBaseElement >
int Kratos::EmbeddedFluidElement< TBaseElement >::Check ( const ProcessInfo rCurrentProcessInfo) const
override

◆ ComputePenaltyCoefficient()

template<class TBaseElement >
double Kratos::EmbeddedFluidElement< TBaseElement >::ComputePenaltyCoefficient ( const EmbeddedElementData rData,
const Vector rN 
) const
protected

This function computes the penalty coefficient for the level set BC imposition

Parameters
rDatareference to element data structure
rNshape function values for the current Gauss pt
Returns
double the penalty coefficient value

◆ ComputeSlipNormalPenaltyCoefficient()

template<class TBaseElement >
double Kratos::EmbeddedFluidElement< TBaseElement >::ComputeSlipNormalPenaltyCoefficient ( const EmbeddedElementData rData,
const Vector rN 
) const
protected

This function computes the penalty coefficient for the Nitsche normal imposition

Parameters
rDatareference to element data structure
rNthe current Gauss pt. shape functions vector
Returns
double The normal penalty coefficient value

◆ ComputeSlipTangentialNitscheCoefficients()

template<class TBaseElement >
std::pair< const double, const double > Kratos::EmbeddedFluidElement< TBaseElement >::ComputeSlipTangentialNitscheCoefficients ( const EmbeddedElementData rData) const
protected

This function computes the Nitsche coefficients for the Nitsche tangential imposition

Parameters
rDatareference to element data structure
Returns
a pair of double containing the two coefficients

◆ ComputeSlipTangentialPenaltyCoefficients()

template<class TBaseElement >
std::pair< const double, const double > Kratos::EmbeddedFluidElement< TBaseElement >::ComputeSlipTangentialPenaltyCoefficients ( const EmbeddedElementData rData) const
protected

This function computes the Nitsche coefficients for the Nitsche normal imposition

Parameters
rDatareference to element data structure
Returns
a pair of double containing the two coefficients

◆ Create() [1/2]

template<class TBaseElement >
Element::Pointer Kratos::EmbeddedFluidElement< TBaseElement >::Create ( IndexType  NewId,
Geometry< NodeType >::Pointer  pGeom,
Properties::Pointer  pProperties 
) const
override

Create a new element of this type using given geometry.

Returns a pointer to a new FluidElement element, created using given input

Parameters
NewIdthe ID of the new element
pGeoma pointer to the geomerty to be used to create the element
pPropertiesthe properties assigned to the new element
Returns
a Pointer to the new element

◆ Create() [2/2]

template<class TBaseElement >
Element::Pointer Kratos::EmbeddedFluidElement< TBaseElement >::Create ( IndexType  NewId,
NodesArrayType const &  ThisNodes,
Properties::Pointer  pProperties 
) const
override

Create a new element of this type.

Returns a pointer to a new EmbeddedFluidElement element, created using given input

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

◆ DefineCutGeometryData()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::DefineCutGeometryData ( EmbeddedElementData rData) const
protected

◆ DefineStandardGeometryData()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::DefineStandardGeometryData ( EmbeddedElementData rData) const
protected

◆ DropOuterNodesVelocityContribution()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::DropOuterNodesVelocityContribution ( MatrixType rLHS,
VectorType rRHS,
const EmbeddedElementData rData 
) const
protected

This drops the outer nodes velocity constributions in both LHS and RHS matrices.

Parameters
rLHSreference to the LHS matrix
rRHSreference to the RHS vector
rDatareference to element data structure

◆ GetSpecifications()

template<class TBaseElement >
const Parameters Kratos::EmbeddedFluidElement< TBaseElement >::GetSpecifications
override

◆ Info()

template<class TBaseElement >
std::string Kratos::EmbeddedFluidElement< TBaseElement >::Info
override

Turn back information as a string.

◆ Initialize()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::Initialize ( const ProcessInfo rCurrentProcessInfo)
override

Set up the element for solution.

For EmbeddedFluidElement, this initializes the nodal imposed velocity (EMBEDDED_VELOCITY)

◆ InitializeGeometryData()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::InitializeGeometryData ( EmbeddedElementData rData) const
protected

◆ KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION()

template<class TBaseElement >
Kratos::EmbeddedFluidElement< TBaseElement >::KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION ( EmbeddedFluidElement< TBaseElement >  )

Pointer definition of EmbeddedFluidElement.

◆ NormalizeInterfaceNormals()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::NormalizeInterfaceNormals ( typename EmbeddedElementData::InterfaceNormalsType rNormals,
double  Tolerance 
) const
protected

◆ PrintInfo()

template<class TBaseElement >
void Kratos::EmbeddedFluidElement< TBaseElement >::PrintInfo ( std::ostream &  rOStream) const
override

Print information about this object.

Friends And Related Function Documentation

◆ Serializer

template<class TBaseElement >
friend class Serializer
friend

Member Data Documentation

◆ BlockSize

template<class TBaseElement >
constexpr static unsigned int Kratos::EmbeddedFluidElement< TBaseElement >::BlockSize = TBaseElement::BlockSize
staticconstexpr

◆ Dim

template<class TBaseElement >
constexpr static unsigned int Kratos::EmbeddedFluidElement< TBaseElement >::Dim = TBaseElement::Dim
staticconstexpr

◆ LocalSize

template<class TBaseElement >
constexpr static unsigned int Kratos::EmbeddedFluidElement< TBaseElement >::LocalSize = TBaseElement::LocalSize
staticconstexpr

◆ NumNodes

template<class TBaseElement >
constexpr static unsigned int Kratos::EmbeddedFluidElement< TBaseElement >::NumNodes = TBaseElement::NumNodes
staticconstexpr

◆ StrainSize

template<class TBaseElement >
constexpr static unsigned int Kratos::EmbeddedFluidElement< TBaseElement >::StrainSize = TBaseElement::StrainSize
staticconstexpr

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