Skip to content
Snippets Groups Projects
Commit 4f20d5fb authored by Christoph Lehmann's avatar Christoph Lehmann
Browse files

[Mat] added accessors for Ehlers damage internal variables

parent 67677969
No related branches found
No related tags found
No related merge requests found
......@@ -742,6 +742,33 @@ SolidEhlers<DisplacementDim>::integrateStress(
tangentStiffness)};
}
template <int DisplacementDim>
std::vector<
std::pair<std::string,
typename MechanicsBase<DisplacementDim>::InternalVariableGetter>>
SolidEhlers<DisplacementDim>::getInternalVariables() const
{
return {
{"damage.kappa_d",
[](typename MechanicsBase<
DisplacementDim>::MaterialStateVariables const& state) -> double {
assert(dynamic_cast<StateVariables<DisplacementDim> const*>(
&state) != nullptr);
auto const& ehlers_state =
static_cast<StateVariables<DisplacementDim> const&>(state);
return ehlers_state.damage.kappa_d();
}},
{"damage.value",
[](typename MechanicsBase<
DisplacementDim>::MaterialStateVariables const& state) -> double {
assert(dynamic_cast<StateVariables<DisplacementDim> const*>(
&state) != nullptr);
auto const& ehlers_state =
static_cast<StateVariables<DisplacementDim> const&>(state);
return ehlers_state.damage.value();
}}};
}
} // namespace Ehlers
} // namespace Solids
} // namespace MaterialLib
......@@ -238,6 +238,10 @@ public:
typename MechanicsBase<DisplacementDim>::MaterialStateVariables const&
material_state_variables) override;
std::vector<std::pair<std::string, typename MechanicsBase<DisplacementDim>::
InternalVariableGetter>>
getInternalVariables() const override;
private:
NumLib::NewtonRaphsonSolverParameters const _nonlinear_solver_parameters;
......
......@@ -10,8 +10,10 @@
#pragma once
#include <boost/optional.hpp>
#include <functional>
#include <memory>
#include <tuple>
#include <vector>
#include "ProcessLib/Deformation/BMatrixPolicy.h"
......@@ -104,6 +106,15 @@ struct MechanicsBase
KelvinVector const& sigma_prev,
MaterialStateVariables const& material_state_variables) = 0;
using InternalVariableGetter =
std::function<double(MaterialStateVariables const&)>;
virtual std::vector<std::pair<std::string, InternalVariableGetter>>
getInternalVariables() const
{
return {};
}
virtual ~MechanicsBase() = default;
};
......
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