v0.15.0
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
ThermoElasticOps::OpKCauchyThermoElasticity Struct Reference

#include "users_modules/multifield-thermoplasticity-private/tutorials/adv-2/src/ThermoElasticOps.hpp"

Inheritance diagram for ThermoElasticOps::OpKCauchyThermoElasticity:
[legend]
Collaboration diagram for ThermoElasticOps::OpKCauchyThermoElasticity:
[legend]

Public Member Functions

 OpKCauchyThermoElasticity (const std::string row_field_name, const std::string col_field_name, boost::shared_ptr< MatrixDouble > mDptr, boost::shared_ptr< VectorDouble > coeff_expansion_ptr)
 
MoFEMErrorCode iNtegrate (EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
 
 OpKCauchyThermoElasticity (const std::string row_field_name, const std::string col_field_name, boost::shared_ptr< MatrixDouble > mDptr, boost::shared_ptr< VectorDouble > coeff_expansion_ptr)
 
MoFEMErrorCode iNtegrate (EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
 

Private Attributes

boost::shared_ptr< MatrixDouble > mDPtr
 
boost::shared_ptr< VectorDouble > coeffExpansionPtr
 

Detailed Description

Definition at line 9 of file ThermoElasticOps.hpp.

Constructor & Destructor Documentation

◆ OpKCauchyThermoElasticity() [1/2]

ThermoElasticOps::OpKCauchyThermoElasticity::OpKCauchyThermoElasticity ( const std::string  row_field_name,
const std::string  col_field_name,
boost::shared_ptr< MatrixDouble >  mDptr,
boost::shared_ptr< VectorDouble >  coeff_expansion_ptr 
)
Examples
ThermoElasticOps.hpp, and mofem/tutorials/adv-2/src/ThermoElasticOps.hpp.

Definition at line 53 of file ThermoElasticOps.hpp.

53 : public DomainEleOp {
54 OpMatThermalBlocks(boost::shared_ptr<double> conductivity_ptr,
55 boost::shared_ptr<double> capacity_ptr,
56 boost::shared_ptr<double> heat_conductivity_scaling_ptr,
57 boost::shared_ptr<double> heat_capacity_scaling_ptr,
58 double local_heat_conductivity,
59 double local_heat_capacity,
60 double local_heat_conductivity_scale,
61 double local_heat_capacity_scale,

◆ OpKCauchyThermoElasticity() [2/2]

ThermoElasticOps::OpKCauchyThermoElasticity::OpKCauchyThermoElasticity ( const std::string  row_field_name,
const std::string  col_field_name,
boost::shared_ptr< MatrixDouble >  mDptr,
boost::shared_ptr< VectorDouble >  coeff_expansion_ptr 
)

Member Function Documentation

◆ iNtegrate() [1/2]

MoFEMErrorCode ThermoElasticOps::OpKCauchyThermoElasticity::iNtegrate ( EntitiesFieldData::EntData &  row_data,
EntitiesFieldData::EntData &  col_data 
)
Examples
ThermoElasticOps.hpp, and mofem/tutorials/adv-2/src/ThermoElasticOps.hpp.

Definition at line 64 of file ThermoElasticOps.hpp.

66 : DomainEleOp(NOSPACE, DomainEleOp::OPSPACE),
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),
74 thermalConductivityScaling(thermal_conductivity_scaling),
75 heatCapacityScaling(heat_capacity_scaling) {
76
77 CHK_THROW_MESSAGE(extractThermalBlockData(m_field, meshset_vec_ptr, sev),
78 "Cannot get data from thermal block");
79 }
80
81 MoFEMErrorCode doWork(int side, EntityType type,
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); // Need to unscale the scaled values
106 // for this scaling
107 *conductivityPtr =
108 scale_param(defaultHeatConductivity, *conductivityScalingPtr);
109 *capacityScalingPtr = heatCapacityScaling(
110 defaultHeatConductivity / defaultHeatConductivityScale,
111 defaultHeatCapacity /
112 defaultHeatCapacityScale); // Need to unscale the scaled values
113 // for this scaling
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()
@ NOSPACE
Definition definitions.h:83
#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

◆ iNtegrate() [2/2]

MoFEMErrorCode ThermoElasticOps::OpKCauchyThermoElasticity::iNtegrate ( EntitiesFieldData::EntData &  row_data,
EntitiesFieldData::EntData &  col_data 
)

Member Data Documentation

◆ coeffExpansionPtr

boost::shared_ptr< VectorDouble > ThermoElasticOps::OpKCauchyThermoElasticity::coeffExpansionPtr
private

◆ mDPtr

boost::shared_ptr< MatrixDouble > ThermoElasticOps::OpKCauchyThermoElasticity::mDPtr
private

The documentation for this struct was generated from the following file: