Get the global position r(s) at the continuous time, t.
Get global position r(s) at the continuous time, t.
43 std::ostringstream error_message_stream;
46 error_message_stream <<
"This output function outputs a space-time\n"
47 <<
"representation of the solution. As such, it\n"
48 <<
"does not make sense to output the solution\n"
49 <<
"at a previous time level!" << std::endl;
52 throw OomphLibError(error_message_stream.str(),
58 Vector<double> corner_LDB(3, 0.0);
59 Vector<double> corner_RDB(3, 0.0);
60 Vector<double> corner_LUB(3, 0.0);
61 Vector<double> corner_RUB(3, 0.0);
62 Vector<double> corner_LDF(3, 0.0);
63 Vector<double> corner_RDF(3, 0.0);
64 Vector<double> corner_LUF(3, 0.0);
65 Vector<double> corner_RUF(3, 0.0);
68 Vector<double>
zeta(2, 0.0);
115 Vector<double> corner_LD(3, 0.0);
116 Vector<double> corner_RD(3, 0.0);
117 Vector<double> corner_LU(3, 0.0);
118 Vector<double> corner_RU(3, 0.0);
135 Vector<double> face_B(3);
136 Vector<double> face_F(3);
147 Vector<double> edge_mid_L(3);
148 Vector<double> edge_mid_R(3);
149 Vector<double> edge_mid_D(3);
150 Vector<double> edge_mid_U(3);
167 Vector<double> edge_back_L(3);
168 Vector<double> edge_back_R(3);
169 Vector<double> edge_back_D(3);
170 Vector<double> edge_back_U(3);
187 Vector<double> edge_front_L(3);
188 Vector<double> edge_front_R(3);
189 Vector<double> edge_front_D(3);
190 Vector<double> edge_front_U(3);
210 for (
unsigned i = 0;
i < n_dim;
i++)
218 double point_up = 0.0;
219 double point_down = 0.0;
223 corner_LU[
i] + (corner_RU[
i] - corner_LU[
i]) * 0.5 * (
s[0] + 1.0);
227 corner_LD[
i] + (corner_RD[
i] - corner_LD[
i]) * 0.5 * (
s[0] + 1.0);
230 slice_mid = point_down + 0.5 * (1.0 +
s[1]) * (point_up - point_down);
233 double diff_L, diff_R, diff_D, diff_U;
234 diff_L = edge_mid_L[
i] - slice_mid;
235 diff_R = edge_mid_R[
i] - slice_mid;
236 diff_D = edge_mid_D[
i] - slice_mid;
237 diff_U = edge_mid_U[
i] - slice_mid;
241 (diff_L * (1.0 - 0.5 * (
s[0] + 1.0)) + diff_R * 0.5 * (
s[0] + 1.0) +
242 diff_D * (1.0 - 0.5 * (
s[1] + 1.0)) + diff_U * 0.5 * (
s[1] + 1.0));
251 corner_LUB[
i] + (corner_RUB[
i] - corner_LUB[
i]) * 0.5 * (
s[0] + 1.0);
255 corner_LDB[
i] + (corner_RDB[
i] - corner_LDB[
i]) * 0.5 * (
s[0] + 1.0);
258 slice_back = point_down + 0.5 * (1.0 +
s[1]) * (point_up - point_down);
261 diff_L = edge_back_L[
i] - slice_back;
262 diff_R = edge_back_R[
i] - slice_back;
263 diff_D = edge_back_D[
i] - slice_back;
264 diff_U = edge_back_U[
i] - slice_back;
268 (diff_L * (1.0 - 0.5 * (
s[0] + 1.0)) + diff_R * 0.5 * (
s[0] + 1.0) +
269 diff_D * (1.0 - 0.5 * (
s[1] + 1.0)) + diff_U * 0.5 * (
s[1] + 1.0));
278 corner_LUF[
i] + (corner_RUF[
i] - corner_LUF[
i]) * 0.5 * (
s[0] + 1.0);
282 corner_LDF[
i] + (corner_RDF[
i] - corner_LDF[
i]) * 0.5 * (
s[0] + 1.0);
285 slice_front = point_down + 0.5 * (1.0 +
s[1]) * (point_up - point_down);
288 diff_L = edge_front_L[
i] - slice_front;
289 diff_R = edge_front_R[
i] - slice_front;
290 diff_D = edge_front_D[
i] - slice_front;
291 diff_U = edge_front_U[
i] - slice_front;
295 (diff_L * (1.0 - 0.5 * (
s[0] + 1.0)) + diff_R * 0.5 * (
s[0] + 1.0) +
296 diff_D * (1.0 - 0.5 * (
s[1] + 1.0)) + diff_U * 0.5 * (
s[1] + 1.0));
302 double diff_back = face_B[
i] - slice_back;
303 double diff_front = face_F[
i] - slice_front;
308 r[
i] = slice_mid + 0.5 * (1.0 +
s[2]) * diff_front +
309 0.5 * (1.0 -
s[2]) * diff_back;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
void macro_element_boundary(const unsigned &time, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &x)
Definition: extruded_domain.cc:148
ExtrudedDomain * Extruded_domain_pt
Pointer to the extruded domain.
Definition: extruded_macro_element.h:115
unsigned Macro_element_number
What is the number of the current macro element within its domain.
Definition: macro_element.h:239
RealScalar s
Definition: level1_cplx_impl.h:130
EIGEN_STRONG_INLINE const Eigen::CwiseBinaryOp< Eigen::internal::scalar_zeta_op< typename DerivedX::Scalar >, const DerivedX, const DerivedQ > zeta(const Eigen::ArrayBase< DerivedX > &x, const Eigen::ArrayBase< DerivedQ > &q)
Definition: SpecialFunctionsArrayAPI.h:152
@ B
Definition: octree.h:73
@ D
Definition: octree.h:71
@ L
Definition: octree.h:69
@ R
Definition: octree.h:70
@ F
Definition: octree.h:74
@ U
Definition: octree.h:72
t
Definition: plotPSD.py:36