/******************************************************** % % Written by: % -- % John L. Weatherwax 2006-09-24 % % email: wax@alum.mit.edu % % Please send comments and especially bug reports to the % above email address. % %----- Some simple debugging code used to test some very simple cases on a 2x2 processor grid. */ #include #include #include "mpi.h" #include "global_grid.h" #include "sim_consts.h" #include "supplyDebuggingInitialConditions.h" void supplyDebuggingInitialConditions(void){ #ifdef __FALSE__ /* Debugging Case: two lone points in one processor WWX (2006-09-27): seems to be working */ if( procInfo.my_rank==0 ){ procInfo.NbPP = 2; procInfo.px[0] = 10; procInfo.py[0] = 50; procInfo.px[1] = 30; procInfo.py[1] = 70; }else{ procInfo.NbPP = 0; } /* Debugging Case: two points that are NW <-> SE neighbors WWX (2006-09-27): seems to be working */ if( procInfo.my_rank==0 ){ procInfo.NbPP = 1; procInfo.px[0] = 38; procInfo.py[0] = 42; }else if( procInfo.my_rank==3 ){ procInfo.NbPP = 1; procInfo.px[0] = 42; procInfo.py[0] = 38; }else{ procInfo.NbPP = 0; } /* Debugging Case: two points that are N <-> S neighbors WWX (2006-09-27): seems to be working */ if( procInfo.my_rank==0 ){ procInfo.NbPP = 1; procInfo.px[0] = 20; procInfo.py[0] = 42; }else if( procInfo.my_rank==2 ){ procInfo.NbPP = 1; procInfo.px[0] = 20; procInfo.py[0] = 38; }else{ procInfo.NbPP = 0; } /* Debugging Case: two points that are SW <-> NE neighbors WWX (2006-09-27): seems to be working */ if( procInfo.my_rank==1 ){ procInfo.NbPP = 1; procInfo.px[0] = 42; procInfo.py[0] = 42; }else if( procInfo.my_rank==2 ){ procInfo.NbPP = 1; procInfo.px[0] = 38; procInfo.py[0] = 38; }else{ procInfo.NbPP = 0; } /* Debugging Case: two points that are E <-> W neighbors: WWX (2006-09-26): seems to be working */ if( procInfo.my_rank==0 ){ procInfo.NbPP = 1; procInfo.px[0] = 38; procInfo.py[0] = 60; }else if( procInfo.my_rank==1 ){ procInfo.NbPP = 1; procInfo.px[0] = 41; procInfo.py[0] = 70; /* midpoint is NOT on box boundary */ /*procInfo.px[0] = 42; procInfo.py[0] = 70;*/ /* midpoint lies ON a box boundary */ }else{ procInfo.NbPP = 0; } /* Debugging Case: simplest case that I could find that gave different results (2006-09-28) ... */ switch (procInfo.my_rank){ case 0: procInfo.NbPP = 1; procInfo.px[0] = 14.591379; procInfo.py[0] = 60.536037; break; case 1: procInfo.NbPP = 1; procInfo.px[0] = 54.591377; procInfo.py[0] = 60.536037; break; case 2: procInfo.NbPP = 1; procInfo.px[0] = 10.853468; procInfo.py[0] = 2.786239; break; case 3: procInfo.NbPP = 1; procInfo.px[0] = 47.052933; procInfo.py[0] = 25.046650; break; default: fprintf(stderr,"No rank of that order..."); } #endif /* what happens if particles migrate OUTSIDE of their boxes */ if( procInfo.my_rank==3 ){ procInfo.px[0] = 90; procInfo.py[0] = 20; /* overwrite this particle */ } }