67 conductivityPtr(conductivity_ptr), capacityPtr(capacity_ptr),
68 conductivityScalingPtr(heat_conductivity_scaling_ptr),
69 capacityScalingPtr(heat_capacity_scaling_ptr),
70 defaultHeatConductivity(local_heat_conductivity),
71 defaultHeatCapacity(local_heat_capacity),
72 defaultHeatConductivityScale(local_heat_conductivity_scale),
73 defaultHeatCapacityScale(local_heat_capacity_scale),
76
78 "Cannot get data from thermal block");
79 }
80
82 EntitiesFieldData::EntData &data) {
84
85 auto scale_param = [this](auto parameter, double scaling) {
86 return parameter * scaling;
87 };
88
89 for (auto &b : blockData) {
90
91 if (b.blockEnts.find(getFEEntityHandle()) != b.blockEnts.end()) {
92 *conductivityScalingPtr =
93 thermalConductivityScaling(b.conductivity, b.capacity);
94 *conductivityPtr =
95 scale_param(b.conductivity, *conductivityScalingPtr);
96 *capacityScalingPtr = heatCapacityScaling(b.conductivity, b.capacity);
97 *capacityPtr = scale_param(b.capacity, *capacityScalingPtr);
99 }
100 }
101
102 *conductivityScalingPtr = thermalConductivityScaling(
103 defaultHeatConductivity / defaultHeatConductivityScale,
104 defaultHeatCapacity /
105 defaultHeatCapacityScale);
106
107 *conductivityPtr =
108 scale_param(defaultHeatConductivity, *conductivityScalingPtr);
109 *capacityScalingPtr = heatCapacityScaling(
110 defaultHeatConductivity / defaultHeatConductivityScale,
111 defaultHeatCapacity /
112 defaultHeatCapacityScale);
113
114 *capacityPtr = scale_param(defaultHeatCapacity, *capacityScalingPtr);
115
DomainEle::UserDataOperator DomainEleOp
Finire element operator type.
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
ScalerFunTwoArgs heat_capacity_scaling
ScalerFunTwoArgs thermal_conductivity_scaling