diff --git a/MaterialLib/SolidModels/LinearElasticIsotropic.cpp b/MaterialLib/SolidModels/LinearElasticIsotropic.cpp index 03c08c56f160a16c01d2a8bf3711889a31f2ab81..306a439d6eb3e1082a3f903b7908e92adc3c0bec 100644 --- a/MaterialLib/SolidModels/LinearElasticIsotropic.cpp +++ b/MaterialLib/SolidModels/LinearElasticIsotropic.cpp @@ -15,16 +15,16 @@ namespace Solids { template <int DisplacementDim> boost::optional< - std::tuple<typename LinearElasticIsotropic<DisplacementDim>::KelvinVector, + std::tuple<typename MechanicsBase<DisplacementDim>::KelvinVector, std::unique_ptr<typename MechanicsBase< DisplacementDim>::MaterialStateVariables>, - typename LinearElasticIsotropic<DisplacementDim>::KelvinMatrix>> + typename MechanicsBase<DisplacementDim>::KelvinMatrix>> LinearElasticIsotropic<DisplacementDim>::integrateStress( double const t, ParameterLib::SpatialPosition const& x, double const /*dt*/, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, - typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& - material_state_variables, + typename MechanicsBase<DisplacementDim>:: + MaterialStateVariables const& /*material_state_variables*/, double const T) const { KelvinMatrix C = getElasticTensor(t, x, T); @@ -33,11 +33,8 @@ LinearElasticIsotropic<DisplacementDim>::integrateStress( return {std::make_tuple( sigma, - std::unique_ptr< - typename MechanicsBase<DisplacementDim>::MaterialStateVariables>{ - new MaterialStateVariables{ - static_cast<MaterialStateVariables const&>( - material_state_variables)}}, + std::make_unique< + typename MechanicsBase<DisplacementDim>::MaterialStateVariables>(), C)}; } diff --git a/MaterialLib/SolidModels/LinearElasticIsotropic.h b/MaterialLib/SolidModels/LinearElasticIsotropic.h index f554bb1af78bb88aad08bab4f8fa77035a511b56..d0034a22a9785b892af191f89fe54ce1410811fe 100644 --- a/MaterialLib/SolidModels/LinearElasticIsotropic.h +++ b/MaterialLib/SolidModels/LinearElasticIsotropic.h @@ -59,11 +59,6 @@ public: P const& _poissons_ratio; }; - struct MaterialStateVariables - : public MechanicsBase<DisplacementDim>::MaterialStateVariables - { - }; - public: static int const KelvinVectorSize = MathLib::KelvinVector::KelvinVectorDimensions<DisplacementDim>::value; @@ -90,10 +85,11 @@ public: return eps.dot(sigma) / 2; } - boost::optional<std::tuple<KelvinVector, - std::unique_ptr<typename MechanicsBase< - DisplacementDim>::MaterialStateVariables>, - KelvinMatrix>> + boost::optional< + std::tuple<typename MechanicsBase<DisplacementDim>::KelvinVector, + std::unique_ptr<typename MechanicsBase< + DisplacementDim>::MaterialStateVariables>, + typename MechanicsBase<DisplacementDim>::KelvinMatrix>> integrateStress( double const t, ParameterLib::SpatialPosition const& x, double const /*dt*/, KelvinVector const& eps_prev, diff --git a/MaterialLib/SolidModels/LinearElasticOrthotropic.cpp b/MaterialLib/SolidModels/LinearElasticOrthotropic.cpp index d41bf03e1f259768afa83f477ca87c97abd60b10..d4b0dd3076e43e274da4aaec25d7d201ade7e4f8 100644 --- a/MaterialLib/SolidModels/LinearElasticOrthotropic.cpp +++ b/MaterialLib/SolidModels/LinearElasticOrthotropic.cpp @@ -17,17 +17,17 @@ namespace MaterialLib namespace Solids { template <int DisplacementDim> -boost::optional<std::tuple< - typename LinearElasticOrthotropic<DisplacementDim>::KelvinVector, - std::unique_ptr< - typename MechanicsBase<DisplacementDim>::MaterialStateVariables>, - typename LinearElasticOrthotropic<DisplacementDim>::KelvinMatrix>> +boost::optional< + std::tuple<typename MechanicsBase<DisplacementDim>::KelvinVector, + std::unique_ptr<typename MechanicsBase< + DisplacementDim>::MaterialStateVariables>, + typename MechanicsBase<DisplacementDim>::KelvinMatrix>> LinearElasticOrthotropic<DisplacementDim>::integrateStress( double const t, ParameterLib::SpatialPosition const& x, double const /*dt*/, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, - typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& - material_state_variables, + typename MechanicsBase<DisplacementDim>:: + MaterialStateVariables const& /* material_state_variables */, double const T) const { KelvinMatrix C = getElasticTensor(t, x, T); @@ -36,11 +36,8 @@ LinearElasticOrthotropic<DisplacementDim>::integrateStress( return {std::make_tuple( sigma, - std::unique_ptr< - typename MechanicsBase<DisplacementDim>::MaterialStateVariables>{ - new MaterialStateVariables{ - static_cast<MaterialStateVariables const&>( - material_state_variables)}}, + std::make_unique< + typename MechanicsBase<DisplacementDim>::MaterialStateVariables>(), C)}; } diff --git a/MaterialLib/SolidModels/LinearElasticOrthotropic.h b/MaterialLib/SolidModels/LinearElasticOrthotropic.h index 2888048ffdef0b3fc51e0a5d3312739fb74b5400..524ce694f4b053e695d394e9bc22077ac1de66ea 100644 --- a/MaterialLib/SolidModels/LinearElasticOrthotropic.h +++ b/MaterialLib/SolidModels/LinearElasticOrthotropic.h @@ -123,11 +123,6 @@ public: P const& poissons_ratios; // Stored as nu_12, nu_23, nu_13 }; - struct MaterialStateVariables - : public MechanicsBase<DisplacementDim>::MaterialStateVariables - { - }; - public: static int const KelvinVectorSize = MathLib::KelvinVector::KelvinVectorDimensions<DisplacementDim>::value; @@ -158,10 +153,11 @@ public: return eps.dot(sigma) / 2; } - boost::optional<std::tuple<KelvinVector, - std::unique_ptr<typename MechanicsBase< - DisplacementDim>::MaterialStateVariables>, - KelvinMatrix>> + boost::optional< + std::tuple<typename MechanicsBase<DisplacementDim>::KelvinVector, + std::unique_ptr<typename MechanicsBase< + DisplacementDim>::MaterialStateVariables>, + typename MechanicsBase<DisplacementDim>::KelvinMatrix>> integrateStress( double const t, ParameterLib::SpatialPosition const& x, double const /*dt*/, KelvinVector const& eps_prev,