25namespace rheolef {
namespace space_constant {
72 return coord_sys_table [i];
79 error_macro (
"unexpected coordinate system `" << sys_coord <<
"'");
87 "inconsistent `" << coord_sys_table[i]
88 <<
"' coordinate system for " <<
d <<
"D geometry");
95symmetric_tensor_index [3][3] = {
102symmetric_tensor_subscript_name [6] = {
113unsymmetric_tensor_index [3][3] = {
120unsymmetric_tensor_subscript_name [9] = {
132static std::pair<size_type,size_type> symmetric_tensor_subscript [6];
133static std::pair<size_type,size_type> unsymmetric_tensor_subscript [9];
174 const std::string& valued,
191 return unsymmetric_tensor_index [i][
j];
196 return symmetric_tensor_index [i][
j];
202 std::string sys_coord,
208std::pair<size_type,size_type>
217 return std::pair<size_type,size_type>(2,2);
218 return unsymmetric_tensor_subscript [
i_comp];
222 return std::pair<size_type,size_type>(2,2);
223 return symmetric_tensor_subscript [
i_comp];
236 return unsymmetric_tensor_subscript_name [
i_comp];
241 return symmetric_tensor_subscript_name [
i_comp];
244std::pair<size_type,size_type>
247 std::string sys_coord,
256 std::string sys_coord,
271symmetric_tensor4_index [6][6] = {
272 { 0, 1, 3, 6, 10, 15},
273 { 1, 2, 4, 7, 11, 16},
274 { 3, 4, 5, 8, 12, 17},
275 { 6, 7, 8, 9, 13, 18},
276 { 10, 11, 12, 13, 14, 19},
277 { 15, 16, 17, 18, 19, 20}
281std::pair<std::pair<size_type,size_type>, std::pair<size_type,size_type> >
282symmetric_tensor4_subscript [21];
286symmetric_tensor4_subscript_name [21] = {
312std::pair<std::pair<size_type,size_type>, std::pair<size_type,size_type> >
313symmetric_tensor4_subscript_rz [10];
317symmetric_tensor4_subscript_rz_name [10] = {
343 return symmetric_tensor4_index[
ij][
kl];
348 std::string sys_coord,
356std::pair<std::pair<size_type,size_type>, std::pair<size_type,size_type> >
363 return symmetric_tensor4_subscript_rz [
i_comp];
365 return symmetric_tensor4_subscript [
i_comp];
375 return symmetric_tensor4_subscript_rz_name [
i_comp];
377 return symmetric_tensor4_subscript_name [
i_comp];
380std::pair<std::pair<size_type,size_type>, std::pair<size_type,size_type> >
383 std::string sys_coord,
392 std::string sys_coord,
413 return multiplies_result_tag_table [
tag1][
tag2];
424 return divides_result_tag_table [
tag1][
tag2];
430struct static_initializer_t {
431 static_initializer_t();
433static_initializer_t::static_initializer_t() {
434 typedef std::pair<size_type,size_type>
p;
435 symmetric_tensor_subscript[0] =
p(0,0);
436 symmetric_tensor_subscript[1] =
p(0,1);
437 symmetric_tensor_subscript[2] =
p(1,1);
438 symmetric_tensor_subscript[3] =
p(0,2);
439 symmetric_tensor_subscript[4] =
p(1,2);
440 symmetric_tensor_subscript[5] =
p(2,2);
442 unsymmetric_tensor_subscript[0] =
p(0,0);
443 unsymmetric_tensor_subscript[1] =
p(0,1);
444 unsymmetric_tensor_subscript[2] =
p(1,0);
445 unsymmetric_tensor_subscript[3] =
p(1,1);
446 unsymmetric_tensor_subscript[4] =
p(0,2);
447 unsymmetric_tensor_subscript[5] =
p(1,2);
448 unsymmetric_tensor_subscript[6] =
p(2,0);
449 unsymmetric_tensor_subscript[7] =
p(2,1);
450 unsymmetric_tensor_subscript[8] =
p(2,2);
452 typedef std::pair<p,p>
pp;
453 symmetric_tensor4_subscript [ 0] =
pp(
p(0,0),
p(0,0));
454 symmetric_tensor4_subscript [ 1] =
pp(
p(0,0),
p(0,1));
455 symmetric_tensor4_subscript [ 2] =
pp(
p(0,1),
p(0,1));
456 symmetric_tensor4_subscript [ 3] =
pp(
p(0,0),
p(1,1));
457 symmetric_tensor4_subscript [ 4] =
pp(
p(0,1),
p(1,1));
458 symmetric_tensor4_subscript [ 5] =
pp(
p(1,1),
p(1,1));
459 symmetric_tensor4_subscript [ 6] =
pp(
p(0,0),
p(0,2));
460 symmetric_tensor4_subscript [ 7] =
pp(
p(0,1),
p(0,2));
461 symmetric_tensor4_subscript [ 8] =
pp(
p(1,1),
p(0,2));
462 symmetric_tensor4_subscript [ 9] =
pp(
p(0,2),
p(0,2));
463 symmetric_tensor4_subscript [10] =
pp(
p(0,0),
p(1,2));
464 symmetric_tensor4_subscript [11] =
pp(
p(0,1),
p(1,2));
465 symmetric_tensor4_subscript [12] =
pp(
p(1,1),
p(1,2));
466 symmetric_tensor4_subscript [13] =
pp(
p(0,2),
p(1,2));
467 symmetric_tensor4_subscript [14] =
pp(
p(1,2),
p(1,2));
468 symmetric_tensor4_subscript [15] =
pp(
p(0,0),
p(2,2));
469 symmetric_tensor4_subscript [16] =
pp(
p(0,1),
p(2,2));
470 symmetric_tensor4_subscript [17] =
pp(
p(1,1),
p(2,2));
471 symmetric_tensor4_subscript [18] =
pp(
p(0,2),
p(2,2));
472 symmetric_tensor4_subscript [19] =
pp(
p(1,2),
p(2,2));
473 symmetric_tensor4_subscript [20] =
pp(
p(2,2),
p(2,2));
475 symmetric_tensor4_subscript_rz [0] =
pp(
p(0,0),
p(0,0));
476 symmetric_tensor4_subscript_rz [0] =
pp(
p(0,0),
p(0,1));
477 symmetric_tensor4_subscript_rz [0] =
pp(
p(0,1),
p(0,1));
478 symmetric_tensor4_subscript_rz [0] =
pp(
p(0,0),
p(1,1));
479 symmetric_tensor4_subscript_rz [0] =
pp(
p(0,1),
p(1,1));
480 symmetric_tensor4_subscript_rz [0] =
pp(
p(1,1),
p(1,1));
481 symmetric_tensor4_subscript_rz [0] =
pp(
p(0,0),
p(2,2));
482 symmetric_tensor4_subscript_rz [0] =
pp(
p(0,1),
p(2,2));
483 symmetric_tensor4_subscript_rz [0] =
pp(
p(1,1),
p(2,2));
484 symmetric_tensor4_subscript_rz [0] =
pp(
p(2,2),
p(2,2));
486static static_initializer_t dummy;