# File produced by Kranc if (timelevels == 1) { STORAGE: errors[1] } if (timelevels == 2) { STORAGE: errors[2] } if (timelevels == 3) { STORAGE: errors[3] } if (timelevels == 1) { STORAGE: exact[1] } if (timelevels == 2) { STORAGE: exact[2] } if (timelevels == 3) { STORAGE: exact[3] } if (timelevels == 1) { STORAGE: norms[1] } if (timelevels == 2) { STORAGE: norms[2] } if (timelevels == 3) { STORAGE: norms[3] } if (timelevels == 1) { STORAGE: evolved[1] } if (timelevels == 2) { STORAGE: evolved[2] } if (timelevels == 3) { STORAGE: evolved[3] } if (rhs_timelevels == 1) { STORAGE: evolvedrhs[1] } if (rhs_timelevels == 2) { STORAGE: evolvedrhs[2] } if (rhs_timelevels == 3) { STORAGE: evolvedrhs[3] } schedule Wave_Startup at STARTUP { LANG: C OPTIONS: meta } "create banner" schedule Wave_RegisterSymmetries in SymmetryRegister { LANG: C OPTIONS: meta } "register symmetries" if (CCTK_EQUALS(initial_data, "sine")) { schedule wave_exact_sine AT INITIAL before import_exact before import_exact { LANG: C READS: grid::x READS: grid::y READS: grid::z WRITES: Wave::phiExact WRITES: Wave::piExact } "wave_exact_sine" } if (CCTK_EQUALS(initial_data, "sine")) { schedule wave_exact_sine AT POSTSTEP before calc_errors before import_exact { LANG: C READS: grid::x READS: grid::y READS: grid::z WRITES: Wave::phiExact WRITES: Wave::piExact } "wave_exact_sine" } if (CCTK_EQUALS(initial_data, "gaussian")) { schedule wave_exact_gaussian AT INITIAL before import_exact before import_exact { LANG: C READS: grid::r WRITES: Wave::phiExact WRITES: Wave::piExact } "wave_exact_gaussian" } if (CCTK_EQUALS(initial_data, "gaussian")) { schedule wave_exact_gaussian AT POSTSTEP before calc_errors before import_exact { LANG: C READS: grid::r WRITES: Wave::phiExact WRITES: Wave::piExact } "wave_exact_gaussian" } schedule wave_import_exact at INITIAL as import_exact { LANG: C READS: Wave::phiExact READS: Wave::piExact WRITES: Wave::phi WRITES: Wave::pi } "wave_import_exact" schedule wave_evolve in MoL_CalcRHS as evolve { LANG: C READS: Wave::phi READS: Wave::pi WRITES: Wave::phirhs WRITES: Wave::pirhs } "wave_evolve" schedule wave_calc_errors at ANALYSIS as calc_errors { LANG: C READS: Wave::phi READS: Wave::phiExact READS: Wave::pi READS: Wave::piExact WRITES: Wave::phiError WRITES: Wave::piError } "wave_calc_errors" schedule wave_calc_norm at ANALYSIS as calc_norm { LANG: C SYNC: norms READS: Wave::phi READS: Wave::phiError READS: Wave::pi READS: Wave::piError WRITES: Wave::EL2 WRITES: Wave::VDP WRITES: Wave::VL2 } "wave_calc_norm" if (CCTK_EQUALS(boundary_condition, "radiative")) { schedule wave_boundary in MoL_RHSBoundaries { LANG: C READS: Wave::phi READS: Wave::pi READS: grid::r READS: grid::x READS: grid::y READS: grid::z WRITES: Wave::phirhs WRITES: Wave::pirhs } "wave_boundary" } schedule Wave_SelectBoundConds in MoL_PostStep { LANG: C OPTIONS: level SYNC: evolved } "select boundary conditions" schedule Wave_CheckBoundaries at BASEGRID { LANG: C OPTIONS: meta } "check boundaries treatment" schedule Wave_RegisterVars in MoL_Register { LANG: C OPTIONS: meta } "Register Variables for MoL" schedule group ApplyBCs as Wave_ApplyBCs in MoL_PostStep after Wave_SelectBoundConds { # no language specified } "Apply boundary conditions controlled by thorn Boundary"