1#ifndef MODEL_INTERFACE_GB_SH_H
2#define MODEL_INTERFACE_GB_SH_H
38 static constexpr const char*
name =
"sh";
43 SH(
const amrex::Real a_theta0,
const amrex::Real a_phi0,
const amrex::Real a_sigma0,
const amrex::Real a_sigma1)
45 Define(a_theta0,a_phi0,a_sigma0,a_sigma1);
47 void Define(
const amrex::Real a_theta0,
const amrex::Real a_phi0,
const amrex::Real a_sigma0,
const amrex::Real a_sigma1)
62 return sigma0 +
sigma1*(1.0 - (cos(2*(a_phi))*cos(2*(a_phi)) * sin(2*(a_theta))*sin(2*(a_theta))));
66 return {-
sigma1 * 4.0 * cos(2*a_phi) * cos(2*a_phi) * sin(2*a_theta) * cos(2*a_theta),
67 +
sigma1 * 4.0 * sin(2*a_phi) * cos(2*a_phi) * sin(2*a_theta) * sin(2*a_theta)} ;
80 return (
W(a_n + alpha*t_n) -
W(a_n - alpha*t_n)) / 2.0 / alpha;
85 return (
W(a_n + alpha*t_n) - 2.0*
W(a_n) +
W(a_n - alpha*t_n)) / alpha / alpha;
97 static void Parse(
SH & value, amrex::ParmParse & pp)
100 value.
theta0 *= 0.01745329251;
102 value.
phi0 *= 0.01745329251;
106 std::string reg_str =
"wilhelm";
#define pp_queryclass(...)
Regularization regularization
A 2D interface model class.
virtual Set::Scalar W(const Set::Vector &a_n) const override
virtual Set::Scalar DW(const Set::Vector &a_n, const Set::Vector &t_n) const override
Set::Scalar W(const Set::Scalar a_theta, const Set::Scalar a_phi) const
static constexpr const char * name
std::array< Set::Scalar, 2 > DW(const Set::Scalar a_theta, const Set::Scalar a_phi) const
static void Parse(SH &value, amrex::ParmParse &pp)
Set::Scalar DW(const Set::Scalar) const override
virtual Set::Scalar DDW(const Set::Vector &a_n, const Set::Vector &t_n) const override
SH(IO::ParmParse &pp, std::string name)
Set::Scalar W(const Set::Scalar) const override
Set::Scalar DDW(const Set::Scalar) const override
void Define(const amrex::Real a_theta0, const amrex::Real a_phi0, const amrex::Real a_sigma0, const amrex::Real a_sigma1)
SH(const amrex::Real a_theta0, const amrex::Real a_phi0, const amrex::Real a_sigma0, const amrex::Real a_sigma1)
static const Set::Scalar Pi
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
void Abort(const char *msg)