#include "DAGH.h" #include "t2.h" #define DIM 3 #define MaxLev 1 /* this routines will just initialize the grid variables and then invoke the mg solver, and determine the error after each cycle */ void main(INTEGER argc, CHARACTER *argv[]) { MPI_Init( &argc, &argv ); DOUBLE start = MPI_Wtime(); INTEGER nx ,ny ,nz,nplot; DOUBLE xmin,ymin,zmin,xmax,ymax,zmax,tmin,tmax; DOUBLE mass,tol; Array(2) bhr(1,1,2,3); Array(2) bhp(1,1,2,3); Array(2) bhs(1,1,2,3); // Characteristic functions INTEGER const nlmax = 6*(33*33+33*33+33*33) ; INTEGER nl; // DOUBLE d[3*nlmax]; // INTEGER m[3*nlmax]; INTEGER xi[nlmax],yj[nlmax],zk[nlmax]; DOUBLE fx[nlmax],fy[nlmax],fz[nlmax]; INTEGER i,j,k; DOUBLE dx,dy,dz; INTEGER it,nt,itsave; DOUBLE dt,dt2,dtdx,time; DOUBLE dtsave,timesave; DOUBLE bb[2*DIM]; DOUBLE bha[2]; // Debugging variables DOUBLE n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18; // Set up the Grid Structure INTEGER shape[DIM]; cout << "Begin TCODE run." << "\n" < g11("g11",t_sten2,s_sten,GH); SetTimeAlias(g11,1,-1); GridFunction(DIM) g12("g12",t_sten2,s_sten,GH); SetTimeAlias(g12,1,-1); GridFunction(DIM) g13("g13",t_sten2,s_sten,GH); SetTimeAlias(g13,1,-1); GridFunction(DIM) g22("g22",t_sten2,s_sten,GH); SetTimeAlias(g22,1,-1); GridFunction(DIM) g23("g23",t_sten2,s_sten,GH); SetTimeAlias(g23,1,-1); GridFunction(DIM) g33("g33",t_sten2,s_sten,GH); SetTimeAlias(g33,1,-1); GridFunction(DIM) gup11("gup11",t_sten,s_sten,GH); GridFunction(DIM) gup12("gup12",t_sten,s_sten,GH); GridFunction(DIM) gup13("gup13",t_sten,s_sten,GH); GridFunction(DIM) gup22("gup22",t_sten,s_sten,GH); GridFunction(DIM) gup23("gup23",t_sten,s_sten,GH); GridFunction(DIM) gup33("gup33",t_sten,s_sten,GH); GridFunction(DIM) k11("k11",t_sten2,s_sten,GH); SetTimeAlias(k11,1,-1); GridFunction(DIM) k12("k12",t_sten2,s_sten,GH); SetTimeAlias(k12,1,-1); GridFunction(DIM) k13("k13",t_sten2,s_sten,GH); SetTimeAlias(k13,1,-1); GridFunction(DIM) k21("k21",t_sten2,s_sten,GH); SetTimeAlias(k21,1,-1); GridFunction(DIM) k22("k22",t_sten2,s_sten,GH); SetTimeAlias(k22,1,-1); GridFunction(DIM) k23("k23",t_sten2,s_sten,GH); SetTimeAlias(k23,1,-1); GridFunction(DIM) k31("k31",t_sten2,s_sten,GH); SetTimeAlias(k31,1,-1); GridFunction(DIM) k32("k32",t_sten2,s_sten,GH); SetTimeAlias(k32,1,-1); GridFunction(DIM) k33("k33",t_sten2,s_sten,GH); SetTimeAlias(k33,1,-1); GridFunction(DIM) c111("c111",t_sten,s_sten,GH); GridFunction(DIM) c112("c112",t_sten,s_sten,GH); GridFunction(DIM) c113("c113",t_sten,s_sten,GH); GridFunction(DIM) c211("c211",t_sten,s_sten,GH); GridFunction(DIM) c212("c212",t_sten,s_sten,GH); GridFunction(DIM) c213("c213",t_sten,s_sten,GH); GridFunction(DIM) c222("c222",t_sten,s_sten,GH); GridFunction(DIM) c223("c223",t_sten,s_sten,GH); GridFunction(DIM) c233("c233",t_sten,s_sten,GH); GridFunction(DIM) c311("c311",t_sten,s_sten,GH); GridFunction(DIM) c312("c312",t_sten,s_sten,GH); GridFunction(DIM) c313("c313",t_sten,s_sten,GH); GridFunction(DIM) c322("c322",t_sten,s_sten,GH); GridFunction(DIM) c323("c323",t_sten,s_sten,GH); GridFunction(DIM) c333("c333",t_sten,s_sten,GH); GridFunction(DIM) c122("c122",t_sten,s_sten,GH); GridFunction(DIM) c123("c123",t_sten,s_sten,GH); GridFunction(DIM) c133("c133",t_sten,s_sten,GH); GridFunction(DIM) r11("r11",t_sten,s_sten,GH); GridFunction(DIM) r12("r12",t_sten,s_sten,GH); GridFunction(DIM) r13("r13",t_sten,s_sten,GH); GridFunction(DIM) r22("r22",t_sten,s_sten,GH); GridFunction(DIM) r23("r23",t_sten,s_sten,GH); GridFunction(DIM) r33("r33",t_sten,s_sten,GH); GridFunction(DIM) alpha("alpha",t_sten,s_sten,GH); GridFunction(DIM) beta1("beta1",t_sten,s_sten,GH); GridFunction(DIM) beta2("beta2",t_sten,s_sten,GH); GridFunction(DIM) beta3("beta3",t_sten,s_sten,GH); GridFunction(DIM) mask("mask",t_sten2,s_sten,GH); GridFunction(DIM) t11("t11",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) t12("t12",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) t13("t13",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) t21("t21",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) t22("t22",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) t23("t23",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) t31("t31",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) t32("t32",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) t33("t33",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) temp1("temp1",t_sten,s_sten,GH); GridFunction(DIM) temp2("temp2",t_sten,s_sten,GH); GridFunction(DIM) temp3("temp3",t_sten,s_sten,GH); /* Note that these arrays should only be one dimensional arrays */ GridFunction(DIM) m("m",t_sten,s_sten,GH,NO_COMM); GridFunction(DIM) d("d",t_sten,s_sten,GH,NO_COMM); DOUBLE hamnorm,mom1norm,mom2norm,mom3norm; INTEGER me = MY_PROC(GH); INTEGER num = NUM_PROC(GH); INTEGER t = 0, l = 0; time = (DOUBLE) 0.0; /******* INITIALIZATION ******/ if (me == 0) cout << "...Initialize data" << "\n" <