// pde_bihar44e_eq.java discretization solution biharmonic 4th order 4D // // solve uxxxx(x,y,z,t) + uyyyy(x,y,z,t) + // uzzzz(x,y,z,t) + utttt(x,y,z,t) + // 2*uxx(x,y,z,t) + 2*uyy(x,y,z,t) + 2*uzz(x,y,z,t) + // 2*utt(x,y,z,t) + 2*u(x,y,z,t) = f(x,y,z,t) // // f(x,y,z,t) := (y^4*z^4*t^4+ // x^4*z^4*t^4+ // x^4*y^4*t^4+ // x^4*y^4*z^4+ // 2*y^2*z^2*t^2+ // 2*x^2*z^2*t^2+ // 2*x^2*y^2*t^2+ // 2*x^2*y^2*z^2+ // 2) *exp(x*y*z*t) // // in the hyper cube xmin< x maxerr) maxerr = err; avgerr = avgerr + err; System.out.println("ug["+i+","+ii+","+iii+","+iiii+"]="+ ug[i4]+", Ua="+Ua[i4]+", err="+(ug[i4]-Ua[i4])); } } } } System.out.println("xmax="+xmax+", ymax="+ymax+", nx="+nx+", ny="+ny); System.out.println("zmax="+zmax+", tmax="+tmax+", nz="+nz+", nt="+nt); System.out.println(" maxerr="+maxerr+", avgerr="+ avgerr/(double)(nxyzt)); System.out.println(""); } // end pde_bihar44e_eq constructor int s(int i, int ii, int iii, int iiii) // index 1..nx-1 etc { return (i-1)*(ny-2)*(nz-2)*(nt-2) + (ii-1)*(nz-2)*(nt-2) + (iii-1)*(nt-2) + (iiii-1); } // end s // PDE problem definition functions f and ub double F(double x, double y, double z, double t) { return (y*y*y*y*z*z*z*z*t*t*t*t + x*x*x*x*z*z*z*z*t*t*t*t + x*x*x*x*y*y*y*y*t*t*t*t + x*x*x*x*y*y*y*y*z*z*z*z + 2.0*y*y*z*z*t*t + 2.0*x*x*z*z*t*t + 2.0*x*x*y*y*t*t + 2.0*x*x*y*y*z*z + 2.0 ) * Math.exp(x*y*z*t); } double ub(double x, double y, double z, double t) { return Math.exp(x*y*z*t); } void discretize(int i, int ii, int iii, int iiii) // sets kg[s(i,ii,iii,iiii)][s(j,jj,jjj, jjjj)...] // this code unique to this specific PDE { int i4; double val; i4 = s(i,ii,iii,iiii); // equation index if(debug) System.out.println("discretize equation i4="+i4); // for each term in each equation // for uxxxx d^4u/dx^4 for(int j=0; j