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::Tetrahedra3D4AusasIncisedShapeFunctions Class Reference

#include <tetrahedra_3d_4_ausas_incised_shape_functions.h>

Inheritance diagram for Kratos::Tetrahedra3D4AusasIncisedShapeFunctions:
Collaboration diagram for Kratos::Tetrahedra3D4AusasIncisedShapeFunctions:

Public Member Functions

Life Cycle
 Tetrahedra3D4AusasIncisedShapeFunctions (const GeometryPointerType rpInputGeometry, const Vector &rNodalDistancesWithExtrapolated, const Vector &rExtrapolatedEdgeRatios)
 Default constructor. More...
 
 ~Tetrahedra3D4AusasIncisedShapeFunctions ()
 Destructor. More...
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
Operations
const VectorGetExtrapolatedEdgeRatios () const
 
- Public Member Functions inherited from Kratos::Tetrahedra3D4AusasModifiedShapeFunctions
 Tetrahedra3D4AusasModifiedShapeFunctions (const GeometryPointerType rpInputGeometry, const Vector &rNodalDistances)
 Default constructor. More...
 
 ~Tetrahedra3D4AusasModifiedShapeFunctions ()
 Destructor. More...
 
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
const DivideGeometry< Node >::Pointer pGetSplittingUtil () const override
 
 KRATOS_CLASS_POINTER_DEFINITION (Tetrahedra3D4AusasModifiedShapeFunctions)
 Pointer definition of Tetrahedra3D4AusasModifiedShapeFunctions. More...
 
- Public Member Functions inherited from Kratos::AusasModifiedShapeFunctions
 AusasModifiedShapeFunctions (const GeometryPointerType rpInputGeometry, const Vector &rNodalDistances)
 Default constructor. More...
 
 ~AusasModifiedShapeFunctions ()
 Destructor. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (AusasModifiedShapeFunctions)
 Pointer definition of AusasModifiedShapeFunctions. More...
 
- Public Member Functions inherited from Kratos::ModifiedShapeFunctions
 ModifiedShapeFunctions (const GeometryPointerType pInputGeometry, const Vector &rNodalDistances)
 Default constructor. More...
 
virtual ~ModifiedShapeFunctions ()
 Destructor. More...
 
const GeometryPointerType GetInputGeometry () const
 
const VectorGetNodalDistances () const
 
double ComputePositiveSideDomainSize () const
 Compute the positive domain size For the given input geometry, this method calculates the positive side volume (or area in 2D) More...
 
double ComputeNegativeSideDomainSize () const
 Compute the negative domain size For the given input geometry, this method calculates the negative side volume (or area in 2D) More...
 
void ComputePositiveSideShapeFunctionsAndWeights (Matrix &rPositiveSideShapeFunctionsValues, Vector &rPositiveSideWeightsValues, const IntegrationMethodType IntegrationMethod)
 
void ComputeNegativeSideShapeFunctionsAndWeights (Matrix &rNegativeSideShapeFunctionsValues, Vector &rNegativeSideWeightsValues, const IntegrationMethodType IntegrationMethod)
 
void ComputePositiveSideShapeFunctionsAndGradientsValues (Matrix &rPositiveSideShapeFunctionsValues, ShapeFunctionsGradientsType &rPositiveSideShapeFunctionsGradientsValues, Vector &rPositiveSideWeightsValues, const IntegrationMethodType IntegrationMethod)
 
void ComputeNegativeSideShapeFunctionsAndGradientsValues (Matrix &rNegativeSideShapeFunctionsValues, ShapeFunctionsGradientsType &rNegativeSideShapeFunctionsGradientsValues, Vector &rNegativeSideWeightsValues, const IntegrationMethodType IntegrationMethod)
 
void ComputeInterfacePositiveSideShapeFunctionsAndGradientsValues (Matrix &rInterfacePositiveSideShapeFunctionsValues, ShapeFunctionsGradientsType &rInterfacePositiveSideShapeFunctionsGradientsValues, Vector &rInterfacePositiveSideWeightsValues, const IntegrationMethodType IntegrationMethod)
 
void ComputeInterfaceNegativeSideShapeFunctionsAndGradientsValues (Matrix &rInterfaceNegativeSideShapeFunctionsValues, ShapeFunctionsGradientsType &rInterfaceNegativeSideShapeFunctionsGradientsValues, Vector &rInterfaceNegativeSideWeightsValues, const IntegrationMethodType IntegrationMethod)
 
void ComputePositiveExteriorFaceShapeFunctionsAndGradientsValues (Matrix &rPositiveExteriorFaceShapeFunctionsValues, ShapeFunctionsGradientsType &rPositiveExteriorFaceShapeFunctionsGradientsValues, Vector &rPositiveExteriorFaceWeightsValues, const unsigned int FaceId, const IntegrationMethodType IntegrationMethod)
 
