From 8f89e15a4debb0e4b01bc92871d8a3044205e709 Mon Sep 17 00:00:00 2001 From: Liwei Ji Date: Wed, 22 May 2024 21:42:45 +0000 Subject: [PATCH] AsterX: beautify schedule.ccl --- AsterSeeds/schedule.ccl | 4 +- AsterX/schedule.ccl | 118 ++++++++++++++++++++++------------------ 2 files changed, 66 insertions(+), 56 deletions(-) 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 b70b3262..a5637ff1 100644 --- a/AsterX/schedule.ccl +++ b/AsterX/schedule.ccl @@ -7,11 +7,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) { @@ -29,10 +25,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) @@ -40,7 +48,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) @@ -48,7 +56,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) @@ -56,7 +64,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) @@ -68,16 +76,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 { @@ -87,9 +86,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) @@ -97,7 +107,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) @@ -105,8 +115,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) @@ -123,28 +132,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) @@ -160,7 +154,7 @@ SCHEDULE AsterX_Fluxes IN ODESolvers_RHS SYNC: flux_x flux_y flux_z } "Calculate the hydro fluxes" -SCHEDULE AsterX_SourceTerms IN ODESolvers_RHS AFTER AsterX_Fluxes +SCHEDULE AsterX_SourceTerms IN AsterX_RHSGroup AFTER AsterX_Fluxes { LANG: C READS: ADMBaseX::metric(everywhere) @@ -173,7 +167,7 @@ SCHEDULE AsterX_SourceTerms IN ODESolvers_RHS AFTER AsterX_Fluxes 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) @@ -187,6 +181,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 { @@ -199,10 +216,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"