15#ifndef BC_OPERATOR_ELASTIC_TENSIONTEST_H
16#define BC_OPERATOR_ELASTIC_TENSIONTEST_H
31 static constexpr const char*
name =
"tensiontest";
43 using Constant::operator();
51 std::string type =
"uniaxial_stress_clamp";
52 std::string disp =
"0.0", trac =
"0.0";
56 pp.
query_validate(
"type",type,{
"uniaxial_stress_clamp",
"uniaxial_kolsky",
"uniaxial_stress",
"uniaxial_strain"});
58 pp.
query(
"disp",disp);
59 pp.
query(
"trac",trac);
76 if (type ==
"uniaxial_stress_clamp")
92 for (
int i = 0 ; i < AMREX_SPACEDIM ; i++)
106 else if (type ==
"uniaxial_kolsky")
113 for (
int i = 0 ; i < AMREX_SPACEDIM ; i++)
119 else if (type ==
"uniaxial_stress")
122 for (
int face = 0; face < m_nfaces; face++)
123 for (
int i = 0; i < AMREX_SPACEDIM; i++)
131 #if AMREX_SPACEDIM == 3
159 #if AMREX_SPACEDIM == 3
196 #if AMREX_SPACEDIM == 3
205 #if AMREX_SPACEDIM == 3
219 else if (type ==
"uniaxial_strain")
222 for (
int face = 0; face < m_nfaces; face++)
223 for (
int i = 0; i < AMREX_SPACEDIM; i++)
231 #if AMREX_SPACEDIM == 3
247 #if AMREX_SPACEDIM == 3
269 #if AMREX_SPACEDIM == 3
284 #if AMREX_SPACEDIM == 3
#define pp_queryclass(...)
std::array< std::array< Type, AMREX_SPACEDIM >, m_nfaces > m_bc_type
AMREX_FORCE_INLINE Set::Vector set(std::array< Type, AMREX_SPACEDIM > &bc_type, const Set::Vector &u, const Set::Matrix &gradu, const Set::Matrix &sigma, Set::Vector n) const
std::array< std::array< Numeric::Interpolator::Linear< Set::Scalar >, AMREX_SPACEDIM >, m_nfaces > m_bc_val
virtual void Init(amrex::FabArray< amrex::BaseFab< Set::Vector > > *a_rhs, const amrex::Geometry &a_geom, bool a_homogeneous=false) const override
static void Parse(TensionTest &value, IO::ParmParse &pp)
TensionTest(IO::ParmParse &pp, std::string name)
static constexpr const char * name
int query_validate(std::string name, int &value, std::vector< int > possibleintvals, const std::source_location &location=std::source_location::current())
int query(std::string name, T &value, const std::source_location &location=std::source_location::current())
static bool InTraversalMode()
bool contains(std::string name, const std::source_location &location=std::source_location::current())
Collection of boundary condition (BC) objects.
Documentation for operator namespace.
AMREX_GPU_HOST_DEVICE void Abort(const char *msg)