void ComputeNegativeExteriorFaceShapeFunctionsAndGradientsValues (Matrix &rNegativeExteriorFaceShapeFunctionsValues, ShapeFunctionsGradientsType &rNegativeExteriorFaceShapeFunctionsGradientsValues, Vector &rNegativeExteriorFaceWeightsValues, const unsigned int FaceId, const IntegrationMethodType IntegrationMethod)
 
void ComputePositiveSideInterfaceAreaNormals (AreaNormalsContainerType &rPositiveSideInterfaceAreaNormal, const IntegrationMethodType IntegrationMethod)
 
void ComputeNegativeSideInterfaceAreaNormals (AreaNormalsContainerType &rNegativeSideInterfaceAreaNormal, const IntegrationMethodType IntegrationMethod)
 
void ComputePositiveExteriorFaceAreaNormals (AreaNormalsContainerType &rPositiveExteriorFaceAreaNormal, const unsigned int FaceId, const IntegrationMethodType IntegrationMethod)
 
void ComputeNegativeExteriorFaceAreaNormals (AreaNormalsContainerType &rNegativeExteriorFaceAreaNormal, const unsigned int FaceId, const IntegrationMethodType IntegrationMethod)
 
void ComputeShapeFunctionsOnPositiveEdgeIntersections (Matrix &rPositiveEdgeIntersectionsShapeFunctionsValues)
 
void ComputeShapeFunctionsOnNegativeEdgeIntersections (Matrix &rNegativeEdgeIntersectionsShapeFunctionsValues)
 
bool IsSplit () const
 
 KRATOS_CLASS_POINTER_DEFINITION (ModifiedShapeFunctions)
 Pointer definition of ModifiedShapeFunctions. More...
 

Protected Member Functions

Protected Operations
void SetPositiveSideCondensationMatrix (Matrix &rPosSideCondMatrix) override
 Set the Positive Side Condensation Matrix object This function sets the positive side condensation matrix Note that for the Ausas FE space a different condensation matrix is required for the positive and negative sides. More...
 
void SetNegativeSideCondensationMatrix (Matrix &rNegSideCondMatrix) override
 Set the Negative Side Condensation Matrix object This function sets the negative side condensation matrix Note that for the Ausas FE space a different condensation matrix is required for the positive and negative sides. More...
 
void SetPositiveSideCondensationMatrix (Matrix &rPosSideCondMatrix, const std::vector< int > &rEdgeNodeI, const std::vector< int > &rEdgeNodeJ, const std::vector< int > &rSplitEdges)
 
void SetNegativeSideCondensationMatrix (Matrix &rNegSideCondMatrix, const std::vector< int > &rEdgeNodeI, const std::vector< int > &rEdgeNodeJ, const std::vector< int > &rSplitEdges)
 
- Protected Member Functions inherited from Kratos::Tetrahedra3D4AusasModifiedShapeFunctions
void SetPositiveSideCondensationMatrix (Matrix &rPosSideCondMatrix) override
 Set the Positive Side Condensation Matrix object This function sets the positive side condensation matrix Note that for the Ausas FE space a different condensation matrix is required for the positive and negative sides. More...
 
void SetNegativeSideCondensationMatrix (Matrix &rNegSideCondMatrix) override
 Set the Negative Side Condensation Matrix object This function sets the negative side condensation matrix Note that for the Ausas FE space a different condensation matrix is required for the positive and negative sides. More...
 
- Protected Member Functions inherited from Kratos::AusasModifiedShapeFunctions
void SetCondensationMatrix (Matrix &rIntPointCondMatrix) override
 
void SetPositiveSideCondensationMatrix (Matrix &rPosSideCondMatrix, const std::vector< int > &rEdgeNodeI, const std::vector< int > &rEdgeNodeJ, const std::vector< int > &rSplitEdges)
 
void SetNegativeSideCondensationMatrix (Matrix &rNegSideCondMatrix, const std::vector< int > &rEdgeNodeI, const std::vector< int > &rEdgeNodeJ, const std::vector< int > &rSplitEdges)
 
- Protected Member Functions inherited from Kratos::ModifiedShapeFunctions
void SetCondensationMatrix (Matrix &rIntPointCondMatrix, const std::vector< int > &rEdgeNodeI, const std::vector< int > &rEdgeNodeJ, const std::vector< int > &rSplitEdges)
 
