15 #if !defined(KRATOS_MAPPING_VARIABLES_3D_UTILITIES )
16 #define KRATOS_MAPPING_VARIABLES_3D_UTILITIES
92 this->ComputeCellMatrixDimensions(rAuxVariables,rModelPartNew);
101 bool add_temperature,
102 bool add_reference_temperature)
105 std::vector< std::vector< std::vector< std::vector<Element::Pointer> > > > ElementOldCellMatrix;
106 ElementOldCellMatrix.resize(AuxVariables.
NRows);
107 for(
int i = 0;
i < AuxVariables.
NRows;
i++)
108 ElementOldCellMatrix[
i].resize(AuxVariables.
NColumns);
109 for(
int i = 0;
i < AuxVariables.
NRows;
i++)
113 ElementOldCellMatrix[
i][
j].resize(AuxVariables.
NSections);
123 int NElems =
static_cast<int>(rModelPartOld.
Elements().size());
124 ModelPart::ElementsContainerType::iterator el_begin = rModelPartOld.
ElementsBegin();
126 #pragma omp parallel for private(X_me,Y_me,Z_me,PointsNumber)
127 for(
int i = 0;
i < NElems;
i++)
129 ModelPart::ElementsContainerType::iterator itElemOld = el_begin +
i;
131 double X_left = itElemOld->GetGeometry().GetPoint(0).X0();
132 double X_right = X_left;
133 double Y_top = itElemOld->GetGeometry().GetPoint(0).Y0();
134 double Y_bot = Y_top;
135 double Z_back = itElemOld->GetGeometry().GetPoint(0).Z0();
136 double Z_front = Z_back;
137 PointsNumber = itElemOld->GetGeometry().PointsNumber();
139 for(
int j = 1;
j < PointsNumber;
j++)
141 X_me = itElemOld->GetGeometry().GetPoint(
j).X0();
142 Y_me = itElemOld->GetGeometry().GetPoint(
j).Y0();
143 Z_me = itElemOld->GetGeometry().GetPoint(
j).Z0();
145 if(X_me > X_right) X_right = X_me;
146 else if(X_me < X_left) X_left = X_me;
147 if(Y_me > Y_top) Y_top = Y_me;
148 else if(Y_me < Y_bot) Y_bot = Y_me;
149 if(Z_me > Z_front) Z_front = Z_me;
150 else if(Z_me < Z_back) Z_back = Z_me;
160 if(Column_left < 0) Column_left = 0;
161 else if(Column_left >= AuxVariables.
NColumns) Column_left = AuxVariables.
NColumns-1;
162 if(Column_right >= AuxVariables.
NColumns) Column_right = AuxVariables.
NColumns-1;
163 else if(Column_right < 0) Column_right = 0;
164 if(Row_top < 0) Row_top = 0;
165 else if(Row_top >= AuxVariables.
NRows) Row_top = AuxVariables.
NRows-1;
166 if(Row_bot >= AuxVariables.
NRows) Row_bot = AuxVariables.
NRows-1;
167 else if(Row_bot < 0) Row_bot = 0;
168 if(Section_back < 0) Section_back = 0;
169 else if(Section_back >= AuxVariables.
NSections) Section_back = AuxVariables.
NSections-1;
171 else if(Section_front < 0) Section_front = 0;
173 for(
int s = Section_back; s <= Section_front; s++)
175 for(
int k = Row_top;
k <= Row_bot;
k++)
177 for(
int l = Column_left;
l <= Column_right;
l++)
181 ElementOldCellMatrix[
k][
l][s].push_back((*(itElemOld.base())));
189 const int NNodes =
static_cast<int>(rModelPartNew.
Nodes().size());
190 ModelPart::NodesContainerType::iterator node_begin = rModelPartNew.
NodesBegin();
195 #pragma omp parallel for private(X_me,Y_me,Z_me,PointsNumber,GlobalCoordinates,LocalCoordinates)
196 for(
int i = 0;
i < NNodes;
i++)
198 ModelPart::NodesContainerType::iterator itNodeNew = node_begin +
i;
200 X_me = itNodeNew->X0();
201 Y_me = itNodeNew->Y0();
202 Z_me = itNodeNew->Z0();
209 else if(Column < 0) Column = 0;
210 if(Row >= AuxVariables.
NRows) Row = AuxVariables.
NRows-1;
211 else if(Row < 0) Row = 0;
213 else if(Section < 0) Section = 0;
215 noalias(GlobalCoordinates) = itNodeNew->Coordinates();
216 bool IsInside =
false;
217 Element::Pointer pElementOld;
219 for(
unsigned int m = 0;
m < (ElementOldCellMatrix[Row][Column][Section]).size();
m++)
221 pElementOld = ElementOldCellMatrix[Row][Column][Section][
m];
222 IsInside = pElementOld->GetGeometry().IsInside(GlobalCoordinates,LocalCoordinates);
228 for(
int i = 0;
i < 12;
i++)
230 for(
int j = 1;
j<10;
j++)
232 for(
unsigned int m = 0;
m < (ElementOldCellMatrix[Row][Column][Section]).size();
m++)
234 pElementOld = ElementOldCellMatrix[Row][Column][Section][
m];
235 double tol =
j * pow(10.0, (
i-12));
236 IsInside = pElementOld->GetGeometry().IsInside(GlobalCoordinates,LocalCoordinates,
tol);
245 if(IsInside ==
false)
247 std::cout <<
"None of the old elements contains node " << itNodeNew->Id() << std::endl;
251 PointsNumber = pElementOld->GetGeometry().PointsNumber();
252 Vector ShapeFunctionsValuesVector(PointsNumber);
253 Vector NodalVariableVector(PointsNumber);
255 pElementOld->GetGeometry().ShapeFunctionsValues(ShapeFunctionsValuesVector,LocalCoordinates);
260 double max_temperature = -10e12;
261 double min_temperature = 10e12;
263 for(
int j = 0;
j < PointsNumber;
j++)
265 NodalVariableVector[
j] = pElementOld->GetGeometry().GetPoint(
j).FastGetSolutionStepValue(TEMPERATURE);
266 if (NodalVariableVector[
j] > max_temperature) max_temperature = NodalVariableVector[
j];
267 if (NodalVariableVector[
j] < min_temperature) min_temperature = NodalVariableVector[
j];
269 itNodeNew->FastGetSolutionStepValue(TEMPERATURE) =
inner_prod(ShapeFunctionsValuesVector,NodalVariableVector);
270 if (itNodeNew->FastGetSolutionStepValue(TEMPERATURE) > max_temperature) itNodeNew->FastGetSolutionStepValue(TEMPERATURE) = max_temperature;
271 if (itNodeNew->FastGetSolutionStepValue(TEMPERATURE) < min_temperature) itNodeNew->FastGetSolutionStepValue(TEMPERATURE) = min_temperature;
274 if (add_reference_temperature)
276 double max_reference_temperature = -10e12;
277 double min_reference_temperature = 10e12;
279 for(
int j = 0;
j < PointsNumber;
j++)
281 NodalVariableVector[
j] = pElementOld->GetGeometry().GetPoint(
j).FastGetSolutionStepValue(NODAL_REFERENCE_TEMPERATURE);
282 if (NodalVariableVector[
j] > max_reference_temperature) max_reference_temperature = NodalVariableVector[
j];
283 if (NodalVariableVector[
j] < min_reference_temperature) min_reference_temperature = NodalVariableVector[
j];
285 itNodeNew->FastGetSolutionStepValue(NODAL_REFERENCE_TEMPERATURE) =
inner_prod(ShapeFunctionsValuesVector,NodalVariableVector);
286 if (itNodeNew->FastGetSolutionStepValue(NODAL_REFERENCE_TEMPERATURE) > max_reference_temperature) itNodeNew->FastGetSolutionStepValue(NODAL_REFERENCE_TEMPERATURE) = max_reference_temperature;
287 if (itNodeNew->FastGetSolutionStepValue(NODAL_REFERENCE_TEMPERATURE) < min_reference_temperature) itNodeNew->FastGetSolutionStepValue(NODAL_REFERENCE_TEMPERATURE) = min_reference_temperature;
296 bool add_displacement,
300 std::vector< std::vector< std::vector< std::vector<Element::Pointer> > > > ElementOldCellMatrix;
301 ElementOldCellMatrix.resize(AuxVariables.
NRows);
302 for(
int i = 0;
i < AuxVariables.
NRows;
i++)
303 ElementOldCellMatrix[
i].resize(AuxVariables.
NColumns);
304 for(
int i = 0;
i < AuxVariables.
NRows;
i++)
308 ElementOldCellMatrix[
i][
j].resize(AuxVariables.
NSections);
318 int NElems =
static_cast<int>(rModelPartOld.
Elements().size());
319 ModelPart::ElementsContainerType::iterator el_begin = rModelPartOld.
ElementsBegin();
321 #pragma omp parallel for private(X_me,Y_me,Z_me,PointsNumber)
322 for(
int i = 0;
i < NElems;
i++)
324 ModelPart::ElementsContainerType::iterator itElemOld = el_begin +
i;
326 double X_left = itElemOld->GetGeometry().GetPoint(0).X0();
327 double X_right = X_left;
328 double Y_top = itElemOld->GetGeometry().GetPoint(0).Y0();
329 double Y_bot = Y_top;
330 double Z_back = itElemOld->GetGeometry().GetPoint(0).Z0();
331 double Z_front = Z_back;
332 PointsNumber = itElemOld->GetGeometry().PointsNumber();
334 for(
int j = 1;
j < PointsNumber;
j++)
336 X_me = itElemOld->GetGeometry().GetPoint(
j).X0();
337 Y_me = itElemOld->GetGeometry().GetPoint(
j).Y0();
338 Z_me = itElemOld->GetGeometry().GetPoint(
j).Z0();
340 if(X_me > X_right) X_right = X_me;
341 else if(X_me < X_left) X_left = X_me;
342 if(Y_me > Y_top) Y_top = Y_me;
343 else if(Y_me < Y_bot) Y_bot = Y_me;
344 if(Z_me > Z_front) Z_front = Z_me;
345 else if(Z_me < Z_back) Z_back = Z_me;
355 if(Column_left < 0) Column_left = 0;
356 else if(Column_left >= AuxVariables.
NColumns) Column_left = AuxVariables.
NColumns-1;
357 if(Column_right >= AuxVariables.
NColumns) Column_right = AuxVariables.
NColumns-1;
358 else if(Column_right < 0) Column_right = 0;
359 if(Row_top < 0) Row_top = 0;
360 else if(Row_top >= AuxVariables.
NRows) Row_top = AuxVariables.
NRows-1;
361 if(Row_bot >= AuxVariables.
NRows) Row_bot = AuxVariables.
NRows-1;
362 else if(Row_bot < 0) Row_bot = 0;
363 if(Section_back < 0) Section_back = 0;
364 else if(Section_back >= AuxVariables.
NSections) Section_back = AuxVariables.
NSections-1;
366 else if(Section_front < 0) Section_front = 0;
368 for(
int s = Section_back; s <= Section_front; s++)
370 for(
int k = Row_top;
k <= Row_bot;
k++)
372 for(
int l = Column_left;
l <= Column_right;
l++)
376 ElementOldCellMatrix[
k][
l][s].push_back((*(itElemOld.base())));
384 const int NNodes =
static_cast<int>(rModelPartNew.
Nodes().size());
385 ModelPart::NodesContainerType::iterator node_begin = rModelPartNew.
NodesBegin();
390 #pragma omp parallel for private(X_me,Y_me,Z_me,PointsNumber,GlobalCoordinates,LocalCoordinates)
391 for(
int i = 0;
i < NNodes;
i++)
393 ModelPart::NodesContainerType::iterator itNodeNew = node_begin +
i;
395 X_me = itNodeNew->X0();
396 Y_me = itNodeNew->Y0();
397 Z_me = itNodeNew->Z0();
404 else if(Column < 0) Column = 0;
405 if(Row >= AuxVariables.
NRows) Row = AuxVariables.
NRows-1;
406 else if(Row < 0) Row = 0;
408 else if(Section < 0) Section = 0;
410 noalias(GlobalCoordinates) = itNodeNew->Coordinates();
411 bool IsInside =
false;
412 Element::Pointer pElementOld;
414 for(
unsigned int m = 0;
m < (ElementOldCellMatrix[Row][Column][Section]).size();
m++)
416 pElementOld = ElementOldCellMatrix[Row][Column][Section][
m];
417 IsInside = pElementOld->GetGeometry().IsInside(GlobalCoordinates,LocalCoordinates);
423 for(
int i = 0;
i < 12;
i++)
425 for(
int j = 1;
j<10;
j++)
427 for(
unsigned int m = 0;
m < (ElementOldCellMatrix[Row][Column][Section]).size();
m++)
429 pElementOld = ElementOldCellMatrix[Row][Column][Section][
m];
430 double tol =
j * pow(10.0, (
i-12));
431 IsInside = pElementOld->GetGeometry().IsInside(GlobalCoordinates,LocalCoordinates,
tol);
440 if(IsInside ==
false)
442 std::cout <<
"None of the old elements contains node " << itNodeNew->Id() << std::endl;
445 itNodeNew->FastGetSolutionStepValue(NODAL_CAUCHY_STRESS_TENSOR) =
ZeroMatrix(3,3);
446 itNodeNew->FastGetSolutionStepValue(INITIAL_NODAL_CAUCHY_STRESS_TENSOR) =
ZeroMatrix(3,3);
451 PointsNumber = pElementOld->GetGeometry().PointsNumber();
452 Vector ShapeFunctionsValuesVector(PointsNumber);
453 Vector NodalVariableVector(PointsNumber);
455 pElementOld->GetGeometry().ShapeFunctionsValues(ShapeFunctionsValuesVector,LocalCoordinates);
458 if (add_displacement)
460 double max_displacement_x = -10e12;
461 double min_displacement_x = 10e12;
462 for(
int j = 0;
j < PointsNumber;
j++)
464 NodalVariableVector[
j] = pElementOld->GetGeometry().GetPoint(
j).FastGetSolutionStepValue(DISPLACEMENT_X);
465 if (NodalVariableVector[
j] > max_displacement_x) max_displacement_x = NodalVariableVector[
j];
466 if (NodalVariableVector[
j] < min_displacement_x) min_displacement_x = NodalVariableVector[
j];
468 itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_X) =
inner_prod(ShapeFunctionsValuesVector,NodalVariableVector);
469 if (itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_X) > max_displacement_x) itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_X) = max_displacement_x;
470 if (itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_X) < min_displacement_x) itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_X) = min_displacement_x;
472 double max_displacement_y = -10e12;
473 double min_displacement_y = 10e12;
474 for(
int j = 0;
j < PointsNumber;
j++)
476 NodalVariableVector[
j] = pElementOld->GetGeometry().GetPoint(
j).FastGetSolutionStepValue(DISPLACEMENT_Y);
477 if (NodalVariableVector[
j] > max_displacement_y) max_displacement_y = NodalVariableVector[
j];
478 if (NodalVariableVector[
j] < min_displacement_y) min_displacement_y = NodalVariableVector[
j];
480 itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Y) =
inner_prod(ShapeFunctionsValuesVector,NodalVariableVector);
481 if (itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Y) > max_displacement_y) itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Y) = max_displacement_y;
482 if (itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Y) < min_displacement_y) itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Y) = min_displacement_y;
484 double max_displacement_z = -10e12;
485 double min_displacement_z = 10e12;
486 for(
int j = 0;
j < PointsNumber;
j++)
488 NodalVariableVector[
j] = pElementOld->GetGeometry().GetPoint(
j).FastGetSolutionStepValue(DISPLACEMENT_Z);
489 if (NodalVariableVector[
j] > max_displacement_z) max_displacement_z = NodalVariableVector[
j];
490 if (NodalVariableVector[
j] < min_displacement_z) min_displacement_z = NodalVariableVector[
j];
492 itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Z) =
inner_prod(ShapeFunctionsValuesVector,NodalVariableVector);
493 if (itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Z) > max_displacement_z) itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Z) = max_displacement_z;
494 if (itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Z) < min_displacement_z) itNodeNew->FastGetSolutionStepValue(DISPLACEMENT_Z) = min_displacement_z;
504 for(
int k = 0;
k < 3;
k++)
506 for(
int l = 0;
l < 3;
l++)
508 MaxNodalStress(
k,
l) = -10e12;
509 MinNodalStress(
k,
l) = 10e12;
510 for(
int j = 0;
j < PointsNumber;
j++)
512 NodalVariableVector[
j] = pElementOld->GetGeometry().GetPoint(
j).FastGetSolutionStepValue(NODAL_CAUCHY_STRESS_TENSOR)(
k,
l);
513 if (NodalVariableVector[
j] > MaxNodalStress(
k,
l)) MaxNodalStress(
k,
l) = NodalVariableVector[
j];
514 if (NodalVariableVector[
j] < MinNodalStress(
k,
l)) MinNodalStress(
k,
l) = NodalVariableVector[
j];
516 NodalStress(
k,
l) =
inner_prod(ShapeFunctionsValuesVector,NodalVariableVector);
517 if (NodalStress(
k,
l) > MaxNodalStress(
k,
l)) NodalStress(
k,
l) = MaxNodalStress(
k,
l);
518 if (NodalStress(
k,
l) < MinNodalStress(
k,
l)) NodalStress(
k,
l) = MinNodalStress(
k,
l);
522 itNodeNew->FastGetSolutionStepValue(INITIAL_NODAL_CAUCHY_STRESS_TENSOR) = NodalStress;
523 itNodeNew->FastGetSolutionStepValue(NODAL_CAUCHY_STRESS_TENSOR) = NodalStress;
532 void ComputeCellMatrixDimensions(
533 UtilityVariables& rAuxVariables,
538 std::vector<double> X_max_partition(NumThreads);
539 std::vector<double> X_min_partition(NumThreads);
540 std::vector<double> Y_max_partition(NumThreads);
541 std::vector<double> Y_min_partition(NumThreads);
542 std::vector<double> Z_max_partition(NumThreads);
543 std::vector<double> Z_min_partition(NumThreads);
545 const int NNodes =
static_cast<int>(rModelPart.
Nodes().size());
546 ModelPart::NodesContainerType::iterator node_begin = rModelPart.
NodesBegin();
551 X_max_partition[
k] = node_begin->X();
552 X_min_partition[
k] = X_max_partition[
k];
553 Y_max_partition[
k] = node_begin->Y();
554 Y_min_partition[
k] = Y_max_partition[
k];
555 Z_max_partition[
k] = node_begin->Z();
556 Z_min_partition[
k] = Z_max_partition[
k];
559 for(
int i = 0;
i < NNodes;
i++)
561 ModelPart::NodesContainerType::iterator itNode = node_begin +
i;
563 double X_me = itNode->X();
564 double Y_me = itNode->Y();
565 double Z_me = itNode->Z();
567 if( X_me > X_max_partition[
k] ) X_max_partition[
k] = X_me;
568 else if( X_me < X_min_partition[
k] ) X_min_partition[
k] = X_me;
570 if( Y_me > Y_max_partition[
k] ) Y_max_partition[
k] = Y_me;
571 else if( Y_me < Y_min_partition[
k] ) Y_min_partition[
k] = Y_me;
573 if( Z_me > Z_max_partition[
k] ) Z_max_partition[
k] = Z_me;
574 else if( Z_me < Z_min_partition[
k] ) Z_min_partition[
k] = Z_me;
578 rAuxVariables.X_max = X_max_partition[0];
579 rAuxVariables.X_min = X_min_partition[0];
580 rAuxVariables.Y_max = Y_max_partition[0];
581 rAuxVariables.Y_min = Y_min_partition[0];
582 rAuxVariables.Z_max = Z_max_partition[0];
583 rAuxVariables.Z_min = Z_min_partition[0];
585 for(
unsigned int i=1;
i < NumThreads;
i++)
587 if(X_max_partition[
i] > rAuxVariables.X_max) rAuxVariables.X_max = X_max_partition[
i];
588 if(X_min_partition[
i] < rAuxVariables.X_min) rAuxVariables.X_min = X_min_partition[
i];
589 if(Y_max_partition[
i] > rAuxVariables.Y_max) rAuxVariables.Y_max = Y_max_partition[
i];
590 if(Y_min_partition[
i] < rAuxVariables.Y_min) rAuxVariables.Y_min = Y_min_partition[
i];
591 if(Z_max_partition[
i] > rAuxVariables.Z_max) rAuxVariables.Z_max = Z_max_partition[
i];
592 if(Z_min_partition[
i] < rAuxVariables.Z_min) rAuxVariables.Z_min = Z_min_partition[
i];
596 double AverageElementLength = 0.0;
598 int NElems =
static_cast<int>(rModelPart.
Elements().size());
599 ModelPart::ElementsContainerType::iterator el_begin = rModelPart.
ElementsBegin();
601 #pragma omp parallel for reduction(+:AverageElementLength)
602 for(
int i = 0;
i < NElems;
i++)
604 ModelPart::ElementsContainerType::iterator itElem = el_begin +
i;
606 AverageElementLength += itElem->GetGeometry().Length();
609 AverageElementLength = AverageElementLength/NElems;
612 rAuxVariables.NRows =
int((rAuxVariables.Y_max-rAuxVariables.Y_min)/AverageElementLength);
613 rAuxVariables.NColumns =
int((rAuxVariables.X_max-rAuxVariables.X_min)/AverageElementLength);
614 rAuxVariables.NSections =
int((rAuxVariables.Z_max-rAuxVariables.Z_min)/AverageElementLength);
615 if(rAuxVariables.NRows <= 0) rAuxVariables.NRows = 1;
616 if(rAuxVariables.NColumns <= 0) rAuxVariables.NColumns = 1;
617 if(rAuxVariables.NSections <= 0) rAuxVariables.NSections = 1;
618 rAuxVariables.RowSize = (rAuxVariables.Y_max-rAuxVariables.Y_min)/rAuxVariables.NRows;
619 rAuxVariables.ColumnSize = (rAuxVariables.X_max-rAuxVariables.X_min)/rAuxVariables.NColumns;
620 rAuxVariables.SectionSize = (rAuxVariables.Z_max-rAuxVariables.Z_min)/rAuxVariables.NSections;
Definition: mapping_variables_3D_utilities.hpp:37
void NodalThermalVariablesMapping(const UtilityVariables &AuxVariables, ModelPart &rModelPartOld, ModelPart &rModelPartNew, bool add_temperature, bool add_reference_temperature)
Definition: mapping_variables_3D_utilities.hpp:97
KRATOS_CLASS_POINTER_DEFINITION(MappingVariables3DUtilities)
void MappingMechanicalModelParts(ModelPart &rModelPartOld, ModelPart &rModelPartNew, bool add_displacement, bool add_stress)
Definition: mapping_variables_3D_utilities.hpp:72
void NodalMechanicalVariablesMapping(const UtilityVariables &AuxVariables, ModelPart &rModelPartOld, ModelPart &rModelPartNew, bool add_displacement, bool add_stress)
Definition: mapping_variables_3D_utilities.hpp:292
void MappingThermalModelParts(ModelPart &rModelPartOld, ModelPart &rModelPartNew, bool add_temperature, bool add_reference_temperature)
Definition: mapping_variables_3D_utilities.hpp:64
void InitializeMapping(UtilityVariables &rAuxVariables, ModelPart &rModelPartNew)
Member Variables.
Definition: mapping_variables_3D_utilities.hpp:88
MappingVariables3DUtilities()
Constructor.
Definition: mapping_variables_3D_utilities.hpp:55
virtual ~MappingVariables3DUtilities()
Destructor.
Definition: mapping_variables_3D_utilities.hpp:60
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
NodeIterator NodesBegin(IndexType ThisIndex=0)
Definition: model_part.h:487
ElementsContainerType & Elements(IndexType ThisIndex=0)
Definition: model_part.h:1189
NodesContainerType & Nodes(IndexType ThisIndex=0)
Definition: model_part.h:507
static int ThisThread()
Wrapper for omp_get_thread_num().
Definition: openmp_utils.h:108
static int GetNumThreads()
Returns the current number of threads.
Definition: parallel_utilities.cpp:34
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
TExpression1Type::data_type inner_prod(AMatrix::MatrixExpression< TExpression1Type, TCategory1 > const &First, AMatrix::MatrixExpression< TExpression2Type, TCategory2 > const &Second)
Definition: amatrix_interface.h:592
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
REACTION_CHECK_STIFFNESS_FACTOR int
Definition: contact_structural_mechanics_application_variables.h:75
int tol
Definition: hinsberg_optimization.py:138
int k
Definition: quadrature.py:595
int j
Definition: quadrature.py:648
int m
Definition: run_marine_rain_substepping.py:8
integer i
Definition: TensorModule.f:17
integer l
Definition: TensorModule.f:17
Basic Structs for the utility -----------------------------------------------------------------------...
Definition: mapping_variables_3D_utilities.hpp:44
double ColumnSize
Definition: mapping_variables_3D_utilities.hpp:47
double Z_min
Definition: mapping_variables_3D_utilities.hpp:45
double Y_min
Definition: mapping_variables_3D_utilities.hpp:45
double X_max
Definition: mapping_variables_3D_utilities.hpp:45
double SectionSize
Definition: mapping_variables_3D_utilities.hpp:47
int NColumns
Definition: mapping_variables_3D_utilities.hpp:46
int NSections
Definition: mapping_variables_3D_utilities.hpp:46
int NRows
Definition: mapping_variables_3D_utilities.hpp:46
double RowSize
Definition: mapping_variables_3D_utilities.hpp:47
double Z_max
Definition: mapping_variables_3D_utilities.hpp:45
double Y_max
Definition: mapping_variables_3D_utilities.hpp:45
double X_min
Definition: mapping_variables_3D_utilities.hpp:45