HyPar  1.0
Finite-Difference Hyperbolic-Parabolic PDE Solver on Cartesian Grids
2D (1D-1V) Vlasov Equation - Landau Damping

Note: this example requires HyPar to be compiled with the FFTW library (https://www.fftw.org/). While compiling, make sure that the configure step included the --enable-fftw option (and if necessary, --with-fftw-dir=/path/to/fftw).

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

Governing equations: 2D (1D-1V) Vlasov Equation (vlasov.h)

Reference: Finn et al., A Numerical Study of Landau Damping with PETSc-PIC, https://doi.org/10.48550/arXiv.2303.12620

Domain:

  • \(0 \le x < 2\pi/k\), "periodic" (_PERIODIC_)
  • \(-10 v_{th} \le v < 10 v_{th}\), "dirichlet" (_DIRICHLET_) ( \(f = 0\))

Initial solution: \(f\left(x,v\right) = \frac{1}{\sqrt{2\pi v_{th}^2}} \exp \left(-\frac{v^2}{2v_{th}^2}\right) \left[1+\alpha\cos\left( kx \right)\right] \).

Self-consistent electric field is computed by solving the Poisson equation in a periodic domain using Fourier transforms. This examples requires HyPar to be compiled with FFTW (http://www.fftw.org/).

Numerical Method:

Input files required:

solver.inp

begin
ndims 2
nvars 1
size 128 128
iproc 4 4
ghost 3
n_iter 3000
restart_iter 0
time_scheme rk
time_scheme_type 44
hyp_space_scheme weno5
dt 0.005
conservation_check yes
screen_op_iter 20
file_op_iter 20
op_file_format binary
ip_file_type binary
op_overwrite no
model vlasov
end

boundary.inp

4
periodic 0 1 0.0 0.0 -1.0e+99 1.0e+99
periodic 0 -1 0.0 0.0 -1.0e+99 1.0e+99
dirichlet 1 1 0.0 1.0e+99 0.0 0.0
0
dirichlet 1 -1 0.0 1.0e+99 0.0 0.0
0

physics.inp

begin
self_consistent_electric_field 1
end

To generate initial.inp (initial solution), compile and run the following code in the run directory.

/* Reference: Finn et al., A Numerical Study of Landau Damping with PETSc-PIC,
* https://doi.org/10.48550/arXiv.2303.12620 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
double pi = 4.0 * atan(1.0);
double two_pi = 8.0 * atan(1.0);
double k = 1.0;
double L = two_pi / k;
double v_th = 1.0;
double alpha = 0.01;
double vmax = 10.0*v_th;
int NI,NJ,ndims,n_iter;
FILE *in;
char ip_file_type[50];
strcpy(ip_file_type,"ascii");
printf("Reading file \"solver.inp\"...\n");
in = fopen("solver.inp","r");
if (!in) {
fprintf(stderr,"Error: Input file \"solver.inp\" not found.\n");
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")) {
fscanf(in,"%d",&NI);
fscanf(in,"%d",&NJ);
} else if (!strcmp(word, "ip_file_type")) {
fscanf(in,"%s",ip_file_type);
}
}
} else {
fprintf(stderr,"Error: Illegal format in solver.inp. Crash and burn!\n");
return(0);
}
}
fclose(in);
if (ndims != 2) {
fprintf(stderr,"ndims is not 2 in solver.inp. this code is to generate 2D initial conditions\n");
return(0);
}
printf("Grid: %d, %d\n",NI,NJ);
int i,j;
double dx = L / ((double)NI);
double dv = (2.0*vmax) / ((double)NJ);
double start_x = 0.0;
double start_v = -vmax;
double *x, *v, *f;
x = (double*) calloc (NI , sizeof(double));
v = (double*) calloc (NJ , sizeof(double));
f = (double*) calloc (NI*NJ, sizeof(double));
for (i = 0; i < NI; i++){
for (j = 0; j < NJ; j++){
x[i] = start_x + i*dx;
v[j] = start_v + j*dv;
int p = NJ*i + j;
double term1 = (1.0/sqrt(two_pi*v_th*v_th));
double term2 = exp(-((v[j]*v[j])/(2*v_th*v_th)));
double term3 = (1.0+alpha*cos(k*x[i]));
f[p] = term1 * term2 * term3;
}
}
FILE *out;
if (!strcmp(ip_file_type,"ascii")) {
out = fopen("initial.inp","w");
for (i = 0; i < NI; i++) fprintf(out,"%1.16e ",x[i]);
fprintf(out,"\n");
for (j = 0; j < NJ; j++) fprintf(out,"%1.16e ",v[j]);
fprintf(out,"\n");
for (j = 0; j < NJ; j++) {
for (i = 0; i < NI; i++) {
int p = NJ*i + j;
fprintf(out,"%1.16e ", f[p]);
}
}
fprintf(out,"\n");
fclose(out);
} else if ((!strcmp(ip_file_type,"binary")) || (!strcmp(ip_file_type,"bin"))) {
printf("Writing binary exact solution file initial.inp\n");
out = fopen("initial.inp","wb");
fwrite(x, sizeof(double),NI,out);
fwrite(v, sizeof(double),NJ,out);
double *F = (double*) calloc (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;
F[q+0] = f[p];
}
}
fwrite(F, sizeof(double),NI*NJ,out);
free(F);
fclose(out);
}
free(x);
free(v);
free(f);
return(0);
}

Output:

Note that iproc is set to

  4 4

in solver.inp (i.e., 4 processors along x, and 4 processors along y). Thus, this example should be run with 16 MPI ranks (or change iproc).

After running the code, there should be 151 output files op_00000.bin, op_00001.bin, ... op_00150.bin; the first one is the solution at \(t=0\) and the final one is the solution at \(t=15\). Since HyPar::op_overwrite is set to no in solver.inp, separate files are written for solutions (distribution function) at each output time.

HyPar::op_file_format is set to binary in solver.inp, and thus, all the files are written out in the binary format, see WriteBinary().

Along with the solution files, the code will write out the 1D potential and electric fields in text files: potential_00000.bin, potential_00001.bin, ... potential_00150.bin, and efield_00000.bin, efield_00001.bin, ... efield_00150.bin. The columns of these files are: grid index, x-coordinate, and potential or electric field value, respectively.

The code 2D/Vlasov1D1V/LandauDamping/aux/MaximumEHistory.c reads the the efield_<nnnnn>.dat files, calculates the maximum absolute value of the electric field at that time instant, and writes a text file, efield_history.dat, with two columns: time and maximum absolute value of E-field. The following plot shows damping of the electric field with time, obtained by plotting efield_history.dat:

Solution_E_1D1VVlasov_LandauDamping.png

Expected screen output:

HyPar - Parallel (MPI) version with 16 processes
Allocated simulation object(s).
Reading solver inputs from file "solver.inp".
No. of dimensions : 2
No. of variables : 1
Domain size : 128 128
Processes along each dimension : 4 4
Exact solution domain size : 128 128
No. of ghosts pts : 3
No. of iter. : 3000
Restart iteration : 0
Time integration scheme : rk (44)
Spatial discretization scheme (hyperbolic) : weno5
Split hyperbolic flux term? : no
Interpolation type for hyperbolic term : characteristic
Spatial discretization type (parabolic ) : nonconservative-1stage
Spatial discretization scheme (parabolic ) : 2
Time Step : 5.000000E-03
Check for conservation : yes
Screen output iterations : 20
File output iterations : 20
Initial solution file type : binary
Initial solution read mode : serial
Solution file write mode : serial
Solution file format : binary
Overwrite solution file : no
Physical model : vlasov
Partitioning domain and allocating data arrays.
Reading array from binary file initial.inp (Serial mode).
Volume integral of the initial solution:
0: 6.2831853071795827E+00
Reading boundary conditions from boundary.inp.
Boundary periodic: Along dimension 0 and face +1
Boundary periodic: Along dimension 0 and face -1
Boundary dirichlet: Along dimension 1 and face +1
Boundary dirichlet: Along dimension 1 and face -1
4 boundary condition(s) read.
Initializing solvers.
Warning: File weno.inp not found. Using default parameters for WENO5/CRWENO5/HCWENO5 scheme.
Initializing physics. Model = "vlasov"
Reading physical model inputs from file "physics.inp".
Setting up libROM interface.
Setting up time integration.
Solving in time (from 0 to 3000 iterations)
Writing solution file op_00000.bin.
iter= 20 t=1.000E-01 CFL=1.003E+00 norm=5.9101E-06 wctime: 3.4E-03 (s) cons_err=8.4815E-16
Writing solution file op_00001.bin.
iter= 40 t=2.000E-01 CFL=1.003E+00 norm=5.8255E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00002.bin.
iter= 60 t=3.000E-01 CFL=1.003E+00 norm=5.6916E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00003.bin.
iter= 80 t=4.000E-01 CFL=1.003E+00 norm=5.5201E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00004.bin.
iter= 100 t=5.000E-01 CFL=1.003E+00 norm=5.3266E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00005.bin.
iter= 120 t=6.000E-01 CFL=1.003E+00 norm=5.1290E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00006.bin.
iter= 140 t=7.000E-01 CFL=1.003E+00 norm=4.9462E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00007.bin.
iter= 160 t=8.000E-01 CFL=1.003E+00 norm=4.7952E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00008.bin.
iter= 180 t=9.000E-01 CFL=1.003E+00 norm=4.6886E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-16
Writing solution file op_00009.bin.
iter= 200 t=1.000E+00 CFL=1.003E+00 norm=4.6325E-06 wctime: 3.3E-03 (s) cons_err=4.2407E-16
Writing solution file op_00010.bin.
iter= 220 t=1.100E+00 CFL=1.003E+00 norm=4.6252E-06 wctime: 3.3E-03 (s) cons_err=4.2407E-16
Writing solution file op_00011.bin.
iter= 240 t=1.200E+00 CFL=1.003E+00 norm=4.6584E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00012.bin.
iter= 260 t=1.300E+00 CFL=1.003E+00 norm=4.7194E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00013.bin.
iter= 280 t=1.400E+00 CFL=1.003E+00 norm=4.7943E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00014.bin.
iter= 300 t=1.500E+00 CFL=1.003E+00 norm=4.8702E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-16
Writing solution file op_00015.bin.
iter= 320 t=1.600E+00 CFL=1.003E+00 norm=4.9370E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00016.bin.
iter= 340 t=1.700E+00 CFL=1.003E+00 norm=4.9880E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00017.bin.
iter= 360 t=1.800E+00 CFL=1.003E+00 norm=5.0197E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00018.bin.
iter= 380 t=1.900E+00 CFL=1.003E+00 norm=5.0317E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00019.bin.
iter= 400 t=2.000E+00 CFL=1.003E+00 norm=5.0259E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00020.bin.
iter= 420 t=2.100E+00 CFL=1.003E+00 norm=5.0058E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00021.bin.
iter= 440 t=2.200E+00 CFL=1.003E+00 norm=4.9759E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00022.bin.
iter= 460 t=2.300E+00 CFL=1.003E+00 norm=4.9407E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-15
Writing solution file op_00023.bin.
iter= 480 t=2.400E+00 CFL=1.003E+00 norm=4.9045E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00024.bin.
iter= 500 t=2.500E+00 CFL=1.003E+00 norm=4.8706E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00025.bin.
iter= 520 t=2.600E+00 CFL=1.003E+00 norm=4.8415E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00026.bin.
iter= 540 t=2.700E+00 CFL=1.003E+00 norm=4.8184E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-15
Writing solution file op_00027.bin.
iter= 560 t=2.800E+00 CFL=1.003E+00 norm=4.8014E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00028.bin.
iter= 580 t=2.900E+00 CFL=1.003E+00 norm=4.7902E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00029.bin.
iter= 600 t=3.000E+00 CFL=1.003E+00 norm=4.7836E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00030.bin.
iter= 620 t=3.100E+00 CFL=1.003E+00 norm=4.7803E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00031.bin.
iter= 640 t=3.200E+00 CFL=1.003E+00 norm=4.7792E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00032.bin.
iter= 660 t=3.300E+00 CFL=1.003E+00 norm=4.7792E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00033.bin.
iter= 680 t=3.400E+00 CFL=1.003E+00 norm=4.7794E-06 wctime: 3.3E-03 (s) cons_err=0.0000E+00
Writing solution file op_00034.bin.
iter= 700 t=3.500E+00 CFL=1.003E+00 norm=4.7794E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00035.bin.
iter= 720 t=3.600E+00 CFL=1.003E+00 norm=4.7790E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00036.bin.
iter= 740 t=3.700E+00 CFL=1.003E+00 norm=4.7780E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-15
Writing solution file op_00037.bin.
iter= 760 t=3.800E+00 CFL=1.003E+00 norm=4.7767E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00038.bin.
iter= 780 t=3.900E+00 CFL=1.003E+00 norm=4.7751E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00039.bin.
iter= 800 t=4.000E+00 CFL=1.003E+00 norm=4.7735E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00040.bin.
iter= 820 t=4.100E+00 CFL=1.003E+00 norm=4.7721E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00041.bin.
iter= 840 t=4.200E+00 CFL=1.003E+00 norm=4.7709E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00042.bin.
iter= 860 t=4.300E+00 CFL=1.003E+00 norm=4.7699E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00043.bin.
iter= 880 t=4.400E+00 CFL=1.003E+00 norm=4.7693E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00044.bin.
iter= 900 t=4.500E+00 CFL=1.003E+00 norm=4.7689E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00045.bin.
iter= 920 t=4.600E+00 CFL=1.003E+00 norm=4.7688E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00046.bin.
iter= 940 t=4.700E+00 CFL=1.003E+00 norm=4.7687E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00047.bin.
iter= 960 t=4.800E+00 CFL=1.003E+00 norm=4.7687E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00048.bin.
iter= 980 t=4.900E+00 CFL=1.003E+00 norm=4.7688E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00049.bin.
iter= 1000 t=5.000E+00 CFL=1.003E+00 norm=4.7688E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00050.bin.
iter= 1020 t=5.100E+00 CFL=1.003E+00 norm=4.7688E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00051.bin.
iter= 1040 t=5.200E+00 CFL=1.003E+00 norm=4.7687E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00052.bin.
iter= 1060 t=5.300E+00 CFL=1.003E+00 norm=4.7686E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00053.bin.
iter= 1080 t=5.400E+00 CFL=1.003E+00 norm=4.7685E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00054.bin.
iter= 1100 t=5.500E+00 CFL=1.003E+00 norm=4.7684E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00055.bin.
iter= 1120 t=5.600E+00 CFL=1.003E+00 norm=4.7682E-06 wctime: 3.3E-03 (s) cons_err=4.2407E-16
Writing solution file op_00056.bin.
iter= 1140 t=5.700E+00 CFL=1.003E+00 norm=4.7682E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00057.bin.
iter= 1160 t=5.800E+00 CFL=1.003E+00 norm=4.7681E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00058.bin.
iter= 1180 t=5.900E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00059.bin.
iter= 1200 t=6.000E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00060.bin.
iter= 1220 t=6.100E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-16
Writing solution file op_00061.bin.
iter= 1240 t=6.200E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00062.bin.
iter= 1260 t=6.300E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=0.0000E+00
Writing solution file op_00063.bin.
iter= 1280 t=6.400E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00064.bin.
iter= 1300 t=6.500E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00065.bin.
iter= 1320 t=6.600E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00066.bin.
iter= 1340 t=6.700E+00 CFL=1.003E+00 norm=4.7680E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00067.bin.
iter= 1360 t=6.800E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00068.bin.
iter= 1380 t=6.900E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00069.bin.
iter= 1400 t=7.000E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00070.bin.
iter= 1420 t=7.100E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00071.bin.
iter= 1440 t=7.200E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00072.bin.
iter= 1460 t=7.300E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00073.bin.
iter= 1480 t=7.400E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=0.0000E+00
Writing solution file op_00074.bin.
iter= 1500 t=7.500E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-16
Writing solution file op_00075.bin.
iter= 1520 t=7.600E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00076.bin.
iter= 1540 t=7.700E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=0.0000E+00
Writing solution file op_00077.bin.
iter= 1560 t=7.800E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00078.bin.
iter= 1580 t=7.900E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00079.bin.
iter= 1600 t=8.000E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00080.bin.
iter= 1620 t=8.100E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00081.bin.
iter= 1640 t=8.200E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-16
Writing solution file op_00082.bin.
iter= 1660 t=8.300E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-15
Writing solution file op_00083.bin.
iter= 1680 t=8.400E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=0.0000E+00
Writing solution file op_00084.bin.
iter= 1700 t=8.500E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00085.bin.
iter= 1720 t=8.600E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00086.bin.
iter= 1740 t=8.700E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00087.bin.
iter= 1760 t=8.800E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00088.bin.
iter= 1780 t=8.900E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00089.bin.
iter= 1800 t=9.000E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00090.bin.
iter= 1820 t=9.100E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00091.bin.
iter= 1840 t=9.200E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00092.bin.
iter= 1860 t=9.300E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00093.bin.
iter= 1880 t=9.400E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00094.bin.
iter= 1900 t=9.500E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00095.bin.
iter= 1920 t=9.600E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00096.bin.
iter= 1940 t=9.700E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00097.bin.
iter= 1960 t=9.800E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00098.bin.
iter= 1980 t=9.900E+00 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.2722E-15
Writing solution file op_00099.bin.
iter= 2000 t=1.000E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00100.bin.
iter= 2020 t=1.010E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00101.bin.
iter= 2040 t=1.020E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00102.bin.
iter= 2060 t=1.030E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00103.bin.
iter= 2080 t=1.040E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00104.bin.
iter= 2100 t=1.050E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00105.bin.
iter= 2120 t=1.060E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00106.bin.
iter= 2140 t=1.070E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00107.bin.
iter= 2160 t=1.080E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00108.bin.
iter= 2180 t=1.090E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00109.bin.
iter= 2200 t=1.100E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00110.bin.
iter= 2220 t=1.110E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00111.bin.
iter= 2240 t=1.120E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00112.bin.
iter= 2260 t=1.130E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00113.bin.
iter= 2280 t=1.140E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-15
Writing solution file op_00114.bin.
iter= 2300 t=1.150E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00115.bin.
iter= 2320 t=1.160E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00116.bin.
iter= 2340 t=1.170E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00117.bin.
iter= 2360 t=1.180E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00118.bin.
iter= 2380 t=1.190E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00119.bin.
iter= 2400 t=1.200E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00120.bin.
iter= 2420 t=1.210E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00121.bin.
iter= 2440 t=1.220E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00122.bin.
iter= 2460 t=1.230E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00123.bin.
iter= 2480 t=1.240E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00124.bin.
iter= 2500 t=1.250E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00125.bin.
iter= 2520 t=1.260E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00126.bin.
iter= 2540 t=1.270E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-16
Writing solution file op_00127.bin.
iter= 2560 t=1.280E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00128.bin.
iter= 2580 t=1.290E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00129.bin.
iter= 2600 t=1.300E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00130.bin.
iter= 2620 t=1.310E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00131.bin.
iter= 2640 t=1.320E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00132.bin.
iter= 2660 t=1.330E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.1309E-15
Writing solution file op_00133.bin.
iter= 2680 t=1.340E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00134.bin.
iter= 2700 t=1.350E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00135.bin.
iter= 2720 t=1.360E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.2722E-15
Writing solution file op_00136.bin.
iter= 2740 t=1.370E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00137.bin.
iter= 2760 t=1.380E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=2.8272E-16
Writing solution file op_00138.bin.
iter= 2780 t=1.390E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00139.bin.
iter= 2800 t=1.400E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=1.4136E-15
Writing solution file op_00140.bin.
iter= 2820 t=1.410E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00141.bin.
iter= 2840 t=1.420E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=7.0679E-16
Writing solution file op_00142.bin.
iter= 2860 t=1.430E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00143.bin.
iter= 2880 t=1.440E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=4.2407E-16
Writing solution file op_00144.bin.
iter= 2900 t=1.450E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Writing solution file op_00145.bin.
iter= 2920 t=1.460E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00146.bin.
iter= 2940 t=1.470E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00147.bin.
iter= 2960 t=1.480E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=5.6543E-16
Writing solution file op_00148.bin.
iter= 2980 t=1.490E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=9.8951E-16
Writing solution file op_00149.bin.
iter= 3000 t=1.500E+01 CFL=1.003E+00 norm=4.7679E-06 wctime: 3.3E-03 (s) cons_err=8.4815E-16
Completed time integration (Final time: 15.000000), total wctime: 9.710657 (seconds).
Writing solution file op_00150.bin.
Conservation Errors:
8.4814791505693827E-16
Solver runtime (in seconds): 1.1697343999999999E+01
Total runtime (in seconds): 1.1760896000000001E+01
Deallocating arrays.
Finished.