10 #if !defined(KRATOS_MESHER_UTILITIES_H_INCLUDED)
11 #define KRATOS_MESHER_UTILITIES_H_INCLUDED
189 delete[] mpPointList;
191 mNumberOfPoints = NumberOfPoints;
192 mpPointList =
new double[NumberOfPoints * Dimension];
193 PointListFlag =
true;
196 void CreateElementList(
const unsigned int NumberOfElements,
const unsigned int NumberOfVertices)
200 delete[] mpElementList;
202 mNumberOfElements = NumberOfElements;
203 mpElementList =
new int[NumberOfElements * NumberOfVertices];
204 ElementListFlag =
true;
209 if (mpElementSizeList)
211 delete[] mpElementSizeList;
213 mpElementSizeList =
new double[NumberOfElements];
214 ElementSizeListFlag =
true;
219 if (mpElementNeighbourList)
221 delete[] mpElementNeighbourList;
223 mpElementNeighbourList =
new int[NumberOfElements * NumberOfFaces];
224 ElementNeighbourListFlag =
true;
229 mpPointList = (
double *)NULL;
230 mpElementList = (
int *)NULL;
231 mpElementSizeList = (
double *)NULL;
232 mpElementNeighbourList = (
int *)NULL;
234 mNumberOfElements = 0;
236 PointListFlag =
false;
237 ElementListFlag =
false;
238 ElementSizeListFlag =
false;
239 ElementNeighbourListFlag =
false;
244 if (mpPointList && PointListFlag)
246 delete[] mpPointList;
249 if (mpElementList && ElementListFlag)
251 delete[] mpElementList;
254 if (mpElementSizeList && ElementSizeListFlag)
256 delete[] mpElementSizeList;
259 if (mpElementNeighbourList && ElementNeighbourListFlag)
261 delete[] mpElementNeighbourList;
306 NumberOfElements = 0;
308 NumberOfConditions = 0;
310 NumberOfNewElements = 0;
311 NumberOfNewNodes = 0;
312 NumberOfNewConditions = 0;
317 InsertedBoundaryNodes = 0;
318 InsertedBoundaryConditions = 0;
320 CriticalElements = 0;
322 GeometricalSmoothingRequired =
false;
323 MechanicalSmoothingRequired =
false;
328 NumberOfNodes = NumberNodes;
333 NumberOfElements = NumberElements;
338 NumberOfConditions = NumberConditions;
343 return NumberOfNodes;
348 return NumberOfElements;
353 return NumberOfConditions;
358 NumberOfNewNodes = NumberNodes;
363 NumberOfNewElements = NumberElements;
368 NumberOfNewConditions = NumberConditions;
373 InitialMeshVolume = Volume;
378 return InitialMeshVolume;
386 if (InsertedNodes > NumberOfNodes * 0.001 || RemovedNodes > NumberOfNodes * 0.001)
388 GeometricalSmoothingRequired =
true;
390 else if ((InsertedNodes + RemovedNodes) > NumberOfNodes * 0.002)
392 GeometricalSmoothingRequired =
true;
396 GeometricalSmoothingRequired =
false;
399 return GeometricalSmoothingRequired;
405 if (CriticalElements > 0 || NumberOfNewElements != 0)
406 MechanicalSmoothingRequired =
true;
408 MechanicalSmoothingRequired =
false;
410 return MechanicalSmoothingRequired;
415 return InsertedNodes;
435 std::cout <<
" BodyInfo [on_distance:" << on_distance <<
", on_threshold:" << on_threshold <<
", on_error:" << on_error <<
"]" << std::endl;
456 in_concave_boundary = 0;
457 in_convex_boundary = 0;
462 std::cout <<
" BoundaryInfo [on_distance:" << on_distance <<
", on_threshold:" << on_threshold <<
", on_error:" << on_error <<
"]" << std::endl;
463 std::cout <<
" [in_contact:" << in_contact <<
", in_concave_boundary:" << in_concave_boundary <<
", in_convex_boundary:" << in_convex_boundary <<
"]" << std::endl;
516 RefiningOptions = rOptions;
521 RemovingOptions = rOptions;
536 MeanVolume = rMeanVolume;
541 CriticalRadius = rCriticalRadius;
547 InitialRadius = rInitialRadius;
553 CriticalSide = rCriticalSide;
556 void SetParameters(
const double rAlpha,
const double rCriticalRadius,
const double rCriticalSide)
559 CriticalRadius = rCriticalRadius;
560 CriticalSide = rCriticalSide;
565 RefiningBoxSetFlag =
true;
566 RefiningBox = pRefiningBox;
571 ReferenceThreshold = rReferenceThreshold;
576 ReferenceError = rReferenceError;
581 mpThresholdVariable = &rVariable;
586 mpErrorVariable = &rVariable;
591 return RefiningOptions;
596 return RemovingOptions;
601 return ReferenceThreshold;
606 return *mpThresholdVariable;
611 return *mpErrorVariable;
622 ReferenceThreshold = 0;
671 std::vector<BoundedVector<double, 3>>
Holes;
681 MeshingInfoParameters::Pointer
Info;
717 Options.
Set(ThisFlag);
722 Options.
Reset(ThisFlag);
732 SubModelPartName = rSubModelPartName;
737 ExecutionOptions = rOptions;
742 TessellationFlags = rFlags;
747 TessellationInfo = rInfo;
752 AlphaParameter = rAlpha;
757 OffsetFactor = rOffsetFactor;
777 MeshingBoxSetFlag =
true;
778 MeshingBox = pMeshingBox;
783 TransferVariablesSetFlag =
true;
784 Transfer = rTransferVariables;
789 TransferVariablesSetFlag =
true;
790 Transfer->SetVariable(rTransferVariable);
795 mpReferenceElement = &rElement;
800 mpReferenceCondition = &rCondition;
815 return SubModelPartName;
845 return *mpReferenceElement;
849 return *mpReferenceCondition;
859 MeshingBoxSetFlag =
false;
861 TransferVariablesSetFlag =
false;
863 InputInitializedFlag =
false;
864 MeshElementsSelectedFlag =
false;
880 MeshElementsSelectedFlag =
false;
881 PreservedElements.clear();
882 PreservedElements.resize(0);
887 MeshElementsSelectedFlag =
false;
888 PreservedElements.clear();
889 PreservedElements.resize(0);
894 UseBoundingBox = rUseBoundingBox;
899 BoundingBoxLowerPoint[0] = rBoundingBoxLowerPointX;
900 BoundingBoxLowerPoint[1] = rBoundingBoxLowerPointY;
901 BoundingBoxLowerPoint[2] = rBoundingBoxLowerPointZ;
906 BoundingBoxUpperPoint[0] = rBoundingBoxUpperPointX;
907 BoundingBoxUpperPoint[1] = rBoundingBoxUpperPointY;
908 BoundingBoxUpperPoint[2] = rBoundingBoxUpperPointZ;
913 BoundingBoxInitialTime = rBoundingBoxInitialTime;
914 BoundingBoxFinalTime = rBoundingBoxFinalTime;
919 UseRefiningBox.resize(size,
false);
920 RefiningBoxMinimumPoint.resize(size);
921 RefiningBoxMaximumPoint.resize(size);
922 RefiningBoxShiftedMinimumPoint.resize(size);
923 RefiningBoxShiftedMaximumPoint.resize(size);
924 RefiningBoxInitialTime.resize(size,
false);
925 RefiningBoxFinalTime.resize(size,
false);
926 RefiningBoxMeshSize.resize(size,
false);
927 RefiningBoxElementsInTransitionZone.resize(size,
false);
932 UseRefiningBox[index] = rUseRefiningBox;
935 void SetRefiningBoxMinimumPoint(
unsigned int index,
double rRefiningBoxMinimumPointX,
double rRefiningBoxMinimumPointY,
double rRefiningBoxMinimumPointZ)
937 RefiningBoxMinimumPoint[index][0] = rRefiningBoxMinimumPointX;
938 RefiningBoxMinimumPoint[index][1] = rRefiningBoxMinimumPointY;
939 RefiningBoxMinimumPoint[index][2] = rRefiningBoxMinimumPointZ;
942 void SetRefiningBoxMaximumPoint(
unsigned int index,
double rRefiningBoxMaximumPointX,
double rRefiningBoxMaximumPointY,
double rRefiningBoxMaximumPointZ)
944 RefiningBoxMaximumPoint[index][0] = rRefiningBoxMaximumPointX;
945 RefiningBoxMaximumPoint[index][1] = rRefiningBoxMaximumPointY;
946 RefiningBoxMaximumPoint[index][2] = rRefiningBoxMaximumPointZ;
951 RefiningBoxShiftedMinimumPoint[index][0] = rPointX;
952 RefiningBoxShiftedMinimumPoint[index][1] = rPointY;
953 RefiningBoxShiftedMinimumPoint[index][2] = rPointZ;
958 RefiningBoxShiftedMaximumPoint[index][0] = rPointX;
959 RefiningBoxShiftedMaximumPoint[index][1] = rPointY;
960 RefiningBoxShiftedMaximumPoint[index][2] = rPointZ;
965 RefiningBoxInitialTime[index] = rRefiningBoxInitialTime;
966 RefiningBoxFinalTime[index] = rRefiningBoxFinalTime;
971 RefiningBoxMeshSize[index] = rRefiningBoxMeshSize;
976 RefiningBoxElementsInTransitionZone[index] = rRefiningBoxElementsInTransitionZone;
999 void SetModelPartNameToElements(
ModelPart &rModelPart);
1001 void SetModelPartNameToConditions(
ModelPart &rModelPart);
1003 void SetModelPartNameToNodes(
ModelPart &rModelPart);
1005 void SetFlagsToNodes(
ModelPart &rModelPart,
const std::vector<Flags> rControlFlags,
const std::vector<Flags> rAssignFlags);
1007 double ComputeModelPartVolume(
ModelPart &rModelPart);
1018 bool CheckOuterCentre(
Geometry<Node> &rGeometry,
double &rOffsetFactor,
bool &rSelfContact);
1022 ContactElementType CheckContactElement(
Geometry<Node> &rGeometry, std::vector<int> &rSlaveVertices);
1024 double GetAndCompareSideLenghts(
Geometry<Node> &rGeometry,
double &rMaximumSideLength,
double &rMinimumSideLength);
1032 double &ComputeRadius(
double &rRadius,
double &rVolume, std::vector<Vector> &rVertices,
const unsigned int &
dimension);
1036 bool AlphaShape(
double AlphaParameter,
Geometry<Node> &rGeometry,
const unsigned int dimension,
const double MeanMeshSize);
1039 bool ShrankAlphaShape(
double AlphaParameter,
Geometry<Node> &rGeometry,
double &rOffsetFactor,
const unsigned int dimension);
1042 double FindBoundaryH(
Node &BoundaryPoint);
1045 void CheckParticles(
ModelPart &rModelPart);
1048 bool CheckRelativeVelocities(
Geometry<Node> &rGeometry,
const double &rRelativeFactor);
1051 bool CheckVolumeDecrease(
GeometryType &rVertices,
const unsigned int &rDimension,
const double &rTolerance,
double &VolumeChange);
1054 double GetMovedVolume(
GeometryType &rVertices,
const unsigned int &rDimension,
double MovementFactor);
1057 double GetDeformationGradientDeterminant(
GeometryType &rVertices,
const unsigned int &rDimension);
1059 void DefineMeshSizeInTransitionZones2D(MeshingParameters &rMeshingVariables,
1062 double &meanMeshSize,
1063 bool &insideTransitionZone);
1065 void DefineMeshSizeInTransitionZones3D(MeshingParameters &rMeshingVariables,
1068 double &meanMeshSize,
1069 bool &insideTransitionZone);
1075 return sqrt((P1.
X() - P2.
X()) * (P1.
X() - P2.
X()) + (P1.
Y() - P2.
Y()) * (P1.
Y() - P2.
Y()) + (P1.
Z() - P2.
Z()) * (P1.
Z() - P2.
Z()));
1081 if (rGeometry.
size() == 2)
1083 return CalculateSideLength(rGeometry[0], rGeometry[1]);
1085 else if (rGeometry.
size() == 3)
1087 return 2 * CalculateTriangleRadius(rGeometry);
1091 std::cout <<
"BOUNDARY SIZE NOT COMPUTED :: geometry not correct" << std::endl;
1099 double L1 = CalculateSideLength(rGeometry[0], rGeometry[1]);
1100 double L2 = CalculateSideLength(rGeometry[1], rGeometry[2]);
1101 double L3 = CalculateSideLength(rGeometry[2], rGeometry[0]);
1103 double Area = rGeometry.
Area();
1106 double Rcrit = Area * 2 / (L1 + L2 + L3);
1115 double L1 = CalculateSideLength(rGeometry[0], rGeometry[1]);
1116 double L2 = CalculateSideLength(rGeometry[1], rGeometry[2]);
1117 double L3 = CalculateSideLength(rGeometry[2], rGeometry[3]);
1118 double L4 = CalculateSideLength(rGeometry[3], rGeometry[0]);
1119 double L5 = CalculateSideLength(rGeometry[3], rGeometry[1]);
1120 double L6 = CalculateSideLength(rGeometry[2], rGeometry[0]);
1123 double S = 0.5 * (L1 + L4 + L5);
1124 double R1 = sqrt(
S * (
S - L1) * (
S - L4) * (
S - L5)) /
S;
1126 S = 0.5 * (L2 + L3 + L5);
1127 double R2 = sqrt(
S * (
S - L2) * (
S - L3) * (
S - L5)) /
S;
1129 S = 0.5 * (L3 + L4 + L6);
1130 double R3 = sqrt(
S * (
S - L3) * (
S - L4) * (
S - L6)) /
S;
1132 S = 0.5 * (L1 + L2 + L6);
1133 double R4 = sqrt(
S * (
S - L1) * (
S - L2) * (
S - L6)) /
S;
1135 S = 1.0 / (R1 * R1) + 1.0 / (R2 * R2) + 1.0 / (R3 * R3) + 1.0 / (R4 * R4);
1137 double Rcrit = sqrt(2.0 /
S);
1145 if (rGeometry.
size() == 3)
1146 return CalculateTriangleRadius(rGeometry);
1148 return CalculateTetrahedronRadius(rGeometry);
1154 if (rGeometry.
size() == 3)
1155 return CalculateTriangleRadius(rGeometry[0].
X(), rGeometry[0].
Y(),
1156 rGeometry[1].
X(), rGeometry[1].
Y(),
1157 rGeometry[2].
X(), rGeometry[2].
Y(),
1160 return CalculateTetrahedronRadius(rGeometry[0].
X(), rGeometry[0].
Y(), rGeometry[0].
Z(),
1161 rGeometry[1].
X(), rGeometry[1].
Y(), rGeometry[1].
Z(),
1162 rGeometry[2].
X(), rGeometry[2].
Y(), rGeometry[2].
Z(),
1163 rGeometry[3].
X(), rGeometry[3].
Y(), rGeometry[3].
Z(),
1168 const double x1,
const double y1,
1169 const double x2,
const double y2)
1171 return 0.5 * ((
x1 - x0) * (y2 - y0) - (y1 - y0) * (
x2 - x0));
1175 const double x1,
const double y1,
1176 const double x2,
const double y2,
1180 double L1 = sqrt((x0 -
x1) * (x0 -
x1) + (y0 - y1) * (y0 - y1));
1181 double L2 = sqrt((
x1 -
x2) * (
x1 -
x2) + (y1 - y2) * (y1 - y2));
1182 double L3 = sqrt((
x2 - x0) * (
x2 - x0) + (y2 - y0) * (y2 - y0));
1184 Area = fabs(0.5 * ((x0 * y1) - (x0 * y2) - (
x1 * y0) + (
x1 * y2) + (
x2 * y0) - (
x2 * y1)));
1189 double Rcrit = Area * 2 / (L1 + L2 + L3);
1195 const double x1,
const double y1,
const double z1,
1196 const double x2,
const double y2,
const double z2,
1197 const double x3,
const double y3,
const double z3)
1202 Volume = CalculateDeterminant(
x1, y1, z1,
x2, y2, z2, x3, y3, z3);
1203 Volume -= CalculateDeterminant(x0, y0, z0,
x2, y2, z2, x3, y3, z3);
1204 Volume += CalculateDeterminant(x0, y0, z0,
x1, y1, z1, x3, y3, z3);
1205 Volume -= CalculateDeterminant(x0, y0, z0,
x1, y1, z1,
x2, y2, z2);
1207 Volume *= (1.0 / 6.0);
1213 const double x1,
const double y1,
const double z1,
1214 const double x2,
const double y2,
const double z2,
1215 const double x3,
const double y3,
const double z3,
1220 double L1 = sqrt((x0 -
x1) * (x0 -
x1) + (y0 - y1) * (y0 - y1) + (z0 - z1) * (z0 - z1));
1221 double L2 = sqrt((
x1 -
x2) * (
x1 -
x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2));
1222 double L3 = sqrt((
x2 - x3) * (
x2 - x3) + (y2 - y3) * (y2 - y3) + (z2 - z3) * (z2 - z3));
1223 double L4 = sqrt((x3 - x0) * (x3 - x0) + (y3 - y0) * (y3 - y0) + (z3 - z0) * (z3 - z0));
1224 double L5 = sqrt((x3 -
x1) * (x3 -
x1) + (y3 - y1) * (y3 - y1) + (z3 - z1) * (z3 - z1));
1225 double L6 = sqrt((
x2 - x0) * (
x2 - x0) + (y2 - y0) * (y2 - y0) + (z2 - z0) * (z2 - z0));
1228 Volume = CalculateTetrahedronVolume(x0, y0, z0,
x1, y1, z1,
x2, y2, z2, x3, y3, z3);
1231 double S = 0.5 * (L1 + L4 + L5);
1232 double R1 = sqrt(
S * (
S - L1) * (
S - L4) * (
S - L5)) /
S;
1234 S = 0.5 * (L2 + L3 + L5);
1235 double R2 = sqrt(
S * (
S - L2) * (
S - L3) * (
S - L5)) /
S;
1237 S = 0.5 * (L3 + L4 + L6);
1238 double R3 = sqrt(
S * (
S - L3) * (
S - L4) * (
S - L6)) /
S;
1240 S = 0.5 * (L1 + L2 + L6);
1241 double R4 = sqrt(
S * (
S - L1) * (
S - L2) * (
S - L6)) /
S;
1243 S = 1.0 / (R1 * R1) + 1.0 / (R2 * R2) + 1.0 / (R3 * R3) + 1.0 / (R4 * R4);
1245 double Rcrit = sqrt(2.0 /
S);
1251 const double x1,
const double y1,
const double z1,
1252 const double x2,
const double y2,
const double z2)
1254 return (x0 * y1 * z2 - x0 * y2 * z1 -
x1 * y0 * z2 +
x1 * y2 * z0 +
x2 * y0 * z1 -
x2 * y1 * z0);
1258 const double x1,
const double y1,
1259 const double x2,
const double y2)
1261 double length_0 = sqrt(x0 * x0 + y0 * y0);
1262 double length_1 = sqrt(
x1 *
x1 + y1 * y1);
1263 double length_2 = sqrt(
x2 *
x2 + y2 * y2);
1265 return 0.5 * (length_0 + length_1 + length_2);
1273 const std::vector<double> &rCenter, std::vector<double> &rShapeFunctionsN)
1276 if (rPointCoordinates.size() == 3)
1280 rPointCoordinates[1][0], rPointCoordinates[1][1],
1281 rPointCoordinates[2][0], rPointCoordinates[2][1],
1282 rCenter[0], rCenter[1], rShapeFunctionsN);
1284 else if (rPointCoordinates.size() == 4)
1287 return CalculatePosition(rPointCoordinates[0][0], rPointCoordinates[0][1], rPointCoordinates[0][2],
1288 rPointCoordinates[1][0], rPointCoordinates[1][1], rPointCoordinates[1][2],
1289 rPointCoordinates[2][0], rPointCoordinates[2][1], rPointCoordinates[2][2],
1290 rPointCoordinates[3][0], rPointCoordinates[3][1], rPointCoordinates[3][2],
1291 rCenter[0], rCenter[1], rCenter[2], rShapeFunctionsN);
1295 KRATOS_THROW_ERROR(std::logic_error,
"Number of points supplied out of range ERROR",
"")
1305 const double &
x1,
const double &y1,
const double &z1,
1306 const double &
x2,
const double &y2,
const double &z2,
1307 const double &x3,
const double &y3,
const double &z3,
1308 const double &
xc,
const double &
yc,
const double &zc,
1309 std::vector<double> &rShapeFunctionsN)
1311 double volume = CalculateTetrahedronVolume(x0, y0, z0,
x1, y1, z1,
x2, y2, z2, x3, y3, z3);
1315 std::cout <<
" ERROR LS: tetrahedral element with zero area found: " <<
volume <<
" position (" << x0 <<
", " << y0 <<
", " << z0 <<
") (" <<
x1 <<
", " << y1 <<
", " << z1 <<
") (" <<
x2 <<
", " << y2 <<
", " << z2 <<
") (" << x3 <<
", " << y3 <<
", " << z3 <<
") " << std::endl;
1318 if (rShapeFunctionsN.size() != 4)
1320 rShapeFunctionsN.resize(4);
1324 rShapeFunctionsN[0] = CalculateTetrahedronVolume(
xc,
yc, zc,
x1, y1, z1,
x2, y2, z2, x3, y3, z3) /
volume;
1325 rShapeFunctionsN[1] = CalculateTetrahedronVolume(x0, y0, z0,
xc,
yc, zc,
x2, y2, z2, x3, y3, z3) /
volume;
1326 rShapeFunctionsN[2] = CalculateTetrahedronVolume(x0, y0, z0,
x1, y1, z1,
xc,
yc, zc, x3, y3, z3) /
volume;
1327 rShapeFunctionsN[3] = CalculateTetrahedronVolume(x0, y0, z0,
x1, y1, z1,
x2, y2, z2,
xc,
yc, zc) /
volume;
1332 double upper_limit = 1.0 +
tol;
1333 double lower_limit = -
tol;
1335 if (rShapeFunctionsN[0] >= lower_limit && rShapeFunctionsN[1] >= lower_limit && rShapeFunctionsN[2] >= lower_limit && rShapeFunctionsN[3] >= lower_limit &&
1336 rShapeFunctionsN[0] <= upper_limit && rShapeFunctionsN[1] <= upper_limit && rShapeFunctionsN[2] <= upper_limit && rShapeFunctionsN[3] <= upper_limit)
1345 const double &
x1,
const double &y1,
1346 const double &
x2,
const double &y2,
1347 const double &
xc,
const double &
yc,
1348 std::vector<double> &rShapeFunctionsN)
1350 double area = CalculateTriangleArea(x0, y0,
x1, y1,
x2, y2);
1355 std::cout <<
" ERROR LS: triangle element with zero area found: " << area <<
" position (" << x0 <<
", " << y0 <<
") (" <<
x1 <<
", " << y1 <<
") (" <<
x2 <<
", " << y2 <<
") " << std::endl;
1358 if (rShapeFunctionsN.size() != 3)
1360 rShapeFunctionsN.resize(3);
1364 rShapeFunctionsN[0] = CalculateTriangleArea(
x1, y1,
x2, y2,
xc,
yc) / area;
1365 rShapeFunctionsN[1] = CalculateTriangleArea(
x2, y2, x0, y0,
xc,
yc) / area;
1366 rShapeFunctionsN[2] = CalculateTriangleArea(x0, y0,
x1, y1,
xc,
yc) / area;
1369 double upper_limit = 1.0 +
tol;
1370 double lower_limit = -
tol;
1372 if (rShapeFunctionsN[0] >= lower_limit && rShapeFunctionsN[1] >= lower_limit && rShapeFunctionsN[2] >= lower_limit && rShapeFunctionsN[0] <= upper_limit && rShapeFunctionsN[1] <= upper_limit && rShapeFunctionsN[2] <= upper_limit)
1397 bool CheckContactActive(
GeometryType &rConditionGeometry,
bool &rSemiActiveContact, std::vector<bool> &rSemiActiveNodes);
1401 double CheckCriticalRadius(
ModelPart &rModelPart,
double rCriticalRadius);
1412 unsigned int max_id = rModelPart.
Nodes().back().Id();
1414 for (ModelPart::NodesContainerType::iterator i_node = rModelPart.
NodesBegin(); i_node != rModelPart.
NodesEnd(); ++i_node)
1416 if (i_node->Id() > max_id)
1417 max_id = i_node->Id();
1433 double ModelPartVolume = 0;
1437 for (ModelPart::ElementsContainerType::iterator i_elem = rModelPart.
ElementsBegin(); i_elem != rModelPart.
ElementsEnd(); ++i_elem)
1439 if (i_elem->GetGeometry().LocalSpaceDimension() !=
dimension)
1440 ModelPartVolume += i_elem->GetGeometry().Area();
1446 for (ModelPart::ElementsContainerType::iterator i_elem = rModelPart.
ElementsBegin(); i_elem != rModelPart.
ElementsEnd(); ++i_elem)
1448 if (i_elem->GetGeometry().LocalSpaceDimension() !=
dimension)
1449 ModelPartVolume += i_elem->GetGeometry().Volume();
1453 return ModelPartVolume;
1465 unsigned int max_id = rModelPart.
Conditions().back().Id();
1467 for (ModelPart::ConditionsContainerType::iterator i_cond = rModelPart.
ConditionsBegin(); i_cond != rModelPart.
ConditionsEnd(); ++i_cond)
1469 if (i_cond->Id() > max_id)
1470 max_id = i_cond->Id();
1485 unsigned int max_id = rModelPart.
Elements().back().Id();
1487 for (ModelPart::ElementsContainerType::iterator i_elem = rModelPart.
ElementsBegin(); i_elem != rModelPart.
ElementsEnd(); ++i_elem)
1489 if (i_elem->Id() > max_id)
1490 max_id = i_elem->Id();
1510 MeshingParameters &rMeshingVariables);
1516 MeshingParameters &rMeshingVariables);
1533 std::stringstream buffer;
1534 buffer <<
"MesherUtilities";
1535 return buffer.str();
1541 rOStream <<
"MesherUtilities";
1547 rOStream <<
"MesherUtilities Data";
1639 rOStream << std::endl;
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Base class for all Conditions.
Definition: condition.h:59
Base class for all Elements.
Definition: element.h:60
void Set(const Flags ThisFlag)
Definition: flags.cpp:33
void Reset(const Flags ThisFlag)
Definition: flags.h:193
Geometry base class.
Definition: geometry.h:71
SizeType size() const
Definition: geometry.h:518
PointerVector< TPointType > PointsArrayType
Definition: geometry.h:118
virtual double Area() const
This method calculate and return area or surface area of this geometry depending to it's dimension.
Definition: geometry.h:1345
This class is a vector which stores global pointers.
Definition: global_pointers_vector.h:61
Definition: amatrix_interface.h:41
Short class definition.
Definition: mesher_utilities.hpp:49
KRATOS_DEFINE_LOCAL_FLAG(REFINE_BOUNDARY_ON_THRESHOLD)
ModelPart::MeshType::GeometryType::PointsArrayType PointsArrayType
Definition: mesher_utilities.hpp:66
KRATOS_DEFINE_LOCAL_FLAG(REMOVE_BOUNDARY_NODES)
static unsigned int GetMaxConditionId(ModelPart &rModelPart)
Definition: mesher_utilities.hpp:1461
static double CalculateSideLength(PointType &P1, PointType &P2)
Definition: mesher_utilities.hpp:1073
Node::Pointer PointPointerType
Definition: mesher_utilities.hpp:58
KRATOS_DEFINE_LOCAL_FLAG(FINALIZE_MESHER_INPUT)
KRATOS_DEFINE_LOCAL_FLAG(REFINE_ADD_NODES)
KRATOS_DEFINE_LOCAL_FLAG(REMOVE_BOUNDARY_NODES_ON_DISTANCE)
KRATOS_DEFINE_LOCAL_FLAG(REFINE_ELEMENTS_ON_THRESHOLD)
KRATOS_DEFINE_LOCAL_FLAG(TRANSFER_KRATOS_NEIGHBOURS_TO_MESHER)
Geometry< Node > GeometryType
Definition: mesher_utilities.hpp:59
static double CalculateTetrahedronRadius(Geometry< Node > &rGeometry)
Definition: mesher_utilities.hpp:1111
std::vector< PointPointerType > PointPointerVector
Definition: mesher_utilities.hpp:60
Node PointType
Definition: mesher_utilities.hpp:57
GlobalPointersVector< Condition > ConditionWeakPtrVectorType
Definition: mesher_utilities.hpp:71
KRATOS_DEFINE_LOCAL_FLAG(REFINE_WALL_CORNER)
KRATOS_DEFINE_LOCAL_FLAG(TRANSFER)
static bool CalculatePosition(const double &x0, const double &y0, const double &z0, const double &x1, const double &y1, const double &z1, const double &x2, const double &y2, const double &z2, const double &x3, const double &y3, const double &z3, const double &xc, const double &yc, const double &zc, std::vector< double > &rShapeFunctionsN)
Definition: mesher_utilities.hpp:1304
KRATOS_DEFINE_LOCAL_FLAG(REMOVE_BOUNDARY_NODES_ON_THRESHOLD)
virtual ~MesherUtilities()
Destructor.
Definition: mesher_utilities.hpp:989
virtual void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: mesher_utilities.hpp:1539
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: mesher_utilities.hpp:1545
ContactElementType
Definition: mesher_utilities.hpp:74
@ PointToFace
Definition: mesher_utilities.hpp:76
@ EdgeToEdge
Definition: mesher_utilities.hpp:77
@ NonContact
Definition: mesher_utilities.hpp:75
@ PointToPoint
Definition: mesher_utilities.hpp:78
double GetMeanRadius(ModelPart &rModelPart, double &rCriticalRadius)
KRATOS_DEFINE_LOCAL_FLAG(CONSTRAINED)
GlobalPointersVector< Element > ElementWeakPtrVectorType
Definition: mesher_utilities.hpp:70
KRATOS_DEFINE_LOCAL_FLAG(RECONNECT)
static unsigned int GetMaxNodeId(ModelPart &rModelPart)
Definition: mesher_utilities.hpp:1408
KRATOS_DEFINE_LOCAL_FLAG(REFINE_ELEMENTS_ON_DISTANCE)
KRATOS_DEFINE_LOCAL_FLAG(NEIGHBOURS_SEARCH)
ModelPart::PropertiesType PropertiesType
Definition: mesher_utilities.hpp:61
KRATOS_DEFINE_LOCAL_FLAG(INITIALIZE_MESHER_INPUT)
static double CalculateBoundarySize(Geometry< Node > &rGeometry)
Definition: mesher_utilities.hpp:1078
static double CalculateDeterminant(const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, const double x2, const double y2, const double z2)
Definition: mesher_utilities.hpp:1250
KRATOS_DEFINE_LOCAL_FLAG(REMOVE_BOUNDARY_NODES_ON_ERROR)
static double CalculateElementRadius(Geometry< Node > &rGeometry, double &rDomainSize)
Definition: mesher_utilities.hpp:1151
MeshDataTransferUtilities::TransferParameters TransferParametersType
Definition: mesher_utilities.hpp:67
KRATOS_DEFINE_LOCAL_FLAG(REFINE_ELEMENTS_ON_ERROR)
KRATOS_DEFINE_LOCAL_FLAG(REFINE_BOUNDARY)
KRATOS_DEFINE_LOCAL_FLAG(REFINE_BOUNDARY_ON_DISTANCE)
MesherUtilities()
Default constructor.
Definition: mesher_utilities.hpp:986
KRATOS_DEFINE_LOCAL_FLAG(REFINE_BOUNDARY_ON_ERROR)
KRATOS_DEFINE_LOCAL_FLAG(REMOVE_NODES)
static bool CalculatePosition(const double &x0, const double &y0, const double &x1, const double &y1, const double &x2, const double &y2, const double &xc, const double &yc, std::vector< double > &rShapeFunctionsN)
Definition: mesher_utilities.hpp:1344
static double CalculateTriangleArea(const double x0, const double y0, const double x1, const double y1, const double x2, const double y2)
Definition: mesher_utilities.hpp:1167
KRATOS_DEFINE_LOCAL_FLAG(TRANSFER_KRATOS_FACES_TO_MESHER)
static double CalculateAverageSideLength(const double x0, const double y0, const double x1, const double y1, const double x2, const double y2)
Definition: mesher_utilities.hpp:1257
KRATOS_DEFINE_LOCAL_FLAG(REMOVE_NODES_ON_ERROR)
ModelPart::NodesContainerType NodesContainerType
Definition: mesher_utilities.hpp:65
static double CalculateTetrahedronVolume(const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, const double x2, const double y2, const double z2, const double x3, const double y3, const double z3)
Definition: mesher_utilities.hpp:1194
KRATOS_DEFINE_LOCAL_FLAG(MESH_SMOOTHING)
ModelPart::PropertiesContainerType PropertiesContainerType
Definition: mesher_utilities.hpp:62
KRATOS_DEFINE_LOCAL_FLAG(TRANSFER_KRATOS_NODES_TO_MESHER)
static unsigned int GetMaxElementId(ModelPart &rModelPart)
Definition: mesher_utilities.hpp:1481
static double CalculateElementRadius(Geometry< Node > &rGeometry)
Definition: mesher_utilities.hpp:1142
KRATOS_DEFINE_LOCAL_FLAG(TRANSFER_KRATOS_ELEMENTS_TO_MESHER)
KRATOS_DEFINE_LOCAL_FLAG(REMOVE_NODES_ON_DISTANCE)
static bool CalculatePosition(const std::vector< std::vector< double >> &rPointCoordinates, const std::vector< double > &rCenter, std::vector< double > &rShapeFunctionsN)
Definition: mesher_utilities.hpp:1272
static double CalculateTetrahedronRadius(const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, const double x2, const double y2, const double z2, const double x3, const double y3, const double z3, double &Volume)
Definition: mesher_utilities.hpp:1212
static double CalculateTriangleRadius(const double x0, const double y0, const double x1, const double y1, const double x2, const double y2, double &Area)
Definition: mesher_utilities.hpp:1174
KRATOS_DEFINE_LOCAL_FLAG(REMOVE_NODES_ON_THRESHOLD)
KRATOS_DEFINE_LOCAL_FLAG(REMESH)
KRATOS_CLASS_POINTER_DEFINITION(MesherUtilities)
Pointer definition of MesherUtilities.
KRATOS_DEFINE_LOCAL_FLAG(SELECT_TESSELLATION_ELEMENTS)
KRATOS_DEFINE_LOCAL_FLAG(REFINE_INSERT_NODES)
KRATOS_DEFINE_LOCAL_FLAG(KEEP_ISOLATED_NODES)
KRATOS_DEFINE_LOCAL_FLAG(SET_DOF)
GlobalPointersVector< Node > NodeWeakPtrVectorType
Definition: mesher_utilities.hpp:69
KRATOS_DEFINE_LOCAL_FLAG(REFINE)
KRATOS_DEFINE_LOCAL_FLAG(REFINE_ELEMENTS)
virtual std::string Info() const
Turn back information as a string.
Definition: mesher_utilities.hpp:1531
KRATOS_DEFINE_LOCAL_FLAG(VARIABLES_SMOOTHING)
KRATOS_DEFINE_LOCAL_FLAG(PASS_ALPHA_SHAPE)
ModelPart::MeshType MeshType
Definition: mesher_utilities.hpp:63
static double CalculateTriangleRadius(Geometry< Node > &rGeometry)
Definition: mesher_utilities.hpp:1096
KRATOS_DEFINE_LOCAL_FLAG(CONTACT_SEARCH)
static double CalculateModelPartVolume(ModelPart &rModelPart)
Definition: mesher_utilities.hpp:1428
KRATOS_DEFINE_LOCAL_FLAG(BOUNDARIES_SEARCH)
ModelPart::ElementsContainerType ElementsContainerType
Definition: mesher_utilities.hpp:64
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
ElementIterator ElementsBegin(IndexType ThisIndex=0)
Definition: model_part.h:1169
MeshType::ConditionsContainerType ConditionsContainerType
Condintions container. A vector set of Conditions with their Id's as key.
Definition: model_part.h:183
ConditionIterator ConditionsBegin(IndexType ThisIndex=0)
Definition: model_part.h:1361
MeshType::ElementsContainerType ElementsContainerType
Element container. A vector set of Elements with their Id's as key.
Definition: model_part.h:168
NodeIterator NodesBegin(IndexType ThisIndex=0)
Definition: model_part.h:487
ConditionsContainerType & Conditions(IndexType ThisIndex=0)
Definition: model_part.h:1381
ProcessInfo & GetProcessInfo()
Definition: model_part.h:1746
ElementsContainerType & Elements(IndexType ThisIndex=0)
Definition: model_part.h:1189
MeshType::NodesContainerType NodesContainerType
Nodes container. Which is a vector set of nodes with their Id's as key.
Definition: model_part.h:128
ElementIterator ElementsEnd(IndexType ThisIndex=0)
Definition: model_part.h:1179
NodeIterator NodesEnd(IndexType ThisIndex=0)
Definition: model_part.h:497
NodesContainerType & Nodes(IndexType ThisIndex=0)
Definition: model_part.h:507
ConditionIterator ConditionsEnd(IndexType ThisIndex=0)
Definition: model_part.h:1371
This class defines the node.
Definition: node.h:65
Point class.
Definition: point.h:59
double Y() const
Definition: point.h:187
double Z() const
Definition: point.h:193
double X() const
Definition: point.h:181
A sorted associative container similar to an STL set, but uses a vector to store pointers to its data...
Definition: pointer_vector_set.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
Short class definition.
Definition: spatial_bounding_box.hpp:48
#define KRATOS_THROW_ERROR(ExceptionType, ErrorMessage, MoreInfo)
Definition: define.h:77
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
bool CalculatePosition(Geometry< Node > &geom, const double xc, const double yc, const double zc, array_1d< double, 3 > &N)
Definition: transfer_utility.h:343
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
x2
Definition: generate_frictional_mortar_condition.py:122
x1
Definition: generate_frictional_mortar_condition.py:121
S
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:39
int tol
Definition: hinsberg_optimization.py:138
int dimension
Definition: isotropic_damage_automatic_differentiation.py:123
def Alpha(n, j)
Definition: quadrature.py:93
float xc
Definition: rotating_cone.py:77
float yc
Definition: rotating_cone.py:78
volume
Definition: sp_statistics.py:15
e
Definition: run_cpp_mpi_tests.py:31
Definition: mesh_data_transfer_utilities.hpp:80
Definition: mesher_utilities.hpp:149
int mNumberOfElements
Definition: mesher_utilities.hpp:161
void SetElementNeighbourList(int *&rElementNeighbourList)
Definition: mesher_utilities.hpp:173
int mNumberOfPoints
Definition: mesher_utilities.hpp:160
void CreateElementSizeList(const unsigned int NumberOfElements)
Definition: mesher_utilities.hpp:207
double * mpElementSizeList
Definition: mesher_utilities.hpp:157
int * GetElementNeighbourList()
Definition: mesher_utilities.hpp:180
void SetNumberOfPoints(int &rNumberOfPoints)
Definition: mesher_utilities.hpp:174
int * GetElementList()
Definition: mesher_utilities.hpp:178
void SetNumberOfElements(int &rNumberOfElements)
Definition: mesher_utilities.hpp:175
void CreateElementList(const unsigned int NumberOfElements, const unsigned int NumberOfVertices)
Definition: mesher_utilities.hpp:196
void CreateElementNeighbourList(const unsigned int NumberOfElements, const unsigned int NumberOfFaces)
Definition: mesher_utilities.hpp:217
int & GetNumberOfPoints()
Definition: mesher_utilities.hpp:182
void SetElementList(int *&rElementList)
Definition: mesher_utilities.hpp:171
bool ElementNeighbourListFlag
Definition: mesher_utilities.hpp:168
int * mpElementNeighbourList
Definition: mesher_utilities.hpp:158
KRATOS_CLASS_POINTER_DEFINITION(MeshContainer)
void CreatePointList(const unsigned int NumberOfPoints, const unsigned int Dimension)
Definition: mesher_utilities.hpp:185
bool PointListFlag
Definition: mesher_utilities.hpp:165
void Finalize()
Definition: mesher_utilities.hpp:242
double * GetPointList()
Definition: mesher_utilities.hpp:177
int & GetNumberOfElements()
Definition: mesher_utilities.hpp:183
void SetPointList(double *&rPointList)
Definition: mesher_utilities.hpp:170
void SetElementSizeList(double *&rElementSizeList)
Definition: mesher_utilities.hpp:172
double * GetElementSizeList()
Definition: mesher_utilities.hpp:179
bool ElementListFlag
Definition: mesher_utilities.hpp:166
double * mpPointList
Definition: mesher_utilities.hpp:154
void Initialize()
Definition: mesher_utilities.hpp:227
int * mpElementList
Definition: mesher_utilities.hpp:155
bool ElementSizeListFlag
Definition: mesher_utilities.hpp:167
Definition: mesher_utilities.hpp:269
unsigned int NumberOfNewElements
Definition: mesher_utilities.hpp:282
unsigned int InitialNumberOfNodes
Definition: mesher_utilities.hpp:279
int BalancePrincipalSecondaryPartsNodes
Definition: mesher_utilities.hpp:292
int GetInsertedNodes()
Definition: mesher_utilities.hpp:413
unsigned int GetNumberOfNodes()
Definition: mesher_utilities.hpp:341
double GetInitialMeshVolume()
Definition: mesher_utilities.hpp:376
unsigned int InsertedNodes
Definition: mesher_utilities.hpp:290
bool MechanicalSmoothingRequired
Definition: mesher_utilities.hpp:299
unsigned int GetNumberOfConditions()
Definition: mesher_utilities.hpp:351
bool GeometricalSmoothingRequired
Definition: mesher_utilities.hpp:298
unsigned int NumberOfNodes
Definition: mesher_utilities.hpp:276
unsigned int NumberOfElements
Definition: mesher_utilities.hpp:275
unsigned int NumberOfLagrangianInletNodes
Definition: mesher_utilities.hpp:287
double InitialMeshVolume
Definition: mesher_utilities.hpp:301
unsigned int NumberOfNewNodes
Definition: mesher_utilities.hpp:283
void Initialize()
Definition: mesher_utilities.hpp:303
unsigned int GetNumberOfElements()
Definition: mesher_utilities.hpp:346
bool CheckGeometricalSmoothing()
Definition: mesher_utilities.hpp:381
unsigned int CriticalElements
Definition: mesher_utilities.hpp:296
KRATOS_CLASS_POINTER_DEFINITION(MeshingInfoParameters)
unsigned int NumberOfEulerianInletNodes
Definition: mesher_utilities.hpp:286
void SetNumberOfNewElements(unsigned int NumberElements)
Definition: mesher_utilities.hpp:361
void SetNumberOfNewNodes(unsigned int NumberNodes)
Definition: mesher_utilities.hpp:356
bool CheckMechanicalSmoothing()
Definition: mesher_utilities.hpp:402
void SetInitialMeshVolume(double Volume)
Definition: mesher_utilities.hpp:371
unsigned int NumberOfConditions
Definition: mesher_utilities.hpp:277
unsigned int InsertedBoundaryConditions
Definition: mesher_utilities.hpp:294
void SetNumberOfNodes(unsigned int NumberNodes)
Definition: mesher_utilities.hpp:326
void SetNumberOfElements(unsigned int NumberElements)
Definition: mesher_utilities.hpp:331
unsigned int InsertedBoundaryNodes
Definition: mesher_utilities.hpp:293
unsigned int NumberOfNewConditions
Definition: mesher_utilities.hpp:284
unsigned int RemovedNodes
Definition: mesher_utilities.hpp:291
void SetNumberOfNewConditions(unsigned int NumberConditions)
Definition: mesher_utilities.hpp:366
void SetNumberOfConditions(unsigned int NumberConditions)
Definition: mesher_utilities.hpp:336
Definition: mesher_utilities.hpp:631
void Reset(Flags ThisFlag)
Definition: mesher_utilities.hpp:720
MeshingInfoParameters::Pointer Info
Definition: mesher_utilities.hpp:681
void SetTransferVariable(const Variable< double > &rTransferVariable)
Definition: mesher_utilities.hpp:787
Flags Options
Definition: mesher_utilities.hpp:645
void SetTessellationFlags(std::string rFlags)
Definition: mesher_utilities.hpp:740
void SetMeshingBox(SpatialBoundingBox::Pointer pMeshingBox)
Definition: mesher_utilities.hpp:775
void SetRefiningParameters(RefiningParameters::Pointer rRefine)
Definition: mesher_utilities.hpp:765
std::string TessellationInfo
Definition: mesher_utilities.hpp:656
Condition const & GetReferenceCondition()
Definition: mesher_utilities.hpp:847
std::vector< int > PreservedElements
Definition: mesher_utilities.hpp:669
void SetBoundingBoxUpperPoint(double rBoundingBoxUpperPointX, double rBoundingBoxUpperPointY, double rBoundingBoxUpperPointZ)
Definition: mesher_utilities.hpp:904
RefiningParameters::Pointer Refine
Definition: mesher_utilities.hpp:684
bool MeshElementsSelectedFlag
Definition: mesher_utilities.hpp:662
MeshContainer InMesh
Definition: mesher_utilities.hpp:674
void SetInfoParameters(MeshingInfoParameters::Pointer rInfo)
Definition: mesher_utilities.hpp:760
RefiningParameters::Pointer GetRefiningParameters()
Definition: mesher_utilities.hpp:833
std::string GetSubModelPartName()
Definition: mesher_utilities.hpp:813
std::vector< std::vector< int > > NeighbourList
Definition: mesher_utilities.hpp:678
std::vector< unsigned int > RefiningBoxElementsInTransitionZone
Definition: mesher_utilities.hpp:708
std::vector< array_1d< double, 3 > > RefiningBoxShiftedMaximumPoint
Definition: mesher_utilities.hpp:713
std::vector< double > RefiningBoxMeshSize
Definition: mesher_utilities.hpp:707
TransferParametersType::Pointer Transfer
Definition: mesher_utilities.hpp:690
Flags GetOptions()
Definition: mesher_utilities.hpp:818
void SetOptions(const Flags &rOptions)
Definition: mesher_utilities.hpp:725
MeshContainer OutMesh
Definition: mesher_utilities.hpp:675
double BoundingBoxInitialTime
Definition: mesher_utilities.hpp:699
void SetAlphaParameter(const double rAlpha)
Definition: mesher_utilities.hpp:750
void SetRefiningBoxMeshSize(unsigned int index, double rRefiningBoxMeshSize)
Definition: mesher_utilities.hpp:969
void SetRefiningBoxMaximumPoint(unsigned int index, double rRefiningBoxMaximumPointX, double rRefiningBoxMaximumPointY, double rRefiningBoxMaximumPointZ)
Definition: mesher_utilities.hpp:942
double OffsetFactor
Definition: mesher_utilities.hpp:652
MeshingInfoParameters::Pointer GetInfoParameters()
Definition: mesher_utilities.hpp:823
std::vector< double > RefiningBoxFinalTime
Definition: mesher_utilities.hpp:706
bool TransferVariablesSetFlag
Definition: mesher_utilities.hpp:658
bool UseBoundingBox
Definition: mesher_utilities.hpp:698
double BoundingBoxFinalTime
Definition: mesher_utilities.hpp:700
void SetSubModelPartName(std::string const &rSubModelPartName)
Definition: mesher_utilities.hpp:730
std::vector< bool > UseRefiningBox
Definition: mesher_utilities.hpp:704
void FinalizeMeshing()
Definition: mesher_utilities.hpp:885
void SetTessellationInfo(std::string rInfo)
Definition: mesher_utilities.hpp:745
bool InputInitializedFlag
Definition: mesher_utilities.hpp:661
std::string TessellationFlags
Definition: mesher_utilities.hpp:655
void Initialize()
Definition: mesher_utilities.hpp:852
void SetBoundingBoxLowerPoint(double rBoundingBoxLowerPointX, double rBoundingBoxLowerPointY, double rBoundingBoxLowerPointZ)
Definition: mesher_utilities.hpp:897
void SetRefiningBoxElementsInTransitionZone(unsigned int index, unsigned int rRefiningBoxElementsInTransitionZone)
Definition: mesher_utilities.hpp:974
void SetTransferParameters(TransferParametersType::Pointer rTransferVariables)
Definition: mesher_utilities.hpp:781
void InitializeMeshing()
Definition: mesher_utilities.hpp:878
TransferParametersType::Pointer GetTransferParameters()
Definition: mesher_utilities.hpp:828
void SetBoundingBoxTimeInterval(double rBoundingBoxInitialTime, double rBoundingBoxFinalTime)
Definition: mesher_utilities.hpp:911
void SetRefiningBoxMinimumPoint(unsigned int index, double rRefiningBoxMinimumPointX, double rRefiningBoxMinimumPointY, double rRefiningBoxMinimumPointZ)
Definition: mesher_utilities.hpp:935
array_1d< double, 3 > BoundingBoxUpperPoint
Definition: mesher_utilities.hpp:702
array_1d< double, 3 > BoundingBoxLowerPoint
Definition: mesher_utilities.hpp:701
void SetProperties(PropertiesType::Pointer rProperties)
Definition: mesher_utilities.hpp:770
PropertiesType::Pointer GetProperties()
Definition: mesher_utilities.hpp:838
unsigned int ConditionMaxId
Definition: mesher_utilities.hpp:664
KRATOS_CLASS_POINTER_DEFINITION(MeshingParameters)
std::string SubModelPartName
Definition: mesher_utilities.hpp:642
void SetRefiningBoxShiftedMaximumPoint(unsigned int index, double rPointX, double rPointY, double rPointZ)
Definition: mesher_utilities.hpp:956
std::vector< int > NodalPreIds
Definition: mesher_utilities.hpp:668
unsigned int ElementMaxId
Definition: mesher_utilities.hpp:665
void SetHoles(std::vector< BoundedVector< double, 3 >> &rHoles)
Definition: mesher_utilities.hpp:803
void SetUseRefiningBox(unsigned int index, bool rUseRefiningBox)
Definition: mesher_utilities.hpp:930
double AlphaParameter
Definition: mesher_utilities.hpp:651
std::vector< BoundedVector< double, 3 > > & GetHoles()
Definition: mesher_utilities.hpp:808
const Element * mpReferenceElement
Definition: mesher_utilities.hpp:637
Flags ExecutionOptions
Definition: mesher_utilities.hpp:648
void SetExecutionOptions(const Flags &rOptions)
Definition: mesher_utilities.hpp:735
Element const & GetReferenceElement()
Definition: mesher_utilities.hpp:843
std::vector< array_1d< double, 3 > > RefiningBoxMinimumPoint
Definition: mesher_utilities.hpp:709
void SetRefiningBoxTimeInterval(unsigned int index, double rRefiningBoxInitialTime, double rRefiningBoxFinalTime)
Definition: mesher_utilities.hpp:963
std::vector< double > RefiningBoxInitialTime
Definition: mesher_utilities.hpp:705
MeshContainer MidMesh
Definition: mesher_utilities.hpp:676
bool MeshingBoxSetFlag
Definition: mesher_utilities.hpp:695
std::vector< array_1d< double, 3 > > RefiningBoxMaximumPoint
Definition: mesher_utilities.hpp:710
void SetUseBoundingBox(bool rUseBoundingBox)
Definition: mesher_utilities.hpp:892
void InitializeRefiningBoxParameters(unsigned int size)
Definition: mesher_utilities.hpp:917
void SetOffsetFactor(const double rOffsetFactor)
Definition: mesher_utilities.hpp:755
void SetReferenceElement(const Element &rElement)
Definition: mesher_utilities.hpp:793
void Set(Flags ThisFlag)
Definition: mesher_utilities.hpp:715
void SetReferenceCondition(const Condition &rCondition)
Definition: mesher_utilities.hpp:798
unsigned int NodeMaxId
Definition: mesher_utilities.hpp:666
PropertiesType::Pointer Properties
Definition: mesher_utilities.hpp:692
std::vector< BoundedVector< double, 3 > > Holes
Definition: mesher_utilities.hpp:671
SpatialBoundingBox::Pointer MeshingBox
Definition: mesher_utilities.hpp:696
std::vector< array_1d< double, 3 > > RefiningBoxShiftedMinimumPoint
Definition: mesher_utilities.hpp:712
const Condition * mpReferenceCondition
Definition: mesher_utilities.hpp:638
void SetRefiningBoxShiftedMinimumPoint(unsigned int index, double rPointX, double rPointY, double rPointZ)
Definition: mesher_utilities.hpp:949
Definition: mesher_utilities.hpp:420
void Initialize()
Definition: mesher_utilities.hpp:426
unsigned int on_error
Definition: mesher_utilities.hpp:424
void EchoStats()
Definition: mesher_utilities.hpp:433
unsigned int on_distance
Definition: mesher_utilities.hpp:422
unsigned int on_threshold
Definition: mesher_utilities.hpp:423
Definition: mesher_utilities.hpp:440
void Initialize()
Definition: mesher_utilities.hpp:450
unsigned int in_contact
Definition: mesher_utilities.hpp:446
void EchoStats()
Definition: mesher_utilities.hpp:460
unsigned int in_convex_boundary
Definition: mesher_utilities.hpp:448
unsigned int on_threshold
Definition: mesher_utilities.hpp:443
unsigned int in_concave_boundary
Definition: mesher_utilities.hpp:447
unsigned int on_error
Definition: mesher_utilities.hpp:444
unsigned int on_distance
Definition: mesher_utilities.hpp:442
Definition: mesher_utilities.hpp:468
RefineBoundaryInfo BoundaryConditionsRefined
Definition: mesher_utilities.hpp:474
RefineBoundaryInfo BoundaryNodesRemoved
Definition: mesher_utilities.hpp:475
RefineBodyInfo BodyNodesRemoved
Definition: mesher_utilities.hpp:471
RefineBodyInfo BodyElementsRefined
Definition: mesher_utilities.hpp:470
Definition: mesher_utilities.hpp:479
double MeanVolume
Definition: mesher_utilities.hpp:503
void SetRemovingOptions(const Flags &rOptions)
Definition: mesher_utilities.hpp:519
void SetMeanVolume(const double rMeanVolume)
Definition: mesher_utilities.hpp:534
const Variable< double > & GetErrorVariable()
Definition: mesher_utilities.hpp:609
Flags RemovingOptions
Definition: mesher_utilities.hpp:491
SpatialBoundingBox::Pointer RefiningBox
Definition: mesher_utilities.hpp:510
double ReferenceThreshold
Definition: mesher_utilities.hpp:498
void Initialize()
Definition: mesher_utilities.hpp:614
double Alpha
Definition: mesher_utilities.hpp:493
void SetErrorVariable(const Variable< double > &rVariable)
Definition: mesher_utilities.hpp:584
void SetCriticalRadius(const double rCriticalRadius)
Definition: mesher_utilities.hpp:539
void SetAlphaParameter(const double rAlpha)
Definition: mesher_utilities.hpp:524
void SetThresholdVariable(const Variable< double > &rVariable)
Definition: mesher_utilities.hpp:579
Flags GetRemovingOptions()
Definition: mesher_utilities.hpp:594
double GetMeanVolume()
Definition: mesher_utilities.hpp:529
void SetReferenceThreshold(const double rReferenceThreshold)
Definition: mesher_utilities.hpp:569
double CriticalSide
Definition: mesher_utilities.hpp:496
double ReferenceError
Definition: mesher_utilities.hpp:499
Flags RefiningOptions
Definition: mesher_utilities.hpp:490
bool RefiningBoxSetFlag
Definition: mesher_utilities.hpp:509
void SetCriticalSide(const double rCriticalSide)
Definition: mesher_utilities.hpp:551
void SetInitialRadius(const double rInitialRadius)
Definition: mesher_utilities.hpp:544
void SetParameters(const double rAlpha, const double rCriticalRadius, const double rCriticalSide)
Definition: mesher_utilities.hpp:556
const Variable< double > & GetThresholdVariable()
Definition: mesher_utilities.hpp:604
void SetRefiningBox(SpatialBoundingBox::Pointer pRefiningBox)
Definition: mesher_utilities.hpp:563
double InitialRadius
Definition: mesher_utilities.hpp:502
KRATOS_CLASS_POINTER_DEFINITION(RefiningParameters)
double GetReferenceThreshold()
Definition: mesher_utilities.hpp:599
Flags GetRefiningOptions()
Definition: mesher_utilities.hpp:589
void SetReferenceError(const double rReferenceError)
Definition: mesher_utilities.hpp:574
RefiningInfoParameters Info
Definition: mesher_utilities.hpp:506
void SetRefiningOptions(const Flags &rOptions)
Definition: mesher_utilities.hpp:514
double CriticalRadius
Definition: mesher_utilities.hpp:495