HyPar  1.0
Finite-Difference Hyperbolic-Parabolic PDE Solver on Cartesian Grids
2D Euler Equations - Isentropic Vortex Convection - Ensemble Simulation

Location: hypar/Examples/2D/NavierStokes2D/InviscidVortexConvection_Ensemble (This directory contains all the input files needed to run this case.)

Governing equations: 2D Euler Equations (navierstokes2d.h - By default, NavierStokes2D::Re is set to -1 which makes the code skip the parabolic terms, i.e., the 2D Euler equations are solved.)

Reference: C.-W. Shu, "Essentially Non-oscillatory and Weighted Essentially Non-oscillatory Schemes for Hyperbolic Conservation Laws", ICASE Report 97-65, 1997

Domain: \(0 \le x,y \le 10\), "periodic" (_PERIODIC_) boundary conditions.

Initial solution: The freestream flow is given by

\begin{equation} \rho_\infty = 1,\ u_\infty = 0.1,\ v_\infty = 0,\ p_\infty = 1 \end{equation}

and a vortex is introduced, specified as

\begin{align} \rho &= \left[ 1 - \frac{\left(\gamma-1\right)b^2}{8\gamma\pi^2} e^{1-r^2} \right]^{\frac{1}{\gamma-1}},\ p = \rho^\gamma, \\ u &= u_\infty - \frac{b}{2\pi} e^{\frac{1}{2}\left(1-r^2\right)} \left(y-y_c\right),\ v = v_\infty + \frac{b}{2\pi} e^{\frac{1}{2}\left(1-r^2\right)} \left(x-x_c\right), \end{align}

where \(b=0.5\) is the vortex strength and \(r = \left[(x-x_c)^2 + (y-y_c)^2 \right]^{1/2}\) is the distance from the vortex center \(\left(x_c,y_c\right) = \left(5,5\right)\).

Ensemble Runs: 4 simulations on grids with (128,16), (64,32), (32,64), and (16,128) points.

Numerical method:

Input files required:

simulation.inp

begin
nsims 4
end

solver.inp

begin
ndims 2
nvars 4
size 128 16
64 32
32 64
16 128
iproc 8 1
4 2
2 4
1 8
ghost 3
n_iter 800
restart_iter 0
time_scheme rk
time_scheme_type 44
hyp_space_scheme upw5
hyp_flux_split no
hyp_interp_type components
par_space_type nonconservative-2stage
par_space_scheme 4
dt 0.025
conservation_check yes
screen_op_iter 10
file_op_iter 80
input_mode serial
ip_file_type binary
output_mode serial
op_file_format tecplot2d
op_overwrite no
model navierstokes2d
end

boundary.inp

4
periodic 0 1 0 0 0 10.0
periodic 0 -1 0 0 0 10.0
periodic 1 1 0 10.0 0 0
periodic 1 -1 0 10.0 0 0

physics.inp

begin
gamma 1.4
upwinding roe
end

