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::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime > Class Template Reference

Base class for data containers used within FluidElement and derived types. More...

#include <fluid_element_data.h>

Inheritance diagram for Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >:
Collaboration diagram for Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >:

Public Member Functions

Life Cycle
 FluidElementData ()
 Default constructor. More...
 
virtual ~FluidElementData ()
 Destructor. More...
 
FluidElementDataoperator= (FluidElementData const &rOther)=delete
 (deleted) assignment operator. More...
 
 FluidElementData (FluidElementData const &rOther)=delete
 (deleted) copy constructor. More...
 

Public Attributes

Public Members
unsigned int IntegrationPointIndex
 
double Weight
 
ShapeFunctionsType N
 
ShapeDerivativesType DN_DX
 
Vector StrainRate
 Strain rate (symmetric gradient of velocity) vector in Voigt notation. More...
 
Vector ShearStress
 Shear stress vector in Voigt notation. More...
 
Matrix C
 Constitutive tensor C (expressed as a Matrix). More...
 
ConstitutiveLaw::Parameters ConstitutiveLawValues
 Constitutive law configuration (stored here to avoid re-initialization within the element). More...
 
double EffectiveViscosity
 Effective viscosity (in dynamic units) produced by the constitutive law. More...
 

Protected Member Functions

Protected Operations
void FillFromNodalData (NodalScalarData &rData, const Variable< double > &rVariable, const Geometry< Node > &rGeometry)
 
void FillFromNodalData (NodalVectorData &rData, const Variable< array_1d< double, 3 >> &rVariable, const Geometry< Node > &rGeometry)
 
void FillFromHistoricalNodalData (NodalScalarData &rData, const Variable< double > &rVariable, const Geometry< Node > &rGeometry)
 
void FillFromHistoricalNodalData (NodalVectorData &rData, const Variable< array_1d< double, 3 >> &rVariable, const Geometry< Node > &rGeometry)
 
void FillFromHistoricalNodalData (NodalTensorData &rData, const Variable< Matrix > &rVariable, const Geometry< Node > &rGeometry)
 
void FillFromHistoricalNodalData (NodalScalarData &rData, const Variable< double > &rVariable, const Geometry< Node > &rGeometry, const unsigned int Step)
 
void FillFromHistoricalNodalData (NodalVectorData &rData, const Variable< array_1d< double, 3 >> &rVariable, const Geometry< Node > &rGeometry, const unsigned int Step)
 
void FillFromNonHistoricalNodalData (NodalScalarData &rData, const Variable< double > &rVariable, const Geometry< Node > &rGeometry)
 
void FillFromNonHistoricalNodalData (NodalVectorData &rData, const Variable< array_1d< double, 3 >> &rVariable, const Geometry< Node > &rGeometry)
 
void FillFromProcessInfo (double &rData, const Variable< double > &rVariable, const ProcessInfo &rProcessInfo)
 
void FillFromProcessInfo (int &rData, const Variable< int > &rVariable, const ProcessInfo &rProcessInfo)
 
void FillFromElementData (double &rData, const Variable< double > &rVariable, const Element &rElement)
 
void FillFromElementData (Vector &rData, const Variable< Vector > &rVariable, const Element &rElement)
 
void FillFromElementData (NodalScalarData &rData, const Variable< Vector > &rVariable, const Element &rElement)
 
void FillFromProperties (double &rData, const Variable< double > &rVariable, const Properties &rProperties)
 

Type Definitions

using NodalScalarData = array_1d< double, TNumNodes >
 
using NodalVectorData = BoundedMatrix< double, TNumNodes, TDim >
 
using NodalTensorData = std::array< BoundedMatrix< double, TDim, TDim >, TNumNodes >
 
using ShapeFunctionsType = array_1d< double, TNumNodes >
 
using ShapeDerivativesType = BoundedMatrix< double, TNumNodes, TDim >
 
using MatrixRowType = MatrixRow< Matrix >
 
