|
| | HMHNeohookean (MoFEM::Interface &m_field, const double c10, const double K) |
| |
| auto | getMaterialParameters (EntityHandle ent) |
| |
| UserDataOperator * | returnOpJacobian (const bool eval_rhs, const bool eval_lhs, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr) |
| |
| MoFEMErrorCode | getOptions () |
| |
| MoFEMErrorCode | extractBlockData (Sev sev) |
| |
| MoFEMErrorCode | extractBlockData (std::vector< const CubitMeshSets * > meshset_vec_ptr, Sev sev) |
| |
| virtual VolUserDataOperator * | returnOpSpatialPhysical (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha_u) |
| |
| virtual VolUserDataOperator * | returnOpSpatialPhysicalExternalStrain (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< ExternalStrainVec > external_strain_vec_ptr, std::map< std::string, boost::shared_ptr< ScalingMethod > > smv) |
| |
| VolUserDataOperator * | returnOpSpatialPhysical_du_du (std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha) |
| |
| | PhysicalEquations ()=default |
| |
| virtual | ~PhysicalEquations ()=default |
| |
| virtual VolUserDataOperator * | returnOpTopoSpatialPhysical (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, SmartPetscObj< Vec > assemble_vec, boost::shared_ptr< TopologicalData > topo_ptr, const double alpha_u, boost::shared_ptr< double > J_ptr) |
| |
| virtual VolUserDataOperator * | returnOpCalculateEnergy (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< double > total_energy_ptr) |
| |
| virtual VolUserDataOperator * | returnOpCalculateStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr) |
| |
| virtual VolUserDataOperator * | returnOpCalculateVarStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr) |
| |
Definition at line 13 of file HMHNeohookean.cpp.
◆ HMHNeohookean()
Definition at line 68 of file HMHNeohookean.cpp.
71
74 "extract block data failed");
75
76#ifdef NEOHOOKEAN_SCALING
78 double ave_K = 0;
80 ave_K += b.K;
81 }
83 }
84#endif
85
87
90 "Stretch selector is not equal to LOG");
91 } else {
94 "Exponent base is not equal to exp(1)");
95 }
96 }
97 }
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
@ MOFEM_DATA_INCONSISTENCY
#define MOFEM_LOG(channel, severity)
Log.
static enum StretchSelector stretchSelector
static double exponentBase
std::vector< BlockData > blockData
MoFEMErrorCode extractBlockData(Sev sev)
MoFEMErrorCode getOptions()
MoFEM::Interface & mField
PhysicalEquations()=default
◆ extractBlockData() [1/2]
| MoFEMErrorCode EshelbianPlasticity::HMHNeohookean::extractBlockData |
( |
Sev |
sev | ) |
|
|
inline |
Definition at line 149 of file HMHNeohookean.cpp.
149 {
151
153
154 (boost::format("%s(.*)") % "MAT_NEOHOOKEAN").str()
155
156 )),
157
158 sev);
159 }
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.
◆ extractBlockData() [2/2]
| MoFEMErrorCode EshelbianPlasticity::HMHNeohookean::extractBlockData |
( |
std::vector< const CubitMeshSets * > |
meshset_vec_ptr, |
|
|
Sev |
sev |
|
) |
| |
|
inline |
Definition at line 162 of file HMHNeohookean.cpp.
163 {
165
166 for (
auto m : meshset_vec_ptr) {
168 std::vector<double> block_data;
169 CHKERR m->getAttributes(block_data);
170 if (block_data.size() < 2) {
172 "Expected that block has atleast two attributes");
173 }
174 auto get_block_ents = [&]() {
177 return ents;
178 };
179
180 double c10 = block_data[0];
181 double K = block_data[1];
182
183 blockData.push_back({c10,
K, get_block_ents()});
184
185 MOFEM_LOG(
"EP", sev) <<
"MatBlock Neo-Hookean c10 = "
187 <<
" K = " <<
blockData.back().K <<
" nb ents. = "
189 }
191 }
#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()
#define CHKERR
Inline error check.
FTensor::Index< 'm', 3 > m
virtual moab::Interface & get_moab()=0
◆ fun_d_neohookean()
| static double EshelbianPlasticity::HMHNeohookean::fun_d_neohookean |
( |
double |
c10, |
|
|
double |
v |
|
) |
| |
|
inlinestatic |
Definition of derivative of Neo-hookean function.
- Parameters
-
- Returns
- * double
Definition at line 38 of file HMHNeohookean.cpp.
38 {
39 return
40
42 }
const double v
phase velocity of light in medium (cm/ns)
static boost::function< double(const double)> d_f
◆ fun_diff_neohookean_bulk()
| static double EshelbianPlasticity::HMHNeohookean::fun_diff_neohookean_bulk |
( |
double |
K, |
|
|
double |
tr |
|
) |
| |
|
inlinestatic |
Definition of derivative of axiator of Neo-hookean function.
- Parameters
-
- Returns
- double
Definition at line 64 of file HMHNeohookean.cpp.
◆ fun_neohookean()
Definition of Neo-hookean function.
P(i, I) = 2. * c10_default * (tF(i, I) - tInvF(i, I)) + K_default * log(detF) * tInvF(i, I) tCof(i, I) = detF * tInvF(I, i) Psi = c10* (trace(tCof) + 2ln(det(F)) - 3) + (K/2.) * (log(detF))^2
- Parameters
-
- Returns
- double
Definition at line 27 of file HMHNeohookean.cpp.
27 {
29 }
static boost::function< double(const double)> f
◆ fun_neohookean_bulk()
| static double EshelbianPlasticity::HMHNeohookean::fun_neohookean_bulk |
( |
double |
K, |
|
|
double |
tr |
|
) |
| |
|
inlinestatic |
Definition of axiator of Neo-hookean function.
Psi = (K/2.) * (log(J))^2 = (K/2.) * (log(exp tr H))^2 = (K/2.) * (tr H)^2
- Parameters
-
- Returns
- double
Definition at line 53 of file HMHNeohookean.cpp.
◆ getMaterialParameters()
| auto EshelbianPlasticity::HMHNeohookean::getMaterialParameters |
( |
EntityHandle |
ent | ) |
|
|
inline |
Definition at line 99 of file HMHNeohookean.cpp.
99 {
101 if (b.blockEnts.find(ent) != b.blockEnts.end()) {
102 return std::make_pair(b.c10, b.K);
103 }
104 }
107 "Block not found for entity handle. If you mat set "
108 "block, set it to all elements");
110 }
◆ getOptions()
| MoFEMErrorCode EshelbianPlasticity::HMHNeohookean::getOptions |
( |
| ) |
|
|
inline |
Definition at line 125 of file HMHNeohookean.cpp.
125 {
127 PetscOptionsBegin(PETSC_COMM_WORLD, "neo_hookean_", "", "none");
128
131 PETSC_NULLPTR);
134 PETSC_NULLPTR);
135
137 CHKERR PetscOptionsScalar(
"-viscosity_alpha_grad_u",
"viscosity",
"",
139
140 PetscOptionsEnd();
141
147 }
#define MOFEM_TAG_AND_LOG(channel, severity, tag)
Tag and log in channel.
#define MOFEM_LOG_CHANNEL(channel)
Set and reset channel.
◆ returnOpJacobian()
◆ returnOpSpatialPhysical()
◆ returnOpSpatialPhysical_du_du()
◆ returnOpSpatialPhysicalExternalStrain()
| virtual VolUserDataOperator * EshelbianPlasticity::HMHNeohookean::returnOpSpatialPhysicalExternalStrain |
( |
const std::string & |
field_name, |
|
|
boost::shared_ptr< DataAtIntegrationPts > |
data_ptr, |
|
|
boost::shared_ptr< ExternalStrainVec > |
external_strain_vec_ptr, |
|
|
std::map< std::string, boost::shared_ptr< ScalingMethod > > |
smv |
|
) |
| |
|
inlinevirtual |
◆ alphaGradU
| double EshelbianPlasticity::HMHNeohookean::alphaGradU |
|
private |
◆ blockData
| std::vector<BlockData> EshelbianPlasticity::HMHNeohookean::blockData |
|
private |
◆ c10_default
| double EshelbianPlasticity::HMHNeohookean::c10_default |
|
private |
◆ eqScaling
| double EshelbianPlasticity::HMHNeohookean::eqScaling = 1. |
|
private |
◆ K_default
| double EshelbianPlasticity::HMHNeohookean::K_default |
|
private |
◆ mField
The documentation for this struct was generated from the following file: