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.
quadrature_point_geometry.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Tobias Teschemacher
11 //
12 
13 #pragma once
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
20 #include "includes/variables.h"
21 #include "geometries/geometry.h"
24 
25 namespace Kratos
26 {
38 template<class TPointType,
39  int TWorkingSpaceDimension,
40  int TLocalSpaceDimension = TWorkingSpaceDimension,
41  int TDimension = TLocalSpaceDimension>
43  : public Geometry<TPointType>
44 {
45 public:
46 
49 
52 
54  typedef typename GeometryType::SizeType SizeType;
55 
58 
61 
63 
65 
69 
71  using BaseType::Jacobian;
76 
80 
83  const PointsArrayType& ThisPoints,
84  const IntegrationPointsContainerType& rIntegrationPoints,
85  const ShapeFunctionsValuesContainerType& rShapeFunctionValues,
86  const ShapeFunctionsLocalGradientsContainerType& rShapeFunctionsDerivativesVector)
87  : BaseType(ThisPoints, &mGeometryData)
88  , mGeometryData(
89  &msGeometryDimension,
90  GeometryData::IntegrationMethod::GI_GAUSS_1,
91  rIntegrationPoints,
92  rShapeFunctionValues,
93  rShapeFunctionsDerivativesVector)
94  {
95  }
96 
99  const PointsArrayType& ThisPoints,
100  const IntegrationPointsContainerType& rIntegrationPoints,
101  const ShapeFunctionsValuesContainerType& rShapeFunctionValues,
102  const ShapeFunctionsLocalGradientsContainerType& rShapeFunctionsDerivativesVector,
103  GeometryType* pGeometryParent)
104  : BaseType(ThisPoints, &mGeometryData)
105  , mGeometryData(
106  &msGeometryDimension,
107  GeometryData::IntegrationMethod::GI_GAUSS_1,
108  rIntegrationPoints,
109  rShapeFunctionValues,
110  rShapeFunctionsDerivativesVector)
111  , mpGeometryParent(pGeometryParent)
112  {
113  }
114 
117  const PointsArrayType& ThisPoints,
118  const GeometryShapeFunctionContainerType& ThisGeometryShapeFunctionContainer)
119  : BaseType(ThisPoints, &mGeometryData)
120  , mGeometryData(
121  &msGeometryDimension,
122  ThisGeometryShapeFunctionContainer)
123  {
124  }
125 
128  const PointsArrayType& ThisPoints,
129  const GeometryShapeFunctionContainerType& ThisGeometryShapeFunctionContainer,
130  GeometryType* pGeometryParent)
131  : BaseType(ThisPoints, &mGeometryData)
132  , mGeometryData(
133  &msGeometryDimension,
134  ThisGeometryShapeFunctionContainer)
135  , mpGeometryParent(pGeometryParent)
136  {
137  }
138 
141  const PointsArrayType& ThisPoints,
142  const IntegrationPointType& ThisIntegrationPoint,
143  const Matrix& ThisShapeFunctionsValues,
144  const DenseVector<Matrix>& ThisShapeFunctionsDerivatives)
145  : BaseType(ThisPoints, &mGeometryData)
146  , mGeometryData(
147  &msGeometryDimension,
149  GeometryData::IntegrationMethod::GI_GAUSS_1,
150  ThisIntegrationPoint,
151  ThisShapeFunctionsValues,
152  ThisShapeFunctionsDerivatives))
153  {
154  }
155 
158  const PointsArrayType& ThisPoints,
159  const IntegrationPointType& ThisIntegrationPoint,
160  const Matrix& ThisShapeFunctionsValues,
161  const DenseVector<Matrix>& ThisShapeFunctionsDerivatives,
162  GeometryType* pGeometryParent)
163  : BaseType(ThisPoints, &mGeometryData)
164  , mGeometryData(
165  &msGeometryDimension,
167  GeometryData::IntegrationMethod::GI_GAUSS_1,
168  ThisIntegrationPoint,
169  ThisShapeFunctionsValues,
170  ThisShapeFunctionsDerivatives))
171  , mpGeometryParent(pGeometryParent)
172  {
173  }
174 
177  const PointsArrayType& ThisPoints) = delete;
178 
181  const IndexType GeometryId,
182  const PointsArrayType& ThisPoints
183  ) : BaseType( GeometryId, ThisPoints, &mGeometryData )
184  , mGeometryData(
185  &msGeometryDimension,
186  GeometryData::IntegrationMethod::GI_GAUSS_1,
187  {}, {}, {})
188  {
189  }
190 
193  const std::string& GeometryName,
194  const PointsArrayType& ThisPoints
195  ) : BaseType( GeometryName, ThisPoints, &mGeometryData )
196  , mGeometryData(
197  &msGeometryDimension,
198  GeometryData::IntegrationMethod::GI_GAUSS_1,
199  {}, {}, {})
200  {
201  }
202 
204  ~QuadraturePointGeometry() override = default;
205 
208  QuadraturePointGeometry const& rOther )
209  : BaseType( rOther )
210  , mGeometryData(rOther.mGeometryData)
211  , mpGeometryParent(rOther.mpGeometryParent)
212  {
213  }
214 
218 
221  const QuadraturePointGeometry& rOther )
222  {
223  BaseType::operator=( rOther );
224 
225  mGeometryData = rOther.mGeometryData;
226  mpGeometryParent = rOther.mpGeometryParent;
227 
228  return *this;
229  }
230 
234 
240  typename BaseType::Pointer Create( PointsArrayType const& ThisPoints ) const override
241  {
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."
244  << std::endl;
245  }
246 
253  typename BaseType::Pointer Create(
254  const IndexType NewGeometryId,
255  PointsArrayType const& rThisPoints
256  ) const override
257  {
258  return typename BaseType::Pointer( new QuadraturePointGeometry( NewGeometryId, rThisPoints ) );
259  }
260 
267  typename BaseType::Pointer Create(
268  const IndexType NewGeometryId,
269  const BaseType& rGeometry
270  ) const override
271  {
272  auto p_geometry = typename BaseType::Pointer( new QuadraturePointGeometry( NewGeometryId, rGeometry.Points() ) );
273  p_geometry->SetData(rGeometry.GetData());
274  return p_geometry;
275  }
276 
280 
282  void Calculate(
283  const Variable<array_1d<double, 3>>& rVariable,
284  array_1d<double, 3>& rOutput) const override
285  {
286  if (rVariable == CHARACTERISTIC_GEOMETRY_LENGTH)
287  {
288  rOutput = this->IntegrationPoints()[0];
289  mpGeometryParent->Calculate(rVariable, rOutput);
290  }
291  }
292 
296 
297  /* @brief SetGeometryShapeFunctionContainer updates the GeometryShapeFunctionContainer within
298  * the GeometryData. This function works only for geometries with a non-const GeometryData.
299  */
301  const GeometryShapeFunctionContainer<GeometryData::IntegrationMethod>& rGeometryShapeFunctionContainer) override
302  {
303  mGeometryData.SetGeometryShapeFunctionContainer(rGeometryShapeFunctionContainer);
304  }
305 
309 
311  {
312  return *mpGeometryParent;
313  }
314 
315  void SetGeometryParent(GeometryType* pGeometryParent) override
316  {
317  mpGeometryParent = pGeometryParent;
318  }
319 
323 
325  void Calculate(
326  const Variable<Vector>& rVariable,
327  Vector& rOutput) const override
328  {
329  if (rVariable == DETERMINANTS_OF_JACOBIAN_PARENT) {
331  }
332  }
333 
337 
339  double DomainSize() const override
340  {
342  }
343 
353  Point Center() const override
354  {
355  const std::size_t node_number = this->PointsNumber();
356 
357  Point point(0.0, 0.0, 0.0);
358  const Matrix& r_N = this->ShapeFunctionsValues();
359 
360  for (IndexType point_number = 0; point_number < this->IntegrationPointsNumber(); ++point_number) {
361  for (IndexType i = 0; i < node_number; ++i) {
362  point += (*this)[i] * r_N(point_number, i);
363  }
364  }
365  return point;
366  }
367 
371 
373  SizeType PolynomialDegree(IndexType LocalDirectionIndex) const override
374  {
375  KRATOS_DEBUG_ERROR_IF_NOT(mpGeometryParent)
376  << "Trying to call PolynomialDegree(LocalDirectionIndex) from quadrature point. "
377  << "Pointer to parent is not assigned." << std::endl;
378 
379  return mpGeometryParent->PolynomialDegree(LocalDirectionIndex);
380  }
381 
385 
392  CoordinatesArrayType& rResult,
393  CoordinatesArrayType const& LocalCoordinates
394  ) const override
395  {
396  KRATOS_DEBUG_ERROR_IF(mpGeometryParent == nullptr)
397  << "Trying to call GlobalCoordinates(LocalCoordinates) from quadrature point. "
398  << "Pointer to parent is not assigned." << std::endl;
399 
400  return mpGeometryParent->GlobalCoordinates(rResult, LocalCoordinates);
401  }
402 
403  /* @brief returns the respective segment domain size of this
404  * quadrature point, computed on the parent of this geometry.
405  * Required for reduced quadrature point geometries (Not all
406  * nodes are part of this geometry - used for mapping).
407  * @param rResult vector of results of this quadrature point.
408  */
410  CoordinatesArrayType& rResult,
411  CoordinatesArrayType const& LocalCoordinates,
412  Matrix& DeltaPosition
413  ) const override
414  {
415  KRATOS_DEBUG_ERROR_IF(mpGeometryParent == nullptr)
416  << "Trying to call GlobalCoordinates(LocalCoordinates, DeltaPosition) from quadrature point. "
417  << "Pointer to parent is not assigned." << std::endl;
418 
419  return mpGeometryParent->GlobalCoordinates(rResult, LocalCoordinates, DeltaPosition);
420  }
421 
425 
435  Matrix& rResult,
436  const CoordinatesArrayType& rCoordinates
437  ) const override
438  {
439  KRATOS_DEBUG_ERROR_IF(mpGeometryParent == nullptr)
440  << "Trying to call Jacobian(LocalCoordinates) from quadrature point. "
441  << "Pointer to parent is not assigned." << std::endl;
442 
443  return mpGeometryParent->Jacobian(rResult, rCoordinates);
444  }
445 
455  const CoordinatesArrayType& rPoint
456  ) const override
457  {
458  KRATOS_DEBUG_ERROR_IF(mpGeometryParent == nullptr)
459  << "Trying to call DeterminantOfJacobian(rPoint) from quadrature point. "
460  << "Pointer to parent is not assigned." << std::endl;
461 
462  return mpGeometryParent->DeterminantOfJacobian(rPoint);
463  }
464 
465 
466  /* @brief returns the respective segment length of this
467  * quadrature point. Length of vector always 1.
468  * @param rResult vector of results of this quadrature point.
469  */
471  Vector& rResult) const
472  {
473  if (rResult.size() != 1)
474  rResult.resize(1, false);
475 
476  rResult[0] = this->GetGeometryParent(0).DeterminantOfJacobian(this->IntegrationPoints()[0]);
477 
478  return rResult;
479  }
480 
482  Matrix& rResult,
483  const CoordinatesArrayType& rCoordinates
484  ) const override
485  {
486  KRATOS_DEBUG_ERROR_IF(mpGeometryParent == nullptr)
487  << "Trying to call InverseOfJacobian(rPoint) from quadrature point. "
488  << "Pointer to parent is not assigned." << std::endl;
489 
490  return mpGeometryParent->InverseOfJacobian(rResult, rCoordinates);
491  }
492 
496 
498  Vector &rResult,
499  const CoordinatesArrayType& rCoordinates
500  ) const override
501  {
502  KRATOS_DEBUG_ERROR_IF(mpGeometryParent == nullptr)
503  << "Trying to call ShapeFunctionsValues(rCoordinates) from quadrature point. "
504  << "Pointer to parent is not assigned." << std::endl;
505 
506  return mpGeometryParent->ShapeFunctionsValues(rResult, rCoordinates);
507  }
508 
510  Matrix& rResult,
511  const CoordinatesArrayType& rPoint
512  ) const override
513  {
514  KRATOS_DEBUG_ERROR_IF(mpGeometryParent == nullptr)
515  << "Trying to call ShapeFunctionsLocalGradients(rPoint) from quadrature point. "
516  << "Pointer to parent is not assigned." << std::endl;
517 
518  return mpGeometryParent->ShapeFunctionsLocalGradients(rResult, rPoint);
519  }
520 
524 
526  {
528  }
529 
531  {
533  }
534 
538 
540  std::string Info() const override
541  {
542  return "Quadrature point templated by local space dimension and working space dimension.";
543  }
544 
546  void PrintInfo( std::ostream& rOStream ) const override
547  {
548  rOStream << "Quadrature point templated by local space dimension and working space dimension.";
549  }
550 
552  void PrintData( std::ostream& rOStream ) const override
553  {
554  }
556 
557 protected:
558 
561 
564  : BaseType(
565  PointsArrayType(),
566  &mGeometryData)
567  , mGeometryData(
568  &msGeometryDimension,
569  GeometryData::IntegrationMethod::GI_GAUSS_1,
570  {}, {}, {})
571  {
572  }
573 
575 
576 private:
579 
580  static const GeometryDimension msGeometryDimension;
581 
585 
586  GeometryData mGeometryData;
587 
588  // quatrature point can be related to a parent geometry. To keep the connection,
589  // this geometry is related to the integration point.
590  GeometryType* mpGeometryParent = nullptr;
591 
595 
596  friend class Serializer;
597 
598  void save( Serializer& rSerializer ) const override
599  {
601 
602  rSerializer.save("IntegrationPoints", mGeometryData.IntegrationPoints());
603  rSerializer.save("ShapeFunctionsValues", mGeometryData.ShapeFunctionsValues());
604  rSerializer.save("ShapeFunctionsLocalGradients", mGeometryData.ShapeFunctionsLocalGradients());
605  }
606 
607  void load( Serializer& rSerializer ) override
608  {
610 
611  IntegrationPointsContainerType integration_points;
612  ShapeFunctionsValuesContainerType shape_functions_values;
613  ShapeFunctionsLocalGradientsContainerType shape_functions_local_gradients;
614 
615  rSerializer.load("IntegrationPoints", integration_points[static_cast<int>(GeometryData::IntegrationMethod::GI_GAUSS_1)]);
616  rSerializer.load("ShapeFunctionsValues", shape_functions_values[static_cast<int>(GeometryData::IntegrationMethod::GI_GAUSS_1)]);
617  rSerializer.load("ShapeFunctionsLocalGradients", shape_functions_local_gradients[static_cast<int>(GeometryData::IntegrationMethod::GI_GAUSS_1)]);
618 
619  mGeometryData.SetGeometryShapeFunctionContainer(GeometryShapeFunctionContainer<GeometryData::IntegrationMethod>(
621  integration_points,
622  shape_functions_values,
623  shape_functions_local_gradients));
624 
625 
626  }
627 
629 }; // Class Geometry
630 
633 
635 template<class TPointType,
636  int TWorkingSpaceDimension,
637  int TLocalSpaceDimension,
638  int TDimension>
639 inline std::istream& operator >> (
640  std::istream& rIStream,
642 
644 template<class TPointType,
645  int TWorkingSpaceDimension,
646  int TLocalSpaceDimension,
647  int TDimension>
648 inline std::ostream& operator << (
649  std::ostream& rOStream,
651 {
652  rThis.PrintInfo( rOStream );
653  rOStream << std::endl;
654  rThis.PrintData( rOStream );
655 
656  return rOStream;
657 }
658 
662 
663 template<class TPointType,
664  int TWorkingSpaceDimension,
665  int TLocalSpaceDimension,
666  int TDimension>
667 const GeometryDimension QuadraturePointGeometry<
668  TPointType,
669  TWorkingSpaceDimension,
670  TLocalSpaceDimension,
671  TDimension>::msGeometryDimension(
672  TWorkingSpaceDimension,
673  TLocalSpaceDimension);
674 
676 
677 } // namespace Kratos.
Definition: geometry_data.h:60
KratosGeometryType
Definition: geometry_data.h:110
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
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 Index()
Definition: hdf5_io_tools.py:38
def load(f)
Definition: ode_solve.py:307
integer i
Definition: TensorModule.f:17