constexpr static unsigned int Dim = TDim
 Physical space dimension for the problem. More...
 
constexpr static unsigned int NumNodes = TNumNodes
 Number of nodes of the element. More...
 
constexpr static unsigned int StrainSize = (TDim-1)*3
 Size of the strain and stress vectors (in Voigt notation) for the formulation. More...
 
constexpr static bool ElementManagesTimeIntegration = TElementIntegratesInTime
 This lets FluidElement know wether this element requires an external time scheme or not. More...
 

Public Operations

virtual void Initialize (const Element &rElement, const ProcessInfo &rProcessInfo)
 
virtual void UpdateGeometryValues (unsigned int IntegrationPointIndex, double NewWeight, const MatrixRowType &rN, const ShapeDerivativesType &rDN_DX)
 
static int Check (const Element &rElement, const ProcessInfo &rProcessInfo)
 

Detailed Description

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
class Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >

Base class for data containers used within FluidElement and derived types.

Member Typedef Documentation

◆ MatrixRowType

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
using Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::MatrixRowType = MatrixRow< Matrix >

◆ NodalScalarData

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
using Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::NodalScalarData = array_1d<double,TNumNodes>

◆ NodalTensorData

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
using Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::NodalTensorData = std::array<BoundedMatrix<double,TDim,TDim>,TNumNodes>

◆ NodalVectorData

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
using Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::NodalVectorData = BoundedMatrix<double,TNumNodes,TDim>

◆ ShapeDerivativesType

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
using Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::ShapeDerivativesType = BoundedMatrix<double,TNumNodes,TDim>

◆ ShapeFunctionsType

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
using Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::ShapeFunctionsType = array_1d<double,TNumNodes>

Constructor & Destructor Documentation

◆ FluidElementData() [1/2]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FluidElementData

Default constructor.

◆ ~FluidElementData()

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::~FluidElementData
virtual

Destructor.

◆ FluidElementData() [2/2]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FluidElementData ( FluidElementData< TDim, TNumNodes, TElementIntegratesInTime > const &  rOther)
delete

(deleted) copy constructor.

Member Function Documentation

◆ Check()

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
int Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::Check ( const Element rElement,
const ProcessInfo rProcessInfo 
)
static

◆ FillFromElementData() [1/3]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromElementData ( double rData,
const Variable< double > &  rVariable,
const Element rElement 
)
protected

◆ FillFromElementData() [2/3]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromElementData ( NodalScalarData rData,
const Variable< Vector > &  rVariable,
const Element rElement 
)
protected

◆ FillFromElementData() [3/3]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromElementData ( Vector rData,
const Variable< Vector > &  rVariable,
const Element rElement 
)
protected

◆ FillFromHistoricalNodalData() [1/5]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromHistoricalNodalData ( NodalScalarData rData,
const Variable< double > &  rVariable,
const Geometry< Node > &  rGeometry 
)
protected

◆ FillFromHistoricalNodalData() [2/5]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromHistoricalNodalData ( NodalScalarData rData,
const Variable< double > &  rVariable,
const Geometry< Node > &  rGeometry,
const unsigned int  Step 
)
protected

◆ FillFromHistoricalNodalData() [3/5]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromHistoricalNodalData ( NodalTensorData rData,
const Variable< Matrix > &  rVariable,
const Geometry< Node > &  rGeometry 
)
protected

◆ FillFromHistoricalNodalData() [4/5]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromHistoricalNodalData ( NodalVectorData rData,
const Variable< array_1d< double, 3 >> &  rVariable,
const Geometry< Node > &  rGeometry 
)
protected

◆ FillFromHistoricalNodalData() [5/5]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromHistoricalNodalData ( NodalVectorData rData,
const Variable< array_1d< double, 3 >> &  rVariable,
const Geometry< Node > &  rGeometry,
const unsigned int  Step 
)
protected

