13 #ifndef KRATOS_PQMPM_PARTITION_UTILITIES
14 #define KRATOS_PQMPM_PARTITION_UTILITIES
24 #include "boost/geometry/geometry.hpp"
47 typedef boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>
Boost2DPointType;
62 static void PartitionMasterMaterialPointsIntoSubPoints(
const ModelPart& rBackgroundGridModelPart,
66 typename GeometryType::Pointer pQuadraturePointGeometry,
67 const double Tolerance);
73 static bool CheckAllPointsAreInGeom(
76 const double Tolerance);
78 static void Check3DBackGroundMeshIsCubicAxisAligned(
const std::vector<GeometryType*>& rIntersectedGeometries);
81 const bool XActive =
true,
const bool YActive =
true,
const bool ZActive =
false);
84 const bool XActive =
true,
const bool YActive =
true,
const bool ZActive =
false);
98 static bool DetermineIfDomainOverlapsBoundaryConditions(std::vector<GeometryType*>& IntersectedGeometries,
101 static bool IntersectionCheckWithBoundingBox(
const GeometryType& rGeom,
104 static void RecursivePQMPMNeighbourSearch(
const ModelPart& rBackgroundGridModelPart,
105 std::vector<GeometryType*>& rIntersectedGeometries,
106 const Point& rPointLow,
107 const Point& rPointHigh,
110 const double SideHalfLength,
111 const SizeType MaxRecursions = 100);
Base class for all Elements.
Definition: element.h:60
Geometry base class.
Definition: geometry.h:71
Definition: geometry_shape_function_container.h:60
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: geometry_shape_function_container.h:78
std::array< Matrix, static_cast< int >IntegrationMethod::NumberOfIntegrationMethods)> ShapeFunctionsValuesContainerType
Shape functions.
Definition: geometry_shape_function_container.h:82
std::array< IntegrationPointsArrayType, static_cast< int >IntegrationMethod::NumberOfIntegrationMethods)> IntegrationPointsContainerType
Definition: geometry_shape_function_container.h:79
std::array< DenseVector< Matrix >, static_cast< int >IntegrationMethod::NumberOfIntegrationMethods)> ShapeFunctionsLocalGradientsContainerType
Definition: geometry_shape_function_container.h:86
Short class definition.
Definition: integration_point.h:52
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class defines the node.
Definition: node.h:65
This class includes several utilities necessaries for the PQMPM.
Definition: pqmpm_partition_utilities.h:37
GeometryShapeFunctionContainer< GeometryData::IntegrationMethod >::IntegrationPointsContainerType IntegrationPointsContainerType
Definition: pqmpm_partition_utilities.h:52
std::size_t SizeType
Definition: pqmpm_partition_utilities.h:41
Geometry< Node >::Pointer GeometryNodePointerType
Definition: pqmpm_partition_utilities.h:44
PQMPMPartitionUtilities()=default
Constructor.
ModelPart::GeometryType GeometryType
Definition: pqmpm_partition_utilities.h:43
GeometryShapeFunctionContainer< GeometryData::IntegrationMethod >::ShapeFunctionsValuesContainerType ShapeFunctionsValuesContainerType
Definition: pqmpm_partition_utilities.h:53
boost::geometry::model::polygon< Boost2DPointType > Boost2DPolygonType
Definition: pqmpm_partition_utilities.h:48
std::size_t IndexType
Definition: pqmpm_partition_utilities.h:40
Node NodeType
Definition: pqmpm_partition_utilities.h:42
boost::geometry::model::point< double, 2, boost::geometry::cs::cartesian > Boost2DPointType
Definition: pqmpm_partition_utilities.h:47
GeometryShapeFunctionContainer< GeometryData::IntegrationMethod >::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
Definition: pqmpm_partition_utilities.h:54
virtual ~PQMPMPartitionUtilities()=default
Destructor.
GeometryShapeFunctionContainer< GeometryData::IntegrationMethod >::IntegrationPointsArrayType IntegrationPointsArrayType
Definition: pqmpm_partition_utilities.h:51
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
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21