void ComputeValuesOnOneSide (Matrix &rShapeFunctionsValues, ShapeFunctionsGradientsType &rShapeFunctionsGradientsValues, Vector &rWeightsValues, const std::vector< IndexedPointGeometryPointerType > &rSubdivisionsVector, const Matrix &rPmatrix, const IntegrationMethodType IntegrationMethod)
 
void ComputeFaceValuesOnOneSide (Matrix &rInterfaceShapeFunctionsValues, ShapeFunctionsGradientsType &rInterfaceShapeFunctionsGradientsValues, Vector &rInterfaceWeightsValues, const std::vector< IndexedPointGeometryPointerType > &rInterfacesVector, const std::vector< IndexedPointGeometryPointerType > &rParentGeometriesVector, const std::vector< unsigned int > &rInterfacesParentIdsVector, const Matrix &rPmatrix, const IntegrationMethodType IntegrationMethod)
 
void ComputeFaceNormalOnOneSide (AreaNormalsContainerType &rInterfaceAreaNormalValues, const std::vector< IndexedPointGeometryPointerType > &rInterfacesVector, const IntegrationMethodType IntegrationMethod)
 
void ComputeEdgeIntersectionValuesOnOneSide (const Matrix &rPmatrix, Matrix &rEdgeShapeFunctionValues)
 

Protected Attributes

Protected member Variables
const std::array< size_t, 6 > edge_id_for_geometry {{0, 2, 3, 1, 4, 5}}
 
const std::array< std::array< size_t, 2 >, 6 > node_ids_for_geometry {{{{0,1}}, {{2,0}}, {{0,3}}, {{1,2}}, {{1,3}}, {{2,3}}}}
 
- Protected Attributes inherited from Kratos::Tetrahedra3D4AusasModifiedShapeFunctions
DivideTetrahedra3D4< Node >::Pointer mpTetrahedraSplitter
 

Type Definitions

typedef AusasModifiedShapeFunctions BaseType
 
typedef BaseType::GeometryPointerType GeometryPointerType
 
 KRATOS_CLASS_POINTER_DEFINITION (Tetrahedra3D4AusasIncisedShapeFunctions)
 Pointer definition of Tetrahedra3D4AusasModifiedShapeFunctions. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::Tetrahedra3D4AusasModifiedShapeFunctions
typedef AusasModifiedShapeFunctions BaseType
 
typedef BaseType::GeometryType GeometryType
 
typedef BaseType::GeometryPointerType GeometryPointerType
 
typedef BaseType::IntegrationMethodType IntegrationMethodType
 
typedef BaseType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
 
typedef BaseType::IndexedPointGeometryType IndexedPointGeometryType
 
typedef BaseType::IndexedPointGeometryPointerType IndexedPointGeometryPointerType
 
typedef BaseType::IntegrationPointType IntegrationPointType
 
typedef BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
 
typedef BaseType::IntegrationPointsContainerType IntegrationPointsContainerType
 
- Public Types inherited from Kratos::AusasModifiedShapeFunctions
typedef ModifiedShapeFunctions BaseType
 
typedef BaseType::GeometryType GeometryType
 
typedef BaseType::GeometryPointerType GeometryPointerType
 
typedef BaseType::IntegrationMethodType IntegrationMethodType
 
typedef BaseType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
 
typedef BaseType::IndexedPointGeometryType IndexedPointGeometryType
 
typedef BaseType::IndexedPointGeometryPointerType IndexedPointGeometryPointerType
 
typedef BaseType::IntegrationPointType IntegrationPointType
 
typedef BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
 
typedef BaseType::IntegrationPointsContainerType IntegrationPointsContainerType
 
- Public Types inherited from Kratos::ModifiedShapeFunctions
typedef Geometry< NodeGeometryType
 
typedef GeometryType::Pointer GeometryPointerType
 
typedef GeometryType::CoordinatesArrayType CoordinatesArrayType
 
typedef GeometryData::IntegrationMethod IntegrationMethodType
 
typedef GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
 
typedef std::vector< array_1d< double, 3 > > AreaNormalsContainerType
 
typedef DivideGeometry< Node >::IndexedPointGeometryType IndexedPointGeometryType
 
typedef DivideGeometry< Node >::IndexedPointGeometryPointerType IndexedPointGeometryPointerType
 
typedef IntegrationPoint< 3 > IntegrationPointType
 
typedef std::vector< IntegrationPointTypeIntegrationPointsArrayType
 
typedef std::array< IntegrationPointsArrayType, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> IntegrationPointsContainerType
 

Member Typedef Documentation

◆ BaseType

◆ GeometryPointerType

Constructor & Destructor Documentation

