diff options
Diffstat (limited to 'schedule.ccl')
-rw-r--r-- | schedule.ccl | 198 |
1 files changed, 178 insertions, 20 deletions
diff --git a/schedule.ccl b/schedule.ccl index 911d4f0..29ec81f 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -69,6 +69,29 @@ if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) if (clean_divergence) { STORAGE:psidc[timelevels] + } +} else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { + STORAGE: HydroBase::Bvec[timelevels] + STORAGE: HydroBase::Avec[timelevels] + STORAGE: GRHydro::Bcons[timelevels] + if (CCTK_Equals(Avec_gauge,"Lorenz")) + { + STORAGE: HydroBase::Aphi[timelevels] + } +} +STORAGE:evolve_MHD +STORAGE:evolve_Y_e +STORAGE:evolve_temper +STORAGE:GRHydro_reflevel +STORAGE:InLastMoLPostStep +STORAGE:densrhs +STORAGE:taurhs +STORAGE:srhs +if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) +{ + STORAGE:Bconsrhs + if (clean_divergence) + { STORAGE:psidcrhs STORAGE:whichpsidcspeed } @@ -82,6 +105,23 @@ if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) STORAGE:GRHydro::bcom0[timelevels] STORAGE:GRHydro::bcom_sq[timelevels] } +} else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { + STORAGE:Avecrhs + STORAGE:evolve_Lorenz_gge + if (CCTK_Equals(Avec_gauge,"Lorenz")) + { + STORAGE:Aphirhs + } + if (track_divB) + { + STORAGE:divB + } + if (calculate_bcom) + { + STORAGE:GRHydro::bcom[timelevels] + STORAGE:GRHydro::bcom0[timelevels] + STORAGE:GRHydro::bcom_sq[timelevels] + } } if(CCTK_Equals(entropy_evolution_method,"GRHydro")) { @@ -130,7 +170,7 @@ schedule group GRHydro_Initial IN HydroBase_Initial { } "GRHydro initial data group" -if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) +if(CCTK_Equals(Bvec_evolution_method,"GRHydro") || CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { if (clean_divergence) { @@ -148,6 +188,19 @@ if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) } } +if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec") && CCTK_Equals(initial_Bvec,"Bvec_from_Avec") ) +{ +# schedule GRHydro_BvecfromAvec AT CCTK_POSTINITIAL + schedule GRHydro_BvecfromAvec IN HydroBase_Initial + { + LANG: Fortran + } "Populate Bvec from Avec" +# SCHEDULE group HydroBase_Boundaries AT CCTK_POSTINITIAL AFTER GRHydro_PoloidalMagFieldM AFTER GRHydro_BvecfromAvec + SCHEDULE group HydroBase_Boundaries IN HydroBase_Initial AFTER GRHydro_PoloidalMagFieldM AFTER GRHydro_Bvec_from_Avec + { + } "Call boundary conditions after magnetic field initial data setup" +} + ################################################# ### Storage for the extra timelevels for the ### ### use of MoL with Einstein ### @@ -192,7 +245,8 @@ if (!CCTK_Equals(initial_shift,"none")) # runtime via CCTK_GroupStorageDecrease if(CCTK_IsImplementationActive("Coordinates")) { STORAGE: lvel[timelevels] - if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) { + if(CCTK_Equals(Bvec_evolution_method,"GRHydro") || + CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { STORAGE: lBvec[timelevels] } STORAGE: local_metric[timelevels] @@ -294,15 +348,28 @@ if (rho_abs_min_after_recovery > 0.0) } "Set up minimum for the rest-mass density in the atmosphere (before intial data)" } + +if (CCTK_IsThornActive("PUGH" )) +{ + schedule GRHydro_Rho_Minima_Setup_Final_PUGH AT CCTK_PostInitial BEFORE (MoL_PostStepModify MoL_PostStep) + { + LANG: C + } "Set the value of the rest-mass density of the atmosphere which will be used during the evolution (PUGH)" +} +else if (CCTK_IsThornActive("Carpet")) +{ + schedule GRHydro_Rho_Minima_Setup_Final AT CCTK_PostPostInitial BEFORE Con2Prim + { + LANG: C + } "Set the value of the rest-mass density of the atmosphere which will be used during the evolution" +} + + if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) { if (CCTK_IsThornActive("PUGH" )) { - schedule GRHydro_Rho_Minima_Setup_Final_PUGH AT CCTK_PostInitial BEFORE (MoL_PostStepModify MoL_PostStep) - { - LANG: C - } "Set the value of the rest-mass density of the atmosphere which will be used during the evolution (PUGH)" schedule GRHydro_InitialAtmosphereResetM AT CCTK_PostInitial BEFORE (MoL_PostStepModify MoL_PostStep) AFTER GRHydro_Rho_Minima_Setup_Final_PUGH { LANG: Fortran @@ -310,24 +377,33 @@ if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) } else if (CCTK_IsThornActive("Carpet")) { - schedule GRHydro_Rho_Minima_Setup_Final AT CCTK_PostPostInitial BEFORE Con2Prim - { - LANG: C - } "Set the value of the rest-mass density of the atmosphere which will be used during the evolution" schedule GRHydro_InitialAtmosphereResetM AT CCTK_PostPostInitial BEFORE Con2Prim AFTER GRHydro_Rho_Minima_Setup_Final { LANG: Fortran } "Use mask to enforce atmosphere at initial time" } -} else { +} else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { if (CCTK_IsThornActive("PUGH" )) { - schedule GRHydro_Rho_Minima_Setup_Final_PUGH AT CCTK_PostInitial BEFORE (MoL_PostStepModify MoL_PostStep) + schedule GRHydro_InitialAtmosphereResetAM AT CCTK_PostInitial BEFORE (MoL_PostStepModify MoL_PostStep) AFTER GRHydro_Rho_Minima_Setup_Final_PUGH { - LANG: C - } "Set the value of the rest-mass density of the atmosphere which will be used during the evolution (PUGH)" + LANG: Fortran + } "Use mask to enforce atmosphere at initial time" + } + else if (CCTK_IsThornActive("Carpet")) + { + schedule GRHydro_InitialAtmosphereResetAM AT CCTK_PostPostInitial BEFORE Con2Prim AFTER GRHydro_Rho_Minima_Setup_Final + { + LANG: Fortran + } "Use mask to enforce atmosphere at initial time" + } + +} else { + + if (CCTK_IsThornActive("PUGH" )) + { schedule GRHydro_InitialAtmosphereReset AT CCTK_PostInitial BEFORE (MoL_PostStepModify MoL_PostStep) AFTER GRHydro_Rho_Minima_Setup_Final_PUGH { LANG: Fortran @@ -335,10 +411,6 @@ if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) } else if (CCTK_IsThornActive("Carpet")) { - schedule GRHydro_Rho_Minima_Setup_Final AT CCTK_PostPostInitial BEFORE Con2Prim - { - LANG: C - } "Set the value of the rest-mass density of the atmosphere which will be used during the evolution" schedule GRHydro_InitialAtmosphereReset AT CCTK_PostPostInitial BEFORE Con2Prim AFTER GRHydro_Rho_Minima_Setup_Final { LANG: Fortran @@ -625,6 +697,11 @@ if(CCTK_Equals(Bvec_evolution_method,"GRHydro")) { LANG: Fortran } "Source term calculation - MHD version" +} else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { + schedule SourceTermsAM IN GRHydroRHS BEFORE FluxTerms + { + LANG: Fortran + } "Source term calculation - Vector Potential MHD version" } else { schedule SourceTerms IN GRHydroRHS BEFORE FluxTerms { @@ -679,6 +756,40 @@ if (CCTK_Equals(method_type, "RSA FV")) STORAGE:GRHydro_tracer_prim_bext STORAGE:GRHydro_tracer_flux } "Calculation of intercell fluxes" + } else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec") && CCTK_Equals(Avec_gauge,"Algebraic")) { + + schedule group FluxTerms IN GRHydroRHS WHILE GRHydro::flux_direction + { + STORAGE:GRHydro_prim_bext + STORAGE:GRHydro_con_bext + STORAGE:GRHydro_fluxes + STORAGE:GRHydro_MHD_con_bext + STORAGE:GRHydro_MHD_prim_bext + STORAGE:GRHydro_Avec_bext + STORAGE:GRHydro_Avecfluxes + STORAGE:GRHydro_tracer_cons_bext + STORAGE:GRHydro_tracer_prim_bext + STORAGE:GRHydro_tracer_flux + } "Calculation of intercell fluxes" + + } else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec") && CCTK_Equals(Avec_gauge,"Lorenz")) { + + schedule group FluxTerms IN GRHydroRHS WHILE GRHydro::flux_direction + { + STORAGE:GRHydro_prim_bext + STORAGE:GRHydro_con_bext + STORAGE:GRHydro_fluxes + STORAGE:GRHydro_MHD_con_bext + STORAGE:GRHydro_MHD_prim_bext + STORAGE:GRHydro_Avec_bext + STORAGE:GRHydro_Aphi_bext + STORAGE:GRHydro_Avecfluxes + STORAGE:GRHydro_Aphifluxes + STORAGE:GRHydro_tracer_cons_bext + STORAGE:GRHydro_tracer_prim_bext + STORAGE:GRHydro_tracer_flux + } "Calculation of intercell fluxes" + } else { schedule group FluxTerms IN GRHydroRHS WHILE GRHydro::flux_direction { @@ -710,6 +821,21 @@ if (CCTK_Equals(method_type, "RSA FV")) STORAGE:GRHydro_psifluxes STORAGE:GRHydro_entropyfluxes } "Calculation of intercell fluxes" + } else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { + + schedule group FluxTerms IN GRHydroRHS WHILE GRHydro::flux_direction + { + STORAGE:GRHydro_prim_bext + STORAGE:GRHydro_con_bext + STORAGE:GRHydro_fluxes + STORAGE:GRHydro_MHD_con_bext + STORAGE:GRHydro_MHD_prim_bext + STORAGE:GRHydro_Avec_bext + STORAGE:GRHydro_Aphi_bext + STORAGE:GRHydro_Avecfluxes + STORAGE:GRHydro_Aphifluxes + } "Calculation of intercell fluxes" + } else { schedule group FluxTerms IN GRHydroRHS WHILE GRHydro::flux_direction { @@ -762,6 +888,12 @@ if (CCTK_Equals(method_type, "RSA FV")) LANG: Fortran STORAGE: EOS_temps } "Solve the local Riemann problems - MHD version" + } else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { + schedule RiemannSolveAM IN FluxTerms AFTER Reconstruct AS Riemann + { + LANG: Fortran + STORAGE: EOS_temps + } "Solve the local Riemann problems - Vector Potential MHD version" } else { schedule RiemannSolve IN FluxTerms AFTER Reconstruct AS Riemann { @@ -934,6 +1066,18 @@ if (CCTK_Equals(GRHydro_eos_type,"General")) { LANG: Fortran } "Convert initial data given in primive variables to conserved variables - MHD version" + } + else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) + { + schedule Conservative2PrimitiveAM IN HydroBase_Con2Prim AS Con2Prim IF GRHydro::execute_MoL_PostStep + { + LANG: Fortran + } "Convert back to primitive variables (general) - MHD with Avec version" + + schedule Primitive2ConservativeCellsAM IN HydroBase_Prim2ConInitial + { + LANG: Fortran + } "Convert initial data given in primive variables to conserved variables - MHD with Avec version" } else { @@ -963,6 +1107,16 @@ else if (CCTK_Equals(GRHydro_eos_type,"Polytype")) { LANG: Fortran } "Convert initial data given in primive variables to conserved variables - MHD version" + } else if(CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { + schedule Conservative2PrimitivePolytypeAM IN HydroBase_Con2Prim AS Con2Prim + { + LANG: Fortran + } "Convert back to primitive variables (polytype) - MHD with Avec version" + + schedule Primitive2ConservativePolyCellsAM IN HydroBase_Prim2ConInitial + { + LANG: Fortran + } "Convert initial data given in primive variables to conserved variables - MHD with Avec version" } else { schedule Conservative2PrimitivePolytype IN HydroBase_Con2Prim AS Con2Prim { @@ -1237,6 +1391,11 @@ if (CCTK_Equals(Bvec_evolution_method,"GRHydro")) { LANG: Fortran } "Reset the atmosphere - MHD version" +} else if (CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { + schedule GRHydro_AtmosphereResetAM IN HydroBase_PostStep AFTER GRHydroPostSyncAtmosphereMask BEFORE (HydroBase_Boundaries,GRHydro_PrimitiveInitialGuessesBoundaries) IF GRHydro::InLastMoLPostStep + { + LANG: Fortran + } "Reset the atmosphere - MHD with Avec version" } else { schedule GRHydro_AtmosphereReset IN HydroBase_PostStep AFTER GRHydroPostSyncAtmosphereMask BEFORE (HydroBase_Boundaries,GRHydro_PrimitiveInitialGuessesBoundaries) IF GRHydro::InLastMoLPostStep { @@ -1303,7 +1462,7 @@ schedule check_GRHydro_C2P_failed AT CCTK_POSTSTEP AFTER GRHydro_RefinementLevel } "Check the mask function that contains the points where C2P has failed and report an error in case a failure is found" -if (CCTK_Equals(Bvec_evolution_method,"GRHydro")) +if (CCTK_Equals(Bvec_evolution_method,"GRHydro") || CCTK_Equals(Bvec_evolution_method,"GRHydro_Avec")) { schedule GRHydro_TmunuM IN AddToTmunu { @@ -1318,7 +1477,6 @@ if (CCTK_Equals(Bvec_evolution_method,"GRHydro")) LANG: Fortran } "Compute comoving magnetic field, pressure, etc..." } - } else { schedule GRHydro_Tmunu IN AddToTmunu { |