1 #ifndef BC_OPERATOR_ELASTIC_TENSIONTEST_H
2 #define BC_OPERATOR_ELASTIC_TENSIONTEST_H
27 using Constant::operator();
35 std::string type =
"uniaxial_stress_clamp";
36 std::string disp =
"0.0", trac =
"0.0";
46 mode = LoadingMode::DISP;
51 mode = LoadingMode::TRAC;
56 if (type ==
"uniaxial_stress_clamp")
72 for (
int i = 0 ; i < AMREX_SPACEDIM ; i++)
74 value.
m_bc_type[Face::YLO][i] = Type::Traction;
75 value.
m_bc_type[Face::YHI][i] = Type::Traction;
77 value.
m_bc_type[Face::ZLO][i] = Type::Traction;
78 value.
m_bc_type[Face::ZHI][i] = Type::Traction;
79 value.
m_bc_type[Face::YLO_ZLO][i] = Type::Traction;
80 value.
m_bc_type[Face::YHI_ZLO][i] = Type::Traction;
81 value.
m_bc_type[Face::YLO_ZHI][i] = Type::Traction;
82 value.
m_bc_type[Face::YHI_ZHI][i] = Type::Traction;
86 else if (type ==
"uniaxial_kolsky")
93 for (
int i = 0 ; i < AMREX_SPACEDIM ; i++)
95 value.
m_bc_type[Face::YLO][i] = Type::Traction;
96 value.
m_bc_type[Face::YHI][i] = Type::Traction;
99 else if (type ==
"uniaxial_stress")
102 for (
int face = 0; face < m_nfaces; face++)
103 for (
int i = 0; i < AMREX_SPACEDIM; i++)
104 value.
m_bc_type[face][i] = Type::Traction;
108 value.
m_bc_type[Face::XLO][0] = Type::Displacement;
109 value.
m_bc_type[Face::XLO_YLO][0] = Type::Displacement;
110 value.
m_bc_type[Face::XLO_YHI][0] = Type::Displacement;
111 #
if AMREX_SPACEDIM == 3
112 value.
m_bc_type[Face::ZLO_XLO][0] = Type::Displacement;
113 value.
m_bc_type[Face::ZHI_XLO][0] = Type::Displacement;
114 value.
m_bc_type[Face::XLO_YLO_ZLO][0] = Type::Displacement;
115 value.
m_bc_type[Face::XLO_YLO_ZHI][0] = Type::Displacement;
116 value.
m_bc_type[Face::XLO_YHI_ZLO][0] = Type::Displacement;
117 value.
m_bc_type[Face::XLO_YHI_ZHI][0] = Type::Displacement;
121 if (mode == TensionTest::LoadingMode::DISP)
123 value.
m_bc_type[Face::XHI][0] = Type::Displacement;
125 value.
m_bc_type[Face::XHI_YLO][0] = Type::Displacement;
127 value.
m_bc_type[Face::XHI_YHI][0] = Type::Displacement;
130 else if (mode == TensionTest::LoadingMode::TRAC)
132 value.
m_bc_type[Face::XHI][0] = Type::Traction;
134 value.
m_bc_type[Face::XHI_YLO][0] = Type::Traction;
136 value.
m_bc_type[Face::XHI_YHI][0] = Type::Traction;
139 #if AMREX_SPACEDIM == 3
140 if (mode == TensionTest::LoadingMode::DISP)
142 value.
m_bc_type[Face::ZLO_XHI][0] = Type::Displacement;
144 value.
m_bc_type[Face::ZHI_XHI][0] = Type::Displacement;
146 value.
m_bc_type[Face::XHI_YLO_ZLO][0] = Type::Displacement;
148 value.
m_bc_type[Face::XHI_YLO_ZHI][0] = Type::Displacement;
150 value.
m_bc_type[Face::XHI_YHI_ZLO][0] = Type::Displacement;
152 value.
m_bc_type[Face::XHI_YHI_ZHI][0] = Type::Displacement;
155 if (mode == TensionTest::LoadingMode::TRAC)
157 value.
m_bc_type[Face::ZLO_XHI][0] = Type::Traction;
159 value.
m_bc_type[Face::ZHI_XHI][0] = Type::Traction;
161 value.
m_bc_type[Face::XHI_YLO_ZLO][0] = Type::Traction;
163 value.
m_bc_type[Face::XHI_YLO_ZHI][0] = Type::Traction;
165 value.
m_bc_type[Face::XHI_YHI_ZLO][0] = Type::Traction;
167 value.
m_bc_type[Face::XHI_YHI_ZHI][0] = Type::Traction;
173 value.
m_bc_type[Face::YLO][1] = Type::Displacement;
174 value.
m_bc_type[Face::XLO_YLO][1] = Type::Displacement;
175 value.
m_bc_type[Face::XHI_YLO][1] = Type::Displacement;
176 #if AMREX_SPACEDIM == 3
177 value.
m_bc_type[Face::YLO_ZLO][1] = Type::Displacement;
178 value.
m_bc_type[Face::YLO_ZHI][1] = Type::Displacement;
179 value.
m_bc_type[Face::XLO_YLO_ZLO][1] = Type::Displacement;
180 value.
m_bc_type[Face::XLO_YLO_ZHI][1] = Type::Displacement;
181 value.
m_bc_type[Face::XHI_YLO_ZLO][1] = Type::Displacement;
182 value.
m_bc_type[Face::XHI_YLO_ZHI][1] = Type::Displacement;
185 #if AMREX_SPACEDIM == 3
187 value.
m_bc_type[Face::ZLO][2] = Type::Displacement;
188 value.
m_bc_type[Face::YLO_ZLO][2] = Type::Displacement;
189 value.
m_bc_type[Face::YHI_ZLO][2] = Type::Displacement;
190 value.
m_bc_type[Face::ZLO_XLO][2] = Type::Displacement;
191 value.
m_bc_type[Face::ZLO_XHI][2] = Type::Displacement;
192 value.
m_bc_type[Face::XLO_YLO_ZLO][2] = Type::Displacement;
193 value.
m_bc_type[Face::XLO_YHI_ZLO][2] = Type::Displacement;
194 value.
m_bc_type[Face::XHI_YLO_ZLO][2] = Type::Displacement;
195 value.
m_bc_type[Face::XHI_YHI_ZLO][2] = Type::Displacement;
199 else if (type ==
"uniaxial_strain")
202 for (
int face = 0; face < m_nfaces; face++)
203 for (
int i = 0; i < AMREX_SPACEDIM; i++)
204 value.
m_bc_type[face][i] = Type::Traction;
208 value.
m_bc_type[Face::XLO][0] = Type::Displacement;
209 value.
m_bc_type[Face::XLO_YLO][0] = Type::Displacement;
210 value.
m_bc_type[Face::XLO_YHI][0] = Type::Displacement;
211 #
if AMREX_SPACEDIM == 3
212 value.
m_bc_type[Face::ZLO_XLO][0] = Type::Displacement;
213 value.
m_bc_type[Face::ZHI_XLO][0] = Type::Displacement;
214 value.
m_bc_type[Face::XLO_YLO_ZLO][0] = Type::Displacement;
215 value.
m_bc_type[Face::XLO_YLO_ZHI][0] = Type::Displacement;
216 value.
m_bc_type[Face::XLO_YHI_ZLO][0] = Type::Displacement;
217 value.
m_bc_type[Face::XLO_YHI_ZHI][0] = Type::Displacement;
221 value.
m_bc_type[Face::XHI][0] = Type::Displacement;
223 value.
m_bc_type[Face::XHI_YLO][0] = Type::Displacement;
225 value.
m_bc_type[Face::XHI_YHI][0] = Type::Displacement;
227 #if AMREX_SPACEDIM == 3
228 value.
m_bc_type[Face::ZLO_XHI][0] = Type::Displacement;
230 value.
m_bc_type[Face::ZHI_XHI][0] = Type::Displacement;
232 value.
m_bc_type[Face::XHI_YLO_ZLO][0] = Type::Displacement;
234 value.
m_bc_type[Face::XHI_YLO_ZHI][0] = Type::Displacement;
236 value.
m_bc_type[Face::XHI_YHI_ZLO][0] = Type::Displacement;
238 value.
m_bc_type[Face::XHI_YHI_ZHI][0] = Type::Displacement;
243 value.
m_bc_type[Face::YLO][1] = Type::Displacement;
244 value.
m_bc_type[Face::XLO_YLO][1] = Type::Displacement;
245 value.
m_bc_type[Face::XHI_YLO][1] = Type::Displacement;
246 value.
m_bc_type[Face::YHI][1] = Type::Displacement;
247 value.
m_bc_type[Face::XLO_YHI][1] = Type::Displacement;
248 value.
m_bc_type[Face::XHI_YHI][1] = Type::Displacement;
249 #if AMREX_SPACEDIM == 3
250 value.
m_bc_type[Face::YLO_ZLO][1] = Type::Displacement;
251 value.
m_bc_type[Face::YLO_ZHI][1] = Type::Displacement;
252 value.
m_bc_type[Face::YHI_ZLO][1] = Type::Displacement;
253 value.
m_bc_type[Face::YHI_ZHI][1] = Type::Displacement;
254 value.
m_bc_type[Face::XLO_YLO_ZLO][1] = Type::Displacement;
255 value.
m_bc_type[Face::XLO_YLO_ZHI][1] = Type::Displacement;
256 value.
m_bc_type[Face::XHI_YLO_ZLO][1] = Type::Displacement;
257 value.
m_bc_type[Face::XHI_YLO_ZHI][1] = Type::Displacement;
258 value.
m_bc_type[Face::XLO_YHI_ZLO][1] = Type::Displacement;
259 value.
m_bc_type[Face::XLO_YHI_ZHI][1] = Type::Displacement;
260 value.
m_bc_type[Face::XHI_YHI_ZLO][1] = Type::Displacement;
261 value.
m_bc_type[Face::XHI_YHI_ZHI][1] = Type::Displacement;
264 #if AMREX_SPACEDIM == 3
265 value.
m_bc_type[Face::ZLO][2] = Type::Displacement;
266 value.
m_bc_type[Face::ZHI][2] = Type::Displacement;
267 value.
m_bc_type[Face::YLO_ZLO][2] = Type::Displacement;
268 value.
m_bc_type[Face::YHI_ZLO][2] = Type::Displacement;
269 value.
m_bc_type[Face::ZLO_XLO][2] = Type::Displacement;
270 value.
m_bc_type[Face::ZLO_XHI][2] = Type::Displacement;
271 value.
m_bc_type[Face::YLO_ZHI][2] = Type::Displacement;
272 value.
m_bc_type[Face::YHI_ZHI][2] = Type::Displacement;
273 value.
m_bc_type[Face::ZHI_XLO][2] = Type::Displacement;
274 value.
m_bc_type[Face::ZHI_XHI][2] = Type::Displacement;
275 value.
m_bc_type[Face::XLO_YLO_ZLO][2] = Type::Displacement;
276 value.
m_bc_type[Face::XLO_YHI_ZLO][2] = Type::Displacement;
277 value.
m_bc_type[Face::XHI_YLO_ZLO][2] = Type::Displacement;
278 value.
m_bc_type[Face::XHI_YHI_ZLO][2] = Type::Displacement;
279 value.
m_bc_type[Face::XLO_YLO_ZHI][2] = Type::Displacement;
280 value.
m_bc_type[Face::XLO_YHI_ZHI][2] = Type::Displacement;
281 value.
m_bc_type[Face::XHI_YLO_ZHI][2] = Type::Displacement;
282 value.
m_bc_type[Face::XHI_YHI_ZHI][2] = Type::Displacement;