◆ FillFromNodalData() [1/2]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromNodalData ( NodalScalarData rData,
const Variable< double > &  rVariable,
const Geometry< Node > &  rGeometry 
)
inlineprotected

◆ FillFromNodalData() [2/2]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromNodalData ( NodalVectorData rData,
const Variable< array_1d< double, 3 >> &  rVariable,
const Geometry< Node > &  rGeometry 
)
inlineprotected

◆ FillFromNonHistoricalNodalData() [1/2]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromNonHistoricalNodalData ( NodalScalarData rData,
const Variable< double > &  rVariable,
const Geometry< Node > &  rGeometry 
)
protected

◆ FillFromNonHistoricalNodalData() [2/2]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromNonHistoricalNodalData ( NodalVectorData rData,
const Variable< array_1d< double, 3 >> &  rVariable,
const Geometry< Node > &  rGeometry 
)
protected

◆ FillFromProcessInfo() [1/2]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromProcessInfo ( double rData,
const Variable< double > &  rVariable,
const ProcessInfo rProcessInfo 
)
protected

◆ FillFromProcessInfo() [2/2]

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromProcessInfo ( int rData,
const Variable< int > &  rVariable,
const ProcessInfo rProcessInfo 
)
protected

◆ FillFromProperties()

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::FillFromProperties ( double rData,
const Variable< double > &  rVariable,
const Properties rProperties 
)
protected

◆ Initialize()

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::Initialize ( const Element rElement,
const ProcessInfo rProcessInfo 
)
virtual

◆ operator=()

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
FluidElementData& Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::operator= ( FluidElementData< TDim, TNumNodes, TElementIntegratesInTime > const &  rOther)
delete

(deleted) assignment operator.

◆ UpdateGeometryValues()

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
void Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::UpdateGeometryValues ( unsigned int  IntegrationPointIndex,
double  NewWeight,
const MatrixRowType rN,
const ShapeDerivativesType rDN_DX 
)
virtual

Member Data Documentation

◆ C

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
Matrix Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::C

Constitutive tensor C (expressed as a Matrix).

It is calculated by the constitutive law in FluidElement::ComputeMaterialResponse.

◆ ConstitutiveLawValues

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
ConstitutiveLaw::Parameters Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::ConstitutiveLawValues

Constitutive law configuration (stored here to avoid re-initialization within the element).

◆ Dim

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
constexpr static unsigned int Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::Dim = TDim
staticconstexpr

Physical space dimension for the problem.

◆ DN_DX

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
ShapeDerivativesType Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::DN_DX

◆ EffectiveViscosity

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
double Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::EffectiveViscosity

Effective viscosity (in dynamic units) produced by the constitutive law.

◆ ElementManagesTimeIntegration

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
constexpr static bool Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::ElementManagesTimeIntegration = TElementIntegratesInTime
staticconstexpr

This lets FluidElement know wether this element requires an external time scheme or not.

◆ IntegrationPointIndex

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
unsigned int Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::IntegrationPointIndex

◆ N

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
ShapeFunctionsType Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::N

◆ NumNodes

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
constexpr static unsigned int Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::NumNodes = TNumNodes
staticconstexpr

Number of nodes of the element.

◆ ShearStress

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
Vector Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::ShearStress

Shear stress vector in Voigt notation.

It is calculated by the constitutive law in FluidElement::ComputeMaterialResponse.

◆ StrainRate

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
Vector Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::StrainRate

Strain rate (symmetric gradient of velocity) vector in Voigt notation.

It is calculated by the constitutive law in FluidElement::ComputeMaterialResponse.

◆ StrainSize

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
constexpr static unsigned int Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::StrainSize = (TDim-1)*3
staticconstexpr

Size of the strain and stress vectors (in Voigt notation) for the formulation.

◆ Weight

template<size_t TDim, size_t TNumNodes, bool TElementIntegratesInTime>
double Kratos::FluidElementData< TDim, TNumNodes, TElementIntegratesInTime >::Weight

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