1 #include "../coordinates/coordinates.hpp"
2 #include "../reconstruct/interpolation.hpp"
8 if (pmb->block_size.nx3 > 1) {
17 }
else if (pmb->block_size.nx2 > 1) {
28 int is = pmb->is, js = pmb->js, ks = pmb->ks;
29 int ie = pmb->ie, je = pmb->je, ke = pmb->ke;
32 if (pmb->block_size.nx3 > 1) {
33 for (
int k = ks; k <= ke + 1; ++k)
34 for (
int j = js;
j <= je + 1; ++
j)
35 for (
int i = is; i <= ie + 1; ++i) {
36 v3f2_(k,
j, i) = interp_cp4(w(IVZ, k,
j - 2, i), w(IVZ, k,
j - 1, i),
37 w(IVZ, k,
j, i), w(IVZ, k,
j + 1, i));
38 v2f3_(k,
j, i) = interp_cp4(w(IVY, k - 2,
j, i), w(IVY, k - 1,
j, i),
39 w(IVY, k,
j, i), w(IVY, k + 1,
j, i));
40 v1f3_(k,
j, i) = interp_cp4(w(IVX, k - 2,
j, i), w(IVX, k - 1,
j, i),
41 w(IVX, k,
j, i), w(IVX, k + 1,
j, i));
42 v3f1_(k,
j, i) = interp_cp4(w(IVZ, k,
j, i - 2), w(IVZ, k,
j, i - 1),
43 w(IVZ, k,
j, i), w(IVZ, k,
j, i + 1));
44 v2f1_(k,
j, i) = interp_cp4(w(IVY, k,
j, i - 2), w(IVY, k,
j, i - 1),
45 w(IVY, k,
j, i), w(IVY, k,
j, i + 1));
46 v1f2_(k,
j, i) = interp_cp4(w(IVX, k,
j - 2, i), w(IVX, k,
j - 1, i),
47 w(IVX, k,
j, i), w(IVX, k,
j + 1, i));
49 }
else if (pmb->block_size.nx2 > 1) {
50 for (
int j = js;
j <= je + 1; ++
j)
51 for (
int i = is; i <= ie + 1; ++i) {
52 v2f1_(ks,
j, i) = interp_cp4(w(IVY, ks,
j, i - 2), w(IVY, ks,
j, i - 1),
53 w(IVY, ks,
j, i), w(IVY, ks,
j, i + 1));
54 v1f2_(ks,
j, i) = interp_cp4(w(IVX, ks,
j - 2, i), w(IVX, ks,
j - 1, i),
55 w(IVX, ks,
j, i), w(IVX, ks,
j + 1, i));
60 for (
int k = ks; k <= ke; ++k)
61 for (
int j = js;
j <= je; ++
j) {
62 if (pmb->block_size.nx3 > 1) {
63 pcoord->Edge2Length(k,
j, is, ie,
x2edge_);
65 pcoord->Edge3Length(k,
j, is, ie,
x3edge_);
67 pcoord->VolCenterFace1Area(k,
j, is, ie,
x1area_);
69 for (
int i = is; i <= ie; ++i) {
79 if (pmb->block_size.nx3 > 1) {
80 pcoord->Edge3Length(k,
j, is, ie + 1,
x3edge_);
81 pcoord->Edge1Length(k,
j, is, ie,
x1edge_);
83 pcoord->VolCenterFace2Area(k,
j, is, ie,
x2area_);
84 for (
int i = is; i <= ie; ++i)
93 if (pmb->block_size.nx2 > 1) {
94 pcoord->Edge1Length(k,
j, is, ie,
x1edge_);
96 pcoord->Edge2Length(k,
j, is, ie + 1,
x2edge_);
97 pcoord->VolCenterFace3Area(k,
j, is, ie,
x3area_);
98 if (pmb->block_size.nx3 > 1) {
99 for (
int i = is; i <= ie; ++i)
106 for (
int i = is; i <= ie; ++i)
AthenaArray< Real > v2f3_
AthenaArray< Real > v3f2_
AthenaArray< Real > v1f2_
void Finalize(AthenaArray< Real > const &w)
AthenaArray< Real > v3f1_
AthenaArray< Real > v1f3_
AthenaArray< Real > v2f1_
AthenaArray< Real > x3edge_p1_
AthenaArray< Real > x2edge_p1_
AthenaArray< Real > x3area_
AthenaArray< Real > x1area_
scratch geometric arrays
AthenaArray< Real > x1edge_
AthenaArray< Real > x2edge_
AthenaArray< Real > x3edge_
AthenaArray< Real > x1edge_p1_
AthenaArray< Real > x2area_