◆ Tetrahedra3D4AusasIncisedShapeFunctions()

Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::Tetrahedra3D4AusasIncisedShapeFunctions ( const GeometryPointerType  pInputGeometry,
const Vector rNodalDistancesWithExrapolated,
const Vector rExtrapolatedEdgeRatios 
)

Default constructor.

Tetrahedra3D4AusasIncisedShapeFunctions implementation Default constructor

◆ ~Tetrahedra3D4AusasIncisedShapeFunctions()

Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::~Tetrahedra3D4AusasIncisedShapeFunctions ( )

Destructor.

Member Function Documentation

◆ GetExtrapolatedEdgeRatios()

const Vector & Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::GetExtrapolatedEdgeRatios ( ) const

Returns a reference to the extrapolated edge ratios vector member variable.

◆ Info()

std::string Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::Info ( ) const
overridevirtual

Turn back information as a string.

Reimplemented from Kratos::AusasModifiedShapeFunctions.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::KRATOS_CLASS_POINTER_DEFINITION ( Tetrahedra3D4AusasIncisedShapeFunctions  )

◆ PrintData()

void Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::PrintData ( std::ostream &  rOStream) const
overridevirtual

Print object's data.

Reimplemented from Kratos::AusasModifiedShapeFunctions.

◆ PrintInfo()

void Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::PrintInfo ( std::ostream &  rOStream) const
overridevirtual

Print information about this object.

Reimplemented from Kratos::AusasModifiedShapeFunctions.

◆ SetNegativeSideCondensationMatrix() [1/2]

void Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::SetNegativeSideCondensationMatrix ( Matrix rNegSideCondMatrix)
overrideprotectedvirtual

Set the Negative Side Condensation Matrix object This function sets the negative side condensation matrix Note that for the Ausas FE space a different condensation matrix is required for the positive and negative sides.

Parameters
rNegSideCondMatrixNegative side condensation matrix

Reimplemented from Kratos::AusasModifiedShapeFunctions.

◆ SetNegativeSideCondensationMatrix() [2/2]

void Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::SetNegativeSideCondensationMatrix ( Matrix rNegSideCondMatrix,
const std::vector< int > &  rEdgeNodeI,
const std::vector< int > &  rEdgeNodeJ,
const std::vector< int > &  rSplitEdges 
)
protected

Returns the intersection points and extrapolated intersection points condensation matrix for negative side Ausas shape functions for incised elements. This matrix is used to transform the subdivisions shape funtion values to the original geometry ones. It has size (n_nodes+n_edges)x(n_nodes).

Parameters
rNegSideCondMatrixReference to the (extrapolated) intersection points condensation matrix to be changed.
rEdgeNodeIIntegers array containing the nodes "I" that conform the edges.
rEdgeNodeJIntegers array containing the nodes "J" that conform the edges.
rSplitEdgesIntegers array containing the original nodes ids and the intersected edges nodes ones.

◆ SetPositiveSideCondensationMatrix() [1/2]

void Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::SetPositiveSideCondensationMatrix ( Matrix rPosSideCondMatrix)
overrideprotectedvirtual

Set the Positive Side Condensation Matrix object This function sets the positive side condensation matrix Note that for the Ausas FE space a different condensation matrix is required for the positive and negative sides.

Parameters
rPosSideCondMatrixPositive side condensation matrix

Reimplemented from Kratos::AusasModifiedShapeFunctions.

◆ SetPositiveSideCondensationMatrix() [2/2]

void Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::SetPositiveSideCondensationMatrix ( Matrix rPosSideCondMatrix,
const std::vector< int > &  rEdgeNodeI,
const std::vector< int > &  rEdgeNodeJ,
const std::vector< int > &  rSplitEdges 
)
protected

Returns the intersection points and extrapolated intersection points condensation matrix for positive side Ausas shape functions for incised elements. This matrix is used to transform the subdivisions shape funtion values to the original geometry ones. It has size (n_nodes+n_edges)x(n_nodes).

Parameters
rPosSideCondMatrixReference to the extrapolated) intersection points condensation matrix to be changed.
rEdgeNodeIIntegers array containing the nodes "I" that conform the edges.
rEdgeNodeJIntegers array containing the nodes "J" that conform the edges.
rSplitEdgesIntegers array containing the original nodes ids and the intersected edges nodes ones.

Member Data Documentation

◆ edge_id_for_geometry

const std::array<size_t, 6> Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::edge_id_for_geometry {{0, 2, 3, 1, 4, 5}}
protected

◆ node_ids_for_geometry

const std::array<std::array<size_t,2>, 6> Kratos::Tetrahedra3D4AusasIncisedShapeFunctions::node_ids_for_geometry {{{{0,1}}, {{2,0}}, {{0,3}}, {{1,2}}, {{1,3}}, {{2,3}}}}
protected

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