Changeset ac6d04 for src/samples/discretization_poisson_fv.cpp
- Timestamp:
- Apr 10, 2012, 1:55:49 PM (14 years ago)
- Children:
- a40eea
- Parents:
- d24c2f
- File:
-
- 1 edited
-
src/samples/discretization_poisson_fv.cpp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/samples/discretization_poisson_fv.cpp
rd24c2f rac6d04 23 23 Index i_c, i_f; 24 24 25 const vmg_float h2_inv = 0.5 / sol_f.MeshWidth();25 const Vector h2_inv = 0.5 / sol_f.Extent().MeshWidth(); 26 26 27 const Index b1_c = sol_c.Local(). AlignmentBegin();28 const Index b2_c = sol_c.Local(). AlignmentEnd() - 1;27 const Index b1_c = sol_c.Local().FinerBeginFoo(); 28 const Index b2_c = sol_c.Local().FinerEndFoo() - 1; 29 29 const Index b1_f = 0; 30 30 const Index b2_f = rhs_f.Local().SizeTotal() - 1; … … 32 32 const Index begin_f = sol_f.Local().Begin(); 33 33 const Index end_f = sol_f.Local().End(); 34 const Index begin_c = sol_c.Local(). AlignmentBegin();34 const Index begin_c = sol_c.Local().FinerBeginFoo(); 35 35 36 36 const vmg_float c_1_3 = 1.0 / 3.0; 37 const vmg_float c_2_3_sp = 2.0 / 3.0 * sol_f.MeshWidth();37 const Vector c_2_3_sp = 2.0 / 3.0 * sol_f.Extent().MeshWidth(); 38 38 const vmg_float c_4_3 = 4.0 / 3.0; 39 39 … … 43 43 for (i_f.Y()=begin_f.Y(), i_c.Y()=begin_c.Y(); i_f.Y()<end_f.Y(); i_f.Y()+=2, ++i_c.Y()) 44 44 for (i_f.Z()=begin_f.Z(), i_c.Z()=begin_c.Z(); i_f.Z()<end_f.Z(); i_f.Z()+=2, ++i_c.Z()) { 45 assert(b2_c.X()+1 >= 0 && b2_c.X() < sol_c.Local().SizeTotal().X()); 46 assert(i_c.Y() >= 0 && i_c.Y() < sol_c.Local().SizeTotal().Y()); 47 assert(i_c.Z() >= 0 && i_c.Z() < sol_c.Local().SizeTotal().Z()); 48 assert(b2_f.X()-1 >= 0 && b2_f.X()-1 < sol_f.Local().SizeTotal().X()); 49 assert(i_f.Y() >= 0 && i_f.Y() < sol_f.Local().SizeTotal().Y()); 50 assert(i_f.Z() >= 0 && i_f.Z() < sol_f.Local().SizeTotal().Z()); 51 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = (sol_c(b1_c.X()-1,i_c.Y(),i_c.Z()) - sol_f(b1_f.X()+1,i_f.Y(),i_f.Z())) * h2_inv; 52 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = (sol_c(b2_c.X()+1,i_c.Y(),i_c.Z()) - sol_f(b2_f.X()-1,i_f.Y(),i_f.Z())) * h2_inv; 45 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = (sol_c(b1_c.X()-1,i_c.Y(),i_c.Z()) - sol_f(b1_f.X()+1,i_f.Y(),i_f.Z())) * h2_inv.X(); 46 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = (sol_c(b2_c.X()+1,i_c.Y(),i_c.Z()) - sol_f(b2_f.X()-1,i_f.Y(),i_f.Z())) * h2_inv.X(); 53 47 } 54 48 … … 82 76 for (i_f.Z()=begin_f.Z(); i_f.Z()<end_f.Z(); ++i_f.Z()) { 83 77 84 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = sol_f(b1_f.X(),i_f.Y(),i_f.Z()) = c_2_3_sp * rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) +78 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = sol_f(b1_f.X(),i_f.Y(),i_f.Z()) = c_2_3_sp.X() * rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) + 85 79 c_4_3 * sol_f(b1_f.X()+1,i_f.Y(),i_f.Z()) - 86 80 c_1_3 * sol_f(b1_f.X()+2,i_f.Y(),i_f.Z()); 87 81 88 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = sol_f(b2_f.X(),i_f.Y(),i_f.Z()) = c_2_3_sp * rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) +82 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = sol_f(b2_f.X(),i_f.Y(),i_f.Z()) = c_2_3_sp.X() * rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) + 89 83 c_4_3 * sol_f(b2_f.X()-1,i_f.Y(),i_f.Z()) - 90 84 c_1_3 * sol_f(b2_f.X()-2,i_f.Y(),i_f.Z()); … … 97 91 for (i_f.X()=begin_f.X(), i_c.X()=begin_c.X(); i_f.X()<end_f.X(); i_f.X()+=2, ++i_c.X()) 98 92 for (i_f.Z()=begin_f.Z(), i_c.Z()=begin_c.Z(); i_f.Z()<end_f.Z(); i_f.Z()+=2, ++i_c.Z()) { 99 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = (sol_c(i_c.X(),b1_c.Y()-1,i_c.Z()) - sol_f(i_f.X(),b1_f.Y()+1,i_f.Z())) * h2_inv ;100 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = (sol_c(i_c.X(),b2_c.Y()+1,i_c.Z()) - sol_f(i_f.X(),b2_f.Y()-1,i_f.Z())) * h2_inv ;93 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = (sol_c(i_c.X(),b1_c.Y()-1,i_c.Z()) - sol_f(i_f.X(),b1_f.Y()+1,i_f.Z())) * h2_inv.Y(); 94 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = (sol_c(i_c.X(),b2_c.Y()+1,i_c.Z()) - sol_f(i_f.X(),b2_f.Y()-1,i_f.Z())) * h2_inv.Y(); 101 95 } 102 96 … … 130 124 for (i_f.Z()=begin_f.Z(); i_f.Z()<end_f.Z(); ++i_f.Z()) { 131 125 132 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = sol_f(i_f.X(),b1_f.Y(),i_f.Z()) = c_2_3_sp * rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) +126 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = sol_f(i_f.X(),b1_f.Y(),i_f.Z()) = c_2_3_sp.Y() * rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) + 133 127 c_4_3 * sol_f(i_f.X(),b1_f.Y()+1,i_f.Z()) - 134 128 c_1_3 * sol_f(i_f.X(),b1_f.Y()+2,i_f.Z()); 135 129 136 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = sol_f(i_f.X(),b2_f.Y(),i_f.Z()) = c_2_3_sp * rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) +130 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = sol_f(i_f.X(),b2_f.Y(),i_f.Z()) = c_2_3_sp.Y() * rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) + 137 131 c_4_3 * sol_f(i_f.X(),b2_f.Y()-1,i_f.Z()) - 138 132 c_1_3 * sol_f(i_f.X(),b2_f.Y()-2,i_f.Z()); … … 145 139 for (i_f.X()=begin_f.X(), i_c.X()=begin_c.X(); i_f.X()<end_f.X(); i_f.X()+=2, ++i_c.X()) 146 140 for (i_f.Y()=begin_f.Y(), i_c.Y()=begin_c.Y(); i_f.Y()<end_f.Y(); i_f.Y()+=2, ++i_c.Y()) { 147 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = (sol_c(i_c.X(),i_c.Y(),b1_c.Z()-1) - sol_f(i_f.X(),i_f.Y(),b1_f.Z()+1)) * h2_inv ;148 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = (sol_c(i_c.X(),i_c.Y(),b2_c.Z()+1) - sol_f(i_f.X(),i_f.Y(),b2_f.Z()-1)) * h2_inv ;141 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = (sol_c(i_c.X(),i_c.Y(),b1_c.Z()-1) - sol_f(i_f.X(),i_f.Y(),b1_f.Z()+1)) * h2_inv.Z(); 142 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = (sol_c(i_c.X(),i_c.Y(),b2_c.Z()+1) - sol_f(i_f.X(),i_f.Y(),b2_f.Z()-1)) * h2_inv.Z(); 149 143 } 150 144 … … 177 171 for (i_f.Y()=begin_f.Y(); i_f.Y()<end_f.Y(); ++i_f.Y()) { 178 172 179 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = sol_f(i_f.X(),i_f.Y(),b1_f.Z()) = c_2_3_sp * rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) +173 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = sol_f(i_f.X(),i_f.Y(),b1_f.Z()) = c_2_3_sp.Z() * rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) + 180 174 c_4_3 * sol_f(i_f.X(),i_f.Y(),b1_f.Z()+1) - 181 175 c_1_3 * sol_f(i_f.X(),i_f.Y(),b1_f.Z()+2); 182 176 183 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = sol_f(i_f.X(),i_f.Y(),b2_f.Z()) = c_2_3_sp * rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) +177 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = sol_f(i_f.X(),i_f.Y(),b2_f.Z()) = c_2_3_sp.Z() * rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) + 184 178 c_4_3 * sol_f(i_f.X(),i_f.Y(),b2_f.Z()-1) - 185 179 c_1_3 * sol_f(i_f.X(),i_f.Y(),b2_f.Z()-2);
Note:
See TracChangeset
for help on using the changeset viewer.
