From cd483db4b2580d0c7ac875ce2d176bd6af993f37 Mon Sep 17 00:00:00 2001 From: schnetter Date: Thu, 31 May 2007 01:39:47 +0000 Subject: Allow three time levels for the constraints. This is necessary so that mesh refinement boundaries can be interpolated in time. Add parameter ADMConstraints::constraints_timelevels, which defaults to 1. Add parameter ADMConstraints::constraints_prolongation_type, which chooses the interpolator for the constraints. It defaults to "Lagrange". Document that the parameter ADMConstraints::excise is not only deprecated, but also unused. Schedule constraint calculation in a group ADMConstraintsGroup, so that it can be easily scheduled at several times. If constraints persist, then schedule constraint calculate in EVOL after the MoL integration. Re-calculate the constraints in the POSTREGRID bin. If the constraints do not persist, then calculate them in the ANALYSIS bin as usual. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/ADMConstraints/trunk@126 b7a48df3-cbbf-4440-997f-b4b717c9f7fc --- schedule.ccl | 60 ++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 28 deletions(-) (limited to 'schedule.ccl') diff --git a/schedule.ccl b/schedule.ccl index 526e77d..2004588 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -21,44 +21,48 @@ schedule ADMConstraint_InitSymBound at CCTK_WRAGH if (constraints_persist) { - STORAGE: hamiltonian, normalized_hamiltonian, momentum - schedule ADMConstraints at CCTK_POSTSTEP + if (constraints_timelevels == 1) { - LANG: Fortran - } "Evaluate ADM constraints for use in other routines" - - schedule ADMConstraints_Boundaries at CCTK_POSTSTEP after ADMConstraints + STORAGE: hamiltonian[1], normalized_hamiltonian[1], momentum[1] + } + else if (constraints_timelevels == 2) { - LANG: Fortran - OPTIONS: LEVEL - } "Apply boundary conditions to the ADM constraints" - - schedule GROUP ApplyBCs as ADMConstraints_ApplyBCs at CCTK_POSTSTEP after ADMConstraints_Boundaries + STORAGE: hamiltonian[2], normalized_hamiltonian[2], momentum[2] + } + else if (constraints_timelevels == 3) { - SYNC: hamiltonian, normalized_hamiltonian, momentum - } "Apply (symmetry) boundary conditions" + STORAGE: hamiltonian[3], normalized_hamiltonian[3], momentum[3] + } + + schedule GROUP ADMConstraintsGroup at CCTK_EVOL after MoL_Evolution + { + } "Evaluate ADM constraints, and perform symmetry boundary conditions" + + schedule GROUP ADMConstraintsGroup at CCTK_POSTREGRID + { + } "Evaluate ADM constraints, and perform symmetry boundary conditions" } else { schedule GROUP ADMConstraintsGroup at CCTK_ANALYSIS { - STORAGE: hamiltonian, normalized_hamiltonian, momentum + STORAGE: hamiltonian[1], normalized_hamiltonian[1], momentum[1] TRIGGERS: hamiltonian, normalized_hamiltonian, momentum - SYNC: hamiltonian, normalized_hamiltonian, momentum } "Evaluate ADM constraints, and perform symmetry boundary conditions" +} - schedule ADMConstraints in ADMConstraintsGroup - { - LANG: Fortran - } "Evaluate ADM constraints" +schedule ADMConstraints in ADMConstraintsGroup +{ + LANG: Fortran +} "Evaluate ADM constraints" - schedule ADMConstraints_Boundaries in ADMConstraintsGroup after ADMConstraints - { - LANG: Fortran - OPTIONS: LEVEL - } "Apply boundary conditions to the ADM constraints" +schedule ADMConstraints_Boundaries in ADMConstraintsGroup after ADMConstraints +{ + LANG: Fortran + OPTIONS: level + SYNC: hamiltonian, normalized_hamiltonian, momentum +} "Select boundary conditions for the ADM constraints" - schedule GROUP ApplyBCs as ADMConstraints_ApplyBCs in ADMConstraintsGroup after ADMConstraints_Boundaries - { - } "Apply (symmetry) boundary conditions" -} +schedule GROUP ApplyBCs as ADMConstraints_ApplyBCs in ADMConstraintsGroup after ADMConstraints_Boundaries +{ +} "Apply boundary conditions to the ADM constraints" -- cgit v1.2.3