6#ifndef MODEL_SOLID_LINEAR_CUBIC_H_
7#define MODEL_SOLID_LINEAR_CUBIC_H_
48 virtual void Print(std::ostream &out)
const override
58 static Cubic Combine(
const std::vector<Cubic> &models,
const std::vector<Set::Scalar> &eta)
63 for (
unsigned int n = 0 ; n < models.size(); n++) etasum += eta[n];
64 for (
unsigned int n = 0 ; n < models.size(); n++)
66 ret.
ddw += models[n].ddw * (eta[n] / etasum);
74 ret.
Define(0.0,0.0,0.0,0.0,0.0,0.0);
88 ret.
Define(C11,C12,C44,phi1,Phi,phi2);
105 std::string anglefmt;
114 if (anglefmt ==
"degrees")
121 value.
Define(C11,C12,C44,phi1,Phi,phi2);
124 #define OP_CLASS Cubic
125 #define OP_VARS X(ddw)
#define pp_query_validate(...)
#define pp_query_default(...)
bool contains(std::string name)
Cubic(Solid< Set::Sym::MajorMinor > base)
Set::Matrix4< AMREX_SPACEDIM, Set::Sym::MajorMinor > DDW(const Set::Matrix &) const override
static void Parse(Cubic &value, IO::ParmParse &pp)
Set::Matrix DW(const Set::Matrix &gradu) const override
Set::Matrix4< AMREX_SPACEDIM, Set::Sym::MajorMinor > ddw
static Cubic Random(Set::Scalar C11, Set::Scalar C12, Set::Scalar C44)
void Define(Set::Scalar C11, Set::Scalar C12, Set::Scalar C44, Eigen::Matrix3d R)
Set::Scalar W(const Set::Matrix &gradu) const override
static const KinematicVariable kinvar
void Define(Set::Scalar C11, Set::Scalar C12, Set::Scalar C44, Set::Scalar phi1, Set::Scalar Phi, Set::Scalar phi2)
virtual void Print(std::ostream &out) const override
static AMREX_FORCE_INLINE Cubic Combine(const std::vector< Cubic > &models, const std::vector< Set::Scalar > &eta)
static const Set::Scalar Pi
A collection of data types and symmetry-reduced data structures.
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, AMREX_SPACEDIM > Matrix