Changeset 8180d8 for src/samples/discretization_poisson_fv.cpp
- Timestamp:
- Apr 5, 2013, 12:39:30 PM (13 years ago)
- Children:
- 4a709e
- Parents:
- f57182
- File:
-
- 1 edited
-
src/samples/discretization_poisson_fv.cpp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/samples/discretization_poisson_fv.cpp
rf57182 r8180d8 33 33 #endif 34 34 35 #include "grid/grid_index_translations.hpp" 35 36 #include "samples/discretization_poisson_fv.hpp" 36 37 … … 98 99 void DiscretizationPoissonFV::SetInnerBoundaryCompute(Grid& sol_f, Grid& rhs_f, Grid& sol_c) const 99 100 { 101 /* 102 //FIXME 100 103 Index i_c, i_f; 101 104 102 const Vector h2_inv = 0.5 / sol_f.Extent().MeshWidth(); 103 105 Index b1_c, b2_c, b1_f, b2_f; 106 GridIndexTranslations::GetInnerBoundary(sol_c, b1_c, b2_c, sol_f, b1_f, b2_f); 107 */ 108 /* 104 109 const Index b1_c = sol_c.Local().FinerBegin(); 105 110 const Index b2_c = sol_c.Local().FinerEnd() - 1; 106 111 const Index b1_f = 0; 107 112 const Index b2_f = rhs_f.Local().SizeTotal() - 1; 108 109 const Index& begin_f = sol_f.Local().Begin(); 110 const Index& end_f = sol_f.Local().End(); 111 const Index& begin_c = sol_c.Local().FinerBegin(); 112 113 */ 114 115 /* 116 const Index begin_f = sol_f.Local().Begin(); 117 const Index end_f = sol_f.Local().End(); 118 const Index begin_c = sol_c.Local().FinerBegin(); 119 120 const Vector h2_inv = 0.5 / sol_f.Extent().MeshWidth(); 113 121 const vmg_float c_1_3 = 1.0 / 3.0; 114 122 const Vector c_2_3_sp = 2.0 / 3.0 * sol_f.Extent().MeshWidth(); … … 145 153 146 154 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) + 147 rhs_f(b1_f.X(),i_f.Y()+1,i_f.Z()-1) +148 rhs_f(b1_f.X(),i_f.Y()-1,i_f.Z()+1) +149 rhs_f(b1_f.X(),i_f.Y()+1,i_f.Z()+1));155 rhs_f(b1_f.X(),i_f.Y()+1,i_f.Z()-1) + 156 rhs_f(b1_f.X(),i_f.Y()-1,i_f.Z()+1) + 157 rhs_f(b1_f.X(),i_f.Y()+1,i_f.Z()+1)); 150 158 151 159 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) + 152 rhs_f(b2_f.X(),i_f.Y()+1,i_f.Z()-1) +153 rhs_f(b2_f.X(),i_f.Y()-1,i_f.Z()+1) +154 rhs_f(b2_f.X(),i_f.Y()+1,i_f.Z()+1));160 rhs_f(b2_f.X(),i_f.Y()+1,i_f.Z()-1) + 161 rhs_f(b2_f.X(),i_f.Y()-1,i_f.Z()+1) + 162 rhs_f(b2_f.X(),i_f.Y()+1,i_f.Z()+1)); 155 163 } 156 164 … … 159 167 160 168 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()) + 161 c_4_3 * sol_f(b1_f.X()+1,i_f.Y(),i_f.Z()) -162 c_1_3 * sol_f(b1_f.X()+2,i_f.Y(),i_f.Z());169 c_4_3 * sol_f(b1_f.X()+1,i_f.Y(),i_f.Z()) - 170 c_1_3 * sol_f(b1_f.X()+2,i_f.Y(),i_f.Z()); 163 171 164 172 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()) + 165 c_4_3 * sol_f(b2_f.X()-1,i_f.Y(),i_f.Z()) -166 c_1_3 * sol_f(b2_f.X()-2,i_f.Y(),i_f.Z());173 c_4_3 * sol_f(b2_f.X()-1,i_f.Y(),i_f.Z()) - 174 c_1_3 * sol_f(b2_f.X()-2,i_f.Y(),i_f.Z()); 167 175 } 168 176 … … 194 202 195 203 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) + 196 rhs_f(i_f.X()+1,b1_f.Y(),i_f.Z()-1) +197 rhs_f(i_f.X()-1,b1_f.Y(),i_f.Z()+1) +198 rhs_f(i_f.X()+1,b1_f.Y(),i_f.Z()+1));204 rhs_f(i_f.X()+1,b1_f.Y(),i_f.Z()-1) + 205 rhs_f(i_f.X()-1,b1_f.Y(),i_f.Z()+1) + 206 rhs_f(i_f.X()+1,b1_f.Y(),i_f.Z()+1)); 199 207 200 208 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) + 201 rhs_f(i_f.X()+1,b2_f.Y(),i_f.Z()-1) +202 rhs_f(i_f.X()-1,b2_f.Y(),i_f.Z()+1) +203 rhs_f(i_f.X()+1,b2_f.Y(),i_f.Z()+1));209 rhs_f(i_f.X()+1,b2_f.Y(),i_f.Z()-1) + 210 rhs_f(i_f.X()-1,b2_f.Y(),i_f.Z()+1) + 211 rhs_f(i_f.X()+1,b2_f.Y(),i_f.Z()+1)); 204 212 } 205 213 … … 208 216 209 217 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()) + 210 c_4_3 * sol_f(i_f.X(),b1_f.Y()+1,i_f.Z()) -211 c_1_3 * sol_f(i_f.X(),b1_f.Y()+2,i_f.Z());218 c_4_3 * sol_f(i_f.X(),b1_f.Y()+1,i_f.Z()) - 219 c_1_3 * sol_f(i_f.X(),b1_f.Y()+2,i_f.Z()); 212 220 213 221 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()) + 214 c_4_3 * sol_f(i_f.X(),b2_f.Y()-1,i_f.Z()) -215 c_1_3 * sol_f(i_f.X(),b2_f.Y()-2,i_f.Z());222 c_4_3 * sol_f(i_f.X(),b2_f.Y()-1,i_f.Z()) - 223 c_1_3 * sol_f(i_f.X(),b2_f.Y()-2,i_f.Z()); 216 224 } 217 225 … … 242 250 for (i_f.Y()=begin_f.Y()+1; i_f.Y()<end_f.Y(); i_f.Y()+=2) { 243 251 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()) + 244 rhs_f(i_f.X()+1,i_f.Y()-1,b1_f.Z()) +245 rhs_f(i_f.X()-1,i_f.Y()+1,b1_f.Z()) +246 rhs_f(i_f.X()+1,i_f.Y()+1,b1_f.Z()));252 rhs_f(i_f.X()+1,i_f.Y()-1,b1_f.Z()) + 253 rhs_f(i_f.X()-1,i_f.Y()+1,b1_f.Z()) + 254 rhs_f(i_f.X()+1,i_f.Y()+1,b1_f.Z())); 247 255 248 256 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()) + 249 rhs_f(i_f.X()+1,i_f.Y()-1,b2_f.Z()) +250 rhs_f(i_f.X()-1,i_f.Y()+1,b2_f.Z()) +251 rhs_f(i_f.X()+1,i_f.Y()+1,b2_f.Z()));257 rhs_f(i_f.X()+1,i_f.Y()-1,b2_f.Z()) + 258 rhs_f(i_f.X()-1,i_f.Y()+1,b2_f.Z()) + 259 rhs_f(i_f.X()+1,i_f.Y()+1,b2_f.Z())); 252 260 } 253 261 … … 256 264 257 265 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()) + 258 c_4_3 * sol_f(i_f.X(),i_f.Y(),b1_f.Z()+1) -259 c_1_3 * sol_f(i_f.X(),i_f.Y(),b1_f.Z()+2);266 c_4_3 * sol_f(i_f.X(),i_f.Y(),b1_f.Z()+1) - 267 c_1_3 * sol_f(i_f.X(),i_f.Y(),b1_f.Z()+2); 260 268 261 269 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()) + 262 c_4_3 * sol_f(i_f.X(),i_f.Y(),b2_f.Z()-1) -263 c_1_3 * sol_f(i_f.X(),i_f.Y(),b2_f.Z()-2);264 } 265 270 c_4_3 * sol_f(i_f.X(),i_f.Y(),b2_f.Z()-1) - 271 c_1_3 * sol_f(i_f.X(),i_f.Y(),b2_f.Z()-2); 272 } 273 */ 266 274 #ifdef DEBUG_MATRIX_CHECKS 267 275 rhs_f.IsConsistent();
Note:
See TracChangeset
for help on using the changeset viewer.
