Changeset dfed1c for src/smoother/gs.cpp
- Timestamp:
- Nov 22, 2011, 9:22:10 PM (14 years ago)
- Children:
- facba0
- Parents:
- 66f24d
- File:
-
- 1 edited
-
src/smoother/gs.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/smoother/gs.cpp
r66f24d rdfed1c 24 24 void GaussSeidel::Compute(Grid& sol, Grid& rhs) 25 25 { 26 #ifdef DEBUG 26 #ifdef DEBUG_MATRIX_CHECKS 27 27 sol.IsConsistent(); 28 28 rhs.IsConsistent(); … … 30 30 #endif 31 31 32 int i,j,k; 32 Grid::iterator grid_iter; 33 Stencil::iterator stencil_iter; 33 34 vmg_float temp; 34 35 … … 37 38 const vmg_float diag_inv = 1.0 / A.GetDiag(); 38 39 39 for (i=rhs.Local().Begin().X(); i<rhs.Local().End().X(); i++) 40 for (j=rhs.Local().Begin().Y(); j<rhs.Local().End().Y(); j++) 41 for (k=rhs.Local().Begin().Z(); k<rhs.Local().End().Z(); k++) { 40 for (grid_iter = rhs.Iterators().Local().Begin(); grid_iter != rhs.Iterators().Local().End(); ++grid_iter) { 42 41 43 temp = prefactor_inv * rhs.GetCorrectedVal(i, j, k);42 temp = prefactor_inv * rhs.GetCorrectedVal(*grid_iter); 44 43 45 for (Stencil::iterator iter=A.begin(); iter!=A.end(); iter++) { 44 for (stencil_iter=A.begin(); stencil_iter!=A.end(); ++stencil_iter) 45 temp -= stencil_iter->Val() * sol.GetVal(*grid_iter + stencil_iter->Disp()); 46 46 47 assert(i+iter->m >= 0 && i+iter->m < sol.Local().SizeTotal().X()); 48 assert(j+iter->n >= 0 && j+iter->n < sol.Local().SizeTotal().Y()); 49 assert(k+iter->o >= 0 && k+iter->o < sol.Local().SizeTotal().Z()); 47 sol(*grid_iter) = temp * diag_inv; 50 48 51 temp -= iter->val * sol.GetVal(i+iter->m, j+iter->n, k+iter->o); 52 53 } 54 55 sol(i, j, k) = temp * diag_inv; 56 57 } 49 } 58 50 }
Note:
See TracChangeset
for help on using the changeset viewer.
