RMAO572674BP6G6NLEUN6TDA6VVEN6JXTQILY3JGH3LIYPQDCTKQC
Cactus Code Thorn TestODESolvers2
Author(s) : Erik Schnetter <schnetter@gmail.com>
Maintainer(s): Erik Schnetter <schnetter@gmail.com>
Licence : LGPL
--------------------------------------------------------------------------
1. Purpose
Test the ODESolvers thorn
# Configuration definitions for thorn TestODESolvers2
# Interface definition for thorn TestODESolvers2
IMPLEMENTS: TestODESolvers2
USES INCLUDE HEADER: loop.hxx
CCTK_REAL state TYPE=gf TAGS='rhs="rhs"' { time poly exp1 exp2 } "State"
CCTK_REAL rhs TYPE=gf TAGS='checkpoint="no"' { time_rhs poly_rhs exp1_rhs exp2_rhs } "RHS"
CCTK_REAL error TYPE=gf TAGS='checkpoint="no"' { time_err poly_err } "Error"
CCTK_REAL order TYPE=gf TAGS='checkpoint="no"' { exp_order } "Convergence order"
# Parameter definitions for thorn TestODESolvers2
CCTK_INT porder "Order of polynomial"
{
0:* :: ""
} 2
# Schedule definitions for thorn TestODESolvers2
STORAGE: state rhs error order
SCHEDULE TestODESolvers2_Initial AT initial
{
LANG: C
WRITES: state(everywhere)
} "Initialize state vector"
SCHEDULE TestODESolvers2_RHS IN ODESolvers_RHS
{
LANG: C
READS: state(everywhere)
WRITES: rhs(everywhere)
} "RHS function"
# SCHEDULE TestODESolvers2_Boundary AT poststep
# {
# LANG: C
# SYNC: state
# } "Apply boundary conditions to state vector"
SCHEDULE TestODESolvers2_Error AT analysis
{
LANG: C
READS: state(everywhere)
WRITES: error(everywhere) order(everywhere)
} "Calculate error in state vector"
# Main make.code.defn file for thorn TestODESolvers2
# Source files in this directory
SRCS = odes.cxx
# Subdirectories containing source files
SUBDIRS =
#include <loop.hxx>
#include <cctk.h>
#include <cctk_Parameters.h>
#include <cctk_Arguments_Checked.h>
#include <cassert>
#include <cmath>
#include <limits>
namespace TestODESolvers2 {
using namespace std;
#if 0
// pos(t) = sin(omega t)
// vel(t) = omega cos(omega t)
// d/dt pos = vel
// d/dt vel = -omega^2 pos
const CCTK_REAL omega = 1;
#endif
// u(t) = (1 + t)^p
// d/dt u = p (1 + t)^(p-1) = p u(t)^((p-1) / p)
// v(t) = exp alpha t
// d/dt v = alpha exp alpha t = alpha v
////////////////////////////////////////////////////////////////////////////////
extern "C" void TestODESolvers2_Initial(CCTK_ARGUMENTS) {
DECLARE_CCTK_ARGUMENTS_TestODESolvers2_Initial;
DECLARE_CCTK_PARAMETERS;
const Loop::GF3D<CCTK_REAL, 1, 1, 1> time_(cctkGH, time);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> poly_(cctkGH, poly);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp1_(cctkGH, exp1);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp2_(cctkGH, exp2);
Loop::loop_all<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
time_(p.I) = cctk_time;
poly_(p.I) = pow(1 + cctk_time, porder);
exp1_(p.I) = exp(cctk_time);
exp2_(p.I) = exp(cctk_time / 2);
});
}
// extern "C" void TestODESolvers2_Boundary(CCTK_ARGUMENTS) {
// DECLARE_CCTK_ARGUMENTS_TestODESolvers2_Boundary;
// DECLARE_CCTK_PARAMETERS;
//
// // do nothing
// }
extern "C" void TestODESolvers2_RHS(CCTK_ARGUMENTS) {
DECLARE_CCTK_ARGUMENTS_TestODESolvers2_RHS;
DECLARE_CCTK_PARAMETERS;
const Loop::GF3D<const CCTK_REAL, 1, 1, 1> time_(cctkGH, time);
const Loop::GF3D<const CCTK_REAL, 1, 1, 1> exp1_(cctkGH, exp1);
const Loop::GF3D<const CCTK_REAL, 1, 1, 1> exp2_(cctkGH, exp2);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> time_rhs_(cctkGH, time_rhs);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> poly_rhs_(cctkGH, poly_rhs);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp1_rhs_(cctkGH, exp1_rhs);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp2_rhs_(cctkGH, exp2_rhs);
Loop::loop_all<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
if (porder > 0)
if (abs(time_(p.I) - cctk_time) >
10 * numeric_limits<CCTK_REAL>::epsilon())
CCTK_VERROR("Time is incorrect: time=%.17g, cctk_time=%.17g",
double(time_(p.I)), double(cctk_time));
time_rhs_(p.I) = 1;
poly_rhs_(p.I) = porder == 0 ? 0 : porder * pow(1 + cctk_time, porder - 1);
exp1_rhs_(p.I) = exp1_(p.I);
exp2_rhs_(p.I) = exp2_(p.I) / 2;
});
}
extern "C" void TestODESolvers2_Error(CCTK_ARGUMENTS) {
DECLARE_CCTK_ARGUMENTS_TestODESolvers2_Error;
DECLARE_CCTK_PARAMETERS;
const Loop::GF3D<const CCTK_REAL, 1, 1, 1> time_(cctkGH, time);
const Loop::GF3D<const CCTK_REAL, 1, 1, 1> poly_(cctkGH, poly);
const Loop::GF3D<const CCTK_REAL, 1, 1, 1> exp1_(cctkGH, exp1);
const Loop::GF3D<const CCTK_REAL, 1, 1, 1> exp2_(cctkGH, exp2);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> time_err_(cctkGH, time_err);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> poly_err_(cctkGH, poly_err);
const Loop::GF3D<CCTK_REAL, 1, 1, 1> exp_order_(cctkGH, exp_order);
Loop::loop_all<1, 1, 1>(cctkGH, [&](const Loop::PointDesc &p) {
time_err_(p.I) = time_(p.I) - cctk_time;
poly_err_(p.I) = poly_(p.I) - pow(1 + cctk_time, porder);
if (cctk_iteration == 0) {
exp_order_(p.I) = 0; // undefined
} else {
const CCTK_REAL exp1_err = exp1_(p.I) - exp(cctk_time);
const CCTK_REAL exp2_err = exp2_(p.I) - exp(cctk_time / 2);
const CCTK_REAL order = log(exp1_err / exp2_err) / log(CCTK_REAL(2)) - 1;
// Re-map the order so that the error is of the same magnitude as the
// floating-point epsilon instead of cctk_delta_time
const CCTK_REAL order1 = pow(order - porder, porder + 2) + porder;
exp_order_(p.I) = order1;
CCTK_VINFO("exp1_err=%.17g exp2_err=%.17g order=%.17g", double(exp1_err),
double(exp2_err), double(exp_order_(p.I)));
}
});
}
} // namespace TestODESolvers2
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.6426487559821826e-01
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.6426487559821826e-01
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.6426487559821826e-01
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "constant"
TestODESolvers2::porder = 0
IO::out_dir = $parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 -1.1368683772161603e-12
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 -1.1368683772161603e-12
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 -1.1368683772161603e-12
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 8.6004316938895879e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 8.6004316938895879e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 8.6004316938895879e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 2.5599999999999886e+02 2.7182817884754833e+00 1.6487212706597123e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 2.5599999999999886e+02 2.7182817884754833e+00 1.6487212706597123e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 2.5599999999999886e+02 2.7182817884754833e+00 1.6487212706597123e+00
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "DP87"
TestODESolvers2::porder = 8
IO::out_dir = $parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0201101154535059e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0201101154535059e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0201101154535059e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 2.0000000000000000e+00 2.0000000000000000e+00 1.5000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 2.0000000000000000e+00 2.0000000000000000e+00 1.5000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 2.0000000000000000e+00 2.0000000000000000e+00 1.5000000000000000e+00
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "Euler"
TestODESolvers2::porder = 1
IO::out_dir = $parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 2.0016629507260797e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 2.0016629507260797e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 2.0016629507260797e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 4.0000000000000000e+00 2.5000000000000000e+00 1.6250000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 4.0000000000000000e+00 2.5000000000000000e+00 1.6250000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 4.0000000000000000e+00 2.5000000000000000e+00 1.6250000000000000e+00
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "RK2"
TestODESolvers2::porder = 2
IO::out_dir = $parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 3.0001038247709828e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 3.0001038247709828e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 3.0001038247709828e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 8.0000000000000000e+00 2.6666666666666665e+00 1.6458333333333333e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 8.0000000000000000e+00 2.6666666666666665e+00 1.6458333333333333e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 8.0000000000000000e+00 2.6666666666666665e+00 1.6458333333333333e+00
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "RK3"
TestODESolvers2::porder = 3
IO::out_dir = $parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 -1.1102230246251565e-16 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 4.0000052135571105e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 4.0000052135571105e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 4.0000052135571105e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 1.6000000000000000e+01 2.7083333333333335e+00 1.6484374999999998e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 1.6000000000000000e+01 2.7083333333333335e+00 1.6484374999999998e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 9.9999999999999989e-01 1.6000000000000000e+01 2.7083333333333335e+00 1.6484374999999998e+00
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "RK4"
TestODESolvers2::porder = 4
IO::out_dir = $parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 2.8421709430404007e-14
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 2.8421709430404007e-14
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 2.8421709430404007e-14
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 7.0000150805496366e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 7.0000150805496366e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 7.0000150805496366e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 1.2800000000000003e+02 2.7182795094076351e+00 1.6487212632973474e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 1.2800000000000003e+02 2.7182795094076351e+00 1.6487212632973474e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 1.2800000000000003e+02 2.7182795094076351e+00 1.6487212632973474e+00
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "RKF78"
TestODESolvers2::porder = 7
IO::out_dir = $parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time_err 10:poly_err
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 3.0001038247709828e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 3.0001038247709828e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:exp_order
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 3.0001038247709828e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
0 0.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 8.0000000000000000e+00 2.6666666666666665e+00 1.6458333333333333e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 8.0000000000000000e+00 2.6666666666666665e+00 1.6458333333333333e+00
# 1:iteration 2:time 3:level 4:i 5:j 6:k 7:x 8:y 9:z 9:time 10:poly 11:exp1 12:exp2
1 1.0000000000000000e+00 0 0 0 0 5.0000000000000000e-01 5.0000000000000000e-01 5.0000000000000000e-01 1.0000000000000000e+00 8.0000000000000000e+00 2.6666666666666665e+00 1.6458333333333333e+00
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "SSPRK3"
TestODESolvers2::porder = 3
IO::out_dir = $parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
TEST test-dp87
{
ABSTOL 1.0e-11
}
#!/usr/bin/perl
use strict;
use warnings;
my %methods = (
"constant" => {"order" => 0},
"Euler" => {"order" => 1},
"RK2" => {"order" => 2},
"RK3" => {"order" => 3},
"SSPRK3" => {"order" => 3},
"RK4" => {"order" => 4},
"RKF78" => {"order" => 7},
"DP87" => {"order" => 8},
# "IMEX-SSP2-222" => {"order" => 3},
# "IMEX-SSP2-322" => {"order" => 3},
# "IMEX-SSP2-332" => {"order" => 3},
# "IMEX-SSP3-332" => {"order" => 3},
# "IMEX-SSP3-433" => {"order" => 3},
);
for my $method (keys %methods) {
my $lines = <<EOF;
ActiveThorns = "
CarpetX
IOUtil
ODESolvers
TestODESolvers2
"
Cactus::presync_mode = "mixed-error"
CarpetX::xmin = 0
CarpetX::ymin = 0
CarpetX::zmin = 0
CarpetX::xmax = 1
CarpetX::ymax = 1
CarpetX::zmax = 1
CarpetX::ncells_x = 1
CarpetX::ncells_y = 1
CarpetX::ncells_z = 1
CarpetX::blocking_factor_x = 1
CarpetX::blocking_factor_y = 1
CarpetX::blocking_factor_z = 1
CarpetX::ghost_size = 0
CarpetX::dtfac = 1.0
Cactus::cctk_itlast = 1
ODESolvers::method = "$method"
TestODESolvers2::porder = $methods{$method}->{order}
IO::out_dir = \$parfile
IO::parfile_write = "no"
IO::out_every = 1
CarpetX::out_norm_vars = ""
CarpetX::out_tsv_vars = "
TestODESolvers2::error
TestODESolvers2::order
TestODESolvers2::state
"
EOF
my $fn = "test-$method.par";
open (my $fh, ">", $fn) or die "Could not open '$fn': $!";
print $fh $lines;
close $fh or die "Could not write to '$fn': $!";
}