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::EmbeddedDiscontinuousData< TFluidData > Class Template Reference

#include <embedded_discontinuous_data.h>

Inheritance diagram for Kratos::EmbeddedDiscontinuousData< TFluidData >:
Collaboration diagram for Kratos::EmbeddedDiscontinuousData< TFluidData >:

Public Attributes

Public Members
double SlipLength
 
double PenaltyCoefficient
 
NodalScalarData ElementalDistances
 
Vector ElementalEdgeDistancesExtrapolated
 
Matrix PositiveSideN
 
Matrix NegativeSideN
 
ShapeFunctionsGradientsType PositiveSideDNDX
 
ShapeFunctionsGradientsType NegativeSideDNDX
 
Vector PositiveSideWeights
 
Vector NegativeSideWeights
 
Matrix PositiveInterfaceN
 
Matrix NegativeInterfaceN
 
ShapeFunctionsGradientsType PositiveInterfaceDNDX
 
ShapeFunctionsGradientsType NegativeInterfaceDNDX
 
Vector PositiveInterfaceWeights
 
Vector NegativeInterfaceWeights
 
InterfaceNormalsType PositiveInterfaceUnitNormals
 
InterfaceNormalsType NegativeInterfaceUnitNormals
 
std::vector< size_t > PositiveIndices
 
std::vector< size_t > NegativeIndices
 
std::size_t NumPositiveNodes
 
std::size_t NumNegativeNodes
 
std::size_t NumIntersectedEdgesExtrapolated
 

Type Definitions

using NodalScalarData = typename TFluidData::NodalScalarData
 
using NodalVectorData = typename TFluidData::NodalVectorData
 
typedef GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
 
typedef std::vector< array_1d< double, 3 > > InterfaceNormalsType
 
constexpr static std::size_t NumEdges = (TFluidData::NumNodes == 3) ? 3 : 6
 Number of edges of the element (simplex elements are assumed) More...
 

Public Operations

void Initialize (const Element &rElement, const ProcessInfo &rProcessInfo) override
 Discontinuous embedded formulation data container initialization This method initializes the discontinuous embedded formulation data container. This implies to intialize the base formulation data container as well as to get the elemental distances from the elemental variable ELEMENTAL_DISTANCES (note that this requires the ELEMENTAL_DISTANCES to be set before this operation) and the elemental edge distances from ELEMENTAL_EDGE_DISTANCES and ELEMENTAL_EDGE_DISTANCES_EXTRAPOLATED. More...
 
void InitializeBoundaryConditionData (const ProcessInfo &rProcessInfo)
 Fills the boundary condition data fields This method needs to be called in cut elements. It fills the data structure fields related to the boundary condition imposition (slip length and penalty coefficient) by retrieving their value from the ProcessInfo. More...
 
bool IsCut ()
 Checks if the current element is intersected Checks if the current element is intersected by checking the number of positive and negative distance nodes. More...
 
bool IsIncised ()
 Checks if the current element is partially intersected (incised) and if extrapolated intersections where calculated. Checks if the current element is partially intersected by checking the number of extrapolated intersected edges This number will only be non-zero if user provided flag to calculate extrapolated edge distances. The case in which three edges of a tetrahedra are cut and element is only incised is also considered. More...
 
static int Check (const Element &rElement, const ProcessInfo &rProcessInfo)
 Discontinous embedded formulation data container check Simple discontinuous embedded formulation data container check. The base formulation data container is checked as well. Returns 0 if the check process succeeds. More...
 

Member Typedef Documentation

◆ InterfaceNormalsType

template<class TFluidData >
typedef std::vector<array_1d<double,3> > Kratos::EmbeddedDiscontinuousData< TFluidData >::InterfaceNormalsType

◆ NodalScalarData

template<class TFluidData >
using Kratos::EmbeddedDiscontinuousData< TFluidData >::NodalScalarData = typename TFluidData::NodalScalarData

◆ NodalVectorData

template<class TFluidData >
using Kratos::EmbeddedDiscontinuousData< TFluidData >::NodalVectorData = typename TFluidData::NodalVectorData

◆ ShapeFunctionsGradientsType

Member Function Documentation

◆ Check()

template<class TFluidData >
static int Kratos::EmbeddedDiscontinuousData< TFluidData >::Check ( const Element rElement,
const ProcessInfo rProcessInfo 
)
inlinestatic

Discontinous embedded formulation data container check Simple discontinuous embedded formulation data container check. The base formulation data container is checked as well. Returns 0 if the check process succeeds.

Parameters
rElementreference to the element that owns the data container
rProcessInforeference to the current ProcessInfo container
Returns
int returns 0 if the check process succeeds

◆ Initialize()

template<class TFluidData >
void Kratos::EmbeddedDiscontinuousData< TFluidData >::Initialize ( const Element rElement,
const ProcessInfo rProcessInfo 
)
inlineoverride

Discontinuous embedded formulation data container initialization This method initializes the discontinuous embedded formulation data container. This implies to intialize the base formulation data container as well as to get the elemental distances from the elemental variable ELEMENTAL_DISTANCES (note that this requires the ELEMENTAL_DISTANCES to be set before this operation) and the elemental edge distances from ELEMENTAL_EDGE_DISTANCES and ELEMENTAL_EDGE_DISTANCES_EXTRAPOLATED.

Parameters
rElementreference to the element that owns the data container
rProcessInforeference to the current ProcessInfo container

◆ InitializeBoundaryConditionData()

