1#ifndef MODEL_SOLID_FINITE_NEOHOOKEANPREDEFORMED_H_
2#define MODEL_SOLID_FINITE_NEOHOOKEANPREDEFORMED_H_
32 virtual void Print(std::ostream& out)
const override
34 out <<
"mu = " <<
mu <<
" kappa = " <<
kappa <<
" F0 = " <<
F0;
44 ret.
F0 = Set::Matrix::Zero();
50 ret.
F0 = Set::Matrix::Random();
71 value.
F0 = eps0 + Set::Matrix::Identity();
75 value.
F0 = Set::Matrix::Identity();
80#define OP_CLASS NeoHookeanPredeformed
81#define OP_VARS X(kappa) X(mu) X(F0)
103 if (
i == 0)
return name +
"_mu";
104 if (
i == 1)
return name +
"_kappa";
106 if (
i == 2)
return name +
"_F0xx";
107 if (
i == 3)
return name +
"_F0xy";
108 if (
i == 4)
return name +
"_F0yx";
109 if (
i == 5)
return name +
"_F0yy";
110#elif AMREX_SPACEDIM==3
112 if (
i == 2)
return name +
"_F0xx";
113 if (
i == 3)
return name +
"_F0xy";
114 if (
i == 4)
return name +
"_F0yx";
115 if (
i == 5)
return name +
"_F0yy";
124 for (amrex::MFIter
mfi(
a_dst, amrex::TilingIfNotGPU());
mfi.isValid(); ++
mfi)
126 const amrex::Box&
bx =
mfi.growntilebox(amrex::IntVect(
a_nghost));
129 amrex::Array4<const Model::Solid::Finite::NeoHookeanPredeformed>
const&
src = ((*this)[
a_lev])->
array(
mfi);
130 amrex::Array4<Set::Scalar>
const&
dst =
a_dst.array(
mfi);
140#elif AMREX_SPACEDIM==3
#define ALAMO_SINGLE_DEFINITION
bool contains(std::string name)
void queryclass(std::string name, T *value, std::string file="", std::string func="", int line=-1)
static NeoHookean Random()
Set::Matrix4< AMREX_SPACEDIM, Set::Sym::Major > DDW(const Set::Matrix &a_F) const override
Set::Matrix DW(const Set::Matrix &a_F) const override
Set::Scalar W(const Set::Matrix &a_F) const override
std::string Name(int) const
void Copy(int, amrex::MultiFab &, int, int) const
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, AMREX_SPACEDIM > Matrix
void Abort(const char *msg)
AMREX_FORCE_INLINE void Assert(std::string file, std::string func, int line, std::string smt, bool pass, Args const &... args)