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 <geometry_data.h>
Public Member Functions | |
Life Cycle | |
GeometryData (GeometryDimension const *pThisGeometryDimension, IntegrationMethod ThisDefaultMethod, const IntegrationPointsContainerType &ThisIntegrationPoints, const ShapeFunctionsValuesContainerType &ThisShapeFunctionsValues, const ShapeFunctionsLocalGradientsContainerType &ThisShapeFunctionsLocalGradients) | |
GeometryData (GeometryDimension const *pThisGeometryDimension, const GeometryShapeFunctionContainer< IntegrationMethod > &ThisGeometryShapeFunctionContainer) | |
GeometryData (const GeometryData &rOther) | |
Copy constructor. More... | |
virtual | ~GeometryData () |
Destructor. More... | |
Operators | |
GeometryData & | operator= (const GeometryData &rOther) |
Assignment operator. More... | |
GeometryDimension | |
void | SetGeometryDimension (GeometryDimension const *pGeometryDimension) |
Geometry Shape Function Container | |
void | SetGeometryShapeFunctionContainer (const GeometryShapeFunctionContainer< IntegrationMethod > &rGeometryShapeFunctionContainer) |
SetGeometryShapeFunctionContainer updates the GeometryShapeFunctionContainer. More... | |
const GeometryShapeFunctionContainer< IntegrationMethod > & | GetGeometryShapeFunctionContainer () const |
Returns the GeometryShapeFunctionContainer. More... | |
Informations | |
SizeType | WorkingSpaceDimension () const |
SizeType | LocalSpaceDimension () const |
Inquiry | |
bool | HasIntegrationMethod (IntegrationMethod ThisMethod) const |
Integration | |
IntegrationMethod | DefaultIntegrationMethod () const |
SizeType | IntegrationPointsNumber () const |
SizeType | IntegrationPointsNumber (IntegrationMethod ThisMethod) const |
const IntegrationPointsArrayType & | IntegrationPoints () const |
const IntegrationPointsArrayType & | IntegrationPoints (IntegrationMethod ThisMethod) const |
Shape Function | |
const Matrix & | ShapeFunctionsValues () const |
const Matrix & | ShapeFunctionsValues (IntegrationMethod ThisMethod) const |
double | ShapeFunctionValue (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex) const |
double | ShapeFunctionValue (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, IntegrationMethod ThisMethod) const |
const ShapeFunctionsGradientsType & | ShapeFunctionsLocalGradients () const |
const ShapeFunctionsGradientsType & | ShapeFunctionsLocalGradients (IntegrationMethod ThisMethod) const |
const Matrix & | ShapeFunctionLocalGradient (IndexType IntegrationPointIndex) const |
const Matrix & | ShapeFunctionLocalGradient (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const |
const Matrix & | ShapeFunctionLocalGradient (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, IntegrationMethod ThisMethod) const |
const Matrix & | ShapeFunctionDerivatives (IndexType DerivativeOrderIndex, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const |
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... | |
Type Definitions | |
typedef std::size_t | IndexType |
typedef std::size_t | SizeType |
typedef IntegrationPoint< 3 > | IntegrationPointType |
typedef GeometryShapeFunctionContainer< IntegrationMethod >::IntegrationPointsArrayType | IntegrationPointsArrayType |
typedef GeometryShapeFunctionContainer< IntegrationMethod >::IntegrationPointsContainerType | IntegrationPointsContainerType |
typedef GeometryShapeFunctionContainer< IntegrationMethod >::ShapeFunctionsValuesContainerType | ShapeFunctionsValuesContainerType |
typedef GeometryShapeFunctionContainer< IntegrationMethod >::ShapeFunctionsLocalGradientsContainerType | ShapeFunctionsLocalGradientsContainerType |
typedef DenseVector< Matrix > | ShapeFunctionsGradientsType |
typedef DenseVector< Matrix > | ShapeFunctionsSecondDerivativesType |
typedef DenseVector< DenseVector< Matrix > > | ShapeFunctionsThirdDerivativesType |
KRATOS_CLASS_POINTER_DEFINITION (GeometryData) | |
Pointer definition of GeometryData. More... | |
Serialization | |
class | Serializer |
GeometryData base class.As a base class GeometryData has all the common interface of Kratos' geometries. Also it contains array of pointers to its points, reference to shape functions values in all integrations points and also local gradients of shape functions evaluated in all integrations points.
typedef std::size_t Kratos::GeometryData::IndexType |
Type used for indexing in geometry data class. Unsigned int used for indexing point or integration point access methods and also all other methods which need point or integration point index.
typedef GeometryShapeFunctionContainer<IntegrationMethod>::IntegrationPointsArrayType Kratos::GeometryData::IntegrationPointsArrayType |
A Vector of IntegrationPointType which used to hold integration points related to an integration method. IntegrationPoints functions used this type to return their results.
typedef GeometryShapeFunctionContainer<IntegrationMethod>::IntegrationPointsContainerType Kratos::GeometryData::IntegrationPointsContainerType |
A Vector of IntegrationPointsArrayType which used to hold integration points related to different integration method implemented in geometry.
This type used for representing an integration point in geometry data. This integration point is a point with an additional weight component.
A third order tensor to hold shape functions' gradients. ShapefunctionsLocalGradients function return this type as its result.
typedef GeometryShapeFunctionContainer<IntegrationMethod>::ShapeFunctionsLocalGradientsContainerType Kratos::GeometryData::ShapeFunctionsLocalGradientsContainerType |
A fourth order tensor used as shape functions' local gradients container in geometry data.
fourth order tensor to hold the third order derivatives of the shape functions
typedef GeometryShapeFunctionContainer<IntegrationMethod>::ShapeFunctionsValuesContainerType Kratos::GeometryData::ShapeFunctionsValuesContainerType |
A third order tensor used as shape functions' values continer.
typedef std::size_t Kratos::GeometryData::SizeType |
This typed used to return size or dimension in geometry data. Dimension, WorkingSpaceDimension, PointsNumber and ... return this type as their results.
|
strong |
Integration methods implemented in geometry. Each geometry supposed to have different integration method for integrating. These enums are used to refere to each different integration methods:
Enumerator | |
---|---|
GI_GAUSS_1 | |
GI_GAUSS_2 | |
GI_GAUSS_3 | |
GI_GAUSS_4 | |
GI_GAUSS_5 | |
GI_EXTENDED_GAUSS_1 | |
GI_EXTENDED_GAUSS_2 | |
GI_EXTENDED_GAUSS_3 | |
GI_EXTENDED_GAUSS_4 | |
GI_EXTENDED_GAUSS_5 | |
NumberOfIntegrationMethods |
|
strong |
|
strong |
|
inline |
Complete argument constructor. This constructor gives a complete set of arguments to pass all the initial value of all the member variables of geometry class. Also it has default value for integration variables to make it usefull in the case of constructing new geometry without mapping and integrating properties.
ThisDimension | Dimension of this geometry. |
ThisWorkingSpaceDimension | Working space dimension. for example a triangle 3d is a 2 dimensional shape but can be used in 3 dimensional space. |
ThisLocalSpaceDimension | Local space dimension. for example a triangle is a 2 dimensional shape but can have 3 dimensional area coordinates l1, l2, l3. |
ThisDefaultMethod | Default integration method. Its default value is gaussian integration with orden one which make no deference while in this condition there is no shape function database exist and integrating is not possible including by default method. |
ThisIntegrationPoints | All the integration points in all methods. This is a Vector of IntegrationPointsArrayType and It must have at least four component correspounding to four integration method defined now. If there is some geometry which don't have all this method implemented related points Vector must exist but with zero size. For example if a geometry don't have gaussian orden one ThisIntegrationPoints[GI_GAUSS_1] must be an empty IntegrationPointsArrayType. |
ThisShapeFunctionsValues | Values of all the shape functions evaluated in all integrations points of all integration methods. It's a three dimensional array \( F_{ijk} \) where i = GI_GAUSS_1,..., GI_GAUSS_4 and j is the integration point index and k is the shape function index. In the other word component \( f_{ijk} \) is the value of the shape function related to node k evaluated in integration point j of i integration method point set. Again if there is some integration method unsupported an empty Matrix must assigned to related place. For example if a geometry don't have gaussian orden four ThisShapeFunctionsValues[GI_GAUSS_4] must be an empty Matrix. |
ThisShapeFunctionsLocalGradients | Values of local gradients respected to all local coordinates of all the shape functions evaluated in all integrations points of all integration methods. It's a four dimensional array \( F_{ijkh} \) where i = GI_GAUSS_1,..., GI_GAUSS_4 and j is the integration point index and k is the shape function index and h is local coordinate index. In the other word component \( f_{ijkh} \) is the value of h'th component of local gradient of the shape function related to node k evaluated in integration point j of i integration method point set. Again if there is some integration method unsupported an empty ShapeFunctionsGradientsType must assigned to related place. For example if a geometry don't have gaussian order "2" ThisShapeFunctionsValues[GI_GAUSS_2] must be an empty ShapeFunctionsGradientsType. |
|
inline |
|
inline |
Copy constructor.
|
inlinevirtual |
Destructor.
|
inline |
Number of integration points for default integration method. This method just call IntegrationPointsNumber(enum IntegrationMethod ThisMethod) with default integration method.
|
inline |
Returns the GeometryShapeFunctionContainer.
|
inline |
This method confirm you if this geometry has a specific integration method or not. This method will be usefull to control the geometry before intagrating using a specific method. In GeometryData class this method controls if the integration points vector respecting to this method is empty or not.
|
inlinevirtual |
Turn back information as a string.
|
inline |
Integtation points for default integration method. This method just call IntegrationPoints(enum IntegrationMethod ThisMethod) with default integration method.
|
inline |
Integtation points for given integration method. This method use integration points data base to obtain integration points Vector respected to given method.
|
inline |
|
inline |
Number of integtation points for given integration method. This method use integration points data base to obtain size of the integration points Vector respected to given method.
Kratos::GeometryData::KRATOS_CLASS_POINTER_DEFINITION | ( | GeometryData | ) |
Pointer definition of GeometryData.
|
inline |
Local space dimension. for example a triangle is a 2 dimensional shape but can have 3 dimensional area coordinates l1, l2, l3.
|
inline |
Assignment operator.
|
inlinevirtual |
Print object's data.
|
inlinevirtual |
Print information about this object.
|
inline |
|
inline |
SetGeometryShapeFunctionContainer updates the GeometryShapeFunctionContainer.
|
inline |
|
inline |
This method gives gradient of given shape function evaluated in given integration point of default integration method. It just call ShapeFunctionLocalGradient(IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, IntegrationMethod ThisMethod) with default integration method. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.
IntegrationPointIndex | index of integration point which shape function gradient evaluated in it. |
ShapeFunctionIndex | index of node which correspounding shape function gradient evaluated in given integration point. |
|
inline |
|
inline |
This method gives gradient of given shape function evaluated in given integration point of given integration method. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.
IntegrationPointIndex | index of integration point which shape function gradient evaluated in it. |
ShapeFunctionIndex | index of node which correspounding shape function gradient evaluated in given integration point. |
ThisMethod | integration method which shape function gradient evaluated in its integration points. |
|
inline |
This method gives all shape functions gradients evaluated in all integration points of default integration method. It just call ShapeFunctionsLocalGradients( IntegrationMethod ThisMethod) with default integration method. There is no calculation and it just give it from shape functions values container.
|
inline |
This method gives all shape functions gradients evaluated in all integration points of given integration method. There is no calculation and it just give it from shape functions values container.
ThisMethod | integration method which shape functions gradients evaluated in its integration points. |
|
inline |
This method gives all shape functions values evaluated in all integration points of default integration method. It just call ShapeFunctionsValues(enum IntegrationMethod ThisMethod) with default integration method.There is no calculation and it just give it from shape functions values container.
|
inline |
This method gives all shape functions values evaluated in all integration points of given integration method. There is no calculation and it just give it from shape functions values container.
ThisMethod | integration method which shape functions evaluated in its integration points. |
|
inline |
This method gives value of given shape function evaluated in given integration point of default integration method. It just call ShapeFunctionValue(IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, enum IntegrationMethod ThisMethod) with default integration method. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.
IntegrationPointIndex | index of integration point which shape functions evaluated in it. |
ShapeFunctionIndex | index of node which correspounding shape function evaluated in given integration point. |
|
inline |
This method gives value of given shape function evaluated in given integration point of given integration method. There is no calculation and it just give it from shape functions values container if they are existing. Otherwise it gives you error which this value is not exist.
IntegrationPointIndex | index of integration point which shape functions evaluated in it. |
ShapeFunctionIndex | index of node which correspounding shape function evaluated in given integration point. |
ThisMethod | integration method which shape function evaluated in its integration point. |
|
inline |
Working space dimension. for example a triangle is a 2 dimensional shape but can be used in 3 dimensional space.
|
friend |