aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhawke <hawke@b1d164ef-f17a-46e7-89d4-021c7118ef4e>2003-07-09 08:42:21 +0000
committerhawke <hawke@b1d164ef-f17a-46e7-89d4-021c7118ef4e>2003-07-09 08:42:21 +0000
commit6169d4ef5d9b61ca37ca6cb2ab1a8a86c6bdc7f4 (patch)
tree7b4b42e2feb65c40558a153fab2a6e511acd1c18
parent1edd88377c4c7fe215dc66159c1fb0f92640c377 (diff)
Add the local_spatial_order grid scalar so that the choice of differencing order can be done pointwise.
This allows a simple switch to second order near the boundaries of the grid so that the standard boundary conditions can be used. In order for a user thorn to make use of this you have to be a friend of ADMCoupling and inherit ADMMacros. Then you alter local_spatial_order within the loop. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinBase/ADMMacros/trunk@59 b1d164ef-f17a-46e7-89d4-021c7118ef4e
-rw-r--r--interface.ccl9
-rw-r--r--schedule.ccl7
-rw-r--r--src/macro/DA_guts.h2
-rw-r--r--src/macro/DDA_guts.h2
-rw-r--r--src/macro/DXDB_guts.h2
-rw-r--r--src/macro/DXDCG_guts.h2
-rw-r--r--src/macro/DXDK_guts.h2
-rw-r--r--src/macro/DXXDG_guts.h2
-rw-r--r--src/macro/DXYDG_guts.h2
-rw-r--r--src/macro/DXZDG_guts.h2
-rw-r--r--src/macro/DYDB_guts.h2
-rw-r--r--src/macro/DYDCG_guts.h2
-rw-r--r--src/macro/DYDK_guts.h2
-rw-r--r--src/macro/DYYDG_guts.h2
-rw-r--r--src/macro/DYZDG_guts.h2
-rw-r--r--src/macro/DZDB_guts.h2
-rw-r--r--src/macro/DZDCG_guts.h2
-rw-r--r--src/macro/DZDK_guts.h2
-rw-r--r--src/macro/DZZDG_guts.h2
-rw-r--r--src/make.code.defn2
20 files changed, 34 insertions, 18 deletions
diff --git a/interface.ccl b/interface.ccl
index 00fd93c..9107a8b 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -2,3 +2,12 @@
# $Header$
implements: ADMMacros
+
+friend: ADMCoupling
+
+public:
+
+int local_spatial_order type=SCALAR
+{
+ local_spatial_order
+} "Can be set pointwise to change the macros"
diff --git a/schedule.ccl b/schedule.ccl
index 5afe7f9..1c36b08 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -1,2 +1,9 @@
# Schedule definitions for thorn ADMMacros
# $Header$
+
+STORAGE: local_spatial_order
+
+schedule ADMMacros_SetLocalSpatialOrder AT BASEGRID
+{
+ LANG: C
+} "Initialize the local_spatial_order"
diff --git a/src/macro/DA_guts.h b/src/macro/DA_guts.h
index cceb5c8..527f8f9 100644
--- a/src/macro/DA_guts.h
+++ b/src/macro/DA_guts.h
@@ -14,7 +14,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DA_DXDA = ADM_DX_2(alp,i,j,k)
DA_DYDA = ADM_DY_2(alp,i,j,k)
DA_DZDA = ADM_DZ_2(alp,i,j,k)
diff --git a/src/macro/DDA_guts.h b/src/macro/DDA_guts.h
index 7f115f0..38a2ca4 100644
--- a/src/macro/DDA_guts.h
+++ b/src/macro/DDA_guts.h
@@ -14,7 +14,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DDA_DXXDA = ADM_DXX_2(alp,i,j,k)
DDA_DXYDA = ADM_DXY_2(alp,i,j,k)
DDA_DXZDA = ADM_DXZ_2(alp,i,j,k)
diff --git a/src/macro/DXDB_guts.h b/src/macro/DXDB_guts.h
index 45a773c..b0bb623 100644
--- a/src/macro/DXDB_guts.h
+++ b/src/macro/DXDB_guts.h
@@ -19,7 +19,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DXDB_DXDBX = ADM_DX_2(betax,i,j,k)
DXDB_DXDBY = ADM_DX_2(betay,i,j,k)
DXDB_DXDBZ = ADM_DX_2(betaz,i,j,k)
diff --git a/src/macro/DXDCG_guts.h b/src/macro/DXDCG_guts.h
index b922068..ef6806a 100644
--- a/src/macro/DXDCG_guts.h
+++ b/src/macro/DXDCG_guts.h
@@ -23,7 +23,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DXDCG_DXDCGXX = ADM_DX_2(gxx,i,j,k)
DXDCG_DXDCGXY = ADM_DX_2(gxy,i,j,k)
DXDCG_DXDCGXZ = ADM_DX_2(gxz,i,j,k)
diff --git a/src/macro/DXDK_guts.h b/src/macro/DXDK_guts.h
index fd8af92..d916f3c 100644
--- a/src/macro/DXDK_guts.h
+++ b/src/macro/DXDK_guts.h
@@ -15,7 +15,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DXDK_DXDKXX = ADM_DX_2(kxx,i,j,k)
DXDK_DXDKXY = ADM_DX_2(kxy,i,j,k)
DXDK_DXDKXZ = ADM_DX_2(kxz,i,j,k)
diff --git a/src/macro/DXXDG_guts.h b/src/macro/DXXDG_guts.h
index 89dcedf..03276a1 100644
--- a/src/macro/DXXDG_guts.h
+++ b/src/macro/DXXDG_guts.h
@@ -32,7 +32,7 @@
/* Now calculate the second derivatives */
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DXXDG_DXXDGXX = 2*DXDCG_DXDCGXX*DXDG_FAC + DXXDG_FAC*DXDG_GXX \
+ DXDG_PSI4*ADM_DXX_2(gxx,i,j,k)
diff --git a/src/macro/DXYDG_guts.h b/src/macro/DXYDG_guts.h
index f43de6c..4fdca5a 100644
--- a/src/macro/DXYDG_guts.h
+++ b/src/macro/DXYDG_guts.h
@@ -33,7 +33,7 @@
ENDIF
/* Now calculate the second deriatives */
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DXYDG_DXYDGXX = DYDCG_DYDCGXX*DXDG_FAC + DXDCG_DXDCGXX*DYDG_FAC \
+ DXYDG_FAC*DXDG_GXX + DXDG_PSI4*ADM_DXY_2(gxx,i,j,k)
diff --git a/src/macro/DXZDG_guts.h b/src/macro/DXZDG_guts.h
index cdee51c..129cb85 100644
--- a/src/macro/DXZDG_guts.h
+++ b/src/macro/DXZDG_guts.h
@@ -33,7 +33,7 @@
ENDIF
/* Now calculate the second deriatives */
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DXZDG_DXZDGXX = DZDCG_DZDCGXX*DXDG_FAC + DXDCG_DXDCGXX*DZDG_FAC \
+ DXZDG_FAC*DXDG_GXX + DXDG_PSI4*ADM_DXZ_2(gxx,i,j,k)
diff --git a/src/macro/DYDB_guts.h b/src/macro/DYDB_guts.h
index bd92f57..5750d25 100644
--- a/src/macro/DYDB_guts.h
+++ b/src/macro/DYDB_guts.h
@@ -19,7 +19,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DYDB_DYDBX = ADM_DY_2(betax,i,j,k)
DYDB_DYDBY = ADM_DY_2(betay,i,j,k)
DYDB_DYDBZ = ADM_DY_2(betaz,i,j,k)
diff --git a/src/macro/DYDCG_guts.h b/src/macro/DYDCG_guts.h
index 3c328d7..2cf6c53 100644
--- a/src/macro/DYDCG_guts.h
+++ b/src/macro/DYDCG_guts.h
@@ -23,7 +23,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DYDCG_DYDCGXX = ADM_DY_2(gxx,i,j,k)
DYDCG_DYDCGXY = ADM_DY_2(gxy,i,j,k)
DYDCG_DYDCGXZ = ADM_DY_2(gxz,i,j,k)
diff --git a/src/macro/DYDK_guts.h b/src/macro/DYDK_guts.h
index 7dbfc0c..b65321b 100644
--- a/src/macro/DYDK_guts.h
+++ b/src/macro/DYDK_guts.h
@@ -15,7 +15,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DYDK_DYDKXX = ADM_DY_2(kxx,i,j,k)
DYDK_DYDKXY = ADM_DY_2(kxy,i,j,k)
DYDK_DYDKXZ = ADM_DY_2(kxz,i,j,k)
diff --git a/src/macro/DYYDG_guts.h b/src/macro/DYYDG_guts.h
index 2dc495e..c93b4be 100644
--- a/src/macro/DYYDG_guts.h
+++ b/src/macro/DYYDG_guts.h
@@ -31,7 +31,7 @@
ENDIF
/* Now calculate the second deriatives */
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DYYDG_DYYDGXX = 2*DYDCG_DYDCGXX*DYDG_FAC + DYYDG_FAC*DYDG_GXX \
+ DYDG_PSI4*ADM_DYY_2(gxx,i,j,k)
diff --git a/src/macro/DYZDG_guts.h b/src/macro/DYZDG_guts.h
index 65a513f..f5ea2c4 100644
--- a/src/macro/DYZDG_guts.h
+++ b/src/macro/DYZDG_guts.h
@@ -33,7 +33,7 @@
ENDIF
/* Now calculate the second deriatives */
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DYZDG_DYZDGXX = DZDCG_DZDCGXX*DYDG_FAC + DYDCG_DYDCGXX*DZDG_FAC \
+ DYZDG_FAC*DYDG_GXX + DYDG_PSI4*ADM_DYZ_2(gxx,i,j,k)
diff --git a/src/macro/DZDB_guts.h b/src/macro/DZDB_guts.h
index 4b01986..6150d2f 100644
--- a/src/macro/DZDB_guts.h
+++ b/src/macro/DZDB_guts.h
@@ -18,7 +18,7 @@
#ifdef FCODE
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DZDB_DZDBX = ADM_DZ_2(betax,i,j,k)
DZDB_DZDBY = ADM_DZ_2(betay,i,j,k)
DZDB_DZDBZ = ADM_DZ_2(betaz,i,j,k)
diff --git a/src/macro/DZDCG_guts.h b/src/macro/DZDCG_guts.h
index 08664d0..f4d7959 100644
--- a/src/macro/DZDCG_guts.h
+++ b/src/macro/DZDCG_guts.h
@@ -22,7 +22,7 @@
#ifdef FCODE
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DZDCG_DZDCGXX = ADM_DZ_2(gxx,i,j,k)
DZDCG_DZDCGXY = ADM_DZ_2(gxy,i,j,k)
DZDCG_DZDCGXZ = ADM_DZ_2(gxz,i,j,k)
diff --git a/src/macro/DZDK_guts.h b/src/macro/DZDK_guts.h
index cc8e5e6..eaa42e9 100644
--- a/src/macro/DZDK_guts.h
+++ b/src/macro/DZDK_guts.h
@@ -15,7 +15,7 @@
#include "ADM_Derivative.h"
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DZDK_DZDKXX = ADM_DZ_2(kxx,i,j,k)
DZDK_DZDKXY = ADM_DZ_2(kxy,i,j,k)
DZDK_DZDKXZ = ADM_DZ_2(kxz,i,j,k)
diff --git a/src/macro/DZZDG_guts.h b/src/macro/DZZDG_guts.h
index 853c12d..1d2242e 100644
--- a/src/macro/DZZDG_guts.h
+++ b/src/macro/DZZDG_guts.h
@@ -30,7 +30,7 @@
+ 12*DZDG_DZDPSI_O_PSI*DZDG_DZDPSI_O_PSI)
ENDIF
- if (spatial_order.eq.2) then
+ if (local_spatial_order.eq.2) then
DZZDG_DZZDGXX = 2*DZDCG_DZDCGXX*DZDG_FAC + DZZDG_FAC*DZDG_GXX \
+ DZDG_PSI4*ADM_DZZ_2(gxx,i,j,k)
diff --git a/src/make.code.defn b/src/make.code.defn
index 00ff221..74af39d 100644
--- a/src/make.code.defn
+++ b/src/make.code.defn
@@ -2,7 +2,7 @@
# $Header$
# Source files in this directory
-SRCS =
+SRCS = SetLocalSpatialOrder.c
# Subdirectories containing source files
SUBDIRS =