201 {
202 return boost::shared_ptr<double>(shared_from_this(), &refTemp);
203 }
204};
205
208 boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pipeline,
209 std::string block_name,
210 boost::shared_ptr<BlockedThermoElasticParameters> blockedParamsPtr,
213
216
217 struct OpMatThermoElasticBlocks :
public DomainEleOp {
218 OpMatThermoElasticBlocks(boost::shared_ptr<VectorDouble> expansion_ptr,
219 boost::shared_ptr<double> ref_temp_ptr,
220 double local_coeff_expansion,
222 Sev sev,
223 std::vector<const CubitMeshSets *> meshset_vec_ptr)
225 expansionPtr(expansion_ptr), refTempPtr(ref_temp_ptr),
226 defaultCoeffExpansion(local_coeff_expansion),
227 defaultRefTemp(local_ref_temp) {
229 extractThermoElasticBlockData(m_field, meshset_vec_ptr, sev),
230 "Cannot get data from thermoelastic block");
231 }
232
234 EntitiesFieldData::EntData &data) {
236
237 for (auto &b : blockData) {
238
239 if (b.blockEnts.find(getFEEntityHandle()) != b.blockEnts.end()) {
240 *expansionPtr = b.expansion;
241 *refTempPtr = b.ref_temp;
243 }
244 }
245
247 *refTempPtr = defaultRefTemp;
248
250 }
251
252 private:
253 double defaultCoeffExpansion;
254 double defaultRefTemp;
256 double ref_temp;
259 };
260
261 std::vector<BlockData> blockData;
constexpr int SPACE_DIM
[Define dimension]
#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 ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
UBlasVector< double > VectorDouble
MoFEM::LogManager::SeverityLevel Sev
MoFEMErrorCode addMatThermoElasticBlockOps(MoFEM::Interface &m_field, boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pipeline, std::string block_name, boost::shared_ptr< BlockedThermoElasticParameters > blockedParamsPtr, double default_coeff_expansion, double default_ref_temp, Sev sev)
Deprecated interface functions.
double default_coeff_expansion