aboutsummaryrefslogtreecommitdiff
path: root/archive/ComparisonSolutions.F
diff options
context:
space:
mode:
authorjthorn <jthorn@e296648e-0e4f-0410-bd07-d597d9acff87>2002-06-16 18:13:32 +0000
committerjthorn <jthorn@e296648e-0e4f-0410-bd07-d597d9acff87>2002-06-16 18:13:32 +0000
commite9bd56216de3463d4c500faa3d8a7c053ba883e3 (patch)
tree34348d29a03cbb7488adb2f17008e18c78f07450 /archive/ComparisonSolutions.F
parent8ab8f11496c67d4241e5597e278a85a4897ccfc3 (diff)
[[This is a redo of my "cvs import" of 2002/06/11, this time using proper
cvs operations (commit/delete/add) to preserve the full CVS history of this thorn.]] This is a major cleanup/revision of AEIThorns/Exact. Major user-visible changes: * major expansion of doc/documentation.tex * major expansion of documentation in param.ccl file * rename all parameters, systematize spacetime/coordinate/parameter names (there is a perl script in par/convert-pars.pl to convert old parameter files to the new names) * [from Mitica Vulcanov] many additions and fixes to cosmological solutions and Schwarzschild-Lemaitre * fix stress-energy tensor computations so they work -- before they were all disabled in CVS (INCLUDES lines were commented out in interface.ccl) due to requiring excessive friendship with evolution thorns and/or public parameters; new code copies parameters to restricted grid scalars, which Cactus automagically "pushes" to friends * added some more tests to testsuite, though these don't yet work fully Additional internal changes: * rename many Fortran subroutines (and a few C ones too) so their names start with the thorn name to reduce the chances of name collisions with other thorns * move all metrics to subdirectory so the main source directory isn't so cluttered * move two files containing subroutines which were never called (they didn't belong in this thorn, but somehow got into cvs by accident) into new archive/ directory * some (small) improvements in efficiency -- the exact_model parameter is now decoded from a keyword (string) to an integer once at INITIAL, and that integer tested by the stress-energy tensor code, rather than requiring a separate series of string tests at each grid point (!) like the old stress-energy tensor code did Added Files: (these are the two files containing subroutines which were never called) Comparison.c moved from ../src/Comparison.c ComparisonSolutions.F moved from ../src/ComparisonSolutions.F git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@99 e296648e-0e4f-0410-bd07-d597d9acff87
Diffstat (limited to 'archive/ComparisonSolutions.F')
-rw-r--r--archive/ComparisonSolutions.F185
1 files changed, 185 insertions, 0 deletions
diff --git a/archive/ComparisonSolutions.F b/archive/ComparisonSolutions.F
new file mode 100644
index 0000000..1c1fcd4
--- /dev/null
+++ b/archive/ComparisonSolutions.F
@@ -0,0 +1,185 @@
+C $Header$
+
+#include "cctk.h"
+#include "cctk_Arguments.h"
+
+ subroutine ComparisonMetric(CCTK_ARGUMENTS,
+ $ gxx_ex, gxy_ex, gxz_ex,
+ $ gyy_ex, gyz_ex, gzz_ex)
+
+ implicit none
+
+ DECLARE_CCTK_ARGUMENTS
+
+ CCTK_REAL gxx_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL gxy_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL gxz_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL gyy_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL gyz_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL gzz_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+
+ integer i,j,k
+
+C Dummy arguments of subroutine boostrotdata: these are calculated
+C (at a point) but not used.
+
+ CCTK_REAL hxxjunk, hyyjunk, hzzjunk,
+ $ hxyjunk, hyzjunk, hxzjunk,
+ $ dxgxxjunk, dxgyyjunk, dxgzzjunk,
+ $ dxgxyjunk, dxgyzjunk, dxgxzjunk,
+ $ dygxxjunk, dygyyjunk, dygzzjunk,
+ $ dygxyjunk, dygyzjunk, dygxzjunk,
+ $ dzgxxjunk, dzgyyjunk, dzgzzjunk,
+ $ dzgxyjunk, dzgyzjunk, dzgxzjunk,
+ $ alpjunk, axjunk, ayjunk, azjunk,
+ $ betaxjunk, betayjunk, betazjunk,
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
+ $ bzxjunk, bzyjunk, bzzjunk
+
+C Call boostrotdata pointwise. Most of what it calculates is
+C thrown away, variables ending in ...junk.
+ do k=1,cctk_lsh(3)
+ do j=1,cctk_lsh(2)
+ do i=1,cctk_lsh(1)
+ call exactdata(x(i,j,k), y(i,j,k), z(i,j,k), cctk_time,
+ $ gxx_ex(i,j,k), gyy_ex(i,j,k), gzz_ex(i,j,k),
+ $ gxy_ex(i,j,k), gyz_ex(i,j,k), gxz_ex(i,j,k),
+ $ hxxjunk, hyyjunk, hzzjunk,
+ $ hxyjunk, hyzjunk, hxzjunk,
+ $ dxgxxjunk, dxgyyjunk, dxgzzjunk,
+ $ dxgxyjunk, dxgyzjunk, dxgxzjunk,
+ $ dygxxjunk, dygyyjunk, dygzzjunk,
+ $ dygxyjunk, dygyzjunk, dygxzjunk,
+ $ dzgxxjunk, dzgyyjunk, dzgzzjunk,
+ $ dzgxyjunk, dzgyzjunk, dzgxzjunk,
+ $ alpjunk, axjunk, ayjunk, azjunk,
+ $ betaxjunk, betayjunk, betazjunk,
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
+ $ bzxjunk, bzyjunk, bzzjunk)
+ end do
+ end do
+ end do
+
+ return
+ end
+
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+
+ subroutine ComparisonCurvature(CCTK_ARGUMENTS,
+ $ hxx_ex, hxy_ex, hxz_ex,
+ $ hyy_ex, hyz_ex, hzz_ex)
+
+ implicit none
+
+ DECLARE_CCTK_ARGUMENTS
+
+ CCTK_REAL hxx_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL hxy_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL hxz_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL hyy_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL hyz_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL hzz_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+
+ integer i,j,k
+
+ CCTK_REAL gxxjunk, gyyjunk, gzzjunk,
+ $ gxyjunk, gyzjunk, gxzjunk,
+ $ dxgxxjunk, dxgyyjunk, dxgzzjunk,
+ $ dxgxyjunk, dxgyzjunk, dxgxzjunk,
+ $ dygxxjunk, dygyyjunk, dygzzjunk,
+ $ dygxyjunk, dygyzjunk, dygxzjunk,
+ $ dzgxxjunk, dzgyyjunk, dzgzzjunk,
+ $ dzgxyjunk, dzgyzjunk, dzgxzjunk,
+ $ alpjunk, axjunk, ayjunk, azjunk,
+ $ betaxjunk, betayjunk, betazjunk,
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
+ $ bzxjunk, bzyjunk, bzzjunk
+
+ do k=1,cctk_lsh(3)
+ do j=1,cctk_lsh(2)
+ do i=1,cctk_lsh(1)
+ call exactdata(x(i,j,k), y(i,j,k), z(i,j,k), cctk_time,
+ $ gxxjunk, gyyjunk, gzzjunk,
+ $ gxyjunk, gyzjunk, gxzjunk,
+ $ hxx_ex(i,j,k), hyy_ex(i,j,k), hzz_ex(i,j,k),
+ $ hxy_ex(i,j,k), hyz_ex(i,j,k), hxz_ex(i,j,k),
+ $ dxgxxjunk, dxgyyjunk, dxgzzjunk,
+ $ dxgxyjunk, dxgyzjunk, dxgxzjunk,
+ $ dygxxjunk, dygyyjunk, dygzzjunk,
+ $ dygxyjunk, dygyzjunk, dygxzjunk,
+ $ dzgxxjunk, dzgyyjunk, dzgzzjunk,
+ $ dzgxyjunk, dzgyzjunk, dzgxzjunk,
+ $ alpjunk, axjunk, ayjunk, azjunk,
+ $ betaxjunk, betayjunk, betazjunk,
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
+ $ bzxjunk, bzyjunk, bzzjunk)
+ end do
+ end do
+ end do
+ return
+ end
+
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+
+c Note the exact shift comes in even if the shift is not
+c allocated (eg if shift is "none"). In this case just
+c don't use it, since it won't be compared against acctk_lsh(2)thing.
+
+ subroutine ComparisonGauge(CCTK_ARGUMENTS,
+ $ alp_ex, betax_ex, betay_ex, betaz_ex)
+
+ implicit none
+
+ DECLARE_CCTK_ARGUMENTS
+
+ CCTK_REAL alp_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL betax_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL betay_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+ CCTK_REAL betaz_ex(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3))
+
+ integer i,j,k
+
+ CCTK_REAL gxxjunk, gyyjunk, gzzjunk,
+ $ gxyjunk, gyzjunk, gxzjunk,
+ $ dxgxxjunk, dxgyyjunk, dxgzzjunk,
+ $ dxgxyjunk, dxgyzjunk, dxgxzjunk,
+ $ dygxxjunk, dygyyjunk, dygzzjunk,
+ $ dygxyjunk, dygyzjunk, dygxzjunk,
+ $ dzgxxjunk, dzgyyjunk, dzgzzjunk,
+ $ dzgxyjunk, dzgyzjunk, dzgxzjunk,
+ $ hxxjunk, hyyjunk, hzzjunk,
+ $ hxyjunk, hyzjunk, hxzjunk,
+ $ axjunk, ayjunk, azjunk,
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
+ $ bzxjunk, bzyjunk, bzzjunk
+
+ do k=1,cctk_lsh(3)
+ do j=1,cctk_lsh(2)
+ do i=1,cctk_lsh(1)
+ call exactdata(x(i,j,k), y(i,j,k), z(i,j,k), cctk_time,
+ $ gxxjunk, gyyjunk, gzzjunk,
+ $ gxyjunk, gyzjunk, gxzjunk,
+ $ hxxjunk, hyyjunk, hzzjunk,
+ $ hxyjunk, hyzjunk, hxzjunk,
+ $ dxgxxjunk, dxgyyjunk, dxgzzjunk,
+ $ dxgxyjunk, dxgyzjunk, dxgxzjunk,
+ $ dygxxjunk, dygyyjunk, dygzzjunk,
+ $ dygxyjunk, dygyzjunk, dygxzjunk,
+ $ dzgxxjunk, dzgyyjunk, dzgzzjunk,
+ $ dzgxyjunk, dzgyzjunk, dzgxzjunk,
+ $ alp_ex(i,j,k), axjunk, ayjunk, azjunk,
+ $ betax_ex(i,j,k), betay_ex(i,j,k), betaz_ex(i,j,k),
+ $ bxxjunk, bxyjunk, bxzjunk,
+ $ byxjunk, byyjunk, byzjunk,
+ $ bzxjunk, bzyjunk, bzzjunk)
+ end do
+ end do
+ end do
+
+ return
+ end