![]() |
v0.16.3 |
#include "users_modules/eshelbian_plasticity/src/impl/PlasticIncrementalOptimizationInternal.hpp"
Public Types | |
| using | IncrementTensor = FTensor::Tensor1< double, plasticLogarithmicStretchCoordinateSize > |
| using | GradientTensor = FTensor::Tensor1< double, plasticLocalLawActiveCount > |
| using | DirectionTensor = FTensor::Tensor1< double, plasticLocalLawActiveCount > |
| using | HessianActionTensor = FTensor::Tensor1< double, plasticLocalLawActiveCount > |
Public Types inherited from MatOps::PhysicalEquations | |
| using | HookFunction = std::function< MoFEMErrorCode(boost::shared_ptr< MatOpsData >, int, EntityHandle, int)> |
Public Member Functions | |
| PlasticLocalLaw (boost::shared_ptr< MatOps::MatOpsData > mat_ops_data_ptr, int tag) | |
| MoFEMErrorCode | getOptions (MoFEM::Interface *m_field_ptr=nullptr) override |
| MoFEMErrorCode | setParams (FEMethod *fe_ptr, int gg) override |
| MoFEMErrorCode | recordTape () override |
| ForcesAndSourcesCore::UserDataOperator * | createOp (boost::shared_ptr< MatOps::PhysicalEquations > physical_ptr, bool eval_stress, bool eval_tangent, bool update) override |
| MoFEMErrorCode | setParameters (const PlasticLocalLawParameters ¶meters) |
| const PlasticLocalLawParameters & | getParameters () const |
| MoFEMErrorCode | evaluateValue (const IncrementTensor &t_increment, double latent, PlasticLocalLawTerms &terms) |
| MoFEMErrorCode | evaluateGradient (const IncrementTensor &t_increment, double latent, GradientTensor &t_gradient) |
| MoFEMErrorCode | evaluateHessianAction (const IncrementTensor &t_increment, double latent, const DirectionTensor &t_direction, HessianActionTensor &t_hessian_action) |
Public Member Functions inherited from MatOps::PhysicalEquations | |
| PhysicalEquations ()=delete | |
| PhysicalEquations (boost::shared_ptr< MatOpsData > mat_ops_data_ptr, int tag, boost::shared_ptr< std::map< int, Range > > tag_vs_range_ptr=nullptr) | |
| virtual | ~PhysicalEquations ()=default |
| virtual MoFEMErrorCode | setParams (FEMethod *fe_ptr, int gg)=0 |
| virtual MoFEMErrorCode | addBlockParameters (MoFEM::Interface &m_field, const std::string &block_name, int block_id, const Range &block_entities, const std::vector< double > &block_data) |
| virtual ForcesAndSourcesCore::UserDataOperator * | createOp (boost::shared_ptr< PhysicalEquations > physical_ptr, bool eval_stress, bool eval_tangent, bool update)=0 |
| virtual MoFEMErrorCode | evaluateVariable (int tag, EntityHandle entity, int gg) |
| virtual MoFEMErrorCode | evaluateDerivatives (int tag, EntityHandle entity, int gg) |
| virtual MoFEMErrorCode | updateState (int tag, EntityHandle entity, int gg) |
Static Public Attributes | |
| static constexpr const char * | tapeName = "EshelbianPlasticLocalLaw" |
| static constexpr const char * | incrementDataName = "plastic_increment" |
| static constexpr const char * | latentDataName = "plastic_latent" |
| static constexpr const char * | densityDataName = "plastic_density" |
| static constexpr const char * | densityGradientDataName |
Private Member Functions | |
| MoFEMErrorCode | applyParameters () |
| MoFEMErrorCode | setActiveVariables (const IncrementTensor &t_increment, double latent) |
Private Attributes | |
| PlasticLocalLawParameters | currentParameters {1., 0., 0., 0., 1., 1.} |
| std::vector< double > | parameterVector |
| bool | tapeRecorded = false |
Additional Inherited Members | |
Public Attributes inherited from MatOps::PhysicalEquations | |
| HookFunction | hookEvaluateVariable = AdolCEvaluation::evaluateVariable |
| HookFunction | hookEvaluateDerivatives = AdolCEvaluation::evaluateDerivatives |
| HookFunction | hookUpdateState = AdolCEvaluation::evaluateVariable |
| int | tAg |
| boost::shared_ptr< std::map< int, Range > > | tagVsRangePtr |
| std::vector< std::pair< Range, std::vector< double > > > | paramVecByRange |
| boost::shared_ptr< MatOpsData > | matOpsDataPtr |
ADOL-C tape of the local density as a MatOps physical equation.
Active variables are the pointwise field values (five trace-free coordinates of Delta H^p, then psi), never P0 coefficients, so the same tape serves every polynomial order. Parameters are set per point with setParameters(); the tape is recorded once. The coefficient gradient rows (basis functions, reference-volume weights) are assembled by the calling operator, not here. createOp() is intentionally unsupported: EP operators call the point evaluators directly.
Definition at line 144 of file PlasticIncrementalOptimizationInternal.hpp.
| using EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::DirectionTensor = FTensor::Tensor1<double, plasticLocalLawActiveCount> |
Definition at line 155 of file PlasticIncrementalOptimizationInternal.hpp.
| using EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::GradientTensor = FTensor::Tensor1<double, plasticLocalLawActiveCount> |
Definition at line 154 of file PlasticIncrementalOptimizationInternal.hpp.
| using EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::HessianActionTensor = FTensor::Tensor1<double, plasticLocalLawActiveCount> |
Definition at line 156 of file PlasticIncrementalOptimizationInternal.hpp.
| using EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::IncrementTensor = FTensor::Tensor1<double, plasticLogarithmicStretchCoordinateSize> |
Definition at line 152 of file PlasticIncrementalOptimizationInternal.hpp.
| EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::PlasticLocalLaw | ( | boost::shared_ptr< MatOps::MatOpsData > | mat_ops_data_ptr, |
| int | tag | ||
| ) |
Definition at line 998 of file PlasticIncrementalOptimizationOperators.cpp.
|
private |
Definition at line 1068 of file PlasticIncrementalOptimizationOperators.cpp.
|
override |
Definition at line 1018 of file PlasticIncrementalOptimizationOperators.cpp.
| MoFEMErrorCode EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::evaluateGradient | ( | const IncrementTensor & | t_increment, |
| double | latent, | ||
| GradientTensor & | t_gradient | ||
| ) |
Euclidean gradient of the density w.r.t. (h_1..h_5, psi).
Definition at line 1173 of file PlasticIncrementalOptimizationOperators.cpp.
| MoFEMErrorCode EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::evaluateHessianAction | ( | const IncrementTensor & | t_increment, |
| double | latent, | ||
| const DirectionTensor & | t_direction, | ||
| HessianActionTensor & | t_hessian_action | ||
| ) |
Hessian-vector product of the density in active-variable order.
Definition at line 1185 of file PlasticIncrementalOptimizationOperators.cpp.
| MoFEMErrorCode EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::evaluateValue | ( | const IncrementTensor & | t_increment, |
| double | latent, | ||
| PlasticLocalLawTerms & | terms | ||
| ) |
Density from the tape; the other terms from the shared formula.
Definition at line 1152 of file PlasticIncrementalOptimizationOperators.cpp.
|
overridevirtual |
Implements MatOps::PhysicalEquations.
Definition at line 1007 of file PlasticIncrementalOptimizationOperators.cpp.
|
inline |
Definition at line 171 of file PlasticIncrementalOptimizationInternal.hpp.
|
overridevirtual |
Implements MatOps::PhysicalEquations.
Definition at line 1081 of file PlasticIncrementalOptimizationOperators.cpp.
|
private |
Definition at line 1136 of file PlasticIncrementalOptimizationOperators.cpp.
| MoFEMErrorCode EshelbianPlasticity::PlasticIncrementalOptimizationInternal::PlasticLocalLaw::setParameters | ( | const PlasticLocalLawParameters & | parameters | ) |
Validate and apply parameters to the tape (set_param_vec).
Definition at line 1027 of file PlasticIncrementalOptimizationOperators.cpp.
|
override |
Definition at line 1013 of file PlasticIncrementalOptimizationOperators.cpp.
|
private |
Definition at line 191 of file PlasticIncrementalOptimizationInternal.hpp.
|
staticconstexpr |
Definition at line 148 of file PlasticIncrementalOptimizationInternal.hpp.
|
staticconstexpr |
Definition at line 149 of file PlasticIncrementalOptimizationInternal.hpp.
|
staticconstexpr |
Definition at line 146 of file PlasticIncrementalOptimizationInternal.hpp.
|
staticconstexpr |
Definition at line 147 of file PlasticIncrementalOptimizationInternal.hpp.
|
private |
Definition at line 192 of file PlasticIncrementalOptimizationInternal.hpp.
|
staticconstexpr |
Definition at line 145 of file PlasticIncrementalOptimizationInternal.hpp.
|
private |
Definition at line 193 of file PlasticIncrementalOptimizationInternal.hpp.