To generate initial_<n>.inp (initial solution) and exact_<n>.inp (exact solution), compile and run the following code in the run directory.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define _MAX_STRING_SIZE_ 200
void GetStringFromInteger(int a, char *A, int width)
{
int i;
for (i=0; i<width; i++) {
char digit = (char) (a%10 + '0');
a /= 10;
A[width-1-i] = digit;
}
A[width] = 0;
return;
}
double power(double x,double a)
{
return(exp(a*log(x)));
}
int main(){
const double pi = 4.0*atan(1.0);
const double GAMMA = 1.4;
int *NI, *NJ, ndims, ns, nsims, n_iter;
double tf, dt;
char ip_file_type[50];
FILE *in, *out;
/* default values */
nsims = 1;
strcpy(ip_file_type,"binary");
/* find out the number of simulation domains */
printf("Reading file \"simulation.inp\" if available.\n");
in = fopen("simulation.inp","r");
if (in) {
char word[500];
fscanf(in,"%s",word);
if (!strcmp(word, "begin")){
while (strcmp(word, "end")){
fscanf(in,"%s",word);
if (!strcmp(word, "nsims")) fscanf(in,"%d",&nsims);
}
} else printf("Error: Illegal format in solver.inp. Crash and burn!\n");
}
printf("Number of simulation domains: %d\n", nsims);
NI = (int*) calloc (nsims, sizeof(int));
NJ = (int*) calloc (nsims, sizeof(int));
printf("Reading file \"solver.inp\"...\n");
in = fopen("solver.inp","r");
if (!in) {
printf("Error: Input file \"solver.inp\" not found.");
return(0);
} else {
char word[500];
fscanf(in,"%s",word);
if (!strcmp(word, "begin")) {
while (strcmp(word, "end")) {
fscanf(in,"%s",word);
if (!strcmp(word, "ndims")) {
fscanf(in,"%d",&ndims);
} else if (!strcmp(word, "size")) {
for (ns = 0; ns < nsims; ns++) {
fscanf(in, "%d", (NI+ns));
fscanf(in, "%d", (NJ+ns));
}
} else if (!strcmp(word, "n_iter")) {
fscanf(in,"%d",&n_iter);
} else if (!strcmp(word, "dt")) {
fscanf(in,"%lf",&dt);
} else if (!strcmp(word, "ip_file_type")) {
fscanf(in,"%s",ip_file_type);
}
}
} else printf("Error: Illegal format in solver.inp. Crash and burn!\n");
}
fclose(in);
if (ndims != 2) {
printf("ndims is not 2 in solver.inp. this code is to generate 2D exact solution\n");
return(0);
}
if (nsims == 1) {
printf("Grid:\t\t\t%d\n",NI[0], NJ[0]);
} else {
printf("Grid sizes:\n");
for (ns = 0; ns < nsims; ns++) printf("\t%d X %d\n", NI[ns], NJ[ns]);
}
tf = (double)n_iter * dt; double tff = tf;
while (tf > 20) tf -= 20; // Time period
for (ns = 0; ns < nsims; ns++) {
int Ni = NI[ns];
int Nj = NJ[ns];
int i,j;
double dx = 10.0 / ((double)Ni);
double dy = 10.0 / ((double)Nj);
double *x, *y, *u0, *u1, *u2, *u3;
x = (double*) calloc (Ni , sizeof(double));
y = (double*) calloc (Nj , sizeof(double));
u0 = (double*) calloc (Ni*Nj, sizeof(double));
u1 = (double*) calloc (Ni*Nj, sizeof(double));
u2 = (double*) calloc (Ni*Nj, sizeof(double));
u3 = (double*) calloc (Ni*Nj, sizeof(double));
double u_inf = 0.5;
double v_inf = 0.0;
double b = u_inf;
double x0, y0;
{
/* Initial solution */
x0 = 5.0, y0 = 5.0;
for (i = 0; i < Ni; i++){
for (j = 0; j < Nj; j++){
x[i] = i*dx;
y[j] = j*dy;
int p = Nj*i + j;
double rx, ry;
rx = (x[i] - x0);
ry = (y[j] - y0);
if (rx < -5) { rx += 10; }
else if (rx > 5) { rx -= 10; }
double rsq = rx*rx + ry*ry;
double rho, u, v, P;
double du, dv;
rho = power(1.0 - ((GAMMA-1.0)*b*b)/(8.0*GAMMA*pi*pi) * exp(1.0-rsq), 1.0/(GAMMA-1.0));
P = power(rho,GAMMA);
du = - b/(2.0*pi) * exp(0.5*(1.0-rsq)) * ry;
dv = b/(2.0*pi) * exp(0.5*(1.0-rsq)) * rx;
u = u_inf + du;
v = v_inf + dv;
u0[p] = rho;
u1[p] = rho*u;
u2[p] = rho*v;
u3[p] = P/(GAMMA-1.0) + 0.5*rho*(u*u+v*v);
}
}
char fname[_MAX_STRING_SIZE_] = "initial";
if (nsims > 1) {
char index[_MAX_STRING_SIZE_];
GetStringFromInteger(ns, index, (int)log10(nsims)+1);
strcat(fname, "_");
strcat(fname, index);
}
strcat(fname, ".inp");
if (!strcmp(ip_file_type,"ascii")) {
printf("Writing ASCII initial solution file %s\n", fname);
out = fopen(fname,"w");
for (i = 0; i < Ni; i++) fprintf(out,"%lf ",x[i]);
fprintf(out,"\n");
for (j = 0; j < Nj; j++) fprintf(out,"%lf ",y[j]);
fprintf(out,"\n");
for (j = 0; j < Nj; j++) {
for (i = 0; i < Ni; i++) {
int p = Nj*i + j;
fprintf(out,"%lf ",u0[p]);
}
}
fprintf(out,"\n");
for (j = 0; j < Nj; j++) {
for (i = 0; i < Ni; i++) {
int p = Nj*i + j;
fprintf(out,"%lf ",u1[p]);
}
}
fprintf(out,"\n");
for (j = 0; j < Nj; j++) {
for (i = 0; i < Ni; i++) {
int p = Nj*i + j;
fprintf(out,"%lf ",u2[p]);
}
}
fprintf(out,"\n");
for (j = 0; j < Nj; j++) {
for (i = 0; i < Ni; i++) {
int p = Nj*i + j;
fprintf(out,"%lf ",u3[p]);
}
}
fprintf(out,"\n");
fclose(out);
} else if ((!strcmp(ip_file_type,"binary")) || (!strcmp(ip_file_type,"bin"))) {
printf("Writing binary initial solution file %s\n", fname);
out = fopen(fname,"wb");
fwrite(x,sizeof(double),Ni,out);
fwrite(y,sizeof(double),Nj,out);
double *U = (double*) calloc (4*Ni*Nj,sizeof(double));
for (i=0; i < Ni; i++) {
for (j = 0; j < Nj; j++) {
int p = Nj*i + j;
int q = Ni*j + i;
U[4*q+0] = u0[p];
U[4*q+1] = u1[p];
U[4*q+2] = u2[p];
U[4*q+3] = u3[p];
}
}
fwrite(U,sizeof(double),4*Ni*Nj,out);
free(U);
fclose(out);
}
}
{
/* Exact solution */
x0 = 5.0+tf*u_inf, y0 = 5.0;
if (x0 > 10) x0 -= 10; //periodic domain
printf("Final time: %lf, Vortex center: %lf, %lf\n",tff,x0,y0);
for (i = 0; i < Ni; i++){
for (j = 0; j < Nj; j++){
x[i] = i*dx;
y[j] = j*dy;
int p = Nj*i + j;
double rx, ry;
rx = (x[i] - x0);
ry = (y[j] - y0);
if (rx < -5) { rx += 10; }
else if (rx > 5) { rx -= 10; }
double rsq = rx*rx + ry*ry;
double rho, u, v, P;
double du, dv;
rho = power(1.0 - ((GAMMA-1.0)*b*b)/(8.0*GAMMA*pi*pi) * exp(1.0-rsq), 1.0/(GAMMA-1.0));
P = power(rho,GAMMA);
du = - b/(2.0*pi) * exp(0.5*(1.0-rsq)) * ry;
dv = b/(2.0*pi) * exp(0.5*(1.0-rsq)) * rx;
u = u_inf + du;
v = v_inf + dv;
u0[p] = rho;
u1[p] = rho*u;
u2[p] = rho*v;
u3[p] = P/(GAMMA-1.0) + 0.5*rho*(u*u+v*v);
}
}
char fname[_MAX_STRING_SIZE_] = "exact";
if (nsims > 1) {
char index[_MAX_STRING_SIZE_];
GetStringFromInteger(ns, index, (int)log10(nsims)+1);
strcat(fname, "_");
strcat(fname, index);
}
strcat(fname, ".inp");
if (!strcmp(ip_file_type,"ascii")) {
printf("Writing ASCII exact solution file %s\n", fname);
out = fopen(fname,"w");
for (i = 0; i < Ni; i++) fprintf(out,"%lf ",x[i]);
fprintf(out,"\n");
for (j = 0; j < Nj; j++) fprintf(out,"%lf ",y[j]);
fprintf(out,"\n");
for (j = 0; j < Nj; j++) {
for (i = 0; i < Ni; i++) {
int p = Nj*i + j;
fprintf(out,"%lf ",u0[p]);
}
}
fprintf(out,"\n");
for (j = 0; j < Nj; j++) {
for (i = 0; i < Ni; i++) {
int p = Nj*i + j;
fprintf(out,"%lf ",u1[p]);
}
}
fprintf(out,"\n");
for (j = 0; j < Nj; j++) {
for (i = 0; i < Ni; i++) {
int p = Nj*i + j;
fprintf(out,"%lf ",u2[p]);
}
}
fprintf(out,"\n");
for (j = 0; j < Nj; j++) {
for (i = 0; i < Ni; i++) {
int p = Nj*i + j;
fprintf(out,"%lf ",u3[p]);
}
}
fprintf(out,"\n");
fclose(out);
} else if ((!strcmp(ip_file_type,"binary")) || (!strcmp(ip_file_type,"bin"))) {
printf("Writing binary exact solution file %s\n", fname);
out = fopen(fname,"wb");
fwrite(x,sizeof(double),Ni,out);
fwrite(y,sizeof(double),Nj,out);
double *U = (double*) calloc (4*Ni*Nj,sizeof(double));
for (i=0; i < Ni; i++) {
for (j = 0; j < Nj; j++) {
int p = Nj*i + j;
int q = Ni*j + i;
U[4*q+0] = u0[p];
U[4*q+1] = u1[p];
U[4*q+2] = u2[p];
U[4*q+3] = u3[p];
}
}
fwrite(U,sizeof(double),4*Ni*Nj,out);
free(U);
fclose(out);
}
}
free(x);
free(y);
free(u0);
free(u1);
free(u2);
free(u3);
}
free(NI);
free(NJ);
return(0);
}

