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.
|
#include <modified_shape_functions.h>
Public Member Functions | |
Life Cycle | |
ModifiedShapeFunctions (const GeometryPointerType pInputGeometry, const Vector &rNodalDistances) | |
Default constructor. More... | |
virtual | ~ModifiedShapeFunctions () |
Destructor. More... | |
Input and output | |
virtual std::string | Info () const |
Turn back information as a string. More... | |
virtual void | PrintInfo (std::ostream &rOStream) const |
Print information about this object. More... | |
virtual void | PrintData (std::ostream &rOStream) const |
Print object's data. More... | |
Operations | |
virtual const DivideGeometry< Node >::Pointer | pGetSplittingUtil () const |
const GeometryPointerType | GetInputGeometry () const |
const Vector & | GetNodalDistances () 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 |
Protected Member Functions | |
Protected Operations | |
virtual void | SetCondensationMatrix (Matrix &rIntPointCondMatrix) |
virtual void | SetPositiveSideCondensationMatrix (Matrix &rPosSideCondMatrix) |
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... | |
virtual void | SetNegativeSideCondensationMatrix (Matrix &rNegSideCondMatrix) |
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 | 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 Geometry< Node > | GeometryType |
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< IntegrationPointType > | IntegrationPointsArrayType |
typedef std::array< IntegrationPointsArrayType, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> | IntegrationPointsContainerType |
KRATOS_CLASS_POINTER_DEFINITION (ModifiedShapeFunctions) | |
Pointer definition of ModifiedShapeFunctions. More... | |
typedef std::vector<array_1d<double,3> > Kratos::ModifiedShapeFunctions::AreaNormalsContainerType |
typedef GeometryType::Pointer Kratos::ModifiedShapeFunctions::GeometryPointerType |
typedef DivideGeometry<Node>::IndexedPointGeometryPointerType Kratos::ModifiedShapeFunctions::IndexedPointGeometryPointerType |
typedef DivideGeometry<Node>::IndexedPointGeometryType Kratos::ModifiedShapeFunctions::IndexedPointGeometryType |
typedef std::vector<IntegrationPointType> Kratos::ModifiedShapeFunctions::IntegrationPointsArrayType |
typedef std::array<IntegrationPointsArrayType, static_cast<int>GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> Kratos::ModifiedShapeFunctions::IntegrationPointsContainerType |
typedef GeometryData::ShapeFunctionsGradientsType Kratos::ModifiedShapeFunctions::ShapeFunctionsGradientsType |
Kratos::ModifiedShapeFunctions::ModifiedShapeFunctions | ( | const GeometryPointerType | pInputGeometry, |
const Vector & | rNodalDistances | ||
) |
Default constructor.
ModifiedShapeFunctions implementation Default constructor
|
virtual |
Destructor.
|
protected |
Given a condensation matrix, extracts the edge intersection points shape function values.
rPmatrix | Reference to the condensation matrix. |
|
protected |
Returns the outwards area normal vector values in either the positive or negative element interfaces for a given quadrature.
rInterfacesVector | std::vector of intersection point based geometries where the values are to be computed. |
IntegrationMethod | Desired integration quadrature. |
|
protected |
Returns the shape function values in either the positive or negative element interfaces for a given quadrature.
rInterfacesVector | std::vector of intersection point based geometries where the values are to be computed. |
rParentGeometriesVector | std::vector of subdivisions point based parent geometries. |
rInterfacesParentIdsVector | std::vector containing the parent ids of each interface geometry. |
rPmatrix | reference to the interface interpolation matrix |
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputeInterfaceNegativeSideShapeFunctionsAndGradientsValues | ( | Matrix & | rInterfaceNegativeSideShapeFunctionsValues, |
ShapeFunctionsGradientsType & | rInterfaceNegativeSideShapeFunctionsGradientsValues, | ||
Vector & | rInterfaceNegativeSideWeightsValues, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
Returns the shape function values in the negative split element side for a given quadrature.
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputeInterfacePositiveSideShapeFunctionsAndGradientsValues | ( | Matrix & | rInterfacePositiveSideShapeFunctionsValues, |
ShapeFunctionsGradientsType & | rInterfacePositiveSideShapeFunctionsGradientsValues, | ||
Vector & | rInterfacePositiveSideWeightsValues, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
Returns the shape function values in the positive split element interface side for a given quadrature.
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputeNegativeExteriorFaceAreaNormals | ( | AreaNormalsContainerType & | rNegativeExteriorFaceAreaNormal, |
const unsigned int | FaceId, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
Returns the negative side outwards area normal vector values for the Gauss pts. of given quadrature.
FaceId | Face local id. in where the values are to be computed. |
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputeNegativeExteriorFaceShapeFunctionsAndGradientsValues | ( | Matrix & | rNegativeExteriorFaceShapeFunctionsValues, |
ShapeFunctionsGradientsType & | rNegativeExteriorFaceShapeFunctionsGradientsValues, | ||
Vector & | rNegativeExteriorFaceWeightsValues, | ||
const unsigned int | FaceId, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
Given a face id, returns the shape function values in the negative split element exterior face side for a given quadrature.
FaceId | Face local id. in where the values are to be computed. |
IntegrationMethod | Desired integration quadrature. |
double Kratos::ModifiedShapeFunctions::ComputeNegativeSideDomainSize | ( | ) | const |
Compute the negative domain size For the given input geometry, this method calculates the negative side volume (or area in 2D)
void Kratos::ModifiedShapeFunctions::ComputeNegativeSideInterfaceAreaNormals | ( | AreaNormalsContainerType & | rNegativeSideInterfaceAreaNormal, |
const IntegrationMethodType | IntegrationMethod | ||
) |
Returns the negative side outwards area normal vector values for the Gauss pts. of given quadrature.
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputeNegativeSideShapeFunctionsAndGradientsValues | ( | Matrix & | rNegativeSideShapeFunctionsValues, |
ShapeFunctionsGradientsType & | rNegativeSideShapeFunctionsGradientsValues, | ||
Vector & | rNegativeSideWeightsValues, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
Returns the shape function values in the negative split element side for a given quadrature.
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputeNegativeSideShapeFunctionsAndWeights | ( | Matrix & | rNegativeSideShapeFunctionsValues, |
Vector & | rNegativeSideWeightsValues, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
void Kratos::ModifiedShapeFunctions::ComputePositiveExteriorFaceAreaNormals | ( | AreaNormalsContainerType & | rPositiveExteriorFaceAreaNormal, |
const unsigned int | FaceId, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
Returns the positive side outwards area normal vector values for the Gauss pts. of given quadrature.
FaceId | Face local id. in where the values are to be computed. |
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputePositiveExteriorFaceShapeFunctionsAndGradientsValues | ( | Matrix & | rPositiveExteriorFaceShapeFunctionsValues, |
ShapeFunctionsGradientsType & | rPositiveExteriorFaceShapeFunctionsGradientsValues, | ||
Vector & | rPositiveExteriorFaceWeightsValues, | ||
const unsigned int | FaceId, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
Given a face id, returns the shape function values in the positive split element exterior face side for a given quadrature.
FaceId | Face local id. in where the values are to be computed. |
IntegrationMethod | Desired integration quadrature. |
double Kratos::ModifiedShapeFunctions::ComputePositiveSideDomainSize | ( | ) | const |
Compute the positive domain size For the given input geometry, this method calculates the positive side volume (or area in 2D)
void Kratos::ModifiedShapeFunctions::ComputePositiveSideInterfaceAreaNormals | ( | AreaNormalsContainerType & | rPositiveSideInterfaceAreaNormal, |
const IntegrationMethodType | IntegrationMethod | ||
) |
Returns the positive side outwards area normal vector values for the Gauss pts. of given quadrature.
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputePositiveSideShapeFunctionsAndGradientsValues | ( | Matrix & | rPositiveSideShapeFunctionsValues, |
ShapeFunctionsGradientsType & | rPositiveSideShapeFunctionsGradientsValues, | ||
Vector & | rPositiveSideWeightsValues, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
Returns the shape function values in the positive split element side for a given quadrature.
IntegrationMethod | Desired integration quadrature. |
void Kratos::ModifiedShapeFunctions::ComputePositiveSideShapeFunctionsAndWeights | ( | Matrix & | rPositiveSideShapeFunctionsValues, |
Vector & | rPositiveSideWeightsValues, | ||
const IntegrationMethodType | IntegrationMethod | ||
) |
void Kratos::ModifiedShapeFunctions::ComputeShapeFunctionsOnNegativeEdgeIntersections | ( | Matrix & | rNegativeEdgeIntersectionsShapeFunctionsValues | ) |
Returns the negative side edge intersections shape function values.
void Kratos::ModifiedShapeFunctions::ComputeShapeFunctionsOnPositiveEdgeIntersections | ( | Matrix & | rPositiveEdgeIntersectionsShapeFunctionsValues | ) |
Returns the positive side edge intersections shape function values.
|
protected |
Returns the shape function values in either the positive or negative element subdivision for a given quadrature.
rPmatrix | Reference to the condensation matrix. |
rSubdivisionGeom | std::vector of subdivisions point based geometries where the values are to be computed. |
IntegrationMethod | Desired integration quadrature. |
const ModifiedShapeFunctions::GeometryPointerType Kratos::ModifiedShapeFunctions::GetInputGeometry | ( | ) | const |
Returns a the member pointer to the input geometry.
const Vector & Kratos::ModifiedShapeFunctions::GetNodalDistances | ( | ) | const |
Returns a reference to the nodal distances vector member variable.
|
virtual |
Turn back information as a string.
Reimplemented in Kratos::Triangle2D3ModifiedShapeFunctions, Kratos::Triangle2D3AusasModifiedShapeFunctions, Kratos::Triangle2D3AusasIncisedShapeFunctions, Kratos::Tetrahedra3D4ModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasIncisedShapeFunctions, and Kratos::AusasModifiedShapeFunctions.
bool Kratos::ModifiedShapeFunctions::IsSplit | ( | ) | const |
Returns true if the element is split and false otherwise.
Kratos::ModifiedShapeFunctions::KRATOS_CLASS_POINTER_DEFINITION | ( | ModifiedShapeFunctions | ) |
Pointer definition of ModifiedShapeFunctions.
|
virtual |
Returns the member pointer to the splitting utility.
Reimplemented in Kratos::Triangle2D3ModifiedShapeFunctions, Kratos::Triangle2D3AusasModifiedShapeFunctions, Kratos::Tetrahedra3D4ModifiedShapeFunctions, and Kratos::Tetrahedra3D4AusasModifiedShapeFunctions.
|
virtual |
Print object's data.
Reimplemented in Kratos::Triangle2D3ModifiedShapeFunctions, Kratos::Triangle2D3AusasModifiedShapeFunctions, Kratos::Triangle2D3AusasIncisedShapeFunctions, Kratos::Tetrahedra3D4ModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasIncisedShapeFunctions, and Kratos::AusasModifiedShapeFunctions.
|
virtual |
Print information about this object.
Reimplemented in Kratos::Triangle2D3ModifiedShapeFunctions, Kratos::Triangle2D3AusasModifiedShapeFunctions, Kratos::Triangle2D3AusasIncisedShapeFunctions, Kratos::Tetrahedra3D4ModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasIncisedShapeFunctions, and Kratos::AusasModifiedShapeFunctions.
|
inlineprotectedvirtual |
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).
Reimplemented in Kratos::Triangle2D3ModifiedShapeFunctions, Kratos::Tetrahedra3D4ModifiedShapeFunctions, and Kratos::AusasModifiedShapeFunctions.
|
protected |
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).
rEdgeNodeI | Integers array containing the nodes "I" that conform the edges. |
rEdgeNodeJ | Integers array containing the nodes "J" that conform the edges. |
rSplitEdges | Integers array containing the original nodes ids and the intersected edges nodes ones. |
|
inlineprotectedvirtual |
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.
rNegSideCondMatrix | Negative side condensation matrix |
Reimplemented in Kratos::Triangle2D3ModifiedShapeFunctions, Kratos::Triangle2D3AusasModifiedShapeFunctions, Kratos::Triangle2D3AusasIncisedShapeFunctions, Kratos::Tetrahedra3D4ModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasIncisedShapeFunctions, and Kratos::AusasModifiedShapeFunctions.
|
inlineprotectedvirtual |
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.
rPosSideCondMatrix | Positive side condensation matrix |
Reimplemented in Kratos::Triangle2D3ModifiedShapeFunctions, Kratos::Triangle2D3AusasModifiedShapeFunctions, Kratos::Triangle2D3AusasIncisedShapeFunctions, Kratos::Tetrahedra3D4ModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasModifiedShapeFunctions, Kratos::Tetrahedra3D4AusasIncisedShapeFunctions, and Kratos::AusasModifiedShapeFunctions.