diff options
author | rhaas <rhaas@ac85fae7-cede-4708-beff-ae01c7fa1c26> | 2012-08-09 06:10:15 +0000 |
---|---|---|
committer | rhaas <rhaas@ac85fae7-cede-4708-beff-ae01c7fa1c26> | 2012-08-09 06:10:15 +0000 |
commit | 3c0323ec4a6d0cceefd1a2c1dcfd45144fea1f21 (patch) | |
tree | ae3c8168cbd07d72d44b4fb4ba6566d538cf5db1 /schedule.ccl | |
parent | d2b532c48a0ec8bd2eaa27ab01945df853820c5b (diff) |
Introduce a better treatment of the shocktube boundaries.
* The 2d diagonal boundary conditions are correctly applied
when using multiprocessors.
* The ymin (ymax) surfaces have their points in the region
indsum < minsum (indsum > maxsum) fixed after a first sync
operation. A second sync guarantees the neighbour grid
receives the correct value of the boundary on those regions.
* Mirror symmetries applied at the faces intercepting the upper
right corner assumed cubic local domain. However, rectangular
local domains are common after domain decomposition. This commit
fixes the indexes applying this symmetry for these cases.
* Upper right corner/edge/surface condition should use sten instead
of stenp1. Thanks for catching this Josh!
* Attempt at a 3d diagonal boundary treatment (Josh's commit)
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/GRHydro_InitData/trunk@135 ac85fae7-cede-4708-beff-ae01c7fa1c26
Diffstat (limited to 'schedule.ccl')
-rw-r--r-- | schedule.ccl | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/schedule.ccl b/schedule.ccl index 2e32506..2b72ab4 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -43,20 +43,46 @@ if (CCTK_Equals(initial_hydro,"shocktube")) { if(CCTK_Equals(shocktube_type,"diagshock")) { - schedule GRHydro_Diagshock_BoundaryM IN ApplyBCs AFTER BoundaryConditions AFTER Boundary::Boundary_ClearSelection - { - LANG: Fortran - } "Diagonal shock boundary conditions" + if(clean_divergence){ + schedule GRHydro_Diagshock_BoundaryM IN ApplyBCs AFTER BoundaryConditions AFTER Boundary::Boundary_ClearSelection + { + LANG: Fortran + SYNC: GRHydro::dens, GRHydro::tau, GRHydro::scon, GRHydro::Bcons, GRHydro::psidc + } "Diagonal shock boundary conditions" + } else { + schedule GRHydro_Diagshock_BoundaryM IN ApplyBCs AFTER BoundaryConditions AFTER Boundary::Boundary_ClearSelection + { + LANG: Fortran + SYNC: GRHydro::dens, GRHydro::tau, GRHydro::scon, GRHydro::Bcons + } "Diagonal shock boundary conditions" + } } if(CCTK_Equals(shocktube_type,"diagshock2d")) { - schedule GRHydro_Diagshock2D_BoundaryM IN ApplyBCs AFTER BoundaryConditions AFTER Boundary::Boundary_ClearSelection - { - LANG: Fortran - } "2-D Diagonal shock boundary conditions" + schedule GRHydro_Diagshock2D_BoundaryM IN ApplyBCs AFTER BoundaryConditions AFTER Boundary::Boundary_ClearSelection + { + LANG: Fortran + } "2-D Diagonal shock boundary conditions" } +# if(CCTK_Equals(shocktube_type,"diagshock2d")) +# { +# if(clean_divergence){ +# schedule GRHydro_Diagshock2D_BoundaryM IN ApplyBCs AFTER BoundaryConditions AFTER Boundary::Boundary_ClearSelection +# { +# LANG: Fortran +# SYNC: GRHydro::dens, GRHydro::tau, GRHydro::scon, GRHydro::Bcons, GRHydro::psidc +# } "2-D Diagonal shock boundary conditions" +# } else { +# schedule GRHydro_Diagshock2D_BoundaryM IN ApplyBCs AFTER BoundaryConditions AFTER Boundary::Boundary_ClearSelection +# { +# LANG: Fortran +# SYNC: GRHydro::dens, GRHydro::tau, GRHydro::scon, GRHydro::Bcons +# } "2-D Diagonal shock boundary conditions" +# } +# } + } else { schedule GRHydro_shocktube in HydroBase_Initial { |