![]() |
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.