- Timestamp:
- Apr 14, 2013, 11:46:36 AM (13 years ago)
- Children:
- 61a9c2
- Parents:
- 13b272
- File:
-
- 1 edited
-
src/discretization/discretization_poisson_fv.cpp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/discretization/discretization_poisson_fv.cpp
r13b272 rfb228be 102 102 Index i_c, i_f; 103 103 104 const Boundary& bc = MG::GetComm()->BoundaryConditions(); 104 Comm& comm = *MG::GetComm(); 105 106 const Boundary& bc = comm.BoundaryConditions(); 105 107 const Index off((GridIndexTranslations::LocalToGlobal(sol_f, sol_f.Local().Begin())[0] % 2 == 0 ? 0 : 1), 106 108 (GridIndexTranslations::LocalToGlobal(sol_f, sol_f.Local().Begin())[1] % 2 == 0 ? 0 : 1), 107 109 (GridIndexTranslations::LocalToGlobal(sol_f, sol_f.Local().Begin())[2] % 2 == 0 ? 0 : 1)); 108 110 109 const Index begin_f = sol_f.Local().Begin() +off;111 const Index begin_f = sol_f.Local().Begin() - off; 110 112 const Index end_f = sol_f.Local().End(); 111 113 … … 125 127 const vmg_float c_4_3 = 4.0 / 3.0; 126 128 129 comm.CommToGhosts(sol_f); 130 comm.CommToGhosts(sol_c); 127 131 128 132 // … … 135 139 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()) 136 140 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()) 137 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = 0.5 * (sol_c(b1_c.X() -1,i_c.Y(),i_c.Z()) - sol_f(b1_f.X()+1,i_f.Y(),i_f.Z()));138 139 for (i_f.Y()=begin_f.Y() -1; i_f.Y()<end_f.Y(); i_f.Y()+=2)141 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = 0.5 * (sol_c(b1_c.X(),i_c.Y(),i_c.Z()) - sol_f(b1_f.X()+1,i_f.Y(),i_f.Z())); 142 143 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) 140 144 for (i_f.Z()=begin_f.Z(); i_f.Z()<end_f.Z(); i_f.Z()+=2) 141 145 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = 0.5 * (rhs_f(b1_f.X(),i_f.Y()-1,i_f.Z()) + rhs_f(b1_f.X(),i_f.Y()+1,i_f.Z())); 142 146 143 147 for (i_f.Y()=begin_f.Y(); i_f.Y()<end_f.Y(); i_f.Y()+=2) 144 for (i_f.Z()=begin_f.Z() -1; i_f.Z()<end_f.Z(); i_f.Z()+=2)148 for (i_f.Z()=begin_f.Z()+1; i_f.Z()<end_f.Z(); i_f.Z()+=2) 145 149 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = 0.5 * (rhs_f(b1_f.X(),i_f.Y(),i_f.Z()-1) + rhs_f(b1_f.X(),i_f.Y(),i_f.Z()+1)); 146 150 147 for (i_f.Y()=begin_f.Y() -1; i_f.Y()<end_f.Y(); i_f.Y()+=2)148 for (i_f.Z()=begin_f.Z() -1; i_f.Z()<end_f.Z(); i_f.Z()+=2)151 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) 152 for (i_f.Z()=begin_f.Z()+1; i_f.Z()<end_f.Z(); i_f.Z()+=2) 149 153 rhs_f(b1_f.X(),i_f.Y(),i_f.Z()) = 0.25 * (rhs_f(b1_f.X(),i_f.Y()-1,i_f.Z()-1) + 150 154 rhs_f(b1_f.X(),i_f.Y()+1,i_f.Z()-1) + … … 164 168 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()) 165 169 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()) 166 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = 0.5 * (sol_c(b2_c.X() +1,i_c.Y(),i_c.Z()) - sol_f(b2_f.X()-1,i_f.Y(),i_f.Z()));167 168 for (i_f.Y()=begin_f.Y() -1; i_f.Y()<end_f.Y(); i_f.Y()+=2)170 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = 0.5 * (sol_c(b2_c.X(),i_c.Y(),i_c.Z()) - sol_f(b2_f.X()-1,i_f.Y(),i_f.Z())); 171 172 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) 169 173 for (i_f.Z()=begin_f.Z(); i_f.Z()<end_f.Z(); i_f.Z()+=2) 170 174 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = 0.5 * (rhs_f(b2_f.X(),i_f.Y()-1,i_f.Z()) + rhs_f(b2_f.X(),i_f.Y()+1,i_f.Z())); 171 175 172 176 for (i_f.Y()=begin_f.Y(); i_f.Y()<end_f.Y(); i_f.Y()+=2) 173 for (i_f.Z()=begin_f.Z() -1; i_f.Z()<end_f.Z(); i_f.Z()+=2)177 for (i_f.Z()=begin_f.Z()+1; i_f.Z()<end_f.Z(); i_f.Z()+=2) 174 178 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = 0.5 * (rhs_f(b2_f.X(),i_f.Y(),i_f.Z()-1) + rhs_f(b2_f.X(),i_f.Y(),i_f.Z()+1)); 175 179 176 for (i_f.Y()=begin_f.Y() -1; i_f.Y()<end_f.Y(); i_f.Y()+=2)177 for (i_f.Z()=begin_f.Z() -1; i_f.Z()<end_f.Z(); i_f.Z()+=2)180 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) 181 for (i_f.Z()=begin_f.Z()+1; i_f.Z()<end_f.Z(); i_f.Z()+=2) 178 182 rhs_f(b2_f.X(),i_f.Y(),i_f.Z()) = 0.25 * (rhs_f(b2_f.X(),i_f.Y()-1,i_f.Z()-1) + 179 183 rhs_f(b2_f.X(),i_f.Y()+1,i_f.Z()-1) + … … 199 203 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()) 200 204 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()) 201 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = 0.5 * (sol_c(i_c.X(),b1_c.Y() -1,i_c.Z()) - sol_f(i_f.X(),b1_f.Y()+1,i_f.Z()));202 203 for (i_f.X()=begin_f.X() -1; i_f.X()<end_f.X(); i_f.X()+=2)205 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = 0.5 * (sol_c(i_c.X(),b1_c.Y(),i_c.Z()) - sol_f(i_f.X(),b1_f.Y()+1,i_f.Z())); 206 207 for (i_f.X()=begin_f.X()+1; i_f.X()<end_f.X(); i_f.X()+=2) 204 208 for (i_f.Z()=begin_f.Z(); i_f.Z()<end_f.Z(); i_f.Z()+=2) 205 209 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = 0.5 * (rhs_f(i_f.X()-1,b1_f.Y(),i_f.Z()) + rhs_f(i_f.X()+1,b1_f.Y(),i_f.Z())); 206 210 207 211 for (i_f.X()=begin_f.X(); i_f.X()<end_f.X(); i_f.X()+=2) 208 for (i_f.Z()=begin_f.Z() -1; i_f.Z()<end_f.Z(); i_f.Z()+=2)212 for (i_f.Z()=begin_f.Z()+1; i_f.Z()<end_f.Z(); i_f.Z()+=2) 209 213 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = 0.5 * (rhs_f(i_f.X(),b1_f.Y(),i_f.Z()-1) + rhs_f(i_f.X(),b1_f.Y(),i_f.Z()+1)); 210 214 211 for (i_f.X()=begin_f.X() -1; i_f.X()<end_f.X(); i_f.X()+=2)212 for (i_f.Z()=begin_f.Z() -1; i_f.Z()<end_f.Z(); i_f.Z()+=2)215 for (i_f.X()=begin_f.X()+1; i_f.X()<end_f.X(); i_f.X()+=2) 216 for (i_f.Z()=begin_f.Z()+1; i_f.Z()<end_f.Z(); i_f.Z()+=2) 213 217 rhs_f(i_f.X(),b1_f.Y(),i_f.Z()) = 0.25 * (rhs_f(i_f.X()-1,b1_f.Y(),i_f.Z()-1) + 214 218 rhs_f(i_f.X()+1,b1_f.Y(),i_f.Z()-1) + … … 228 232 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()) 229 233 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()) 230 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = 0.5 * (sol_c(i_c.X(),b2_c.Y() +1,i_c.Z()) - sol_f(i_f.X(),b2_f.Y()-1,i_f.Z()));231 232 for (i_f.X()=begin_f.X() -1; i_f.X()<end_f.X(); i_f.X()+=2)234 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = 0.5 * (sol_c(i_c.X(),b2_c.Y(),i_c.Z()) - sol_f(i_f.X(),b2_f.Y()-1,i_f.Z())); 235 236 for (i_f.X()=begin_f.X()+1; i_f.X()<end_f.X(); i_f.X()+=2) 233 237 for (i_f.Z()=begin_f.Z(); i_f.Z()<end_f.Z(); i_f.Z()+=2) 234 238 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = 0.5 * (rhs_f(i_f.X()-1,b2_f.Y(),i_f.Z()) + rhs_f(i_f.X()+1,b2_f.Z(),i_f.Z())); 235 239 236 240 for (i_f.X()=begin_f.X(); i_f.X()<end_f.X(); i_f.X()+=2) 237 for (i_f.Z()=begin_f.Z() -1; i_f.Z()<end_f.Z(); i_f.Z()+=2)241 for (i_f.Z()=begin_f.Z()+1; i_f.Z()<end_f.Z(); i_f.Z()+=2) 238 242 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = 0.5 * (rhs_f(i_f.X(),b2_f.Y(),i_f.Z()-1) + rhs_f(i_f.X(),b2_f.Y(),i_f.Z()+1)); 239 243 240 for (i_f.X()=begin_f.X() -1; i_f.X()<end_f.X(); i_f.X()+=2)241 for (i_f.Z()=begin_f.Z() -1; i_f.Z()<end_f.Z(); i_f.Z()+=2)244 for (i_f.X()=begin_f.X()+1; i_f.X()<end_f.X(); i_f.X()+=2) 245 for (i_f.Z()=begin_f.Z()+1; i_f.Z()<end_f.Z(); i_f.Z()+=2) 242 246 rhs_f(i_f.X(),b2_f.Y(),i_f.Z()) = 0.25 * (rhs_f(i_f.X()-1,b2_f.Y(),i_f.Z()-1) + 243 247 rhs_f(i_f.X()+1,b2_f.Y(),i_f.Z()-1) + … … 264 268 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()) 265 269 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()) 266 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = 0.5 * (sol_c(i_c.X(),i_c.Y(),b1_c.Z() -1) - sol_f(i_f.X(),i_f.Y(),b1_f.Z()+1));267 268 for (i_f.X()=begin_f.X() -1; i_f.X()<end_f.X(); i_f.X()+=2)270 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = 0.5 * (sol_c(i_c.X(),i_c.Y(),b1_c.Z()) - sol_f(i_f.X(),i_f.Y(),b1_f.Z()+1)); 271 272 for (i_f.X()=begin_f.X()+1; i_f.X()<end_f.X(); i_f.X()+=2) 269 273 for (i_f.Y()=begin_f.Y(); i_f.Y()<end_f.Y(); i_f.Y()+=2) 270 274 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = 0.5 * (rhs_f(i_f.X()-1,i_f.Y(),b1_f.Z()) + rhs_f(i_f.X()+1,i_f.Y(),b1_f.Z())); 271 275 272 276 for (i_f.X()=begin_f.X(); i_f.X()<end_f.X(); i_f.X()+=2) 273 for (i_f.Y()=begin_f.Y() -1; i_f.Y()<end_f.Y(); i_f.Y()+=2)277 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) 274 278 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = 0.5 * (rhs_f(i_f.X(),i_f.Y()-1,b1_f.Z()) + rhs_f(i_f.X(),i_f.Y()+1,b1_f.Z())); 275 279 276 for (i_f.X()=begin_f.X() -1; i_f.X()<end_f.X(); i_f.X()+=2)277 for (i_f.Y()=begin_f.Y() -1; i_f.Y()<end_f.Y(); i_f.Y()+=2)280 for (i_f.X()=begin_f.X()+1; i_f.X()<end_f.X(); i_f.X()+=2) 281 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) 278 282 rhs_f(i_f.X(),i_f.Y(),b1_f.Z()) = 0.25 * (rhs_f(i_f.X()-1,i_f.Y()-1,b1_f.Z()) + 279 283 rhs_f(i_f.X()+1,i_f.Y()-1,b1_f.Z()) + … … 293 297 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()) 294 298 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()) 295 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = 0.5 * (sol_c(i_c.X(),i_c.Y(),b2_c.Z() +1) - sol_f(i_f.X(),i_f.Y(),b2_f.Z()-1));296 297 for (i_f.X()=begin_f.X() -1; i_f.X()<end_f.X(); i_f.X()+=2)299 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = 0.5 * (sol_c(i_c.X(),i_c.Y(),b2_c.Z()) - sol_f(i_f.X(),i_f.Y(),b2_f.Z()-1)); 300 301 for (i_f.X()=begin_f.X()+1; i_f.X()<end_f.X(); i_f.X()+=2) 298 302 for (i_f.Y()=begin_f.Y(); i_f.Y()<end_f.Y(); i_f.Y()+=2) 299 303 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = 0.5 * (rhs_f(i_f.X()-1,i_f.Y(),b2_f.Z()) + rhs_f(i_f.X()+1,i_f.Y(),b2_f.Z())); 300 304 301 305 for (i_f.X()=begin_f.X(); i_f.X()<end_f.X(); i_f.X()+=2) 302 for (i_f.Y()=begin_f.Y() -1; i_f.Y()<end_f.Y(); i_f.Y()+=2)306 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) 303 307 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = 0.5 * (rhs_f(i_f.X(),i_f.Y()-1,b2_f.Z()) + rhs_f(i_f.X(),i_f.Y()+1,b2_f.Z())); 304 308 305 for (i_f.X()=begin_f.X() -1; i_f.X()<end_f.X(); i_f.X()+=2)306 for (i_f.Y()=begin_f.Y() -1; i_f.Y()<end_f.Y(); i_f.Y()+=2)309 for (i_f.X()=begin_f.X()+1; i_f.X()<end_f.X(); i_f.X()+=2) 310 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) 307 311 rhs_f(i_f.X(),i_f.Y(),b2_f.Z()) = 0.25 * (rhs_f(i_f.X()-1,i_f.Y()-1,b2_f.Z()) + 308 312 rhs_f(i_f.X()+1,i_f.Y()-1,b2_f.Z()) +
Note:
See TracChangeset
for help on using the changeset viewer.
