From 1c390ea33426e853bd8c77488d512f29c6465e62 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <github@naumov.de> Date: Sat, 15 Jun 2019 13:13:07 +0200 Subject: [PATCH] [MatL] Solids; Move up createMatStateVars(). The default implementation is sufficient for classes, which don't do anything special with the MaterialStateVariables. --- MaterialLib/SolidModels/LinearElasticIsotropic.h | 9 --------- MaterialLib/SolidModels/LinearElasticOrthotropic.h | 9 --------- MaterialLib/SolidModels/MechanicsBase.h | 5 ++++- 3 files changed, 4 insertions(+), 19 deletions(-) diff --git a/MaterialLib/SolidModels/LinearElasticIsotropic.h b/MaterialLib/SolidModels/LinearElasticIsotropic.h index 40c02b05311..f554bb1af78 100644 --- a/MaterialLib/SolidModels/LinearElasticIsotropic.h +++ b/MaterialLib/SolidModels/LinearElasticIsotropic.h @@ -64,15 +64,6 @@ public: { }; - std::unique_ptr< - typename MechanicsBase<DisplacementDim>::MaterialStateVariables> - createMaterialStateVariables() const override - { - return std::unique_ptr< - typename MechanicsBase<DisplacementDim>::MaterialStateVariables>{ - new MaterialStateVariables}; - } - public: static int const KelvinVectorSize = MathLib::KelvinVector::KelvinVectorDimensions<DisplacementDim>::value; diff --git a/MaterialLib/SolidModels/LinearElasticOrthotropic.h b/MaterialLib/SolidModels/LinearElasticOrthotropic.h index 63d320a9a1f..2888048ffde 100644 --- a/MaterialLib/SolidModels/LinearElasticOrthotropic.h +++ b/MaterialLib/SolidModels/LinearElasticOrthotropic.h @@ -128,15 +128,6 @@ public: { }; - std::unique_ptr< - typename MechanicsBase<DisplacementDim>::MaterialStateVariables> - createMaterialStateVariables() const override - { - return std::unique_ptr< - typename MechanicsBase<DisplacementDim>::MaterialStateVariables>{ - new MaterialStateVariables}; - } - public: static int const KelvinVectorSize = MathLib::KelvinVector::KelvinVectorDimensions<DisplacementDim>::value; diff --git a/MaterialLib/SolidModels/MechanicsBase.h b/MaterialLib/SolidModels/MechanicsBase.h index 70260a3d073..d83b79681be 100644 --- a/MaterialLib/SolidModels/MechanicsBase.h +++ b/MaterialLib/SolidModels/MechanicsBase.h @@ -63,7 +63,10 @@ struct MechanicsBase /// Polymorphic creator for MaterialStateVariables objects specific for a /// material model. virtual std::unique_ptr<MaterialStateVariables> - createMaterialStateVariables() const = 0; + createMaterialStateVariables() const + { + return std::make_unique<MaterialStateVariables>(); + } using KelvinVector = MathLib::KelvinVector::KelvinVectorType<DisplacementDim>; -- GitLab