version 0.4.1
Ikarus::Concepts::Material Concept Reference

Concept representing a material interface. More...

#include <ikarus/utils/concepts.hh>

Concept definition

template<typename M>
concept Ikarus::Concepts::Material = requires(M m, Eigen::Matrix3d C) {
M::strainTag;
M::stressTag;
M::tangentModuliTag;
M::derivativeFactor;
M::isReduced;
typename M::ScalarType;
{ m.name() } -> std::convertible_to<std::string>;
{ m.materialParameters() } -> std::same_as<typename M::MaterialParameters>;
{ m.template storedEnergy<M::strainTag>(C) } -> std::same_as<typename M::ScalarType>;
{ m.template stresses<M::strainTag>(C) };
{ m.template tangentModuli<M::strainTag>(C) };
}
Concept representing a material interface.
Definition: utils/concepts.hh:691

Detailed Description

A type M satisfies the material interface if it provides the necessary member functions and type.