38 template<
class TPointType,
39 int TWorkingSpaceDimension,
40 int TLocalSpaceDimension = TWorkingSpaceDimension,
41 int TDimension = TLocalSpaceDimension>
87 :
BaseType(ThisPoints, &mGeometryData)
93 rShapeFunctionsDerivativesVector)
104 :
BaseType(ThisPoints, &mGeometryData)
106 &msGeometryDimension,
109 rShapeFunctionValues,
110 rShapeFunctionsDerivativesVector)
111 , mpGeometryParent(pGeometryParent)
119 :
BaseType(ThisPoints, &mGeometryData)
121 &msGeometryDimension,
122 ThisGeometryShapeFunctionContainer)
131 :
BaseType(ThisPoints, &mGeometryData)
133 &msGeometryDimension,
134 ThisGeometryShapeFunctionContainer)
135 , mpGeometryParent(pGeometryParent)
143 const Matrix& ThisShapeFunctionsValues,
145 :
BaseType(ThisPoints, &mGeometryData)
147 &msGeometryDimension,
150 ThisIntegrationPoint,
151 ThisShapeFunctionsValues,
152 ThisShapeFunctionsDerivatives))
160 const Matrix& ThisShapeFunctionsValues,
163 :
BaseType(ThisPoints, &mGeometryData)
165 &msGeometryDimension,
168 ThisIntegrationPoint,
169 ThisShapeFunctionsValues,
170 ThisShapeFunctionsDerivatives))
171 , mpGeometryParent(pGeometryParent)
183 ) :
BaseType( GeometryId, ThisPoints, &mGeometryData )
185 &msGeometryDimension,
193 const std::string& GeometryName,
195 ) :
BaseType( GeometryName, ThisPoints, &mGeometryData )
197 &msGeometryDimension,
210 , mGeometryData(rOther.mGeometryData)
211 , mpGeometryParent(rOther.mpGeometryParent)
225 mGeometryData = rOther.mGeometryData;
226 mpGeometryParent = rOther.mpGeometryParent;
242 KRATOS_ERROR <<
"QuadraturePointGeometry cannot be created with 'PointsArrayType const& PointsArrayType'. "
243 <<
"This constructor is not allowed as it would remove the evaluated shape functions as the ShapeFunctionContainer is not being copied."
273 p_geometry->SetData(rGeometry.
GetData());
286 if (rVariable == CHARACTERISTIC_GEOMETRY_LENGTH)
289 mpGeometryParent->
Calculate(rVariable, rOutput);
312 return *mpGeometryParent;
317 mpGeometryParent = pGeometryParent;
327 Vector& rOutput)
const override
329 if (rVariable == DETERMINANTS_OF_JACOBIAN_PARENT) {
357 Point point(0.0, 0.0, 0.0);
362 point += (*this)[
i] * r_N(point_number,
i);
376 <<
"Trying to call PolynomialDegree(LocalDirectionIndex) from quadrature point. "
377 <<
"Pointer to parent is not assigned." << std::endl;
397 <<
"Trying to call GlobalCoordinates(LocalCoordinates) from quadrature point. "
398 <<
"Pointer to parent is not assigned." << std::endl;
416 <<
"Trying to call GlobalCoordinates(LocalCoordinates, DeltaPosition) from quadrature point. "
417 <<
"Pointer to parent is not assigned." << std::endl;
419 return mpGeometryParent->
GlobalCoordinates(rResult, LocalCoordinates, DeltaPosition);
440 <<
"Trying to call Jacobian(LocalCoordinates) from quadrature point. "
441 <<
"Pointer to parent is not assigned." << std::endl;
443 return mpGeometryParent->
Jacobian(rResult, rCoordinates);
459 <<
"Trying to call DeterminantOfJacobian(rPoint) from quadrature point. "
460 <<
"Pointer to parent is not assigned." << std::endl;
473 if (rResult.size() != 1)
487 <<
"Trying to call InverseOfJacobian(rPoint) from quadrature point. "
488 <<
"Pointer to parent is not assigned." << std::endl;
503 <<
"Trying to call ShapeFunctionsValues(rCoordinates) from quadrature point. "
504 <<
"Pointer to parent is not assigned." << std::endl;
515 <<
"Trying to call ShapeFunctionsLocalGradients(rPoint) from quadrature point. "
516 <<
"Pointer to parent is not assigned." << std::endl;
540 std::string
Info()
const override
542 return "Quadrature point templated by local space dimension and working space dimension.";
548 rOStream <<
"Quadrature point templated by local space dimension and working space dimension.";
568 &msGeometryDimension,
580 static const GeometryDimension msGeometryDimension;
586 GeometryData mGeometryData;
598 void save(
Serializer& rSerializer )
const override
602 rSerializer.
save(
"IntegrationPoints", mGeometryData.IntegrationPoints());
603 rSerializer.
save(
"ShapeFunctionsValues", mGeometryData.ShapeFunctionsValues());
604 rSerializer.
save(
"ShapeFunctionsLocalGradients", mGeometryData.ShapeFunctionsLocalGradients());
622 shape_functions_values,
623 shape_functions_local_gradients));
635 template<
class TPointType,
636 int TWorkingSpaceDimension,
637 int TLocalSpaceDimension,
640 std::istream& rIStream,
644 template<
class TPointType,
645 int TWorkingSpaceDimension,
646 int TLocalSpaceDimension,
649 std::ostream& rOStream,
653 rOStream << std::endl;
663 template<
class TPointType,
664 int TWorkingSpaceDimension,
665 int TLocalSpaceDimension,
667 const GeometryDimension QuadraturePointGeometry<
669 TWorkingSpaceDimension,
670 TLocalSpaceDimension,
672 TWorkingSpaceDimension,
673 TLocalSpaceDimension);
Definition: geometry_data.h:60
KratosGeometryType
Definition: geometry_data.h:110
@ Kratos_Quadrature_Point_Geometry
void SetGeometryShapeFunctionContainer(const GeometryShapeFunctionContainer< IntegrationMethod > &rGeometryShapeFunctionContainer)
SetGeometryShapeFunctionContainer updates the GeometryShapeFunctionContainer.
Definition: geometry_data.h:351
IntegrationMethod
Definition: geometry_data.h:76
KratosGeometryFamily
Definition: geometry_data.h:91
@ Kratos_Quadrature_Geometry
Geometry base class.
Definition: geometry.h:71
SizeType PointsNumber() const
Definition: geometry.h:528
Geometry & operator=(const Geometry &rOther)
Definition: geometry.h:400
virtual CoordinatesArrayType & GlobalCoordinates(CoordinatesArrayType &rResult, CoordinatesArrayType const &LocalCoordinates) const
Definition: geometry.h:2377
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: geometry.h:161
DataValueContainer & GetData()
Definition: geometry.h:591
virtual void Calculate(const Variable< bool > &rVariable, bool &rOutput) const
Calculate with bool.
Definition: geometry.h:693
const Matrix & ShapeFunctionsValues() const
Definition: geometry.h:3393
std::size_t SizeType
Definition: geometry.h:144
std::size_t IndexType
Definition: geometry.h:137
std::array< Matrix, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> ShapeFunctionsValuesContainerType
Definition: geometry.h:172
Vector & DeterminantOfJacobian(Vector &rResult) const
Definition: geometry.h:3154
JacobiansType & InverseOfJacobian(JacobiansType &rResult) const
Definition: geometry.h:3262
virtual SizeType PolynomialDegree(IndexType LocalDirectionIndex) const
Return polynomial degree of the geometry in a certain direction.
Definition: geometry.h:1310
const PointsArrayType & Points() const
Definition: geometry.h:1768
std::array< IntegrationPointsArrayType, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> IntegrationPointsContainerType
Definition: geometry.h:167
const IntegrationPointsArrayType & IntegrationPoints() const
Definition: geometry.h:2284
const ShapeFunctionsGradientsType & ShapeFunctionsLocalGradients() const
Definition: geometry.h:3539
JacobiansType & Jacobian(JacobiansType &rResult) const
Definition: geometry.h:2901
GeometryData::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
Definition: geometry.h:177
SizeType IntegrationPointsNumber() const
Definition: geometry.h:2257
Definition: geometry_shape_function_container.h:60
Short class definition.
Definition: integration_point.h:52
static double ComputeDomainSize(const TGeometryType &rGeometry)
This method calculates and returns the domain size of the geometry from any geometry in a generic man...
Definition: integration_utilities.h:63
Definition: amatrix_interface.h:41
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
Point class.
Definition: point.h:59
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
A sinlge quadrature point, that can be used for geometries without a predefined integration scheme,...
Definition: quadrature_point_geometry.h:44
SizeType PolynomialDegree(IndexType LocalDirectionIndex) const override
Returns the polynomial degree of the parent geometry.
Definition: quadrature_point_geometry.h:373
Point Center() const override
Calculates global location of this integration point.
Definition: quadrature_point_geometry.h:353
CoordinatesArrayType & GlobalCoordinates(CoordinatesArrayType &rResult, CoordinatesArrayType const &LocalCoordinates) const override
Definition: quadrature_point_geometry.h:391
QuadraturePointGeometry(const PointsArrayType &ThisPoints)=delete
Constructor.
GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: quadrature_point_geometry.h:62
void Calculate(const Variable< Vector > &rVariable, Vector &rOutput) const override
Calculate with Vector.
Definition: quadrature_point_geometry.h:325
KRATOS_CLASS_POINTER_DEFINITION(QuadraturePointGeometry)
Pointer definition of QuadraturePointGeometry.
GeometryType::IndexType IndexType
Definition: quadrature_point_geometry.h:53
std::string Info() const override
Turn back information as a string.
Definition: quadrature_point_geometry.h:540
QuadraturePointGeometry(const PointsArrayType &ThisPoints, const GeometryShapeFunctionContainerType &ThisGeometryShapeFunctionContainer, GeometryType *pGeometryParent)
Constructor with points, geometry shape function container, parent.
Definition: quadrature_point_geometry.h:127
QuadraturePointGeometry(const IndexType GeometryId, const PointsArrayType &ThisPoints)
Constructor with Geometry Id.
Definition: quadrature_point_geometry.h:180
virtual Matrix & ShapeFunctionsLocalGradients(Matrix &rResult, const CoordinatesArrayType &rPoint) const override
Definition: quadrature_point_geometry.h:509
GeometryType::IntegrationPointsArrayType IntegrationPointsArrayType
Definition: quadrature_point_geometry.h:60
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: quadrature_point_geometry.h:546
GeometryType & GetGeometryParent(IndexType Index) const override
Some geometries require relations to other geometries. This is the case for e.g. quadrature points....
Definition: quadrature_point_geometry.h:310
QuadraturePointGeometry(const PointsArrayType &ThisPoints, const IntegrationPointsContainerType &rIntegrationPoints, const ShapeFunctionsValuesContainerType &rShapeFunctionValues, const ShapeFunctionsLocalGradientsContainerType &rShapeFunctionsDerivativesVector)
Constructor with points and all shape function containers separately.
Definition: quadrature_point_geometry.h:82
const Matrix & ShapeFunctionsValues() const
Definition: geometry.h:3393
QuadraturePointGeometry(const PointsArrayType &ThisPoints, const GeometryShapeFunctionContainerType &ThisGeometryShapeFunctionContainer)
Constructor with points and geometry shape function container.
Definition: quadrature_point_geometry.h:116
GeometryType::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
Definition: quadrature_point_geometry.h:68
~QuadraturePointGeometry() override=default
Destructor.
void SetGeometryShapeFunctionContainer(const GeometryShapeFunctionContainer< GeometryData::IntegrationMethod > &rGeometryShapeFunctionContainer) override
Definition: quadrature_point_geometry.h:300
GeometryType::CoordinatesArrayType CoordinatesArrayType
Definition: quadrature_point_geometry.h:57
QuadraturePointGeometry & operator=(const QuadraturePointGeometry &rOther)
Assignment operator.
Definition: quadrature_point_geometry.h:220
GeometryData::KratosGeometryFamily GetGeometryFamily() const override
Definition: quadrature_point_geometry.h:525
Geometry< TPointType > BaseType
Definition: quadrature_point_geometry.h:50
QuadraturePointGeometry(const PointsArrayType &ThisPoints, const IntegrationPointType &ThisIntegrationPoint, const Matrix &ThisShapeFunctionsValues, const DenseVector< Matrix > &ThisShapeFunctionsDerivatives, GeometryType *pGeometryParent)
Constructor with points, N, Vector<DN_De, ...>, parent.
Definition: quadrature_point_geometry.h:157
GeometryType::IntegrationPointType IntegrationPointType
Definition: quadrature_point_geometry.h:59
void Calculate(const Variable< array_1d< double, 3 >> &rVariable, array_1d< double, 3 > &rOutput) const override
Calculate with array_1d<double, 3>
Definition: quadrature_point_geometry.h:282
GeometryData::KratosGeometryType GetGeometryType() const override
Definition: quadrature_point_geometry.h:530
QuadraturePointGeometry(QuadraturePointGeometry const &rOther)
Copy constructor.
Definition: quadrature_point_geometry.h:207
Geometry< TPointType > GeometryType
Definition: quadrature_point_geometry.h:51
Matrix & Jacobian(Matrix &rResult, const CoordinatesArrayType &rCoordinates) const override
Jacobian in given point. Computed on parent geometry. Error if Parent is not assigned is only thrown ...
Definition: quadrature_point_geometry.h:434
Vector & ShapeFunctionsValues(Vector &rResult, const CoordinatesArrayType &rCoordinates) const override
Definition: quadrature_point_geometry.h:497
GeometryShapeFunctionContainer< GeometryData::IntegrationMethod > GeometryShapeFunctionContainerType
Definition: quadrature_point_geometry.h:64
double DeterminantOfJacobian(const CoordinatesArrayType &rPoint) const override
Definition: quadrature_point_geometry.h:454
GeometryType::PointsArrayType PointsArrayType
Definition: quadrature_point_geometry.h:56
Matrix & InverseOfJacobian(Matrix &rResult, const CoordinatesArrayType &rCoordinates) const override
Definition: quadrature_point_geometry.h:481
BaseType::Pointer Create(const IndexType NewGeometryId, PointsArrayType const &rThisPoints) const override
Creates a new geometry pointer.
Definition: quadrature_point_geometry.h:253
BaseType::Pointer Create(PointsArrayType const &ThisPoints) const override
Creates a new geometry pointer.
Definition: quadrature_point_geometry.h:240
QuadraturePointGeometry(const PointsArrayType &ThisPoints, const IntegrationPointsContainerType &rIntegrationPoints, const ShapeFunctionsValuesContainerType &rShapeFunctionValues, const ShapeFunctionsLocalGradientsContainerType &rShapeFunctionsDerivativesVector, GeometryType *pGeometryParent)
Constructor with points and all shape function containers separately including the parent.
Definition: quadrature_point_geometry.h:98
QuadraturePointGeometry(const std::string &GeometryName, const PointsArrayType &ThisPoints)
Constructor with Geometry Name.
Definition: quadrature_point_geometry.h:192
double DomainSize() const override
Returns the domain size of this quadrature point.
Definition: quadrature_point_geometry.h:339
Vector & DeterminantOfJacobianParent(Vector &rResult) const
Definition: quadrature_point_geometry.h:470
GeometryType::SizeType SizeType
Definition: quadrature_point_geometry.h:54
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: quadrature_point_geometry.h:552
void SetGeometryParent(GeometryType *pGeometryParent) override
Some geometries require relations to other geometries. This is the case for e.g. quadrature points....
Definition: quadrature_point_geometry.h:315
CoordinatesArrayType & GlobalCoordinates(CoordinatesArrayType &rResult, CoordinatesArrayType const &LocalCoordinates, Matrix &DeltaPosition) const override
Definition: quadrature_point_geometry.h:409
QuadraturePointGeometry()
Standard Constructor.
Definition: quadrature_point_geometry.h:563
GeometryType::ShapeFunctionsValuesContainerType ShapeFunctionsValuesContainerType
Definition: quadrature_point_geometry.h:67
GeometryType::IntegrationPointsContainerType IntegrationPointsContainerType
Definition: quadrature_point_geometry.h:66
BaseType::Pointer Create(const IndexType NewGeometryId, const BaseType &rGeometry) const override
Creates a new geometry pointer.
Definition: quadrature_point_geometry.h:267
QuadraturePointGeometry(const PointsArrayType &ThisPoints, const IntegrationPointType &ThisIntegrationPoint, const Matrix &ThisShapeFunctionsValues, const DenseVector< Matrix > &ThisShapeFunctionsDerivatives)
Constructor with points, N, Vector<DN_De, ...>
Definition: quadrature_point_geometry.h:140
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
void load(std::string const &rTag, TDataType &rObject)
Definition: serializer.h:207
void save(std::string const &rTag, std::array< TDataType, TDataSize > const &rObject)
Definition: serializer.h:545
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
Short class definition.
Definition: array_1d.h:61
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
#define KRATOS_ERROR
Definition: exception.h:161
#define KRATOS_DEBUG_ERROR_IF(conditional)
Definition: exception.h:171
#define KRATOS_DEBUG_ERROR_IF_NOT(conditional)
Definition: exception.h:172
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
const GeometryData BrepCurve< TContainerPointType, TContainerPointEmbeddedType >::msGeometryData & msGeometryDimension
Definition: brep_curve.h:483
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
def load(f)
Definition: ode_solve.py:307
integer i
Definition: TensorModule.f:17