# File produced by Kranc if (other_timelevels == 1) { STORAGE: xCopy_g[1] } if (timelevels == 1) { STORAGE: phi_g[1] } if (timelevels == 2) { STORAGE: phi_g[2] } if (timelevels == 1) { STORAGE: pi_g[1] } if (timelevels == 2) { STORAGE: pi_g[2] } if (rhs_timelevels == 1) { STORAGE: phi_grhs[1] } if (rhs_timelevels == 2) { STORAGE: phi_grhs[2] } if (rhs_timelevels == 1) { STORAGE: pi_grhs[1] } if (rhs_timelevels == 2) { STORAGE: pi_grhs[2] } schedule WaveCaKernel_Startup at STARTUP { LANG: C OPTIONS: meta } "create banner" schedule WaveCaKernel_RegisterSymmetries in SymmetryRegister { LANG: C OPTIONS: meta } "register symmetries" schedule initial_gaussian AT INITIAL { LANG: C READS: grid::x(Everywhere) WRITES: WaveCaKernel::phi(Everywhere) WRITES: WaveCaKernel::pi(Everywhere) WRITES: WaveCaKernel::xCopy(Everywhere) } "initial_gaussian" if (fdOrder == 2) { schedule CAKERNEL_Launch_calc_rhs_2 as calc_rhs_2 in MoL_CalcRHS { LANG: C TAGS: Device=1 READS: WaveCaKernel::phi(Everywhere) READS: WaveCaKernel::pi(Everywhere) WRITES: WaveCaKernel::phirhs(Interior) WRITES: WaveCaKernel::pirhs(Interior) } "calc_rhs_2" } if (fdOrder == 2) { schedule CAKERNEL_Launch_calc_rhs_2 as calc_rhs_2 at ANALYSIS { LANG: C SYNC: phi_grhs SYNC: pi_grhs TAGS: Device=1 READS: WaveCaKernel::phi(Everywhere) READS: WaveCaKernel::pi(Everywhere) WRITES: WaveCaKernel::phirhs(Interior) WRITES: WaveCaKernel::pirhs(Interior) } "calc_rhs_2" } if (fdOrder == 4) { schedule CAKERNEL_Launch_calc_rhs_4 as calc_rhs_4 in MoL_CalcRHS { LANG: C TAGS: Device=1 READS: WaveCaKernel::phi(Everywhere) READS: WaveCaKernel::pi(Everywhere) WRITES: WaveCaKernel::phirhs(Interior) WRITES: WaveCaKernel::pirhs(Interior) } "calc_rhs_4" } if (fdOrder == 4) { schedule CAKERNEL_Launch_calc_rhs_4 as calc_rhs_4 at ANALYSIS { LANG: C SYNC: phi_grhs SYNC: pi_grhs TAGS: Device=1 READS: WaveCaKernel::phi(Everywhere) READS: WaveCaKernel::pi(Everywhere) WRITES: WaveCaKernel::phirhs(Interior) WRITES: WaveCaKernel::pirhs(Interior) } "calc_rhs_4" } schedule CAKERNEL_Launch_calc_bound_rhs as calc_bound_rhs in MoL_RHSBoundaries { LANG: C TAGS: Device=1 READS: WaveCaKernel::xCopy(Everywhere) WRITES: WaveCaKernel::phirhs(Boundary) WRITES: WaveCaKernel::pirhs(Boundary) } "calc_bound_rhs" schedule CAKERNEL_Launch_calc_bound_rhs as calc_bound_rhs at ANALYSIS { LANG: C SYNC: phi_grhs SYNC: pi_grhs TAGS: Device=1 READS: WaveCaKernel::xCopy(Everywhere) WRITES: WaveCaKernel::phirhs(Boundary) WRITES: WaveCaKernel::pirhs(Boundary) } "calc_bound_rhs" schedule CAKERNEL_Launch_copy_to_device as copy_to_device at INITIAL after initial_gaussian { LANG: C TAGS: Device=1 READS: WaveCaKernel::phi(Everywhere) READS: WaveCaKernel::pi(Everywhere) WRITES: WaveCaKernel::phi(Everywhere) WRITES: WaveCaKernel::pi(Everywhere) } "copy_to_device" schedule WaveCaKernel_SelectBoundConds in MoL_PostStep { LANG: C OPTIONS: level SYNC: phi_g SYNC: pi_g } "select boundary conditions" schedule WaveCaKernel_CheckBoundaries at BASEGRID { LANG: C OPTIONS: meta } "check boundaries treatment" schedule WaveCaKernel_RegisterVars in MoL_Register { LANG: C OPTIONS: meta } "Register Variables for MoL" schedule WaveCaKernel_Init in CCTK_BASEGRID after Accelerator_SetDevice { LANG: C OPTIONS: local } "Initialize CUDA Device" schedule group ApplyBCs as WaveCaKernel_ApplyBCs in MoL_PostStep after WaveCaKernel_SelectBoundConds { } "Apply boundary conditions controlled by thorn Boundary"