From 6169d4ef5d9b61ca37ca6cb2ab1a8a86c6bdc7f4 Mon Sep 17 00:00:00 2001 From: hawke Date: Wed, 9 Jul 2003 08:42:21 +0000 Subject: 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 --- interface.ccl | 9 +++++++++ schedule.ccl | 7 +++++++ src/macro/DA_guts.h | 2 +- src/macro/DDA_guts.h | 2 +- src/macro/DXDB_guts.h | 2 +- src/macro/DXDCG_guts.h | 2 +- src/macro/DXDK_guts.h | 2 +- src/macro/DXXDG_guts.h | 2 +- src/macro/DXYDG_guts.h | 2 +- src/macro/DXZDG_guts.h | 2 +- src/macro/DYDB_guts.h | 2 +- src/macro/DYDCG_guts.h | 2 +- src/macro/DYDK_guts.h | 2 +- src/macro/DYYDG_guts.h | 2 +- src/macro/DYZDG_guts.h | 2 +- src/macro/DZDB_guts.h | 2 +- src/macro/DZDCG_guts.h | 2 +- src/macro/DZDK_guts.h | 2 +- src/macro/DZZDG_guts.h | 2 +- src/make.code.defn | 2 +- 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 = -- cgit v1.2.3