Skip to content
Snippets Groups Projects
Commit a724b08b authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[MatL] Solids; Drop some unused MaterialStateVars.

If there are no additional members in the MaterialStateVariables,
the default implementation from MechanicsBase is sufficient.

Needed to update the integrateStress return value type.
parent 1c390ea3
No related branches found
No related tags found
No related merge requests found
......@@ -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)};
}
......
......@@ -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,
......
......@@ -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)};
}
......
......@@ -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,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment