diff options
author | schnetter <schnetter@b7a48df3-cbbf-4440-997f-b4b717c9f7fc> | 2007-05-31 01:39:47 +0000 |
---|---|---|
committer | schnetter <schnetter@b7a48df3-cbbf-4440-997f-b4b717c9f7fc> | 2007-05-31 01:39:47 +0000 |
commit | cd483db4b2580d0c7ac875ce2d176bd6af993f37 (patch) | |
tree | a54c14560550a79d9b3ffea1d70476d7104328a6 | |
parent | 085f09123271e2612832e6ea1472da757f70f608 (diff) |
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
-rw-r--r-- | interface.ccl | 6 | ||||
-rw-r--r-- | param.ccl | 14 | ||||
-rw-r--r-- | schedule.ccl | 60 |
3 files changed, 48 insertions, 32 deletions
diff --git a/interface.ccl b/interface.ccl index baeb79a..d1bcc35 100644 --- a/interface.ccl +++ b/interface.ccl @@ -22,17 +22,17 @@ USES FUNCTION Boundary_SelectGroupForBC public: -real hamiltonian type=GF tags='tensortypealias="Scalar"' +real hamiltonian type=GF timelevels=3 tags='tensortypealias="Scalar" ProlongationParameter="ADMConstraints::constraints_prolongation_type"' { ham } "Hamiltonian constraint" -real normalized_hamiltonian type=GF tags='tensortypealias="Scalar"' +real normalized_hamiltonian timelevels=3 type=GF tags='tensortypealias="Scalar" ProlongationParameter="ADMConstraints::constraints_prolongation_type"' { hamnormalized } "Normalized hamiltonian constraint" -real momentum type=GF tags='tensortypealias="U"' +real momentum type=GF timelevels=3 tags='tensortypealias="U" ProlongationParameter="ADMConstraints::constraints_prolongation_type"' { momx, momy, @@ -23,6 +23,17 @@ BOOLEAN constraints_persist "Keep storage of ham and mom* around for use in spec { } "no" +INT constraints_timelevels "Number of time levels for the constraints" +{ + 1:3 :: "" +} 1 + +KEYWORD constraints_prolongation_type "The kind of boundary prolongation for the constraints" +{ + "Lagrange" :: "standard prolongation (requires several time levels)" + "none" :: "no prolongation (use this if you do not have enough time levels active)" +} "Lagrange" + # Deprecated in Beta 13 BOOLEAN constraint_communication "THIS PARAMETER IS NOT USED" { @@ -39,7 +50,8 @@ BOOLEAN cartoon "THIS PARAMETER IS NOT USED" { } "no" -BOOLEAN excise "Use excision?" +# Deprecated +BOOLEAN excise "THIS PARAMETER IS NOT USED" { } "no" 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" |