diff --git a/AsterSeeds/schedule.ccl b/AsterSeeds/schedule.ccl index c65bcbb1..d5c93547 100644 --- a/AsterSeeds/schedule.ccl +++ b/AsterSeeds/schedule.ccl @@ -53,14 +53,14 @@ if (CCTK_Equals(test_type, "3DTest")) { if (CCTK_Equals(test_case, "magTOV")) { STORAGE: Avec_cent - SCHEDULE AsterSeeds_InitializeCenteredAvec AT initial AFTER HydroBaseX_PostInitial BEFORE AsterX_ComputedBstagFromA { + SCHEDULE AsterSeeds_InitializeCenteredAvec AT initial AFTER HydroBaseX_PostInitial BEFORE AsterX_InitialGroup { LANG: C READS: HydroBaseX::press(everywhere) WRITES: Avec_x_cent(everywhere) Avec_y_cent(everywhere) Avec_z_cent(everywhere) } "Set up initial conditions for the cell-centered vector potential" - SCHEDULE AsterSeeds_InitializeStagAvec AT initial AFTER AsterSeeds_InitializeCenteredAvec BEFORE AsterX_ComputedBstagFromA { + SCHEDULE AsterSeeds_InitializeStagAvec AT initial AFTER AsterSeeds_InitializeCenteredAvec BEFORE AsterX_InitialGroup { LANG: C READS: Avec_x_cent(everywhere) Avec_y_cent(everywhere) Avec_z_cent(everywhere) WRITES: AsterX::Avec_x(interior) AsterX::Avec_y(interior) AsterX::Avec_z(interior) diff --git a/AsterX/schedule.ccl b/AsterX/schedule.ccl index 0121f4d9..23555230 100644 --- a/AsterX/schedule.ccl +++ b/AsterX/schedule.ccl @@ -8,11 +8,7 @@ STORAGE: ADMBaseX::metric ADMBaseX::lapse ADMBaseX::shift ADMBaseX::curv STORAGE: Aux_in_RHSof_A_Psi STORAGE: TmunuBaseX::eTtt TmunuBaseX::eTti TmunuBaseX::eTij -# Initialization -SCHEDULE GROUP AsterX_CalcPrim IN ODESolvers_PostStep BEFORE TmunuBaseX_SetTmunuVars AFTER AsterX_Sync -{ -} "Compute primitive variables" if(unit_test) { @@ -30,10 +26,22 @@ if(local_estimate_error) LANG: C OPTIONS: GLOBAL } "set up for calculating regrid error" + + SCHEDULE AsterX_EstimateError IN ODESolvers_EstimateError + { + LANG: C + READS: HydroBaseX::rho(everywhere) HydroBaseX::vel(everywhere) HydroBaseX::eps(everywhere) HydroBaseX::press(everywhere) + WRITES: CarpetX::regrid_error(interior) + } "Estimate local error for regridding initial conditions" } -# Initial conditions -SCHEDULE AsterX_ComputedBstagFromA AT initial AFTER HydroBaseX_PostInitial BEFORE AsterX_ComputedBFromdBstag + + +SCHEDULE GROUP AsterX_InitialGroup AT initial AFTER HydroBaseX_PostInitial +{ +} "Initialize conservative variables" + +SCHEDULE AsterX_ComputedBstagFromA IN AsterX_InitialGroup { LANG: C READS: Avec_x(everywhere) Avec_y(everywhere) Avec_z(everywhere) @@ -41,7 +49,7 @@ SCHEDULE AsterX_ComputedBstagFromA AT initial AFTER HydroBaseX_PostInitial BEFOR SYNC: dBx_stag dBy_stag dBz_stag } "Calculate dBstag from curl of A" -SCHEDULE AsterX_ComputedBFromdBstag AT initial BEFORE AsterX_ComputeBFromdB +SCHEDULE AsterX_ComputedBFromdBstag IN AsterX_InitialGroup AFTER AsterX_ComputedBstagFromA { LANG: C READS: dBx_stag(everywhere) dBy_stag(everywhere) dBz_stag(everywhere) @@ -49,7 +57,7 @@ SCHEDULE AsterX_ComputedBFromdBstag AT initial BEFORE AsterX_ComputeBFromdB SYNC: dB } "Calculate centered dB from dBstag" -SCHEDULE AsterX_ComputeBFromdB AT initial BEFORE AsterX_Prim2Con_Initial +SCHEDULE AsterX_ComputeBFromdB IN AsterX_InitialGroup AFTER AsterX_ComputedBFromdBstag { LANG: C READS: dB(interior) ADMBaseX::metric(interior) @@ -57,7 +65,7 @@ SCHEDULE AsterX_ComputeBFromdB AT initial BEFORE AsterX_Prim2Con_Initial SYNC: HydroBaseX::Bvec } "Calculate centered B from densitized B" -SCHEDULE AsterX_Prim2Con_Initial AT initial AFTER HydroBaseX_PostInitial +SCHEDULE AsterX_Prim2Con_Initial IN AsterX_InitialGroup AFTER AsterX_ComputeBFromdB { LANG: C READS: ADMBaseX::metric(interior) @@ -69,16 +77,7 @@ SCHEDULE AsterX_Prim2Con_Initial AT initial AFTER HydroBaseX_PostInitial SYNC: saved_prims } "Compute conserved variables from primitive variables at initial" -if(local_estimate_error) -{ - SCHEDULE AsterX_EstimateError IN ODESolvers_EstimateError - { - LANG: C - READS: HydroBaseX::rho(everywhere) HydroBaseX::vel(everywhere) HydroBaseX::eps(everywhere) HydroBaseX::press(everywhere) - WRITES: CarpetX::regrid_error(interior) - } "Estimate local error for regridding initial conditions" -} -# Regridding + SCHEDULE AsterX_Sync AT postregrid { @@ -88,9 +87,20 @@ SCHEDULE AsterX_Sync AT postregrid SYNC: saved_prims } "Synchronize" -# Time stepping +SCHEDULE AsterX_Sync IN ODESolvers_PostStep +{ + LANG: C + OPTIONS: global + SYNC: dens tau mom Avec_x Avec_y Avec_z Psi +} "Synchronize" + + -SCHEDULE AsterX_ComputedBstagFromA IN AsterX_CalcPrim BEFORE AsterX_Con2Prim +SCHEDULE GROUP AsterX_Con2PrimGroup IN ODESolvers_PostStep BEFORE TmunuBaseX_SetTmunuVars AFTER AsterX_Sync +{ +} "Compute primitive variables" + +SCHEDULE AsterX_ComputedBstagFromA IN AsterX_Con2PrimGroup { LANG: C READS: Avec_x(everywhere) Avec_y(everywhere) Avec_z(everywhere) @@ -98,7 +108,7 @@ SCHEDULE AsterX_ComputedBstagFromA IN AsterX_CalcPrim BEFORE AsterX_Con2Prim SYNC: dBx_stag dBy_stag dBz_stag } "Calculate dBstag from curl of A" -SCHEDULE AsterX_ComputedBFromdBstag IN AsterX_CalcPrim AFTER AsterX_ComputedBstagFromA BEFORE AsterX_Con2Prim +SCHEDULE AsterX_ComputedBFromdBstag IN AsterX_Con2PrimGroup AFTER AsterX_ComputedBstagFromA { LANG: C READS: dBx_stag(everywhere) dBy_stag(everywhere) dBz_stag(everywhere) @@ -106,8 +116,7 @@ SCHEDULE AsterX_ComputedBFromdBstag IN AsterX_CalcPrim AFTER AsterX_ComputedBsta SYNC: dB } "Calculate centered dB from dBstag" - -SCHEDULE AsterX_Con2Prim IN AsterX_CalcPrim +SCHEDULE AsterX_Con2Prim IN AsterX_Con2PrimGroup AFTER AsterX_ComputedBFromdBstag { LANG: C READS: ADMBaseX::metric(interior) @@ -124,28 +133,13 @@ SCHEDULE AsterX_Con2Prim IN AsterX_CalcPrim SYNC: dens tau mom dB } "Calculate primitive variables from conservative variables" -if (interpolate_failed_c2p) + + +SCHEDULE GROUP AsterX_RHSGroup IN ODESolvers_RHS { - SCHEDULE AsterX_Con2Prim_Interpolate_Failed IN ODESolvers_RHS BEFORE AsterX_Fluxes - { - LANG: C - READS: ADMBaseX::metric(interior) - READS: con2prim_flag(interior) - READS: HydroBaseX::rho(interior) HydroBaseX::vel(interior) HydroBaseX::eps(interior) HydroBaseX::press(interior) HydroBaseX::Bvec(interior) - READS: saved_prims(interior) - READS: dens(interior) tau(interior) mom(interior) - WRITES: con2prim_flag(interior) - WRITES: HydroBaseX::rho(interior) HydroBaseX::vel(interior) HydroBaseX::eps(interior) HydroBaseX::press(interior) - WRITES: saved_prims(interior) - WRITES: dens(interior) tau(interior) mom(interior) - SYNC: con2prim_flag - SYNC: HydroBaseX::rho HydroBaseX::vel HydroBaseX::eps HydroBaseX::press - SYNC: saved_prims - SYNC: dens tau mom - } "Interpolate those grid points where con2prim failed" -} - -SCHEDULE AsterX_Fluxes IN ODESolvers_RHS +} "Calculate AsterX RHS" + +SCHEDULE AsterX_Fluxes IN AsterX_RHSGroup { LANG: C READS: ADMBaseX::metric(everywhere) @@ -161,7 +155,7 @@ SCHEDULE AsterX_Fluxes IN ODESolvers_RHS SYNC: flux_x flux_y flux_z } "Calculate the hydro fluxes" -SCHEDULE AsterX_Flux_Corrections IN ODESolvers_RHS AFTER AsterX_Fluxes +SCHEDULE AsterX_Flux_Corrections IN AsterX_RHSGroup AFTER AsterX_Fluxes { LANG: C READS: flux_x(everywhere) flux_y(everywhere) flux_z(everywhere) @@ -170,7 +164,7 @@ SCHEDULE AsterX_Flux_Corrections IN ODESolvers_RHS AFTER AsterX_Fluxes SYNC: flux_x flux_y flux_z } "Computes the higher order corrections to fluxes and updates them" -SCHEDULE AsterX_SourceTerms IN ODESolvers_RHS AFTER AsterX_Flux_Corrections +SCHEDULE AsterX_SourceTerms IN AsterX_RHSGroup AFTER AsterX_Fluxes_Corrections { LANG: C READS: ADMBaseX::metric(everywhere) @@ -183,7 +177,7 @@ SCHEDULE AsterX_SourceTerms IN ODESolvers_RHS AFTER AsterX_Flux_Corrections SYNC: densrhs taurhs momrhs } "Calculate the source terms and compute the RHS of the hydro equations" -SCHEDULE AsterX_RHS IN ODESolvers_RHS AFTER AsterX_SourceTerms +SCHEDULE AsterX_RHS IN AsterX_RHSGroup AFTER AsterX_SourceTerms { LANG: C READS: ADMBaseX::metric(everywhere) ADMBaseX::lapse(everywhere) ADMBaseX::shift(everywhere) @@ -197,6 +191,29 @@ SCHEDULE AsterX_RHS IN ODESolvers_RHS AFTER AsterX_SourceTerms SYNC: Avec_x_rhs Avec_y_rhs Avec_z_rhs Psi_rhs } "Update the RHS of the hydro equations with the flux contributions" + + +if (interpolate_failed_c2p) +{ + SCHEDULE AsterX_Con2Prim_Interpolate_Failed IN AsterX_RHSGroup BEFORE AsterX_Fluxes + { + LANG: C + READS: ADMBaseX::metric(interior) + READS: con2prim_flag(interior) + READS: HydroBaseX::rho(interior) HydroBaseX::vel(interior) HydroBaseX::eps(interior) HydroBaseX::press(interior) HydroBaseX::Bvec(interior) + READS: saved_prims(interior) + READS: dens(interior) tau(interior) mom(interior) + WRITES: con2prim_flag(interior) + WRITES: HydroBaseX::rho(interior) HydroBaseX::vel(interior) HydroBaseX::eps(interior) HydroBaseX::press(interior) + WRITES: saved_prims(interior) + WRITES: dens(interior) tau(interior) mom(interior) + SYNC: con2prim_flag + SYNC: HydroBaseX::rho HydroBaseX::vel HydroBaseX::eps HydroBaseX::press + SYNC: saved_prims + SYNC: dens tau mom + } "Interpolate those grid points where con2prim failed" +} + if(update_tmunu){ SCHEDULE AsterX_Tmunu IN TmunuBaseX_AddToTmunu { @@ -209,10 +226,3 @@ if(update_tmunu){ SYNC: TmunuBaseX::eTtt TmunuBaseX::eTti TmunuBaseX::eTij } "Compute the energy-momentum tensor" } - -SCHEDULE AsterX_Sync IN ODESolvers_PostStep -{ - LANG: C - OPTIONS: global - SYNC: dens tau mom Avec_x Avec_y Avec_z Psi -} "Synchronize"