int TestStvenantFp(void){ int test= (1==1); // creation of a simple shallow water model Model tr; tr.m=1; // only one conservative variable tr.NumFlux=TransportNumFlux; tr.BoundaryFlux=TestTransportBoundaryFlux; tr.InitData=TestTransportInitData; tr.ImposedData=TestTransportImposedData; double wL[tr.m]; double wR[tr.m]; double flux1[tr.m],flux2[tr.m]; double x[3]={1,1,2}; double t=0; double vn[3]={1/sqrt(3),1/sqrt(3),-1/sqrt(3)}; tr.InitData(x,wR); tr.NumFlux(wL,wR,vn,flux1); printf("NumFlux %f \n",flux1[0]); tr.BoundaryFlux(x,t,wL,vn,flux2); printf("BoundaryFlux %f \n",flux2[0]); double err=fabs(flux2[0]-flux1[0]); test=(err < 1e-8); return test; };
int TestModel(void){ int test = true; // Creation of a simple transport model Model tr; tr.cfl = 0.05; tr.m = 1; // only one conservative variable tr.NumFlux = TransNumFlux; tr.BoundaryFlux = TestTransBoundaryFlux; tr.InitData = TestTransInitData; tr.ImposedData = TestTransImposedData; real wL[tr.m]; real wR[tr.m]; real flux1[tr.m], flux2[tr.m]; real x[3] = {1, 1, 2}; real t = 0; real vn[3] = {sqrt(1.0 / 3.0), sqrt(1.0 / 3.0), sqrt(1.0 / 3.0)}; real vmax = 1.0; tr.InitData(x, wR); tr.NumFlux(wL, wR, vn, flux1); printf("NumFlux %f \n", flux1[0]); tr.BoundaryFlux(x, t, wL, vn, flux2); printf("BoundaryFlux %f \n", flux2[0]); real err = fabs(flux2[0] - flux1[0]); test = (err < 1e-8); return test; };
int TestModel() { int retval = 0; // Creation of a simple transport model Model tr; tr.cfl = 0.05; tr.m = 1; // only one conservative variable tr.NumFlux = TransNumFlux; tr.BoundaryFlux = TestTransBoundaryFlux; tr.InitData = TestTransInitData; tr.ImposedData = TestTransImposedData; real wL[tr.m]; real wR[tr.m]; real nflux[tr.m]; real bflux[tr.m]; for(int iv = 0; iv < tr.m; ++iv) { wL[iv] = 0.0; wR[iv] = 0.0; nflux[iv] = 0.0; bflux[iv] = 0.0; } real x[3] = {1.0, 1.0, 2.0}; real t = 0.0; real vn[3] = {sqrt(1.0 / 3.0), sqrt(1.0 / 3.0), sqrt(1.0 / 3.0)}; tr.InitData(x, wR); tr.NumFlux(wL, wR, vn, nflux); printf("NumFlux %f \n", nflux[0]); tr.BoundaryFlux(x, t, wL, vn, bflux); printf("BoundaryFlux %f \n", bflux[0]); real err = fabs(bflux[0] - nflux[0]); if(err > 1e-8) retval++; return retval; }