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();
73 value.
F0 = eps0 + Set::Matrix::Identity();
77 value.
F0 = Set::Matrix::Identity();
82#define OP_CLASS NeoHookeanPredeformed
83#define OP_VARS X(kappa) X(mu) X(F0)
105 if (
i == 0)
return name +
"_mu";
106 if (
i == 1)
return name +
"_kappa";
108 if (
i == 2)
return name +
"_F0xx";
109 if (
i == 3)
return name +
"_F0xy";
110 if (
i == 4)
return name +
"_F0yx";
111 if (
i == 5)
return name +
"_F0yy";
112#elif AMREX_SPACEDIM==3
114 if (
i == 2)
return name +
"_F0xx";
115 if (
i == 3)
return name +
"_F0xy";
116 if (
i == 4)
return name +
"_F0yx";
117 if (
i == 5)
return name +
"_F0yy";
126 for (amrex::MFIter
mfi(
a_dst, amrex::TilingIfNotGPU());
mfi.isValid(); ++
mfi)
128 const amrex::Box&
bx =
mfi.growntilebox(amrex::IntVect(
a_nghost));
131 amrex::Array4<const Model::Solid::Finite::NeoHookeanPredeformed>
const&
src = ((*this)[
a_lev])->
array(
mfi);
132 amrex::Array4<Set::Scalar>
const&
dst =
a_dst.array(
mfi);
142#elif AMREX_SPACEDIM==3
#define pp_queryarr_default(...)
#define ALAMO_SINGLE_DEFINITION
bool contains(std::string name)
void queryclass(std::string name, T *value)
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)