15#ifndef BC_OPERATOR_ELASTIC_TENSIONTEST_H
16#define BC_OPERATOR_ELASTIC_TENSIONTEST_H
30 static constexpr const char*
name =
"tensiontest";
42 using Constant::operator();
50 std::string type =
"uniaxial_stress_clamp";
51 std::string disp =
"0.0", trac =
"0.0";
55 pp_query_validate(
"type",type,{
"uniaxial_stress_clamp",
"uniaxial_kolsky",
"uniaxial_stress",
"uniaxial_strain"});
72 if (type ==
"uniaxial_stress_clamp")
88 for (
int i = 0 ; i < AMREX_SPACEDIM ; i++)
102 else if (type ==
"uniaxial_kolsky")
109 for (
int i = 0 ; i < AMREX_SPACEDIM ; i++)
115 else if (type ==
"uniaxial_stress")
118 for (
int face = 0; face < m_nfaces; face++)
119 for (
int i = 0; i < AMREX_SPACEDIM; i++)
127 #if AMREX_SPACEDIM == 3
155 #if AMREX_SPACEDIM == 3
192 #if AMREX_SPACEDIM == 3
201 #if AMREX_SPACEDIM == 3
215 else if (type ==
"uniaxial_strain")
218 for (
int face = 0; face < m_nfaces; face++)
219 for (
int i = 0; i < AMREX_SPACEDIM; i++)
227 #if AMREX_SPACEDIM == 3
243 #if AMREX_SPACEDIM == 3
265 #if AMREX_SPACEDIM == 3
280 #if AMREX_SPACEDIM == 3
#define pp_query_validate(...)
#define pp_queryclass(...)
virtual void Init(amrex::FabArray< amrex::BaseFab< Set::Vector > > *a_rhs, const amrex::Geometry &a_geom, bool a_homogeneous=false) const
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
static void Parse(TensionTest &value, IO::ParmParse &pp)
TensionTest(IO::ParmParse &pp, std::string name)
static constexpr const char * name
bool contains(std::string name)
Collection of boundary condition (BC) objects.
Documentation for operator namespace.
void Abort(const char *msg)