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;
53 OOMPH_CURRENT_FUNCTION,
54 OOMPH_EXCEPTION_LOCATION);
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;
317 std::ostream& outfile,
const unsigned& nplot)
320 using namespace OcTreeNames;
329 for (
unsigned idirect =
L; idirect <=
F; idirect++)
332 outfile <<
"ZONE I=" << nplot <<
", J=" << nplot << std::endl;
335 for (
unsigned i = 0;
i < nplot;
i++)
338 s[1] = -1.0 + 2.0 * double(
i) / double(nplot - 1);
341 for (
unsigned j = 0; j < nplot; j++)
345 s[0] = -1.0 + 2.0 * double(j) / double(nplot - 1);
358 outfile << x[0] <<
" " << x[1] <<
" " << x[2] << std::endl;
void macro_element_boundary(const unsigned &time, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &x)
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D spatial =...
ExtrudedDomain * Extruded_domain_pt
Pointer to the extruded domain.
virtual void output_macro_element_boundaries(std::ostream &outfile, const unsigned &nplot)=0
Output all macro element boundaries as tecplot zones.
void macro_map(const Vector< double > &s, Vector< double > &r)
The mapping from local to global coordinates at the current time : r(s)
unsigned Macro_element_number
What is the number of the current macro element within its domain.
An OomphLibError object which should be thrown when an run-time error is encountered....
//////////////////////////////////////////////////////////////////// ////////////////////////////////...