template<class TFluidData >
void Kratos::EmbeddedDiscontinuousData< TFluidData >::InitializeBoundaryConditionData ( const ProcessInfo rProcessInfo)
inline

Fills the boundary condition data fields This method needs to be called in cut elements. It fills the data structure fields related to the boundary condition imposition (slip length and penalty coefficient) by retrieving their value from the ProcessInfo.

Parameters
rProcessInfo

◆ IsCut()

template<class TFluidData >
bool Kratos::EmbeddedDiscontinuousData< TFluidData >::IsCut ( )
inline

Checks if the current element is intersected Checks if the current element is intersected by checking the number of positive and negative distance nodes.

Returns
true if the element is intersected
false if the element is not intersected

◆ IsIncised()

template<class TFluidData >
bool Kratos::EmbeddedDiscontinuousData< TFluidData >::IsIncised ( )
inline

Checks if the current element is partially intersected (incised) and if extrapolated intersections where calculated. Checks if the current element is partially intersected by checking the number of extrapolated intersected edges This number will only be non-zero if user provided flag to calculate extrapolated edge distances. The case in which three edges of a tetrahedra are cut and element is only incised is also considered.

Returns
true if the element is incised
false if the element is not incised

Member Data Documentation

◆ ElementalDistances

template<class TFluidData >
NodalScalarData Kratos::EmbeddedDiscontinuousData< TFluidData >::ElementalDistances

◆ ElementalEdgeDistancesExtrapolated

template<class TFluidData >
Vector Kratos::EmbeddedDiscontinuousData< TFluidData >::ElementalEdgeDistancesExtrapolated

◆ NegativeIndices

template<class TFluidData >
std::vector< size_t > Kratos::EmbeddedDiscontinuousData< TFluidData >::NegativeIndices

◆ NegativeInterfaceDNDX

template<class TFluidData >
ShapeFunctionsGradientsType Kratos::EmbeddedDiscontinuousData< TFluidData >::NegativeInterfaceDNDX

◆ NegativeInterfaceN

template<class TFluidData >
Matrix Kratos::EmbeddedDiscontinuousData< TFluidData >::NegativeInterfaceN

◆ NegativeInterfaceUnitNormals

template<class TFluidData >
InterfaceNormalsType Kratos::EmbeddedDiscontinuousData< TFluidData >::NegativeInterfaceUnitNormals

◆ NegativeInterfaceWeights

template<class TFluidData >
Vector Kratos::EmbeddedDiscontinuousData< TFluidData >::NegativeInterfaceWeights

◆ NegativeSideDNDX

template<class TFluidData >
ShapeFunctionsGradientsType Kratos::EmbeddedDiscontinuousData< TFluidData >::NegativeSideDNDX

◆ NegativeSideN

template<class TFluidData >
Matrix Kratos::EmbeddedDiscontinuousData< TFluidData >::NegativeSideN

◆ NegativeSideWeights

template<class TFluidData >
Vector Kratos::EmbeddedDiscontinuousData< TFluidData >::NegativeSideWeights

◆ NumEdges

template<class TFluidData >
constexpr static std::size_t Kratos::EmbeddedDiscontinuousData< TFluidData >::NumEdges = (TFluidData::NumNodes == 3) ? 3 : 6
staticconstexpr

Number of edges of the element (simplex elements are assumed)

◆ NumIntersectedEdgesExtrapolated

template<class TFluidData >
std::size_t Kratos::EmbeddedDiscontinuousData< TFluidData >::NumIntersectedEdgesExtrapolated

◆ NumNegativeNodes

template<class TFluidData >
std::size_t Kratos::EmbeddedDiscontinuousData< TFluidData >::NumNegativeNodes

◆ NumPositiveNodes

template<class TFluidData >
std::size_t Kratos::EmbeddedDiscontinuousData< TFluidData >::NumPositiveNodes

◆ PenaltyCoefficient

template<class TFluidData >
double Kratos::EmbeddedDiscontinuousData< TFluidData >::PenaltyCoefficient

◆ PositiveIndices

template<class TFluidData >
std::vector< size_t > Kratos::EmbeddedDiscontinuousData< TFluidData >::PositiveIndices

◆ PositiveInterfaceDNDX

template<class TFluidData >
ShapeFunctionsGradientsType Kratos::EmbeddedDiscontinuousData< TFluidData >::PositiveInterfaceDNDX

◆ PositiveInterfaceN

template<class TFluidData >
Matrix Kratos::EmbeddedDiscontinuousData< TFluidData >::PositiveInterfaceN

◆ PositiveInterfaceUnitNormals

template<class TFluidData >
InterfaceNormalsType Kratos::EmbeddedDiscontinuousData< TFluidData >::PositiveInterfaceUnitNormals

◆ PositiveInterfaceWeights

template<class TFluidData >
Vector Kratos::EmbeddedDiscontinuousData< TFluidData >::PositiveInterfaceWeights

◆ PositiveSideDNDX

template<class TFluidData >
ShapeFunctionsGradientsType Kratos::EmbeddedDiscontinuousData< TFluidData >::PositiveSideDNDX

◆ PositiveSideN

template<class TFluidData >
Matrix Kratos::EmbeddedDiscontinuousData< TFluidData >::PositiveSideN

◆ PositiveSideWeights

template<class TFluidData >
Vector Kratos::EmbeddedDiscontinuousData< TFluidData >::PositiveSideWeights

◆ SlipLength

template<class TFluidData >
double Kratos::EmbeddedDiscontinuousData< TFluidData >::SlipLength

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