aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiguel <miguel@e296648e-0e4f-0410-bd07-d597d9acff87>1999-12-16 12:24:37 +0000
committermiguel <miguel@e296648e-0e4f-0410-bd07-d597d9acff87>1999-12-16 12:24:37 +0000
commit872065b3f089c217fc0aac1427e630f12a36f389 (patch)
treea5f5d7168bfde35c46dfc0fb61b2d6951914d198
parente724ef38f2548787d57471395b26aba93648c909 (diff)
Adding parameter for initial_lapse.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@13 e296648e-0e4f-0410-bd07-d597d9acff87
-rw-r--r--param.ccl5
-rw-r--r--schedule.ccl2
-rw-r--r--src/exactgauge.F1
-rw-r--r--src/exactinitialize.F79
4 files changed, 78 insertions, 9 deletions
diff --git a/param.ccl b/param.ccl
index 3126cf4..fe5bb71 100644
--- a/param.ccl
+++ b/param.ccl
@@ -21,6 +21,11 @@ EXTENDS KEYWORD shift ""
"exact" :: Use shift from exact solution
} ""
+EXTENDS KEYWORD initial_lapse ""
+{
+ "exact" :: "Initial data from exact solution"
+} ""
+
EXTENDS KEYWORD evolution_system ""
{
"slice" :: "Evolve arbitrary slice and extract Cauchy data"
diff --git a/schedule.ccl b/schedule.ccl
index 087f563..b0f1db3 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -4,7 +4,7 @@
# Initial data from exact solution.
-if (CCTK_Equals(initial_data,"exact"))
+if ((CCTK_Equals(initial_data,"exact")) || (CCTK_Equals(initial_lapse,"exact")))
{
schedule exactinitialize at CCTK_INITIAL
{
diff --git a/src/exactgauge.F b/src/exactgauge.F
index a22848a..7f9edaf 100644
--- a/src/exactgauge.F
+++ b/src/exactgauge.F
@@ -66,7 +66,6 @@ C Set both lapse and shift.
$ bxxjunk, bxyjunk, bxzjunk,
$ byxjunk, byyjunk, byzjunk,
$ bzxjunk, bzyjunk, bzzjunk)
-
end do
end do
end do
diff --git a/src/exactinitialize.F b/src/exactinitialize.F
index e345775..b689512 100644
--- a/src/exactinitialize.F
+++ b/src/exactinitialize.F
@@ -15,6 +15,12 @@ C in the Bona-Masso formalism, at an initial time.
integer i,j,k
integer nx,ny,nz
+ integer CCTK_Equals
+
+ CCTK_REAL gxxjunk, gyyjunk, gzzjunk,
+ $ gxyjunk, gyzjunk, gxzjunk,
+ $ kxxjunk, kyyjunk, kzzjunk,
+ $ kxyjunk, kyzjunk, kxzjunk,
CCTK_REAL alpjunk, axjunk, ayjunk, azjunk,
$ betaxjunk, betayjunk, betazjunk,
@@ -36,11 +42,41 @@ C Set data pointwise.
ny = cctk_lsh(2)
nz = cctk_lsh(3)
- do k=1,nz
- do j=1,ny
- do i=1,nx
+ if ((CCTK_Equals(initial_data,"exact") == 1).and.
+ . (CCTK_Equals(initial_lapse,"exact") == 1)) then
+
+ do k=1,nz
+ do j=1,ny
+ do i=1,nx
- call exactdata(x(i,j,k), y(i,j,k), z(i,j,k), cctk_time,
+ call exactdata(x(i,j,k), y(i,j,k), z(i,j,k), cctk_time,
+ $ gxx(i,j,k), gyy(i,j,k), gzz(i,j,k),
+ $ gxy(i,j,k), gyz(i,j,k), gxz(i,j,k),
+ $ kxx(i,j,k), kyy(i,j,k), kzz(i,j,k),
+ $ kxy(i,j,k), kyz(i,j,k), kxz(i,j,k),
+ $ dxgxxjunk, dxgyyjunk, dxgzzjunk,
+ $ dxgxyjunk, dxgyzjunk, dxgxzjunk,
+ $ dygxxjunk, dygyyjunk, dygzzjunk,
+ $ dygxyjunk, dygyzjunk, dygxzjunk,
+ $ dzgxxjunk, dzgyyjunk, dzgzzjunk,
+ $ dzgxyjunk, dzgyzjunk, dzgxzjunk,
+ $ alp(i,j,k), axjunk, ayjunk, azjunk,
+ $ betaxjunk, betayjunk, betazjunk,
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
+ $ bzxjunk, bzyjunk, bzzjunk)
+
+ end do
+ end do
+ end do
+
+ else if (CCTK_Equals(initial_data,"exact") == 1) then
+
+ do k=1,nz
+ do j=1,ny
+ do i=1,nx
+
+ call exactdata(x(i,j,k), y(i,j,k), z(i,j,k), cctk_time,
$ gxx(i,j,k), gyy(i,j,k), gzz(i,j,k),
$ gxy(i,j,k), gyz(i,j,k), gxz(i,j,k),
$ kxx(i,j,k), kyy(i,j,k), kzz(i,j,k),
@@ -53,13 +89,42 @@ C Set data pointwise.
$ dzgxyjunk, dzgyzjunk, dzgxzjunk,
$ alpjunk, axjunk, ayjunk, azjunk,
$ betaxjunk, betayjunk, betazjunk,
- $ bxxjunk, bxyjunk, bxzjunk,
- $ byxjunk, byyjunk, byzjunk,
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
$ bzxjunk, bzyjunk, bzzjunk)
+ end do
end do
end do
- end do
+
+ else if (CCTK_Equals(initial_lapse,"exact") == 1) then
+
+ do k=1,nz
+ do j=1,ny
+ do i=1,nx
+
+ call exactdata(x(i,j,k), y(i,j,k), z(i,j,k), cctk_time,
+ $ gxxjunk, gyyjunk, gzzjunk,
+ $ gxyjunk, gyzjunk, gxzjunk,
+ $ kxxjunk, kyyjunk, kzzjunk,
+ $ kxyjunk, kyzjunk, kxzjunk,
+ $ dxgxxjunk, dxgyyjunk, dxgzzjunk,
+ $ dxgxyjunk, dxgyzjunk, dxgxzjunk,
+ $ dygxxjunk, dygyyjunk, dygzzjunk,
+ $ dygxyjunk, dygyzjunk, dygxzjunk,
+ $ dzgxxjunk, dzgyyjunk, dzgzzjunk,
+ $ dzgxyjunk, dzgyzjunk, dzgxzjunk,
+ $ alp(i,j,k), axjunk, ayjunk, azjunk,
+ $ betaxjunk, betayjunk, betazjunk,
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
+ $ bzxjunk, bzyjunk, bzzjunk)
+
+ end do
+ end do
+ end do
+
+ end if
C Tell the code there is no need to treat the conformal factor
C as a separate field. That is, we have set the physical metric here.