The index n is the simulation index (0, ..., 3 in this case).

Output:

Note that iproc for each simulation are specified as:

  8 1
  4 2
  2 4
  1 8

in solver.inp Thus, this example should be run with 8 MPI ranks (or change iproc).

After running the code, there should be 44 output files op_<n>_00000.dat, op_<n>_00001.dat, ... op_<n>_00010.dat, with 11 files for each of the 4 simulations in the set; the first one is the solution at \(t=0\) and the final one is the solution at \(t=20\). Since HyPar::op_overwrite is set to no in solver.inp, separate files are written for solutions at each output time.

HyPar::op_file_format is set to tecplot2d in solver.inp, and thus, all the files are in a format that Tecplot (http://www.tecplot.com/) or other visualization software supporting the Tecplot format (e.g. VisIt - https://wci.llnl.gov/simulation/computer-codes/visit/) can read. In these files, the first two lines are the Tecplot headers, after which the data is written out as: the first two columns are grid indices, the next two columns are x and y coordinates, and the remaining columns are the solution components. HyPar::op_file_format can be set to text to get the solution files in plain text format (which can be read in and visualized in MATLAB for example).

The following animation shows the density contours as the vortex convects over the domain, for each of the 4 simulations:

Solution_md_2DNavStokVortex_0.gif
Solution_md_2DNavStokVortex_1.gif
Solution_md_2DNavStokVortex_2.gif
Solution_md_2DNavStokVortex_3.gif

Since the exact solution is available at the final time, the numerical errors are calculated and reported on screen (see below) as well as errors_<n>.dat:

128 16 8 1 2.5000000000000001E-02 4.1238244275162105E-04 6.6048850300174722E-04 2.8208016839606949E-03 7.2514700000000003E+00 7.2883789999999999E+00
64 32 4 2 2.5000000000000001E-02 2.2556689331766041E-05 4.0247800079219933E-05 2.0848669144594750E-04 7.2514700000000003E+00 7.2883789999999999E+00
32 64 2 4 2.5000000000000001E-02 5.4507507453902390E-05 1.1949237026544009E-04 6.6465958194586591E-04 7.2514700000000003E+00 7.2883789999999999E+00
16 128 1 8 2.5000000000000001E-02 8.0060438500059586E-04 1.4963661436511748E-03 7.7062334587321086E-03 7.2514700000000003E+00 7.2883789999999999E+00

The numbers for each simulation are: number of grid points in each dimension (HyPar::dim_global), number of processors in each dimension (MPIVariables::iproc), time step size (HyPar::dt), L1, L2, and L-infinity errors (HyPar::error), solver wall time (seconds) (i.e., not accounting for initialization, and cleaning up), and total wall time.

Since HyPar::ConservationCheck is set to yes in solver.inp, the code checks for conservation error and prints it to screen, as well as the file conservation_<n>.dat:

128 16 8 1 2.5000000000000001E-02 1.4213597362969310E-16 1.4213596274004524E-16 1.3530843112619095E-16 0.0000000000000000E+00
64 32 4 2 2.5000000000000001E-02 2.8427194725970949E-16 0.0000000000000000E+00 4.0245584642661925E-16 2.1658175950297532E-16
32 64 2 4 2.5000000000000001E-02 0.0000000000000000E+00 7.1067985453721403E-16 6.0541849311590568E-16 4.3316351979608274E-16
16 128 1 8 2.5000000000000001E-02 2.8427194725938616E-16 4.2640791680546264E-16 4.7403351860139664E-17 2.1658176009253655E-16

The numbers are: number of grid points in each dimension (HyPar::dim_global), number of processors in each dimension (MPIVariables::iproc), time step size (HyPar::dt), and conservation error (HyPar::ConservationError) of each component.

Expected screen output:

HyPar - Parallel (MPI) version with 8 processes
Compiled with PETSc time integration.
-- Ensemble Simulation --
Number of simulation domains: 4
Allocated simulation object(s).
Reading solver inputs from file "solver.inp".
No. of dimensions : 2
No. of variables : 4
Domain sizes:
domain 0 - 128 16
domain 1 - 64 32
domain 2 - 32 64
domain 3 - 16 128
Processes along each dimension:
domain 0 - 8 1
domain 1 - 4 2
domain 2 - 2 4
domain 3 - 1 8
No. of ghosts pts : 3
No. of iter. : 800
Restart iteration : 0
Time integration scheme : rk (44)
Spatial discretization scheme (hyperbolic) : upw5
Split hyperbolic flux term? : no
Interpolation type for hyperbolic term : components
Spatial discretization type (parabolic ) : nonconservative-2stage
Spatial discretization scheme (parabolic ) : 4
Time Step : 2.500000E-02
Check for conservation : yes
Screen output iterations : 10
File output iterations : 80
Initial solution file type : binary
Initial solution read mode : serial
Solution file write mode : serial
Solution file format : tecplot2d
Overwrite solution file : no
Physical model : navierstokes2d
Partitioning domain and allocating data arrays.
Reading array from binary file initial_0.inp (Serial mode).
Volume integral of the initial solution on domain 0:
0: 9.9980704056142386E+01
1: 4.9990355858047224E+01
2: -4.7874680497717037E-07
3: 2.6245709333707828E+02
Reading array from binary file initial_1.inp (Serial mode).
Volume integral of the initial solution on domain 1:
0: 9.9980704056028685E+01
1: 4.9990353943002333E+01
2: -9.5749390466304263E-07
3: 2.6245709237590307E+02
Reading array from binary file initial_2.inp (Serial mode).
Volume integral of the initial solution on domain 2:
0: 9.9980704056028713E+01
1: 4.9990352985508281E+01
2: -1.9149879755598655E-06
3: 2.6245709189715598E+02
Reading array from binary file initial_3.inp (Serial mode).
Volume integral of the initial solution on domain 3:
0: 9.9980704056142400E+01
1: 4.9990352506818013E+01
2: -3.8299760370981050E-06
3: 2.6245709166146372E+02
Domain 0: Reading boundary conditions from boundary.inp.
Boundary periodic: Along dimension 0 and face +1
Boundary periodic: Along dimension 0 and face -1
Boundary periodic: Along dimension 1 and face +1
Boundary periodic: Along dimension 1 and face -1
4 boundary condition(s) read.
Domain 1: Reading boundary conditions from boundary.inp.
Boundary periodic: Along dimension 0 and face +1
Boundary periodic: Along dimension 0 and face -1
Boundary periodic: Along dimension 1 and face +1
Boundary periodic: Along dimension 1 and face -1
4 boundary condition(s) read.
Domain 2: Reading boundary conditions from boundary.inp.
Boundary periodic: Along dimension 0 and face +1
Boundary periodic: Along dimension 0 and face -1
Boundary periodic: Along dimension 1 and face +1
Boundary periodic: Along dimension 1 and face -1
4 boundary condition(s) read.
Domain 3: Reading boundary conditions from boundary.inp.
Boundary periodic: Along dimension 0 and face +1
Boundary periodic: Along dimension 0 and face -1
Boundary periodic: Along dimension 1 and face +1
Boundary periodic: Along dimension 1 and face -1
4 boundary condition(s) read.
Initializing solvers.
Initializing physics. Model = "navierstokes2d"
Reading physical model inputs from file "physics.inp".
Setting up time integration.
Solving in time (from 0 to 800 iterations)
Writing solution file op_0_00000.dat.
Writing solution file op_1_00000.dat.
Writing solution file op_2_00000.dat.
Writing solution file op_3_00000.dat.
--
Iteration: 10, Time: 2.500e-01
Max CFL: 4.034E-01, Max Diff. No.: -1.000E+00, Norm: 3.0058E-04
Conservation loss: 1.0593E-15
--
--
Iteration: 20, Time: 5.000e-01
Max CFL: 4.036E-01, Max Diff. No.: -1.000E+00, Norm: 3.0019E-04
Conservation loss: 9.9360E-16
--
--
Iteration: 30, Time: 7.500e-01
Max CFL: 4.038E-01, Max Diff. No.: -1.000E+00, Norm: 2.9981E-04
Conservation loss: 1.1220E-15
--
--
Iteration: 40, Time: 1.000e+00
Max CFL: 4.036E-01, Max Diff. No.: -1.000E+00, Norm: 2.9949E-04
Conservation loss: 5.4417E-16
--
--
Iteration: 50, Time: 1.250e+00
Max CFL: 4.029E-01, Max Diff. No.: -1.000E+00, Norm: 2.9915E-04
Conservation loss: 6.9091E-16
--
--
Iteration: 60, Time: 1.500e+00
Max CFL: 4.028E-01, Max Diff. No.: -1.000E+00, Norm: 2.9876E-04
Conservation loss: 1.1507E-15
--
--
Iteration: 70, Time: 1.750e+00
Max CFL: 4.029E-01, Max Diff. No.: -1.000E+00, Norm: 2.9839E-04
Conservation loss: 9.8368E-16
--
--
Iteration: 80, Time: 2.000e+00
Max CFL: 4.035E-01, Max Diff. No.: -1.000E+00, Norm: 2.9808E-04
Conservation loss: 6.6662E-16
--
Writing solution file op_0_00001.dat.
Writing solution file op_1_00001.dat.
Writing solution file op_2_00001.dat.
Writing solution file op_3_00001.dat.
--
Iteration: 90, Time: 2.250e+00
Max CFL: 4.036E-01, Max Diff. No.: -1.000E+00, Norm: 2.9782E-04
Conservation loss: 7.5428E-16
--
--
Iteration: 100, Time: 2.500e+00
Max CFL: 4.030E-01, Max Diff. No.: -1.000E+00, Norm: 2.9755E-04
Conservation loss: 8.3922E-16
--
--
Iteration: 110, Time: 2.750e+00
Max CFL: 4.023E-01, Max Diff. No.: -1.000E+00, Norm: 2.9729E-04
Conservation loss: 8.3577E-16
--
--
Iteration: 120, Time: 3.000e+00
Max CFL: 4.023E-01, Max Diff. No.: -1.000E+00, Norm: 2.9701E-04
Conservation loss: 9.5526E-16
--
--
Iteration: 130, Time: 3.250e+00
Max CFL: 4.031E-01, Max Diff. No.: -1.000E+00, Norm: 2.9673E-04
Conservation loss: 8.8312E-16
--
--
Iteration: 140, Time: 3.500e+00
Max CFL: 4.033E-01, Max Diff. No.: -1.000E+00, Norm: 2.9643E-04
Conservation loss: 8.8664E-16
--
--
Iteration: 150, Time: 3.750e+00
Max CFL: 4.029E-01, Max Diff. No.: -1.000E+00, Norm: 2.9615E-04
Conservation loss: 7.5810E-16
--
--
Iteration: 160, Time: 4.000e+00
Max CFL: 4.019E-01, Max Diff. No.: -1.000E+00, Norm: 2.9589E-04
Conservation loss: 6.6840E-16
--
Writing solution file op_0_00002.dat.
Writing solution file op_1_00002.dat.
Writing solution file op_2_00002.dat.
Writing solution file op_3_00002.dat.
--
Iteration: 170, Time: 4.250e+00
Max CFL: 4.018E-01, Max Diff. No.: -1.000E+00, Norm: 2.9565E-04
Conservation loss: 9.8873E-16
--
--
Iteration: 180, Time: 4.500e+00
Max CFL: 4.027E-01, Max Diff. No.: -1.000E+00, Norm: 2.9540E-04
Conservation loss: 1.0980E-15
--
--
Iteration: 190, Time: 4.750e+00
Max CFL: 4.031E-01, Max Diff. No.: -1.000E+00, Norm: 2.9516E-04
Conservation loss: 1.1470E-15
--
--
Iteration: 200, Time: 5.000e+00
Max CFL: 4.028E-01, Max Diff. No.: -1.000E+00, Norm: 2.9493E-04
Conservation loss: 1.1162E-15
--
--
Iteration: 210, Time: 5.250e+00
Max CFL: 4.019E-01, Max Diff. No.: -1.000E+00, Norm: 2.9470E-04
Conservation loss: 1.0588E-15
--
--
Iteration: 220, Time: 5.500e+00
Max CFL: 4.014E-01, Max Diff. No.: -1.000E+00, Norm: 2.9447E-04
Conservation loss: 1.0202E-15
--
--
Iteration: 230, Time: 5.750e+00
Max CFL: 4.024E-01, Max Diff. No.: -1.000E+00, Norm: 2.9424E-04
Conservation loss: 9.2504E-16
--
--
Iteration: 240, Time: 6.000e+00
Max CFL: 4.028E-01, Max Diff. No.: -1.000E+00, Norm: 2.9402E-04
Conservation loss: 7.6878E-16
--
Writing solution file op_0_00003.dat.
Writing solution file op_1_00003.dat.
Writing solution file op_2_00003.dat.
Writing solution file op_3_00003.dat.
--
Iteration: 250, Time: 6.250e+00
Max CFL: 4.026E-01, Max Diff. No.: -1.000E+00, Norm: 2.9380E-04
Conservation loss: 1.1997E-15
--
--
Iteration: 260, Time: 6.500e+00
Max CFL: 4.019E-01, Max Diff. No.: -1.000E+00, Norm: 2.9356E-04
Conservation loss: 1.1527E-15
--
--
Iteration: 270, Time: 6.750e+00
Max CFL: 4.010E-01, Max Diff. No.: -1.000E+00, Norm: 2.9333E-04
Conservation loss: 1.0762E-15
--
--
Iteration: 280, Time: 7.000e+00
Max CFL: 4.020E-01, Max Diff. No.: -1.000E+00, Norm: 2.9313E-04
Conservation loss: 1.0174E-15
--
--
Iteration: 290, Time: 7.250e+00
Max CFL: 4.026E-01, Max Diff. No.: -1.000E+00, Norm: 2.9294E-04
Conservation loss: 9.1791E-16
--
--
Iteration: 300, Time: 7.500e+00
Max CFL: 4.025E-01, Max Diff. No.: -1.000E+00, Norm: 2.9274E-04
Conservation loss: 8.9965E-16
--
--
Iteration: 310, Time: 7.750e+00
Max CFL: 4.018E-01, Max Diff. No.: -1.000E+00, Norm: 2.9253E-04
Conservation loss: 1.0051E-15
--
--
Iteration: 320, Time: 8.000e+00
Max CFL: 4.007E-01, Max Diff. No.: -1.000E+00, Norm: 2.9234E-04
Conservation loss: 1.1746E-15
--
Writing solution file op_0_00004.dat.
Writing solution file op_1_00004.dat.
Writing solution file op_2_00004.dat.
Writing solution file op_3_00004.dat.
--
Iteration: 330, Time: 8.250e+00
Max CFL: 4.017E-01, Max Diff. No.: -1.000E+00, Norm: 2.9216E-04
Conservation loss: 7.6627E-16
--
--
Iteration: 340, Time: 8.500e+00
Max CFL: 4.023E-01, Max Diff. No.: -1.000E+00, Norm: 2.9197E-04
Conservation loss: 1.0783E-15
--
--
Iteration: 350, Time: 8.750e+00
Max CFL: 4.023E-01, Max Diff. No.: -1.000E+00, Norm: 2.9177E-04
Conservation loss: 1.2007E-15
--
--
Iteration: 360, Time: 9.000e+00
Max CFL: 4.017E-01, Max Diff. No.: -1.000E+00, Norm: 2.9157E-04
Conservation loss: 1.1601E-15
--
--
Iteration: 370, Time: 9.250e+00
Max CFL: 4.007E-01, Max Diff. No.: -1.000E+00, Norm: 2.9138E-04
Conservation loss: 9.2310E-16
--
--
Iteration: 380, Time: 9.500e+00
Max CFL: 4.014E-01, Max Diff. No.: -1.000E+00, Norm: 2.9121E-04
Conservation loss: 1.3744E-15
--
--
Iteration: 390, Time: 9.750e+00
Max CFL: 4.020E-01, Max Diff. No.: -1.000E+00, Norm: 2.9104E-04
Conservation loss: 9.3141E-16
--
--
Iteration: 400, Time: 1.000e+01
Max CFL: 4.021E-01, Max Diff. No.: -1.000E+00, Norm: 2.9087E-04
Conservation loss: 1.0234E-15
--
Writing solution file op_0_00005.dat.
Writing solution file op_1_00005.dat.
Writing solution file op_2_00005.dat.
Writing solution file op_3_00005.dat.
--
Iteration: 410, Time: 1.025e+01
Max CFL: 4.016E-01, Max Diff. No.: -1.000E+00, Norm: 2.9068E-04
Conservation loss: 9.0313E-16
--
--
Iteration: 420, Time: 1.050e+01
Max CFL: 4.006E-01, Max Diff. No.: -1.000E+00, Norm: 2.9050E-04
Conservation loss: 1.2216E-15
--
--
Iteration: 430, Time: 1.075e+01
Max CFL: 4.010E-01, Max Diff. No.: -1.000E+00, Norm: 2.9032E-04
Conservation loss: 1.3412E-15
--
--
Iteration: 440, Time: 1.100e+01
Max CFL: 4.018E-01, Max Diff. No.: -1.000E+00, Norm: 2.9015E-04
Conservation loss: 1.0837E-15
--
--
Iteration: 450, Time: 1.125e+01
Max CFL: 4.019E-01, Max Diff. No.: -1.000E+00, Norm: 2.8998E-04
Conservation loss: 1.2461E-15
--
--
Iteration: 460, Time: 1.150e+01
Max CFL: 4.015E-01, Max Diff. No.: -1.000E+00, Norm: 2.8983E-04
Conservation loss: 1.1418E-15
--
--
Iteration: 470, Time: 1.175e+01
Max CFL: 4.006E-01, Max Diff. No.: -1.000E+00, Norm: 2.8968E-04
Conservation loss: 9.8024E-16
--
--
Iteration: 480, Time: 1.200e+01
Max CFL: 4.008E-01, Max Diff. No.: -1.000E+00, Norm: 2.8955E-04
Conservation loss: 1.1560E-15
--
Writing solution file op_0_00006.dat.
Writing solution file op_1_00006.dat.
Writing solution file op_2_00006.dat.
Writing solution file op_3_00006.dat.
--
Iteration: 490, Time: 1.225e+01
Max CFL: 4.016E-01, Max Diff. No.: -1.000E+00, Norm: 2.8940E-04
Conservation loss: 1.2067E-15
--
--
Iteration: 500, Time: 1.250e+01
Max CFL: 4.018E-01, Max Diff. No.: -1.000E+00, Norm: 2.8924E-04
Conservation loss: 7.8907E-16
--
--
Iteration: 510, Time: 1.275e+01
Max CFL: 4.014E-01, Max Diff. No.: -1.000E+00, Norm: 2.8906E-04
Conservation loss: 1.0813E-15
--
--
Iteration: 520, Time: 1.300e+01
Max CFL: 4.005E-01, Max Diff. No.: -1.000E+00, Norm: 2.8888E-04
Conservation loss: 9.8098E-16
--
--
Iteration: 530, Time: 1.325e+01
Max CFL: 4.005E-01, Max Diff. No.: -1.000E+00, Norm: 2.8871E-04
Conservation loss: 1.0639E-15
--
--
Iteration: 540, Time: 1.350e+01
Max CFL: 4.013E-01, Max Diff. No.: -1.000E+00, Norm: 2.8855E-04
Conservation loss: 9.5043E-16
--
--
Iteration: 550, Time: 1.375e+01
Max CFL: 4.016E-01, Max Diff. No.: -1.000E+00, Norm: 2.8842E-04
Conservation loss: 1.0284E-15
--
--
Iteration: 560, Time: 1.400e+01
Max CFL: 4.013E-01, Max Diff. No.: -1.000E+00, Norm: 2.8830E-04
Conservation loss: 7.2515E-16
--
Writing solution file op_0_00007.dat.
Writing solution file op_1_00007.dat.
Writing solution file op_2_00007.dat.
Writing solution file op_3_00007.dat.
--
Iteration: 570, Time: 1.425e+01
Max CFL: 4.005E-01, Max Diff. No.: -1.000E+00, Norm: 2.8818E-04
Conservation loss: 1.0092E-15
--
--
Iteration: 580, Time: 1.450e+01
Max CFL: 4.003E-01, Max Diff. No.: -1.000E+00, Norm: 2.8805E-04
Conservation loss: 1.1762E-15
--
--
Iteration: 590, Time: 1.475e+01
Max CFL: 4.011E-01, Max Diff. No.: -1.000E+00, Norm: 2.8790E-04
Conservation loss: 8.2795E-16
--
--
Iteration: 600, Time: 1.500e+01
Max CFL: 4.014E-01, Max Diff. No.: -1.000E+00, Norm: 2.8774E-04
Conservation loss: 1.2266E-15
--
--
Iteration: 610, Time: 1.525e+01
Max CFL: 4.012E-01, Max Diff. No.: -1.000E+00, Norm: 2.8759E-04
Conservation loss: 1.1735E-15
--
--
Iteration: 620, Time: 1.550e+01
Max CFL: 4.004E-01, Max Diff. No.: -1.000E+00, Norm: 2.8744E-04
Conservation loss: 8.5961E-16
--
--
Iteration: 630, Time: 1.575e+01
Max CFL: 4.000E-01, Max Diff. No.: -1.000E+00, Norm: 2.8730E-04
Conservation loss: 1.1097E-15
--
--
Iteration: 640, Time: 1.600e+01
Max CFL: 4.009E-01, Max Diff. No.: -1.000E+00, Norm: 2.8717E-04
Conservation loss: 1.2362E-15
--
Writing solution file op_0_00008.dat.
Writing solution file op_1_00008.dat.
Writing solution file op_2_00008.dat.
Writing solution file op_3_00008.dat.
--
Iteration: 650, Time: 1.625e+01
Max CFL: 4.013E-01, Max Diff. No.: -1.000E+00, Norm: 2.8706E-04
Conservation loss: 1.1482E-15
--
--
Iteration: 660, Time: 1.650e+01
Max CFL: 4.011E-01, Max Diff. No.: -1.000E+00, Norm: 2.8696E-04
Conservation loss: 1.1292E-15
--
--
Iteration: 670, Time: 1.675e+01
Max CFL: 4.004E-01, Max Diff. No.: -1.000E+00, Norm: 2.8684E-04
Conservation loss: 1.1013E-15
--
--
Iteration: 680, Time: 1.700e+01
Max CFL: 3.998E-01, Max Diff. No.: -1.000E+00, Norm: 2.8671E-04
Conservation loss: 1.1764E-15
--
--
Iteration: 690, Time: 1.725e+01
Max CFL: 4.007E-01, Max Diff. No.: -1.000E+00, Norm: 2.8656E-04
Conservation loss: 1.1443E-15
--
--
Iteration: 700, Time: 1.750e+01
Max CFL: 4.011E-01, Max Diff. No.: -1.000E+00, Norm: 2.8641E-04
Conservation loss: 1.1120E-15
--
--
Iteration: 710, Time: 1.775e+01
Max CFL: 4.009E-01, Max Diff. No.: -1.000E+00, Norm: 2.8626E-04
Conservation loss: 1.0669E-15
--
--
Iteration: 720, Time: 1.800e+01
Max CFL: 4.003E-01, Max Diff. No.: -1.000E+00, Norm: 2.8612E-04
Conservation loss: 1.1845E-15
--
Writing solution file op_0_00009.dat.
Writing solution file op_1_00009.dat.
Writing solution file op_2_00009.dat.
Writing solution file op_3_00009.dat.
--
Iteration: 730, Time: 1.825e+01
Max CFL: 3.996E-01, Max Diff. No.: -1.000E+00, Norm: 2.8600E-04
Conservation loss: 1.1458E-15
--
--
Iteration: 740, Time: 1.850e+01
Max CFL: 4.005E-01, Max Diff. No.: -1.000E+00, Norm: 2.8590E-04
Conservation loss: 1.2140E-15
--
--
Iteration: 750, Time: 1.875e+01
Max CFL: 4.010E-01, Max Diff. No.: -1.000E+00, Norm: 2.8581E-04
Conservation loss: 1.0910E-15
--
--
Iteration: 760, Time: 1.900e+01
Max CFL: 4.008E-01, Max Diff. No.: -1.000E+00, Norm: 2.8572E-04
Conservation loss: 1.3392E-15
--
--
Iteration: 770, Time: 1.925e+01
Max CFL: 4.002E-01, Max Diff. No.: -1.000E+00, Norm: 2.8563E-04
Conservation loss: 1.3038E-15
--
--
Iteration: 780, Time: 1.950e+01
Max CFL: 3.994E-01, Max Diff. No.: -1.000E+00, Norm: 2.8551E-04
Conservation loss: 1.2373E-15
--
--
Iteration: 790, Time: 1.975e+01
Max CFL: 4.004E-01, Max Diff. No.: -1.000E+00, Norm: 2.8538E-04
Conservation loss: 1.1883E-15
--
--
Iteration: 800, Time: 2.000e+01
Max CFL: 4.008E-01, Max Diff. No.: -1.000E+00, Norm: 2.8524E-04
Conservation loss: 1.3113E-15
--
Writing solution file op_0_00010.dat.
Writing solution file op_1_00010.dat.
Writing solution file op_2_00010.dat.
Writing solution file op_3_00010.dat.
Completed time integration (Final time: 20.000000).
Reading array from binary file exact_0.inp (Serial mode).
Reading array from binary file exact_1.inp (Serial mode).
Reading array from binary file exact_2.inp (Serial mode).
Reading array from binary file exact_3.inp (Serial mode).
Computed errors for domain 0:
L1 Error : 4.1238244275162105E-04
L2 Error : 6.6048850300174722E-04
Linfinity Error : 2.8208016839606949E-03
Conservation Errors:
1.4213597362969310E-16
1.4213596274004524E-16
1.3530843112619095E-16
0.0000000000000000E+00
Computed errors for domain 1:
L1 Error : 2.2556689331766041E-05
L2 Error : 4.0247800079219933E-05
Linfinity Error : 2.0848669144594750E-04
Conservation Errors:
2.8427194725970949E-16
0.0000000000000000E+00
4.0245584642661925E-16
2.1658175950297532E-16
Computed errors for domain 2:
L1 Error : 5.4507507453902390E-05
L2 Error : 1.1949237026544009E-04
Linfinity Error : 6.6465958194586591E-04
Conservation Errors:
0.0000000000000000E+00
7.1067985453721403E-16
6.0541849311590568E-16
4.3316351979608274E-16
Computed errors for domain 3:
L1 Error : 8.0060438500059586E-04
L2 Error : 1.4963661436511748E-03
Linfinity Error : 7.7062334587321086E-03
Conservation Errors:
2.8427194725938616E-16
4.2640791680546264E-16
4.7403351860139664E-17
2.1658176009253655E-16
Solver runtime (in seconds): 7.2514700000000003E+00
Total runtime (in seconds): 7.2883789999999999E+00
Deallocating arrays.
Finished.