aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--param.ccl14
-rw-r--r--src/ADMConstraints.F240
-rw-r--r--src/InitSymBound.F25
-rw-r--r--src/ParamCheck.c6
-rw-r--r--test/ADMConstraints_Mask.par52
-rw-r--r--test/ADMConstraints_Mask/ADMConstraints_Mask.par46
-rw-r--r--test/ADMConstraints_Mask/ham_maximum.xg5
-rw-r--r--test/ADMConstraints_Mask/ham_minimum.xg5
-rw-r--r--test/ADMConstraints_Mask/ham_norm1.xg5
-rw-r--r--test/ADMConstraints_Mask/ham_norm2.xg5
-rw-r--r--test/ADMConstraints_Mask/momx_maximum.xg5
-rw-r--r--test/ADMConstraints_Mask/momx_minimum.xg5
-rw-r--r--test/ADMConstraints_Mask/momx_norm1.xg5
-rw-r--r--test/ADMConstraints_Mask/momx_norm2.xg5
-rw-r--r--test/ADMConstraints_Mask/momy_maximum.xg5
-rw-r--r--test/ADMConstraints_Mask/momy_minimum.xg5
-rw-r--r--test/ADMConstraints_Mask/momy_norm1.xg5
-rw-r--r--test/ADMConstraints_Mask/momy_norm2.xg5
-rw-r--r--test/ADMConstraints_Mask/momz_maximum.xg5
-rw-r--r--test/ADMConstraints_Mask/momz_minimum.xg5
-rw-r--r--test/ADMConstraints_Mask/momz_norm1.xg5
-rw-r--r--test/ADMConstraints_Mask/momz_norm2.xg5
-rw-r--r--test/ADMConstraints_Physical.par51
-rw-r--r--test/ADMConstraints_Physical/ADMConstraints_Physical.par45
-rw-r--r--test/ADMConstraints_Physical/ham_maximum.xg5
-rw-r--r--test/ADMConstraints_Physical/ham_minimum.xg5
-rw-r--r--test/ADMConstraints_Physical/ham_norm1.xg5
-rw-r--r--test/ADMConstraints_Physical/ham_norm2.xg5
-rw-r--r--test/ADMConstraints_Physical/momx_maximum.xg5
-rw-r--r--test/ADMConstraints_Physical/momx_minimum.xg5
-rw-r--r--test/ADMConstraints_Physical/momx_norm1.xg5
-rw-r--r--test/ADMConstraints_Physical/momx_norm2.xg5
-rw-r--r--test/ADMConstraints_Physical/momy_maximum.xg5
-rw-r--r--test/ADMConstraints_Physical/momy_minimum.xg5
-rw-r--r--test/ADMConstraints_Physical/momy_norm1.xg5
-rw-r--r--test/ADMConstraints_Physical/momy_norm2.xg5
-rw-r--r--test/ADMConstraints_Physical/momz_maximum.xg5
-rw-r--r--test/ADMConstraints_Physical/momz_minimum.xg5
-rw-r--r--test/ADMConstraints_Physical/momz_norm1.xg5
-rw-r--r--test/ADMConstraints_Physical/momz_norm2.xg5
-rw-r--r--test/ADMConstraints_Shift.par52
-rw-r--r--test/ADMConstraints_Shift/ADMConstraints_Shift.par46
-rw-r--r--test/ADMConstraints_Shift/ham_maximum.xg5
-rw-r--r--test/ADMConstraints_Shift/ham_minimum.xg5
-rw-r--r--test/ADMConstraints_Shift/ham_norm1.xg5
-rw-r--r--test/ADMConstraints_Shift/ham_norm2.xg5
-rw-r--r--test/ADMConstraints_Shift/momx_maximum.xg5
-rw-r--r--test/ADMConstraints_Shift/momx_minimum.xg5
-rw-r--r--test/ADMConstraints_Shift/momx_norm1.xg5
-rw-r--r--test/ADMConstraints_Shift/momx_norm2.xg5
-rw-r--r--test/ADMConstraints_Shift/momy_maximum.xg5
-rw-r--r--test/ADMConstraints_Shift/momy_minimum.xg5
-rw-r--r--test/ADMConstraints_Shift/momy_norm1.xg5
-rw-r--r--test/ADMConstraints_Shift/momy_norm2.xg5
-rw-r--r--test/ADMConstraints_Shift/momz_maximum.xg5
-rw-r--r--test/ADMConstraints_Shift/momz_minimum.xg5
-rw-r--r--test/ADMConstraints_Shift/momz_norm1.xg5
-rw-r--r--test/ADMConstraints_Shift/momz_norm2.xg5
58 files changed, 678 insertions, 139 deletions
diff --git a/param.ccl b/param.ccl
index e142b69..f0768e7 100644
--- a/param.ccl
+++ b/param.ccl
@@ -1,6 +1,10 @@
# Parameter definitions for thorn ADMConstraints
# $Header$
+shares: spacemask
+
+USES BOOLEAN use_mask
+
shares: ADMBase
USES KEYWORD metric_type
@@ -33,8 +37,8 @@ BOOLEAN excise "Use excision?"
{
} "no"
-
-
-
-
-
+REAL excised_value "Value to use for any excised regions"
+{
+ *:* :: "Any value"
+} 0.0
+ \ No newline at end of file
diff --git a/src/ADMConstraints.F b/src/ADMConstraints.F
index 8eaba09..7715ce9 100644
--- a/src/ADMConstraints.F
+++ b/src/ADMConstraints.F
@@ -1,5 +1,5 @@
/*@@
- @file ADMConstraints.F
+ @file ADMConstraints.F77
@date August 98
@desc
Calculate the ADM Constraints for output:
@@ -34,17 +34,13 @@
DECLARE_CCTK_PARAMETERS
DECLARE_CCTK_FUNCTIONS
- integer :: i,j,k
- integer :: nx,ny,nz
-
-#ifdef EXCISION_LEGOEXCISION
- CCTK_REAL, allocatable, dimension (:,:,:) :: dirx,diry,dirz,aux
-#endif
+ integer i,j,k
+ integer nx,ny,nz
c Stencil width used for calculating constraints
c (for outer boundary condition)
- integer, dimension(3),parameter :: sw = 1
+ integer sw(3)
c Return code from Cactus sync routine and boundary conditions.
@@ -52,14 +48,14 @@ c Return code from Cactus sync routine and boundary conditions.
c Various real variables.
- CCTK_REAL :: dx,dy,dz
- CCTK_REAL :: m_rho,m_sx,m_sy,m_sz
- CCTK_REAL :: pi,ialp,ialp2
- CCTK_REAL :: det,uxx,uyy,uzz,uxy,uxz,uyz
+ CCTK_REAL dx,dy,dz
+ CCTK_REAL m_rho,m_sx,m_sy,m_sz
+ CCTK_REAL pi,ialp,ialp2
+ CCTK_REAL det,uxx,uyy,uzz,uxy,uxz,uyz
c Temporaries for the Stress-Energy tensor.
- CCTK_REAL :: Ttt,Ttx,Tty,Ttz,Txx,Txy,Txz,Tyy,Tyz,Tzz
+ CCTK_REAL Ttt,Ttx,Tty,Ttz,Txx,Txy,Txz,Tyy,Tyz,Tzz
c Matter declarations.
@@ -76,6 +72,10 @@ c Macros from Standard Einstein.
c --------------------------------------------------------------
+ sw(1) = 1
+ sw(2) = 1
+ sw(3) = 1
+
c Grid parameters.
dx = cctk_delta_space(1)
@@ -88,11 +88,19 @@ c Grid parameters.
c Fill with zeros.
- ham = 0.0D0
+ do k=1,nz
+ do j=1,ny
+ do i=1,nx
+
+ ham(i,j,k) = 0.0D0
+
+ momx(i,j,k) = 0.0D0
+ momy(i,j,k) = 0.0D0
+ momz(i,j,k) = 0.0D0
- momx = 0.0D0
- momy = 0.0D0
- momz = 0.0D0
+ end do
+ end do
+ end do
c Calculate constraints.
@@ -101,114 +109,125 @@ c Calculate constraints.
do k=2,nz-1
do j=2,ny-1
do i=2,nx-1
+
+ if ((use_mask .eq. 0) .or. (emask(i,j,k) .eq. 1)) then
- ialp = 1.0D0/alp(i,j,k)
- ialp2 = ialp**2
+ ialp = 1.0D0/alp(i,j,k)
+ ialp2 = ialp**2
+
+c Calculate the stress energy tensor at this point
+c ------------------------------------------------
-c Calculate the stress energy tensor at this point
-c ------------------------------------------------
-
-c This may be needed for CalcTmunu
+c This may be needed for CalcTmunu
#include "CactusEinstein/ADMMacros/src/macro/DETG_guts.h"
- det = DETG_DETCG
+ det = DETG_DETCG
#include "CactusEinstein/ADMMacros/src/macro/UPPERMET_guts.h"
- uxx = UPPERMET_UXX; uxy = UPPERMET_UXY; uxz = UPPERMET_UXZ
- uyy = UPPERMET_UYY; uyz = UPPERMET_UYZ; uzz = UPPERMET_UZZ
-
-c Initialize stress-energy tensor components.
+ uxx = UPPERMET_UXX; uxy = UPPERMET_UXY; uxz = UPPERMET_UXZ
+ uyy = UPPERMET_UYY; uyz = UPPERMET_UYZ; uzz = UPPERMET_UZZ
- Ttt = 0.0D0
+c Initialize stress-energy tensor components.
- Ttx = 0.0D0; Tty = 0.0D0; Ttz = 0.0D0
+ Ttt = 0.0D0
+
+ Ttx = 0.0D0; Tty = 0.0D0; Ttz = 0.0D0
+
+ Txx = 0.0D0; Tyy = 0.0D0; Tzz = 0.0D0
+ Txy = 0.0D0; Txz = 0.0D0; Tyz = 0.0D0
- Txx = 0.0D0; Tyy = 0.0D0; Tzz = 0.0D0
- Txy = 0.0D0; Txz = 0.0D0; Tyz = 0.0D0
-
-c Include macro for stress energy tensor.
+c Include macro for stress energy tensor.
#include "CalcTmunu.inc"
-c Calculate the hamiltonian constraint
-c ------------------------------------
+c Calculate the hamiltonian constraint
+c ------------------------------------
-c Geometric piece.
+c Geometric piece.
#include "CactusEinstein/ADMMacros/src/macro/HAMADM_guts.h"
-c Add matter terms: - 16*pi*rho
+c Add matter terms: - 16*pi*rho
c
-c with rho defined as:
+c with rho defined as:
c
-c rho = n_a n_b T^{ab} = n^a n^b T_{ab}
-c = (T_00 - 2 beta^i T_{i0} + beta^i beta^j T_{ij})/alpha^2
+c rho = n_a n_b T^{ab} = n^a n^b T_{ab}
+c = (T_00 - 2 beta^i T_{i0} + beta^i beta^j T_{ij})/alpha^2
- m_rho = ialp2*Ttt
+ m_rho = ialp2*Ttt
- if (shift_state .eq. 1) then
+ if (shift_state .eq. 1) then
- m_rho = m_rho + ialp2
- & *(betax(i,j,k)**2*Txx
- & + betay(i,j,k)**2*Tyy
- & + betaz(i,j,k)**2*Tzz
- & +(betax(i,j,k)*betay(i,j,k)*Txy
- & + betax(i,j,k)*betaz(i,j,k)*Txz
- & + betay(i,j,k)*betaz(i,j,k)*Tyz)*2.0D0
- & -(betax(i,j,k)*Ttx
- & + betay(i,j,k)*Tty
- & + betaz(i,j,k)*Ttz)*2.0D0)
+ m_rho = m_rho + ialp2
+ & *(betax(i,j,k)**2*Txx
+ & + betay(i,j,k)**2*Tyy
+ & + betaz(i,j,k)**2*Tzz
+ & +(betax(i,j,k)*betay(i,j,k)*Txy
+ & + betax(i,j,k)*betaz(i,j,k)*Txz
+ & + betay(i,j,k)*betaz(i,j,k)*Tyz)*2.0D0
+ & -(betax(i,j,k)*Ttx
+ & + betay(i,j,k)*Tty
+ & + betaz(i,j,k)*Ttz)*2.0D0)
- end if
+ end if
- ham(i,j,k) = HAMADM_HAMADM - 16.0D0*pi*m_rho
+ ham(i,j,k) = HAMADM_HAMADM - 16.0D0*pi*m_rho
-c Calculate the Momentum constraints
-c ----------------------------------
+c Calculate the Momentum constraints
+c ----------------------------------
-c Geometric piece.
+c Geometric piece.
#include "CactusEinstein/ADMMacros/src/macro/MOMXADM_guts.h"
#include "CactusEinstein/ADMMacros/src/macro/MOMYADM_guts.h"
#include "CactusEinstein/ADMMacros/src/macro/MOMZADM_guts.h"
-c Add matter terms: - 8*pi*S_i
+c Add matter terms: - 8*pi*S_i
c
-c with S_i defined as:
+c with S_i defined as:
c
-c S_i = - g_{ia} n_b T^{ab} = - g_i^a n^b T_{ab}
-c = - (T_{i0} - beta^j T_{ij})/alpha
-
- m_sx = - ialp*Ttx
- m_sy = - ialp*Tty
- m_sz = - ialp*Ttz
-
- if (shift_state .eq. 1) then
-
- m_sx = m_sx + ialp
- & *(betax(i,j,k)*Txx
- & + betay(i,j,k)*Txy
- & + betaz(i,j,k)*Txz)
-
- m_sy = m_sy + ialp
- & *(betax(i,j,k)*Txy
- & + betay(i,j,k)*Tyy
- & + betaz(i,j,k)*Tyz)
-
- m_sz = m_sz + ialp
- & *(betax(i,j,k)*Txz
- & + betay(i,j,k)*Tyz
- & + betaz(i,j,k)*Tzz)
+c S_i = - g_{ia} n_b T^{ab} = - g_i^a n^b T_{ab}
+c = - (T_{i0} - beta^j T_{ij})/alpha
+
+ m_sx = - ialp*Ttx
+ m_sy = - ialp*Tty
+ m_sz = - ialp*Ttz
+
+ if (shift_state .eq. 1) then
+
+ m_sx = m_sx + ialp
+ & *(betax(i,j,k)*Txx
+ & + betay(i,j,k)*Txy
+ & + betaz(i,j,k)*Txz)
+
+ m_sy = m_sy + ialp
+ & *(betax(i,j,k)*Txy
+ & + betay(i,j,k)*Tyy
+ & + betaz(i,j,k)*Tyz)
+
+ m_sz = m_sz + ialp
+ & *(betax(i,j,k)*Txz
+ & + betay(i,j,k)*Tyz
+ & + betaz(i,j,k)*Tzz)
+
+ end if
+
+ momx(i,j,k) = MOMXADM_MOMXADM - 8.0D0*pi*m_sx
+ momy(i,j,k) = MOMYADM_MOMYADM - 8.0D0*pi*m_sy
+ momz(i,j,k) = MOMZADM_MOMZADM - 8.0D0*pi*m_sz
+
+ else
+
+ ham(i,j,k) = excised_value
+ momx(i,j,k) = excised_value
+ momy(i,j,k) = excised_value
+ momz(i,j,k) = excised_value
end if
- momx(i,j,k) = MOMXADM_MOMXADM - 8.0D0*pi*m_sx
- momy(i,j,k) = MOMYADM_MOMYADM - 8.0D0*pi*m_sy
- momz(i,j,k) = MOMZADM_MOMZADM - 8.0D0*pi*m_sz
-
end do
end do
end do
@@ -220,42 +239,6 @@ c = - (T_{i0} - beta^j T_{ij})/alpha
#include "CactusEinstein/ADMMacros/src/macro/MOMYADM_undefine.h"
#include "CactusEinstein/ADMMacros/src/macro/MOMZADM_undefine.h"
-c LegoExcision (must be done before symmetries are applied).
-
- if (excise==1) then
-
-#ifdef EXCISION_LEGOEXCISION
-
- allocate(dirx(nx,ny,nz),diry(nx,ny,nz),dirz(nx,ny,nz))
- allocate(aux(nx,ny,nz))
-
- aux = 0.0D0
-
- call excision_findboundary(ierr,emask,nx,ny,nz)
-
- call CCTK_SyncGroup(ierr,cctkGH,"einstein::mask")
- call CartSymGN(ierr,cctkGH,"einstein::mask")
-
- call excision_findnormals(ierr,emask,dirx,diry,dirz,nx,ny,nz)
-
- call excision_extrapolate(ierr,ham ,aux,emask,
- . dirx,diry,dirz,nx,ny,nz,0.0D0)
- call excision_extrapolate(ierr,momx,aux,emask,
- . dirx,diry,dirz,nx,ny,nz,0.0D0)
- call excision_extrapolate(ierr,momy,aux,emask,
- . dirx,diry,dirz,nx,ny,nz,0.0D0)
- call excision_extrapolate(ierr,momz,aux,emask,
- . dirx,diry,dirz,nx,ny,nz,0.0D0)
-
- deallocate(dirx,diry,dirz)
- deallocate(aux)
-
-#else
- call CCTK_WARN(0,"You have not compiled with LegoExcision")
-#endif
-
- end if
-
c Apply symmetry boundary conditions.
call CartSymGN(ierr,cctkGH,"admconstraints::hamiltonian")
@@ -280,15 +263,16 @@ c Cartoon.
if (cartoon==1) then
#ifdef BETATHORNS_CARTOON2D
- call BndCartoon2DGN(ierr,cctkGH,TENSORTYPE_SCALAR,"admconstraints::hamiltonian")
- call BndCartoon2DGN(ierr,cctkGH,TENSORTYPE_U,"admconstraints::momentum")
+ if (CCTK_IsThornActive("Cartoon2D")==1) then
+ call BndCartoon2DGN(ierr,cctkGH,TENSORTYPE_SCALAR,"admconstraints::hamiltonian")
+ call BndCartoon2DGN(ierr,cctkGH,TENSORTYPE_U,"admconstraints::momentum")
+ end if
#else
call CCTK_WARN(0,"You have not compiled with Cartoon2D")
#endif
end if
-c End
-
- end subroutine ADMConstraints
+ return
+ end
diff --git a/src/InitSymBound.F b/src/InitSymBound.F
index fdefad6..00cfefa 100644
--- a/src/InitSymBound.F
+++ b/src/InitSymBound.F
@@ -5,6 +5,7 @@
@desc
Sets the symmetries for the Constraint grid functions
@enddesc
+ @version $Header$
@@*/
#include "cctk.h"
@@ -31,29 +32,41 @@
DECLARE_CCTK_ARGUMENTS
- INTEGER, PARAMETER :: one = 1
- INTEGER, DIMENSION(3) :: sym
- INTEGER :: ierr
+ INTEGER one
+ PARAMETER (one=1)
+
+ INTEGER sym(3)
+ INTEGER ierr
-c GROUP: constraints
sym(1) = one
sym(2) = one
sym(3) = one
call SetCartSymVN(ierr, cctkGH, sym, 'admconstraints::ham')
+ if (ierr .lt. 0) then
+ call CCTK_WARN(0,"Error setting symmetries for ADMConstraints::ham")
+ end if
sym(1) = -one
sym(2) = one
sym(3) = one
call SetCartSymVN(ierr, cctkGH, sym, 'admconstraints::momx')
+ if (ierr .lt. 0) then
+ call CCTK_WARN(0,"Error setting symmetries for ADMConstraints::momx")
+ end if
sym(1) = one
sym(2) = -one
sym(3) = one
call SetCartSymVN(ierr, cctkGH, sym, 'admconstraints::momy')
+ if (ierr .lt. 0) then
+ call CCTK_WARN(0,"Error setting symmetries for ADMConstraints::momy")
+ end if
sym(1) = one
sym(2) = one
sym(3) = -one
call SetCartSymVN(ierr, cctkGH, sym, 'admconstraints::momz')
+ if (ierr .lt. 0) then
+ call CCTK_WARN(0,"Error setting symmetries for ADMConstraints::momz")
+ end if
return
-
- end subroutine ADMConstraint_InitSymbound
+ end
diff --git a/src/ParamCheck.c b/src/ParamCheck.c
index 45c15e9..0ca88e8 100644
--- a/src/ParamCheck.c
+++ b/src/ParamCheck.c
@@ -75,6 +75,12 @@ void ADMConstraints_ParamCheck(CCTK_ARGUMENTS)
CCTK_PARAMWARN("ADMConstraints can currently only work with a physical metric or a static conformal metric with second derivatives");
}
+ CCTK_INFO("ADMConstraints contains ifdefs for Cartoon2D");
+ if (cartoon && !CCTK_IsThornActive("Cartoon2D"))
+ {
+ CCTK_WARN(0," ... using Cartoon2D but it is not active");
+ }
+
}
/*@@
diff --git a/test/ADMConstraints_Mask.par b/test/ADMConstraints_Mask.par
new file mode 100644
index 0000000..20d1678
--- /dev/null
+++ b/test/ADMConstraints_Mask.par
@@ -0,0 +1,52 @@
+!DESC "Constraints for Schwarzschild with mask activated"
+
+# $Header$
+#
+# /*@@
+# @file test_ADM_1.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# ADMConstraints test file
+# @enddesc
+# @@*/
+
+# Required thorns
+ActiveThorns = "Boundary Time ADMconstraints pugh ADM CoordGauge pughreduce cartgrid3d ADMBase StaticConformal admmacros spacemask idanalyticbh ioutil iobasic"
+
+# GENERAL
+
+driver::global_nx = 20
+driver::global_ny = 20
+driver::global_nz = 20
+
+grid::type = "byspacing"
+grid::dxyz = 0.2
+grid::domain = "octant"
+
+cactus::cctk_itlast = 3
+
+
+# Einstein
+
+SpaceMask::use_mask = "yes"
+
+ADMBase::initial_data = "schwarzschild"
+ADMBase::metric_type = "static conformal"
+ADMBase::evolution_method = "ADM"
+ADMBase::lapse_evolution_method = "1+log"
+
+adm::method = "stagleap"
+adm::bound = "flat"
+
+# Output
+
+IO::out_dir = "ADMConstraints_Mask"
+IO::out_fileinfo = "none"
+
+IOBasic::outScalar_every = 1
+IOBasic::outScalar_vars = "admconstraints::hamiltonian admconstraints::momentum"
+
+IOBasic::outInfo_every = 1
+IOBasic::outInfo_vars = "admconstraints::ham admbase::gxx"
+
diff --git a/test/ADMConstraints_Mask/ADMConstraints_Mask.par b/test/ADMConstraints_Mask/ADMConstraints_Mask.par
new file mode 100644
index 0000000..9aa0995
--- /dev/null
+++ b/test/ADMConstraints_Mask/ADMConstraints_Mask.par
@@ -0,0 +1,46 @@
+!DESC "Constraints for Schwarzschild with mask activated"
+
+# $Header$
+#
+# /*@@
+# @file test_ADM_1.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# ADMConstraints test file
+# @enddesc
+# @@*/
+
+# Required thorns
+ActiveThorns = "Boundary Time ADMconstraints pugh pughreduce cartgrid3d ADMBase StaticConformal admmacros spacemask idanalyticbh ioutil iobasic"
+
+# GENERAL
+
+driver::global_nx = 20
+driver::global_ny = 20
+driver::global_nz = 20
+
+grid::type = "byspacing"
+grid::dxyz = 0.2
+grid::domain = "octant"
+
+cactus::cctk_itlast = 0
+
+
+# Einstein
+
+SpaceMask::use_mask = "yes"
+ADMBase::initial_data = "schwarzschild"
+ADMBase::metric_type = "static conformal"
+
+# Output
+
+IO::out_dir = "ADMConstraints_Mask"
+IO::out_fileinfo = "none"
+
+IOBasic::outScalar_every = 1
+IOBasic::outScalar_vars = "admconstraints::hamiltonian admconstraints::momentum"
+
+IOBasic::outInfo_every = 1
+IOBasic::outInfo_vars = "admconstraints::ham admbase::gxx"
+
diff --git a/test/ADMConstraints_Mask/ham_maximum.xg b/test/ADMConstraints_Mask/ham_maximum.xg
new file mode 100644
index 0000000..ad2b029
--- /dev/null
+++ b/test/ADMConstraints_Mask/ham_maximum.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0002044852710
+0.2000000000000 0.0007982173981
+0.3000000000000 0.0017258133454
diff --git a/test/ADMConstraints_Mask/ham_minimum.xg b/test/ADMConstraints_Mask/ham_minimum.xg
new file mode 100644
index 0000000..f342654
--- /dev/null
+++ b/test/ADMConstraints_Mask/ham_minimum.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -0.0001124590969
+0.2000000000000 -0.0004379400554
+0.3000000000000 -0.0009426106873
diff --git a/test/ADMConstraints_Mask/ham_norm1.xg b/test/ADMConstraints_Mask/ham_norm1.xg
new file mode 100644
index 0000000..d923144
--- /dev/null
+++ b/test/ADMConstraints_Mask/ham_norm1.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000159379883
+0.2000000000000 0.0000628594942
+0.3000000000000 0.0001383184346
diff --git a/test/ADMConstraints_Mask/ham_norm2.xg b/test/ADMConstraints_Mask/ham_norm2.xg
new file mode 100644
index 0000000..74a3289
--- /dev/null
+++ b/test/ADMConstraints_Mask/ham_norm2.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000382103057
+0.2000000000000 0.0001490771389
+0.3000000000000 0.0003222790671
diff --git a/test/ADMConstraints_Mask/momx_maximum.xg b/test/ADMConstraints_Mask/momx_maximum.xg
new file mode 100644
index 0000000..e5594a2
--- /dev/null
+++ b/test/ADMConstraints_Mask/momx_maximum.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 0.0055634120450
+0.2000000000000 0.0111123908075
+0.3000000000000 0.0166325230605
diff --git a/test/ADMConstraints_Mask/momx_minimum.xg b/test/ADMConstraints_Mask/momx_minimum.xg
new file mode 100644
index 0000000..dc5df80
--- /dev/null
+++ b/test/ADMConstraints_Mask/momx_minimum.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -0.0055634120450
+0.2000000000000 -0.0111123908075
+0.3000000000000 -0.0166325230605
diff --git a/test/ADMConstraints_Mask/momx_norm1.xg b/test/ADMConstraints_Mask/momx_norm1.xg
new file mode 100644
index 0000000..d9c62fe
--- /dev/null
+++ b/test/ADMConstraints_Mask/momx_norm1.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000998180019
+0.2000000000000 0.0002004327396
+0.3000000000000 0.0003032309573
diff --git a/test/ADMConstraints_Mask/momx_norm2.xg b/test/ADMConstraints_Mask/momx_norm2.xg
new file mode 100644
index 0000000..ffbb440
--- /dev/null
+++ b/test/ADMConstraints_Mask/momx_norm2.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0003573831141
+0.2000000000000 0.0007153714352
+0.3000000000000 0.0010746503210
diff --git a/test/ADMConstraints_Mask/momy_maximum.xg b/test/ADMConstraints_Mask/momy_maximum.xg
new file mode 100644
index 0000000..fc20965
--- /dev/null
+++ b/test/ADMConstraints_Mask/momy_maximum.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 0.0055634120450
+0.2000000000000 0.0111123908075
+0.3000000000000 0.0166325230605
diff --git a/test/ADMConstraints_Mask/momy_minimum.xg b/test/ADMConstraints_Mask/momy_minimum.xg
new file mode 100644
index 0000000..7b818df
--- /dev/null
+++ b/test/ADMConstraints_Mask/momy_minimum.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -0.0055634120450
+0.2000000000000 -0.0111123908075
+0.3000000000000 -0.0166325230605
diff --git a/test/ADMConstraints_Mask/momy_norm1.xg b/test/ADMConstraints_Mask/momy_norm1.xg
new file mode 100644
index 0000000..734505a
--- /dev/null
+++ b/test/ADMConstraints_Mask/momy_norm1.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000998180019
+0.2000000000000 0.0002004327396
+0.3000000000000 0.0003032309573
diff --git a/test/ADMConstraints_Mask/momy_norm2.xg b/test/ADMConstraints_Mask/momy_norm2.xg
new file mode 100644
index 0000000..479b003
--- /dev/null
+++ b/test/ADMConstraints_Mask/momy_norm2.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0003573831141
+0.2000000000000 0.0007153714352
+0.3000000000000 0.0010746503210
diff --git a/test/ADMConstraints_Mask/momz_maximum.xg b/test/ADMConstraints_Mask/momz_maximum.xg
new file mode 100644
index 0000000..52bbbf3
--- /dev/null
+++ b/test/ADMConstraints_Mask/momz_maximum.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 0.0055634120450
+0.2000000000000 0.0111123908075
+0.3000000000000 0.0166325230605
diff --git a/test/ADMConstraints_Mask/momz_minimum.xg b/test/ADMConstraints_Mask/momz_minimum.xg
new file mode 100644
index 0000000..51ac7bb
--- /dev/null
+++ b/test/ADMConstraints_Mask/momz_minimum.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -0.0055634120450
+0.2000000000000 -0.0111123908075
+0.3000000000000 -0.0166325230605
diff --git a/test/ADMConstraints_Mask/momz_norm1.xg b/test/ADMConstraints_Mask/momz_norm1.xg
new file mode 100644
index 0000000..4600896
--- /dev/null
+++ b/test/ADMConstraints_Mask/momz_norm1.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000998180019
+0.2000000000000 0.0002004327396
+0.3000000000000 0.0003032309573
diff --git a/test/ADMConstraints_Mask/momz_norm2.xg b/test/ADMConstraints_Mask/momz_norm2.xg
new file mode 100644
index 0000000..11f584a
--- /dev/null
+++ b/test/ADMConstraints_Mask/momz_norm2.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0003573831141
+0.2000000000000 0.0007153714352
+0.3000000000000 0.0010746503210
diff --git a/test/ADMConstraints_Physical.par b/test/ADMConstraints_Physical.par
new file mode 100644
index 0000000..5c68559
--- /dev/null
+++ b/test/ADMConstraints_Physical.par
@@ -0,0 +1,51 @@
+!DESC "Constraints for Schwarzschild with physical metric"
+
+# $Header$
+#
+# /*@@
+# @file test_ADM_1.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# ADMConstraints test file
+# @enddesc
+# @@*/
+
+# Required thorns
+ActiveThorns = "Boundary Time ADMconstraints ADM CoordGauge pugh pughreduce cartgrid3d ADMBase StaticConformal admmacros spacemask idanalyticbh ioutil iobasic"
+
+# GENERAL
+
+driver::global_nx = 20
+driver::global_ny = 20
+driver::global_nz = 20
+
+grid::type = "byspacing"
+grid::dxyz = 0.2
+grid::domain = "octant"
+
+cactus::cctk_itlast = 3
+
+
+# Einstein
+
+ADMBase::initial_data = "schwarzschild"
+ADMBase::metric_type = "physical"
+
+ADMBase::evolution_method = "ADM"
+ADMBase::lapse_evolution_method = "1+log"
+
+adm::method = "stagleap"
+adm::bound = "flat"
+
+# Output
+
+IO::out_dir = "ADMConstraints_Physical"
+IO::out_fileinfo = "none"
+
+IOBasic::outScalar_every = 1
+IOBasic::outScalar_vars = "admconstraints::hamiltonian admconstraints::momentum"
+
+IOBasic::outInfo_every = 1
+IOBasic::outInfo_vars = "admconstraints::ham admbase::gxx"
+
diff --git a/test/ADMConstraints_Physical/ADMConstraints_Physical.par b/test/ADMConstraints_Physical/ADMConstraints_Physical.par
new file mode 100644
index 0000000..d8820ea
--- /dev/null
+++ b/test/ADMConstraints_Physical/ADMConstraints_Physical.par
@@ -0,0 +1,45 @@
+!DESC "Constraints for Schwarzschild with physical metric"
+
+# $Header$
+#
+# /*@@
+# @file test_ADM_1.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# ADMConstraints test file
+# @enddesc
+# @@*/
+
+# Required thorns
+ActiveThorns = "Boundary Time ADMconstraints pugh pughreduce cartgrid3d ADMBase StaticConformal admmacros spacemask idanalyticbh ioutil iobasic"
+
+# GENERAL
+
+driver::global_nx = 20
+driver::global_ny = 20
+driver::global_nz = 20
+
+grid::type = "byspacing"
+grid::dxyz = 0.2
+grid::domain = "octant"
+
+cactus::cctk_itlast = 0
+
+
+# Einstein
+
+ADMBase::initial_data = "schwarzschild"
+ADMBase::metric_type = "physical"
+
+# Output
+
+IO::out_dir = "ADMConstraints_Physical"
+IO::out_fileinfo = "none"
+
+IOBasic::outScalar_every = 1
+IOBasic::outScalar_vars = "admconstraints::hamiltonian admconstraints::momentum"
+
+IOBasic::outInfo_every = 1
+IOBasic::outInfo_vars = "admconstraints::ham admbase::gxx"
+
diff --git a/test/ADMConstraints_Physical/ham_maximum.xg b/test/ADMConstraints_Physical/ham_maximum.xg
new file mode 100644
index 0000000..66cdec8
--- /dev/null
+++ b/test/ADMConstraints_Physical/ham_maximum.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 13.3168913178387
+0.1000000000000 17.5306768916953
+0.2000000000000 41.2644137187818
+0.3000000000000 156.0398679535504
diff --git a/test/ADMConstraints_Physical/ham_minimum.xg b/test/ADMConstraints_Physical/ham_minimum.xg
new file mode 100644
index 0000000..53985a0
--- /dev/null
+++ b/test/ADMConstraints_Physical/ham_minimum.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 -3.1663435079891
+0.1000000000000 -3.0475853008326
+0.2000000000000 -3.0625005210252
+0.3000000000000 -4.4414962230179
diff --git a/test/ADMConstraints_Physical/ham_norm1.xg b/test/ADMConstraints_Physical/ham_norm1.xg
new file mode 100644
index 0000000..c3c3ad9
--- /dev/null
+++ b/test/ADMConstraints_Physical/ham_norm1.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 0.1774902308936
+0.1000000000000 0.1859891876737
+0.2000000000000 0.2171187752997
+0.3000000000000 0.3839334253993
diff --git a/test/ADMConstraints_Physical/ham_norm2.xg b/test/ADMConstraints_Physical/ham_norm2.xg
new file mode 100644
index 0000000..7de4efb
--- /dev/null
+++ b/test/ADMConstraints_Physical/ham_norm2.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 0.7570518624213
+0.1000000000000 0.8624322037758
+0.2000000000000 1.6660412222337
+0.3000000000000 6.0614293230497
diff --git a/test/ADMConstraints_Physical/momx_maximum.xg b/test/ADMConstraints_Physical/momx_maximum.xg
new file mode 100644
index 0000000..46c9206
--- /dev/null
+++ b/test/ADMConstraints_Physical/momx_maximum.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 8.8861212674441
+0.2000000000000 18.9391397990672
+0.3000000000000 32.4033169212092
diff --git a/test/ADMConstraints_Physical/momx_minimum.xg b/test/ADMConstraints_Physical/momx_minimum.xg
new file mode 100644
index 0000000..42ba04e
--- /dev/null
+++ b/test/ADMConstraints_Physical/momx_minimum.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -42.3928226636914
+0.2000000000000 -121.2722920912621
+0.3000000000000 -321.7412887542507
diff --git a/test/ADMConstraints_Physical/momx_norm1.xg b/test/ADMConstraints_Physical/momx_norm1.xg
new file mode 100644
index 0000000..5ccc2f0
--- /dev/null
+++ b/test/ADMConstraints_Physical/momx_norm1.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0433446383591
+0.2000000000000 0.1036637106385
+0.3000000000000 0.2413492859555
diff --git a/test/ADMConstraints_Physical/momx_norm2.xg b/test/ADMConstraints_Physical/momx_norm2.xg
new file mode 100644
index 0000000..d289f52
--- /dev/null
+++ b/test/ADMConstraints_Physical/momx_norm2.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.9816315303820
+0.2000000000000 2.7621791337128
+0.3000000000000 7.2651806317338
diff --git a/test/ADMConstraints_Physical/momy_maximum.xg b/test/ADMConstraints_Physical/momy_maximum.xg
new file mode 100644
index 0000000..1298451
--- /dev/null
+++ b/test/ADMConstraints_Physical/momy_maximum.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 8.8861212674441
+0.2000000000000 18.9391397990672
+0.3000000000000 32.4033169212092
diff --git a/test/ADMConstraints_Physical/momy_minimum.xg b/test/ADMConstraints_Physical/momy_minimum.xg
new file mode 100644
index 0000000..5e878ff
--- /dev/null
+++ b/test/ADMConstraints_Physical/momy_minimum.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -42.3928226636914
+0.2000000000000 -121.2722920912621
+0.3000000000000 -321.7412887542507
diff --git a/test/ADMConstraints_Physical/momy_norm1.xg b/test/ADMConstraints_Physical/momy_norm1.xg
new file mode 100644
index 0000000..7099c8f
--- /dev/null
+++ b/test/ADMConstraints_Physical/momy_norm1.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0433446383591
+0.2000000000000 0.1036637106385
+0.3000000000000 0.2413492859555
diff --git a/test/ADMConstraints_Physical/momy_norm2.xg b/test/ADMConstraints_Physical/momy_norm2.xg
new file mode 100644
index 0000000..adb1db6
--- /dev/null
+++ b/test/ADMConstraints_Physical/momy_norm2.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.9816315303820
+0.2000000000000 2.7621791337128
+0.3000000000000 7.2651806317338
diff --git a/test/ADMConstraints_Physical/momz_maximum.xg b/test/ADMConstraints_Physical/momz_maximum.xg
new file mode 100644
index 0000000..4413bcd
--- /dev/null
+++ b/test/ADMConstraints_Physical/momz_maximum.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 8.8861212674441
+0.2000000000000 18.9391397990672
+0.3000000000000 32.4033169212092
diff --git a/test/ADMConstraints_Physical/momz_minimum.xg b/test/ADMConstraints_Physical/momz_minimum.xg
new file mode 100644
index 0000000..ebe3852
--- /dev/null
+++ b/test/ADMConstraints_Physical/momz_minimum.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -42.3928226636914
+0.2000000000000 -121.2722920912622
+0.3000000000000 -321.7412887542508
diff --git a/test/ADMConstraints_Physical/momz_norm1.xg b/test/ADMConstraints_Physical/momz_norm1.xg
new file mode 100644
index 0000000..c22a155
--- /dev/null
+++ b/test/ADMConstraints_Physical/momz_norm1.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0433446383591
+0.2000000000000 0.1036637106385
+0.3000000000000 0.2413492859555
diff --git a/test/ADMConstraints_Physical/momz_norm2.xg b/test/ADMConstraints_Physical/momz_norm2.xg
new file mode 100644
index 0000000..3d8c65d
--- /dev/null
+++ b/test/ADMConstraints_Physical/momz_norm2.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.9816315303820
+0.2000000000000 2.7621791337128
+0.3000000000000 7.2651806317338
diff --git a/test/ADMConstraints_Shift.par b/test/ADMConstraints_Shift.par
new file mode 100644
index 0000000..2a95f5e
--- /dev/null
+++ b/test/ADMConstraints_Shift.par
@@ -0,0 +1,52 @@
+!DESC "Constraints for Schwarzschild with mask and shift activated"
+
+# $Header$
+#
+# /*@@
+# @file test_ADM_1.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# ADMConstraints test file
+# @enddesc
+# @@*/
+
+# Required thorns
+ActiveThorns = "Boundary Time ADMconstraints ADM CoordGauge pugh pughreduce cartgrid3d ADMBase StaticConformal admmacros spacemask idanalyticbh ioutil iobasic"
+
+# GENERAL
+
+driver::global_nx = 20
+driver::global_ny = 20
+driver::global_nz = 20
+
+grid::type = "byspacing"
+grid::dxyz = 0.2
+grid::domain = "octant"
+
+cactus::cctk_itlast = 3
+
+
+# Einstein
+
+ADMBase::initial_data = "schwarzschild"
+ADMBase::metric_type = "static conformal"
+ADMBase::initial_shift = "zero"
+
+ADMBase::evolution_method = "ADM"
+ADMBase::lapse_evolution_method = "1+log"
+
+adm::method = "stagleap"
+adm::bound = "flat"
+
+# Output
+
+IO::out_dir = "ADMConstraints_Shift"
+IO::out_fileinfo = "none"
+
+IOBasic::outScalar_every = 1
+IOBasic::outScalar_vars = "admconstraints::hamiltonian admconstraints::momentum"
+
+IOBasic::outInfo_every = 1
+IOBasic::outInfo_vars = "admconstraints::ham admbase::gxx"
+
diff --git a/test/ADMConstraints_Shift/ADMConstraints_Shift.par b/test/ADMConstraints_Shift/ADMConstraints_Shift.par
new file mode 100644
index 0000000..a1bb161
--- /dev/null
+++ b/test/ADMConstraints_Shift/ADMConstraints_Shift.par
@@ -0,0 +1,46 @@
+!DESC "Constraints for Schwarzschild with mask and shift activated"
+
+# $Header$
+#
+# /*@@
+# @file test_ADM_1.par
+# @date Sunday 24th July
+# @author Gabrielle Allen
+# @desc
+# ADMConstraints test file
+# @enddesc
+# @@*/
+
+# Required thorns
+ActiveThorns = "Boundary Time ADMconstraints pugh pughreduce cartgrid3d ADMBase StaticConformal admmacros spacemask idanalyticbh ioutil iobasic"
+
+# GENERAL
+
+driver::global_nx = 20
+driver::global_ny = 20
+driver::global_nz = 20
+
+grid::type = "byspacing"
+grid::dxyz = 0.2
+grid::domain = "octant"
+
+cactus::cctk_itlast = 0
+
+
+# Einstein
+
+ADMBase::initial_data = "schwarzschild"
+ADMBase::metric_type = "static conformal"
+ADMBase::initial_shift = "zero"
+
+# Output
+
+IO::out_dir = "ADMConstraints_Shift"
+IO::out_fileinfo = "none"
+
+IOBasic::outScalar_every = 1
+IOBasic::outScalar_vars = "admconstraints::hamiltonian admconstraints::momentum"
+
+IOBasic::outInfo_every = 1
+IOBasic::outInfo_vars = "admconstraints::ham admbase::gxx"
+
diff --git a/test/ADMConstraints_Shift/ham_maximum.xg b/test/ADMConstraints_Shift/ham_maximum.xg
new file mode 100644
index 0000000..ad2b029
--- /dev/null
+++ b/test/ADMConstraints_Shift/ham_maximum.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0002044852710
+0.2000000000000 0.0007982173981
+0.3000000000000 0.0017258133454
diff --git a/test/ADMConstraints_Shift/ham_minimum.xg b/test/ADMConstraints_Shift/ham_minimum.xg
new file mode 100644
index 0000000..f342654
--- /dev/null
+++ b/test/ADMConstraints_Shift/ham_minimum.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -0.0001124590969
+0.2000000000000 -0.0004379400554
+0.3000000000000 -0.0009426106873
diff --git a/test/ADMConstraints_Shift/ham_norm1.xg b/test/ADMConstraints_Shift/ham_norm1.xg
new file mode 100644
index 0000000..d923144
--- /dev/null
+++ b/test/ADMConstraints_Shift/ham_norm1.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000159379883
+0.2000000000000 0.0000628594942
+0.3000000000000 0.0001383184346
diff --git a/test/ADMConstraints_Shift/ham_norm2.xg b/test/ADMConstraints_Shift/ham_norm2.xg
new file mode 100644
index 0000000..74a3289
--- /dev/null
+++ b/test/ADMConstraints_Shift/ham_norm2.xg
@@ -0,0 +1,5 @@
+"ham v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000382103057
+0.2000000000000 0.0001490771389
+0.3000000000000 0.0003222790671
diff --git a/test/ADMConstraints_Shift/momx_maximum.xg b/test/ADMConstraints_Shift/momx_maximum.xg
new file mode 100644
index 0000000..e5594a2
--- /dev/null
+++ b/test/ADMConstraints_Shift/momx_maximum.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 0.0055634120450
+0.2000000000000 0.0111123908075
+0.3000000000000 0.0166325230605
diff --git a/test/ADMConstraints_Shift/momx_minimum.xg b/test/ADMConstraints_Shift/momx_minimum.xg
new file mode 100644
index 0000000..dc5df80
--- /dev/null
+++ b/test/ADMConstraints_Shift/momx_minimum.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -0.0055634120450
+0.2000000000000 -0.0111123908075
+0.3000000000000 -0.0166325230605
diff --git a/test/ADMConstraints_Shift/momx_norm1.xg b/test/ADMConstraints_Shift/momx_norm1.xg
new file mode 100644
index 0000000..d9c62fe
--- /dev/null
+++ b/test/ADMConstraints_Shift/momx_norm1.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000998180019
+0.2000000000000 0.0002004327396
+0.3000000000000 0.0003032309573
diff --git a/test/ADMConstraints_Shift/momx_norm2.xg b/test/ADMConstraints_Shift/momx_norm2.xg
new file mode 100644
index 0000000..ffbb440
--- /dev/null
+++ b/test/ADMConstraints_Shift/momx_norm2.xg
@@ -0,0 +1,5 @@
+"momx v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0003573831141
+0.2000000000000 0.0007153714352
+0.3000000000000 0.0010746503210
diff --git a/test/ADMConstraints_Shift/momy_maximum.xg b/test/ADMConstraints_Shift/momy_maximum.xg
new file mode 100644
index 0000000..fc20965
--- /dev/null
+++ b/test/ADMConstraints_Shift/momy_maximum.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 0.0055634120450
+0.2000000000000 0.0111123908075
+0.3000000000000 0.0166325230605
diff --git a/test/ADMConstraints_Shift/momy_minimum.xg b/test/ADMConstraints_Shift/momy_minimum.xg
new file mode 100644
index 0000000..7b818df
--- /dev/null
+++ b/test/ADMConstraints_Shift/momy_minimum.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -0.0055634120450
+0.2000000000000 -0.0111123908075
+0.3000000000000 -0.0166325230605
diff --git a/test/ADMConstraints_Shift/momy_norm1.xg b/test/ADMConstraints_Shift/momy_norm1.xg
new file mode 100644
index 0000000..734505a
--- /dev/null
+++ b/test/ADMConstraints_Shift/momy_norm1.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000998180019
+0.2000000000000 0.0002004327396
+0.3000000000000 0.0003032309573
diff --git a/test/ADMConstraints_Shift/momy_norm2.xg b/test/ADMConstraints_Shift/momy_norm2.xg
new file mode 100644
index 0000000..479b003
--- /dev/null
+++ b/test/ADMConstraints_Shift/momy_norm2.xg
@@ -0,0 +1,5 @@
+"momy v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0003573831141
+0.2000000000000 0.0007153714352
+0.3000000000000 0.0010746503210
diff --git a/test/ADMConstraints_Shift/momz_maximum.xg b/test/ADMConstraints_Shift/momz_maximum.xg
new file mode 100644
index 0000000..52bbbf3
--- /dev/null
+++ b/test/ADMConstraints_Shift/momz_maximum.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 0.0055634120450
+0.2000000000000 0.0111123908075
+0.3000000000000 0.0166325230605
diff --git a/test/ADMConstraints_Shift/momz_minimum.xg b/test/ADMConstraints_Shift/momz_minimum.xg
new file mode 100644
index 0000000..51ac7bb
--- /dev/null
+++ b/test/ADMConstraints_Shift/momz_minimum.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 -0.0000000000000
+0.1000000000000 -0.0055634120450
+0.2000000000000 -0.0111123908075
+0.3000000000000 -0.0166325230605
diff --git a/test/ADMConstraints_Shift/momz_norm1.xg b/test/ADMConstraints_Shift/momz_norm1.xg
new file mode 100644
index 0000000..4600896
--- /dev/null
+++ b/test/ADMConstraints_Shift/momz_norm1.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0000998180019
+0.2000000000000 0.0002004327396
+0.3000000000000 0.0003032309573
diff --git a/test/ADMConstraints_Shift/momz_norm2.xg b/test/ADMConstraints_Shift/momz_norm2.xg
new file mode 100644
index 0000000..11f584a
--- /dev/null
+++ b/test/ADMConstraints_Shift/momz_norm2.xg
@@ -0,0 +1,5 @@
+"momz v time
+0.0000000000000 0.0000000000000
+0.1000000000000 0.0003573831141
+0.2000000000000 0.0007153714352
+0.3000000000000 0.0010746503210