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

#include <ausas_modified_shape_functions.h>

Inheritance diagram for Kratos::AusasModifiedShapeFunctions:
Collaboration diagram for Kratos::AusasModifiedShapeFunctions:

Public Member Functions

Life Cycle
 AusasModifiedShapeFunctions (const GeometryPointerType rpInputGeometry, const Vector &rNodalDistances)
 Default constructor. More...
 
 ~AusasModifiedShapeFunctions ()
 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...
 
- Public Member Functions inherited from Kratos::ModifiedShapeFunctions
 ModifiedShapeFunctions (const GeometryPointerType pInputGeometry, const Vector &rNodalDistances)
 Default constructor. More...
 
virtual ~ModifiedShapeFunctions ()
 Destructor. More...
 
virtual const DivideGeometry< Node >::Pointer pGetSplittingUtil () const
 
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 SetCondensationMatrix (Matrix &rIntPointCondMatrix) override
 
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::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)
 

Type Definitions

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
 
 KRATOS_CLASS_POINTER_DEFINITION (AusasModifiedShapeFunctions)
 Pointer definition of AusasModifiedShapeFunctions. More...
 

Additional Inherited Members

- 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

◆ GeometryType

◆ IndexedPointGeometryPointerType

◆ IndexedPointGeometryType

◆ IntegrationMethodType

◆ IntegrationPointsArrayType

◆ IntegrationPointsContainerType

◆ IntegrationPointType

◆ ShapeFunctionsGradientsType

Constructor & Destructor Documentation

◆ AusasModifiedShapeFunctions()

Kratos::AusasModifiedShapeFunctions::AusasModifiedShapeFunctions ( const GeometryPointerType  pInputGeometry,
const Vector rNodalDistances 
)

Default constructor.

AusasModifiedShapeFunctions implementation Default constructor

◆ ~AusasModifiedShapeFunctions()

Kratos::AusasModifiedShapeFunctions::~AusasModifiedShapeFunctions ( )

Destructor.

Member Function Documentation

◆ Info()

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

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::AusasModifiedShapeFunctions::KRATOS_CLASS_POINTER_DEFINITION ( AusasModifiedShapeFunctions  )

Pointer definition of AusasModifiedShapeFunctions.

◆ PrintData()

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

◆ PrintInfo()

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

◆ SetCondensationMatrix()

void Kratos::AusasModifiedShapeFunctions::SetCondensationMatrix ( Matrix rIntPointCondMatrix)
inlineoverrideprotectedvirtual

Returns the intersection points condensation matrix. This matrix is used to extrapolate the subdivisions shape funtion values to the original geometry ones. It has size (nnodes+nedges)x(nnodes).

Returns
rIntPointCondMatrix: Reference to the intersection points condensation matrix.

Reimplemented from Kratos::ModifiedShapeFunctions.

◆ SetNegativeSideCondensationMatrix() [1/2]

void Kratos::AusasModifiedShapeFunctions::SetNegativeSideCondensationMatrix ( Matrix rNegSideCondMatrix)
inlineoverrideprotectedvirtual

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::ModifiedShapeFunctions.

Reimplemented in Kratos::Triangle2D3AusasModifiedShapeFunctions, Kratos::Triangle2D3AusasIncisedShapeFunctions, Kratos::Tetrahedra3D4AusasModifiedShapeFunctions, and Kratos::Tetrahedra3D4AusasIncisedShapeFunctions.

◆ SetNegativeSideCondensationMatrix() [2/2]

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

Returns the intersection points condensation matrix for negative side Ausas sh functions. This matrix is used to extrapolate the subdivisions shape funtion values to the original geometry ones. It has size (nnodes+nedges)x(nnodes).

Returns
rNegSideCondMatrix: Reference to the intersection points condensation matrix.
Parameters
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::AusasModifiedShapeFunctions::SetPositiveSideCondensationMatrix ( Matrix rPosSideCondMatrix)
inlineoverrideprotectedvirtual

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::ModifiedShapeFunctions.

Reimplemented in Kratos::Triangle2D3AusasModifiedShapeFunctions, Kratos::Triangle2D3AusasIncisedShapeFunctions, Kratos::Tetrahedra3D4AusasModifiedShapeFunctions, and Kratos::Tetrahedra3D4AusasIncisedShapeFunctions.

◆ SetPositiveSideCondensationMatrix() [2/2]

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

Returns the intersection points condensation matrix for positive side Ausas sh functions. This matrix is used to extrapolate the subdivisions shape funtion values to the original geometry ones. It has size (nnodes+nedges)x(nnodes).

Returns
rPosSideCondMatrix: Reference to the intersection points condensation matrix.
Parameters
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.

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