14 #if !defined(KRATOS_CONSTRUCTION_UTILITIES)
15 #define KRATOS_CONSTRUCTION_UTILITIES
101 mNumNode = el_begin->GetGeometry().PointsNumber();
113 rMechanicalElement.Initialize(r_current_process_info);
122 if (soil_nelements != 0)
138 if (existing_nelements != 0)
153 if (nconditions_mech != 0)
157 for (
int k = 0;
k < nconditions_mech; ++
k)
159 ModelPart::ConditionsContainerType::iterator it_cond_mech = cond_begin_mech +
k;
160 const unsigned int number_of_points = (*it_cond_mech).GetGeometry().PointsNumber();
161 bool active_condition =
true;
163 for (
unsigned int i_node = 0; i_node < number_of_points; ++i_node)
165 if ((*it_cond_mech).GetGeometry()[i_node].IsNot(ACTIVE))
167 active_condition =
false;
171 if (active_condition) it_cond_mech->Set(ACTIVE,
true);
172 else it_cond_mech->Set(ACTIVE,
false);
179 if (nconditions_thermal != 0)
183 for (
int k = 0;
k < nconditions_thermal; ++
k)
185 ModelPart::ConditionsContainerType::iterator it_cond_thermal = cond_begin_thermal +
k;
186 const unsigned int number_of_points = (*it_cond_thermal).GetGeometry().PointsNumber();
187 bool active_condition =
true;
189 for (
unsigned int i_node = 0; i_node < number_of_points; ++i_node)
191 if ((*it_cond_thermal).GetGeometry()[i_node].IsNot(ACTIVE))
193 active_condition =
false;
197 if (active_condition) it_cond_thermal->Set(ACTIVE,
true);
198 else it_cond_thermal->Set(ACTIVE,
false);
221 void AssignTimeActivation(std::string ThermalSubModelPartName,
int phase,
double time_activation,
double initial_temperature)
240 array_1d<double, 3> central_position = rThermalElement.GetGeometry().Center();
241 if ((central_position(direction) >= previous_height) && (central_position(direction) <= current_height))
243 const unsigned int number_of_points = rThermalElement.GetGeometry().PointsNumber();
244 for (unsigned int i = 0; i < number_of_points; ++i)
246 if (rThermalElement.GetGeometry()[i].FastGetSolutionStepValue(TIME_ACTIVATION)==0)
248 rThermalElement.GetGeometry()[i].FastGetSolutionStepValue(TIME_ACTIVATION) = time_activation * mTimeUnitConverter;
249 rThermalElement.GetGeometry()[i].FastGetSolutionStepValue(TEMPERATURE) = rThermalElement.GetGeometry()[i].FastGetSolutionStepValue(PLACEMENT_TEMPERATURE) = initial_temperature;
261 void InitializeSolutionStep(std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName,
bool thermal_conditions,
bool mechanical_conditions,
int current_number_of_phase)
265 const int nelements_thermal = mrThermalModelPart.GetSubModelPart(ThermalSubModelPartName).Elements().size();
266 const int nelements_mech = mrMechanicalModelPart.GetSubModelPart(MechanicalSubModelPartName).Elements().size();
268 int nconditions_thermal = 0;
269 int nconditions_mech = 0;
270 if (thermal_conditions) nconditions_thermal = mrThermalModelPart.GetSubModelPart(HeatFluxSubModelPartName).Conditions().size();
271 if (mechanical_conditions) nconditions_mech = mrMechanicalModelPart.GetSubModelPart(HydraulicPressureSubModelPartName).Conditions().size();
275 if (mGravityDirection ==
"X")
277 else if (mGravityDirection ==
"Y")
283 double current_height = mReferenceCoordinate + mLiftHeight * current_number_of_phase;
285 if (current_height > mHighestBlockHeight) mHighestBlockHeight = current_height;
287 if (nelements_thermal != 0)
290 block_for_each(mrThermalModelPart.GetSubModelPart(ThermalSubModelPartName).Elements(), [&](
auto& rThermalElement){
291 array_1d<double, 3> central_position = rThermalElement.GetGeometry().Center();
292 if ((central_position(direction) >= (mReferenceCoordinate - mLiftHeight)) && (central_position(direction) <= current_height))
294 rThermalElement.Set(ACTIVE, true);
299 if (nelements_mech != 0)
302 block_for_each(mrMechanicalModelPart.GetSubModelPart(MechanicalSubModelPartName).Elements(), [&](
auto& rMechanicalElement){
303 array_1d<double, 3> central_position = rMechanicalElement.GetGeometry().Center();
304 if ((central_position(direction) >= (mReferenceCoordinate - mLiftHeight)) && (central_position(direction) <= current_height))
306 rMechanicalElement.Set(ACTIVE, true);
308 const unsigned int number_of_points = rMechanicalElement.GetGeometry().PointsNumber();
309 for (unsigned int i = 0; i < number_of_points; i++)
311 rMechanicalElement.GetGeometry()[i].Set(ACTIVE, true);
312 rMechanicalElement.GetGeometry()[i].Set(SOLID, false);
318 if (thermal_conditions && nconditions_thermal != 0)
321 block_for_each(mrThermalModelPart.GetSubModelPart(HeatFluxSubModelPartName).Conditions(), [&](
auto& rThermalCondition){
322 array_1d<double, 3> central_position = rThermalCondition.GetGeometry().Center();
323 if ((central_position(direction) >= (mReferenceCoordinate - mLiftHeight)) && (central_position(direction) <= current_height))
325 if (rThermalCondition.IsNot(ACTIVE)) rThermalCondition.Set(ACTIVE, true);
330 if (mechanical_conditions && nconditions_mech != 0)
333 block_for_each(mrMechanicalModelPart.GetSubModelPart(HydraulicPressureSubModelPartName).Conditions(), [&](
auto& rMechanicalCondition){
334 array_1d<double, 3> central_position = rMechanicalCondition.GetGeometry().Center();
335 if ((central_position(direction) >= (mReferenceCoordinate - mLiftHeight)) && (central_position(direction) <= current_height))
337 if (rMechanicalCondition.IsNot(ACTIVE)) rMechanicalCondition.Set(ACTIVE, true);
352 const double maximum_temperature_increment = CheckTemperatureParameters[
"maximum_temperature_increment"].
GetDouble();
353 const double maximum_temperature_aux = CheckTemperatureParameters[
"maximum_temperature"].
GetDouble();
354 const double minimum_temperature_aux = CheckTemperatureParameters[
"minimum_temperature"].
GetDouble();
357 if (rNode.Is(ACTIVE) && rNode.IsNot(SOLID))
359 double maximum_temperature = std::max(rNode.FastGetSolutionStepValue(PLACEMENT_TEMPERATURE) + maximum_temperature_increment, maximum_temperature_aux);
360 double minimum_temperature = std::min(rNode.FastGetSolutionStepValue(PLACEMENT_TEMPERATURE), minimum_temperature_aux);
361 double current_temperature = rNode.FastGetSolutionStepValue(TEMPERATURE);
363 if (current_temperature > maximum_temperature)
365 rNode.FastGetSolutionStepValue(TEMPERATURE) = maximum_temperature;
367 else if (current_temperature < minimum_temperature)
369 rNode.FastGetSolutionStepValue(TEMPERATURE) = minimum_temperature;
372 else if (rNode.Is(ACTIVE) && rNode.Is(SOLID))
374 double maximum_temperature = maximum_temperature_aux;
375 double minimum_temperature = minimum_temperature_aux;
376 double current_temperature = rNode.FastGetSolutionStepValue(TEMPERATURE);
378 if (current_temperature > maximum_temperature)
380 rNode.FastGetSolutionStepValue(TEMPERATURE) = maximum_temperature;
382 else if (current_temperature < minimum_temperature)
384 rNode.FastGetSolutionStepValue(TEMPERATURE) = minimum_temperature;
398 const int nelements = mrThermalModelPart.GetMesh(0).Elements().size();
399 const unsigned int Dim = mrMechanicalModelPart.GetProcessInfo()[DOMAIN_SIZE];
400 std::vector<std::size_t> ConditionNodeIds(Dim);
402 ConditionNodeIds.resize(Dim + 1);
404 int last_condition_id = mMechanicalLastCondition + mThermalLastCondition;
407 if (mGravityDirection ==
"X")
409 else if (mGravityDirection ==
"Y")
416 ModelPart::ElementsContainerType::iterator el_begin_thermal = mrThermalModelPart.ElementsBegin();
420 for (
int k = 0;
k < nelements; ++
k)
422 ModelPart::ElementsContainerType::iterator it_thermal = el_begin_thermal +
k;
426 if ((it_thermal)->IsNot(ACTIVE))
428 if (central_position(direction) <= mHighestBlockHeight + mLiftHeight)
430 for (
unsigned int i_edge = 0; i_edge < (*it_thermal).GetGeometry().EdgesNumber(); ++i_edge)
432 const unsigned int number_of_points = (*it_thermal).GetGeometry().GenerateEdges()[i_edge].PointsNumber();
433 bool active_edge =
true;
435 for (
unsigned int i_node = 0; i_node < number_of_points; ++i_node)
437 if ((*it_thermal).GetGeometry().GenerateEdges()[i_edge][i_node].IsNot(ACTIVE))
445 for (
unsigned int m = 0;
m < number_of_points; ++
m)
447 ConditionNodeIds[
m] = (*it_thermal).GetGeometry().GenerateEdges()[i_edge][
m].Id();
449 this->DeactiveFaceHeatFluxStep(ConditionNodeIds);
451 mrThermalModelPart.RemoveConditionFromAllLevels(last_condition_id + 1, 0);
461 for (
int k = 0;
k < nelements; ++
k)
463 ModelPart::ElementsContainerType::iterator it_thermal = el_begin_thermal +
k;
467 if ((it_thermal)->IsNot(ACTIVE))
469 if (central_position(direction) <= mHighestBlockHeight + mLiftHeight)
471 for (
unsigned int i_face = 0; i_face < (*it_thermal).GetGeometry().FacesNumber(); ++i_face)
473 const unsigned int number_of_points = (*it_thermal).GetGeometry().GenerateFaces()[i_face].PointsNumber();
474 bool active_face =
true;
476 for (
unsigned int i_node = 0; i_node < number_of_points; ++i_node)
478 if ((*it_thermal).GetGeometry().GenerateFaces()[i_face][i_node].IsNot(ACTIVE))
486 for (
unsigned int m = 0;
m < number_of_points; ++
m)
488 ConditionNodeIds[
m] = (*it_thermal).GetGeometry().GenerateFaces()[i_face][
m].Id();
490 this->DeactiveFaceHeatFluxStep(ConditionNodeIds);
492 mrThermalModelPart.RemoveConditionFromAllLevels(last_condition_id + 1, 0);
511 const int nelements = mrMechanicalModelPart.GetMesh(0).Elements().size();
512 const unsigned int Dim = mrMechanicalModelPart.GetProcessInfo()[DOMAIN_SIZE];
513 std::vector<std::size_t> ConditionNodeIds(Dim);
515 ConditionNodeIds.resize(Dim + 1);
517 int last_condition_id = mMechanicalLastCondition + mThermalLastCondition;
520 if (mGravityDirection ==
"X")
522 else if (mGravityDirection ==
"Y")
529 ModelPart::ElementsContainerType::iterator el_begin_thermal = mrThermalModelPart.ElementsBegin();
534 for (
int k = 0;
k < nelements; ++
k)
536 ModelPart::ElementsContainerType::iterator it_thermal = el_begin_thermal +
k;
540 if ((it_thermal)->IsNot(ACTIVE))
542 if (central_position(direction) <= mHighestBlockHeight + mLiftHeight)
544 for (
unsigned int i_edge = 0; i_edge < (*it_thermal).GetGeometry().EdgesNumber(); ++i_edge)
546 const unsigned int number_of_points = (*it_thermal).GetGeometry().GenerateEdges()[i_edge].PointsNumber();
547 bool active_edge =
true;
549 for (
unsigned int i_node = 0; i_node < number_of_points; ++i_node)
551 if ((*it_thermal).GetGeometry().GenerateEdges()[i_edge][i_node].IsNot(ACTIVE))
559 for (
unsigned int m = 0;
m < number_of_points; ++
m)
561 ConditionNodeIds[
m] = (*it_thermal).GetGeometry().GenerateEdges()[i_edge][
m].Id();
563 this->ActiveFaceHeatFluxStep(ConditionNodeIds);
565 mrThermalModelPart.CreateNewCondition(
"FluxCondition2D2N", last_condition_id + 1, ConditionNodeIds, 0);
576 for (
int k = 0;
k < nelements; ++
k)
578 ModelPart::ElementsContainerType::iterator it_thermal = el_begin_thermal +
k;
582 if ((it_thermal)->IsNot(ACTIVE))
584 if (central_position(direction) <= mHighestBlockHeight + mLiftHeight)
586 for (
unsigned int i_face = 0; i_face < (*it_thermal).GetGeometry().FacesNumber(); ++i_face)
588 const unsigned int number_of_points = (*it_thermal).GetGeometry().GenerateFaces()[i_face].PointsNumber();
589 bool active_face =
true;
591 for (
unsigned int i_node = 0; i_node < number_of_points; ++i_node)
593 if ((*it_thermal).GetGeometry().GenerateFaces()[i_face][i_node].IsNot(ACTIVE))
601 for (
unsigned int m = 0;
m < number_of_points; ++
m)
603 ConditionNodeIds[
m] = (*it_thermal).GetGeometry().GenerateFaces()[i_face][
m].Id();
605 this->ActiveFaceHeatFluxStep(ConditionNodeIds);
607 if (number_of_points == 3)
609 mrThermalModelPart.CreateNewCondition(
"FluxCondition3D3N", last_condition_id + 1, ConditionNodeIds, 0);
614 mrThermalModelPart.CreateNewCondition(
"FluxCondition3D4N", last_condition_id + 1, ConditionNodeIds, 0);
638 const double t_max = NoorzaiParameters[
"t_max"].
GetDouble();
639 const double time = mrThermalModelPart.GetProcessInfo()[TIME];
640 const double delta_time = mrThermalModelPart.GetProcessInfo()[DELTA_TIME];
643 double current_activation_time = time - (rNode.FastGetSolutionStepValue(TIME_ACTIVATION));
644 if (current_activation_time >= 0.0 && (rNode.Is(SOLID) == false))
647 double value = density * specific_heat * alpha * t_max * (exp(-alpha * (current_activation_time + 0.5 * delta_time)));
648 rNode.FastGetSolutionStepValue(HEAT_FLUX) = value;
663 const double activation_energy = AzenhaParameters[
"activation_energy"].
GetDouble();
664 const double gas_constant = AzenhaParameters[
"gas_constant"].
GetDouble();
665 const double constant_rate = AzenhaParameters[
"constant_rate"].
GetDouble();
666 const double q_total = AzenhaParameters[
"q_total"].
GetDouble();
667 const double a_coef = AzenhaParameters[
"A"].
GetDouble();
668 const double b_coef = AzenhaParameters[
"B"].
GetDouble();
669 const double c_coef = AzenhaParameters[
"C"].
GetDouble();
670 const double d_coef = AzenhaParameters[
"D"].
GetDouble();
673 const double time = mrThermalModelPart.GetProcessInfo()[TIME];
674 const double delta_time = mrThermalModelPart.GetProcessInfo()[DELTA_TIME];
677 double current_activation_time = time - (rNode.FastGetSolutionStepValue(TIME_ACTIVATION));
678 if (current_activation_time >= 0.0 && (rNode.Is(SOLID) == false))
681 double current_alpha = ((rNode.FastGetSolutionStepValue(HEAT_FLUX, 1)) / q_total) * delta_time + (rNode.FastGetSolutionStepValue(ALPHA_HEAT_SOURCE));
682 double f_alpha = a_coef * (pow(current_alpha, 2)) * exp(-b_coef * pow(current_alpha, 3)) + c_coef * current_alpha * exp(-d_coef * current_alpha);
685 if (current_alpha >= 1.0)
692 const double temp_current = rNode.FastGetSolutionStepValue(TEMPERATURE) + 273.0;
693 const double heat_flux = constant_rate * f_alpha * exp((-activation_energy) / (gas_constant * temp_current));
696 rNode.FastGetSolutionStepValue(HEAT_FLUX) = heat_flux;
697 rNode.FastGetSolutionStepValue(ALPHA_HEAT_SOURCE) = current_alpha;
703 this->ActiveHeatFluxAzenhaAging(AzenhaParameters);
744 double activation_energy = AzenhaParameters[
"activation_energy"].
GetDouble();
745 double gas_constant = AzenhaParameters[
"gas_constant"].
GetDouble();
746 double constant_rate = AzenhaParameters[
"constant_rate"].
GetDouble();
747 double q_total = AzenhaParameters[
"q_total"].
GetDouble();
748 double a_coef = AzenhaParameters[
"A"].
GetDouble();
749 double b_coef = AzenhaParameters[
"B"].
GetDouble();
750 double c_coef = AzenhaParameters[
"C"].
GetDouble();
751 double d_coef = AzenhaParameters[
"D"].
GetDouble();
758 double current_activation_time = time - (rNode.FastGetSolutionStepValue(TIME_ACTIVATION));
759 if (current_activation_time >= 0.0 && (rNode.Is(SOLID) == false))
762 double current_alpha = ((rNode.FastGetSolutionStepValue(HEAT_FLUX, 1)) / q_total) * delta_time + (rNode.FastGetSolutionStepValue(ALPHA_HEAT_SOURCE));
763 double f_alpha = a_coef * (pow(current_alpha, 2)) * exp(-b_coef * pow(current_alpha, 3)) + c_coef * current_alpha * exp(-d_coef * current_alpha);
766 if (current_alpha >= 1.0)
773 const double temp_current = rNode.FastGetSolutionStepValue(TEMPERATURE) + 273.0;
774 const double heat_flux = constant_rate * f_alpha * exp((-activation_energy) / (gas_constant * temp_current));
777 rNode.FastGetSolutionStepValue(HEAT_FLUX) = heat_flux;
778 rNode.FastGetSolutionStepValue(ALPHA_HEAT_SOURCE) = current_alpha;
779 rNode.FastGetSolutionStepValue(NODAL_YOUNG_MODULUS) = sqrt(current_alpha) * mYoungInf;
792 const unsigned int size = ConditionNodeIds.size();
794 ModelPart::NodesContainerType::iterator it_begin_thermal = mrThermalModelPart.
GetMesh(0).
NodesBegin();
798 double ambient_temp = mrTableAmbientTemp.
GetValue(
time);
802 for (
unsigned int j = 0;
j < size; ++
j)
804 for (
unsigned int i = 0;
i <
nnodes; ++
i)
806 ModelPart::NodesContainerType::iterator it_thermal = it_begin_thermal +
i;
808 if (it_thermal->Id() == ConditionNodeIds[
j])
810 const double temp_current = it_thermal->FastGetSolutionStepValue(TEMPERATURE);
811 const double heat_flux = mH0 * (ambient_temp - temp_current);
812 it_thermal->FastGetSolutionStepValue(FACE_HEAT_FLUX) = heat_flux;
827 const unsigned int size = ConditionNodeIds.size();
829 ModelPart::NodesContainerType::iterator it_begin_thermal = mrThermalModelPart.
GetMesh(0).
NodesBegin();
833 for (
unsigned int j = 0;
j < size; ++
j)
835 for (
unsigned int i = 0;
i <
nnodes; ++
i)
837 ModelPart::NodesContainerType::iterator it_thermal = it_begin_thermal +
i;
839 if (it_thermal->Id() == ConditionNodeIds[
j])
842 it_thermal->FastGetSolutionStepValue(FACE_HEAT_FLUX) = 0.0;
Definition: construction_utility.hpp:35
Table< double, double > TableType
Definition: construction_utility.hpp:39
ModelPart & mrThermalModelPart
Definition: construction_utility.hpp:715
bool mAging
Definition: construction_utility.hpp:731
void ActiveHeatFluxAzenha(Parameters &AzenhaParameters)
Definition: construction_utility.hpp:656
bool mActivateSoilPart
Definition: construction_utility.hpp:723
std::string mMechanicalSoilPart
Definition: construction_utility.hpp:718
void Initialize()
Definition: construction_utility.hpp:87
std::size_t IndexType
Definition: construction_utility.hpp:38
double mLiftHeight
Definition: construction_utility.hpp:727
int mNumNode
Definition: construction_utility.hpp:716
double mTimeUnitConverter
Definition: construction_utility.hpp:729
unsigned int mThermalLastCondition
Definition: construction_utility.hpp:734
std::string mThermalExistingPart
Definition: construction_utility.hpp:721
void ActiveHeatFluxNoorzai(Parameters &NoorzaiParameters)
Definition: construction_utility.hpp:630
void DeactiveFaceHeatFluxStep(std::vector< IndexType > ConditionNodeIds)
Definition: construction_utility.hpp:823
void AfterOutputStep()
Definition: construction_utility.hpp:394
ConstructionUtility(ModelPart &rMechanicalModelPart, ModelPart &rThermalModelPart, TableType &rTableAmbientTemp, Parameters &rParameters)
Constructor.
Definition: construction_utility.hpp:44
double mAlphaInitial
Definition: construction_utility.hpp:730
std::string mThermalSoilPart
Definition: construction_utility.hpp:719
TableType & mrTableAmbientTemp
Definition: construction_utility.hpp:735
void ActiveHeatFluxAzenhaAging(Parameters &AzenhaParameters)
Definition: construction_utility.hpp:739
double mH0
Definition: construction_utility.hpp:728
void InitializeSolutionStep(std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName, bool thermal_conditions, bool mechanical_conditions, int current_number_of_phase)
Definition: construction_utility.hpp:261
void SearchingFluxes()
Definition: construction_utility.hpp:507
~ConstructionUtility()
Destructor.
Definition: construction_utility.hpp:83
double mYoungInf
Definition: construction_utility.hpp:732
std::string mMechanicalExistingPart
Definition: construction_utility.hpp:720
ModelPart & mrMechanicalModelPart
Member Variables.
Definition: construction_utility.hpp:714
void CheckTemperature(Parameters &CheckTemperatureParameters)
Definition: construction_utility.hpp:347
void ActiveFaceHeatFluxStep(std::vector< IndexType > ConditionNodeIds)
Definition: construction_utility.hpp:788
std::string mGravityDirection
Definition: construction_utility.hpp:717
void AssignTimeActivation(std::string ThermalSubModelPartName, int phase, double time_activation, double initial_temperature)
Definition: construction_utility.hpp:221
double mHighestBlockHeight
Definition: construction_utility.hpp:726
unsigned int mMechanicalLastCondition
Definition: construction_utility.hpp:733
double mReferenceCoordinate
Definition: construction_utility.hpp:725
std::string mSourceType
Definition: construction_utility.hpp:722
bool mActivateExistingPart
Definition: construction_utility.hpp:724
ConditionsContainerType & Conditions()
Definition: mesh.h:691
NodesContainerType & Nodes()
Definition: mesh.h:346
NodeIterator NodesBegin()
Definition: mesh.h:326
ElementsContainerType & Elements()
Definition: mesh.h:568
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
ConditionIterator ConditionsBegin(IndexType ThisIndex=0)
Definition: model_part.h:1361
ProcessInfo & GetProcessInfo()
Definition: model_part.h:1746
ElementsContainerType & Elements(IndexType ThisIndex=0)
Definition: model_part.h:1189
ModelPart & GetSubModelPart(std::string const &SubModelPartName)
Definition: model_part.cpp:2029
MeshType & GetMesh(IndexType ThisIndex=0)
Definition: model_part.h:1791
NodesContainerType & Nodes(IndexType ThisIndex=0)
Definition: model_part.h:507
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
double GetDouble() const
This method returns the double contained in the current Parameter.
Definition: kratos_parameters.cpp:657
std::string GetString() const
This method returns the string contained in the current Parameter.
Definition: kratos_parameters.cpp:684
bool GetBool() const
This method returns the boolean contained in the current Parameter.
Definition: kratos_parameters.cpp:675
size_type size() const
Returns the number of elements in the container.
Definition: pointer_vector_set.h:502
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
TResultType GetValue(TArgumentType const &X) const
Definition: table.h:502
This class implements a set of auxiliar, already parallelized, methods to perform some common tasks r...
Definition: variable_utils.h:63
void SetVariable(const TVarType &rVariable, const TDataType &rValue, NodesContainerType &rNodes, const unsigned int Step=0)
Sets the nodal value of a scalar variable.
Definition: variable_utils.h:675
void SetFlag(const Flags &rFlag, const bool FlagValue, TContainerType &rContainer)
Sets a flag according to a given status over a given container.
Definition: variable_utils.h:900
#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
void block_for_each(TIterator itBegin, TIterator itEnd, TFunction &&rFunction)
Execute a functor on all items of a range in parallel.
Definition: parallel_utilities.h:299
float specific_heat
Definition: face_heat.py:57
time
Definition: face_heat.py:85
float density
Definition: face_heat.py:56
alpha
Definition: generate_convection_diffusion_explicit_element.py:113
delta_time
Definition: generate_frictional_mortar_condition.py:130
int k
Definition: quadrature.py:595
int j
Definition: quadrature.py:648
int m
Definition: run_marine_rain_substepping.py:8
int nnodes
Definition: sensitivityMatrix.py:24
integer i
Definition: TensorModule.f:17