diff options
Diffstat (limited to 'Auxiliary/Cactus')
9 files changed, 621 insertions, 0 deletions
diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/interface.ccl b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/interface.ccl new file mode 100644 index 0000000..b1637b4 --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/interface.ccl @@ -0,0 +1,10 @@ +# GenericFD/interface.ccl +# Interface definition for thorn GenericFD +# author: S. Husa + +# $Header$ + +implements: GenericFD + +INCLUDE HEADER: GenericFD.h in GenericFD.h + diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/param.ccl b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/param.ccl new file mode 100644 index 0000000..62adf93 --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/param.ccl @@ -0,0 +1,15 @@ +# GenericFD/param.ccl +# Parameter definition for thorn GenericFD +# author: S. Husa + +# $Header$ + +private: + +KEYWORD FDscheme "Type of finite differencing to use" +{ + "2nd order centered macro" :: "centered 2nd order implemented with macros" + "4th order centered macro" :: "centered 4th order implemented with macros" +} "2nd order centered macro" + + diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/schedule.ccl b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/schedule.ccl new file mode 100644 index 0000000..a56f002 --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/schedule.ccl @@ -0,0 +1,12 @@ +# GenericFD/schedule.ccl +# Schedule definition for thorn GenericFD +# author: S. Husa + +# $Header$ + + + +schedule GenericFD_Startup at STARTUP +{ + LANG: C +} "Register Banner" diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/GenericFD.c b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/GenericFD.c new file mode 100644 index 0000000..c3aa020 --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/GenericFD.c @@ -0,0 +1,41 @@ +/*@@ + @file GenericFD/src/GenericFD.c + @date June 16 2002 + @author S. Husa + @desc + + $Id$ + + @enddesc + @@*/ + +/* Copyright 2004 Sascha Husa, Ian Hinder, Christiane Lechner + + This file is part of Kranc. + + Kranc is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + Kranc is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Foobar; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" + +#include "Symmetry.h" + +#include "GenericFD.h" + + +/* TODO: provide functions for differencing, use FD macros to + evaluate == use macros to evaluate corresponding functions */ diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/GenericFD.h b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/GenericFD.h new file mode 100644 index 0000000..9bc1002 --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/GenericFD.h @@ -0,0 +1,427 @@ +/*@@ + @file GenericFD/src/GenericFD.h + @date June 16 2002 + @author S. Husa + @desc + + $Id$ + + @enddesc + @@*/ + +/* Copyright 2004 Sascha Husa, Ian Hinder, Christiane Lechner + + This file is part of Kranc. + + Kranc is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + Kranc is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Foobar; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef NOPRECOMPUTE +#define PRECOMPUTE +#endif + +#if defined(FD_C0) || defined(FD_C2) || defined(FD_C4) || defined(FD_C2C4) +#define FD_SET_BY_USER +#endif +#ifndef FD_SET_BY_USER +#define FD_C2 +#endif + + +#if defined(FD_C0) +#define FD_METHOD_DESC "FD method: replace derivatives by zero" +#endif + +#if defined(FD_C2) +#define FD_METHOD_DESC "FD method: second order centered finite differences" +#endif + +#if defined(FD_C4) +#define FD_METHOD_DESC "FD method: fourth order centered finite differences" +#endif + +#if defined(FD_C2C4) +#define FD_METHOD_DESC "FD method: weighted 2nd/4th order centered finite differences" +#endif + + + +/* utility functions */ +#if defined(KRANC_C) +#define string(d,f) d ## f +#else +#define string(d,f) d/**/f +#endif + +#include "MathematicaCompat.h" + +/* finite differencing macros */ + +/* */ +/* add method argument to shorthands */ +/* */ + +/* second derivatives */ +#define D11x(gf) string(D11,gf) +#define D22x(gf) string(D22,gf) +#define D33x(gf) string(D33,gf) +#define D21x(gf) string(D21,gf) +#define D32x(gf) string(D32,gf) +#define D31x(gf) string(D31,gf) + +/* first derivatives */ +#define D1x(gf) string(D1,gf) +#define D2x(gf) string(D2,gf) +#define D3x(gf) string(D3,gf) + +#ifdef PRECOMPUTE + +/* second derivatives */ +#define D11(gf,i,j,k) string(D11,gf) +#define D22(gf,i,j,k) string(D22,gf) +#define D33(gf,i,j,k) string(D33,gf) +#define D21(gf,i,j,k) string(D21,gf) +#define D32(gf,i,j,k) string(D32,gf) +#define D31(gf,i,j,k) string(D31,gf) + +/* first derivatives */ +#define D1(gf,i,j,k) string(D1,gf) +#define D2(gf,i,j,k) string(D2,gf) +#define D3(gf,i,j,k) string(D3,gf) + +#else + +/* second derivatives */ +#define D11(gf,i,j,k) D11gf(gf,i,j,k) +#define D22(gf,i,j,k) D22gf(gf,i,j,k) +#define D33(gf,i,j,k) D33gf(gf,i,j,k) +#define D21(gf,i,j,k) D21gf(gf,i,j,k) +#define D32(gf,i,j,k) D32gf(gf,i,j,k) +#define D31(gf,i,j,k) D31gf(gf,i,j,k) + +/* first derivatives */ +#define D1(gf,i,j,k) D1gf(gf, i,j,k) +#define D2(gf,i,j,k) D2gf(gf, i,j,k) +#define D3(gf,i,j,k) D3gf(gf, i,j,k) + +#endif + + +#ifdef FD_C0 +/* second derivatives */ +#define D11gf(gf,i,j,k) D11_c0(gf,i,j,k) +#define D22gf(gf,i,j,k) D22_c0(gf,i,j,k) +#define D33gf(gf,i,j,k) D33_c0(gf,i,j,k) +#define D21gf(gf,i,j,k) D21_c0(gf,i,j,k) +#define D32gf(gf,i,j,k) D32_c0(gf,i,j,k) +#define D31gf(gf,i,j,k) D31_c0(gf,i,j,k) + +/* first derivatives */ +#define D1gf(gf,i,j,k) D1_c0(gf, i,j,k) +#define D2gf(gf,i,j,k) D2_c0(gf, i,j,k) +#define D3gf(gf,i,j,k) D3_c0(gf, i,j,k) +#endif + + + +#ifdef FD_C2 +/* second derivatives */ +#define D11gf(gf,i,j,k) D11_c2(gf,i,j,k) +#define D22gf(gf,i,j,k) D22_c2(gf,i,j,k) +#define D33gf(gf,i,j,k) D33_c2(gf,i,j,k) +#define D21gf(gf,i,j,k) D21_c2(gf,i,j,k) +#define D32gf(gf,i,j,k) D32_c2(gf,i,j,k) +#define D31gf(gf,i,j,k) D31_c2(gf,i,j,k) + +/* first derivatives */ +#define D1gf(gf,i,j,k) D1_c2(gf, i,j,k) +#define D2gf(gf,i,j,k) D2_c2(gf, i,j,k) +#define D3gf(gf,i,j,k) D3_c2(gf, i,j,k) +#endif + + + +#ifdef FD_C4 +/* second derivatives */ +#define D11gf(gf,i,j,k) D11_c4(gf,i,j,k) +#define D22gf(gf,i,j,k) D22_c4(gf,i,j,k) +#define D33gf(gf,i,j,k) D33_c4(gf,i,j,k) +#define D21gf(gf,i,j,k) D21_c4(gf,i,j,k) +#define D32gf(gf,i,j,k) D32_c4(gf,i,j,k) +#define D31gf(gf,i,j,k) D31_c4(gf,i,j,k) + +/* first derivatives */ +#define D1gf(gf,i,j,k) D1_c4(gf, i,j,k) +#define D2gf(gf,i,j,k) D2_c4(gf, i,j,k) +#define D3gf(gf,i,j,k) D3_c4(gf, i,j,k) +#endif + + +#ifdef FD_C2C4 +/* second derivatives */ +#define D11gf(gf,i,j,k) D11_c2c4(gf,i,j,k) +#define D22gf(gf,i,j,k) D22_c2c4(gf,i,j,k) +#define D33gf(gf,i,j,k) D33_c2c4(gf,i,j,k) +#define D21gf(gf,i,j,k) D21_c2c4(gf,i,j,k) +#define D32gf(gf,i,j,k) D32_c2c4(gf,i,j,k) +#define D31gf(gf,i,j,k) D31_c2c4(gf,i,j,k) + +/* first derivatives */ +#define D1gf(gf,i,j,k) D1_c2c4(gf, i,j,k) +#define D2gf(gf,i,j,k) D2_c2c4(gf, i,j,k) +#define D3gf(gf,i,j,k) D3_c2c4(gf, i,j,k) +#endif + + + + +/*****************************************************/ +/* */ +/* METHODS */ +/* */ +/*****************************************************/ + +/* c0 */ + +/* set all derivatives = 0 */ +/* for debugging and benchmarking */ + +/* second derivatives */ + +#define D11_c0(gf,i,j,k) 0. +#define D22_c0(gf,i,j,k) 0. +#define D33_c0(gf,i,j,k) 0. +#define D21_c0(gf,i,j,k) 0. +#define D32_c0(gf,i,j,k) 0. +#define D31_c0(gf,i,j,k) 0. + +/* first derivatives */ + +#define D1_c0(gf,i,j,k) 0. +#define D2_c0(gf,i,j,k) 0. +#define D3_c0(gf,i,j,k) 0. + + +/* c2 */ +/* */ +/* 2nd order centered */ +/* */ +/* second derivatives, centered, 2nd order */ + +#ifndef KRANC_C +#define D11_c2(gf,i,j,k) \ + (( gf(i+1,j,k) \ + - 2.*gf(i, j,k) \ + + gf(i-1,j,k)) * dxi * dxi ) + +#define D22_c2(gf,i,j,k) \ + (( gf(i,j+1,k) \ + - 2.*gf(i,j, k) \ + + gf(i,j-1,k)) * dyi * dyi ) + +#define D33_c2(gf,i,j,k) \ + (( gf(i,j,k+1) \ + - 2.*gf(i,j,k ) \ + + gf(i,j,k-1)) * dzi * dzi ) + +#define D21_c2(gf,i,j,k) \ + ((gf(i+1,j+1,k) \ + + gf(i-1,j-1,k) \ + - gf(i+1,j-1,k) \ + - gf(i-1,j+1,k)) * hdxi * hdyi ) + +#define D32_c2(gf,i,j,k) \ + ((gf(i,j+1,k+1) \ + + gf(i,j-1,k-1) \ + - gf(i,j+1,k-1) \ + - gf(i,j-1,k+1)) * hdyi * hdzi ) + +#define D31_c2(gf,i,j,k) \ + ((gf(i+1,j,k+1) \ + + gf(i-1,j,k-1) \ + - gf(i+1,j,k-1) \ + - gf(i-1,j,k+1)) * hdxi * hdzi ) + +/* first derivatives, centered, 2nd order */ + +#define D1_c2(gf,i,j,k) \ + ((gf(i+1,j,k) \ + - gf(i-1,j,k)) * hdxi) + +#define D2_c2(gf,i,j,k) \ + ((gf(i,j+1,k) \ + - gf(i,j-1,k)) * hdyi) + +#define D3_c2(gf,i,j,k) \ + ((gf(i,j,k+1) \ + - gf(i,j,k-1)) * hdzi) + +#else + + +#define D11_c2(gf,i,j,k) \ + (( gf[CCTK_GFINDEX3D(cctkGH,i+1,j,k)] \ + - 2.*gf[CCTK_GFINDEX3D(cctkGH,i, j,k)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i-1,j,k)]) * dxi * dxi ) + +#define D22_c2(gf,i,j,k) \ + (( gf[CCTK_GFINDEX3D(cctkGH,i,j+1,k)] \ + - 2.*gf[CCTK_GFINDEX3D(cctkGH,i,j, k)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i,j-1,k)]) * dyi * dyi ) + +#define D33_c2(gf,i,j,k) \ + (( gf[CCTK_GFINDEX3D(cctkGH,i,j,k+1)] \ + - 2.*gf[CCTK_GFINDEX3D(cctkGH,i,j,k )] \ + + gf[CCTK_GFINDEX3D(cctkGH,i,j,k-1)]) * dzi * dzi ) + +#define D21_c2(gf,i,j,k) \ + ((gf[CCTK_GFINDEX3D(cctkGH,i+1,j+1,k)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i-1,j-1,k)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i+1,j-1,k)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i-1,j+1,k)]) * hdxi * hdyi ) + +#define D32_c2(gf,i,j,k) \ + ((gf[CCTK_GFINDEX3D(cctkGH,i,j+1,k+1)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i,j-1,k-1)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i,j+1,k-1)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i,j-1,k+1)]) * hdyi * hdzi ) + +#define D31_c2(gf,i,j,k) \ + ((gf[CCTK_GFINDEX3D(cctkGH,i+1,j,k+1)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i-1,j,k-1)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i+1,j,k-1)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i-1,j,k+1)]) * hdxi * hdzi ) + +/* first derivatives, centered, 2nd order */ + +#define D1_c2(gf,i,j,k) \ + ((gf[CCTK_GFINDEX3D(cctkGH,i+1,j,k)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i-1,j,k)]) * hdxi) + +#define D2_c2(gf,i,j,k) \ + ((gf[CCTK_GFINDEX3D(cctkGH,i,j+1,k)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i,j-1,k)]) * hdyi) + +#define D3_c2(gf,i,j,k) \ + ((gf[CCTK_GFINDEX3D(cctkGH,i,j,k+1)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i,j,k-1)]) * hdzi) + +#endif + + +/* c4 */ +/* */ +/* 4th order centered */ +/* */ + +/* second derivatives, centered, 4th order */ + +#define D11_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i+2,j,k)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i+1,j,k)] \ + - 30. * gf[CCTK_GFINDEX3D(cctkGH,i, j,k)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i-1,j,k)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i-2,j,k)]) * dxi * dxi / 12.) + + +#define D22_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i,j+2,k)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i,j+1,k)] \ + - 30. * gf[CCTK_GFINDEX3D(cctkGH,i,j, k)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i,j-1,k)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i,j-2,k)]) * dyi * dyi / 12.) + + +#define D33_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i,j,k+2)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i,j,k+1)] \ + - 30. * gf[CCTK_GFINDEX3D(cctkGH,i,j,k )] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i,j,k-1)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i,j,k-2)]) * dzi * dzi / 12.) + +#define D21_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i+2,j+2,k)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i+2,j-2,k)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i-2,j+2,k)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i-2,j-2,k)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i+1,j+1,k)] \ + - 16. * gf[CCTK_GFINDEX3D(cctkGH,i+1,j-1,k)] \ + - 16. * gf[CCTK_GFINDEX3D(cctkGH,i-1,j+1,k)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i-1,j-1,k)]) * dxi * dyi / 48.) + +#define D31_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i+2,j,k+2)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i+2,j,k-2)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i-2,j,k+2)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i-2,j,k-2)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i+1,j,k+1)] \ + - 16. * gf[CCTK_GFINDEX3D(cctkGH,i+1,j,k-1)] \ + - 16. * gf[CCTK_GFINDEX3D(cctkGH,i-1,j,k+1)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i-1,j,k-1)]) * dxi * dzi / 48.) + + +#define D32_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i,j+2,k+2)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i,j+2,k-2)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i,j-2,k+2)] \ + - gf[CCTK_GFINDEX3D(cctkGH,i,j-2,k-2)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i,j+1,k+1)] \ + - 16. * gf[CCTK_GFINDEX3D(cctkGH,i,j+1,k-1)] \ + - 16. * gf[CCTK_GFINDEX3D(cctkGH,i,j-1,k+1)] \ + + 16. * gf[CCTK_GFINDEX3D(cctkGH,i,j-1,k-1)]) * dzi * dyi / 48.) + + +/* first derivatives, centered, 4th order */ + +#define D1_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i+2,j,k)] \ + + 8. * gf[CCTK_GFINDEX3D(cctkGH,i+1,j,k)] \ + - 8. * gf[CCTK_GFINDEX3D(cctkGH,i-1,j,k)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i-2,j,k)]) * (dxi / 12.)) + +#define D2_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i,j+2,k)] \ + + 8. * gf[CCTK_GFINDEX3D(cctkGH,i,j+1,k)] \ + - 8. * gf[CCTK_GFINDEX3D(cctkGH,i,j-1,k)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i,j-2,k)]) * (dyi / 12.)) + +#define D3_c4(gf,i,j,k) \ + ((- gf[CCTK_GFINDEX3D(cctkGH,i,j,k+2)] \ + + 8. * gf[CCTK_GFINDEX3D(cctkGH,i,j,k+1)] \ + - 8. * gf[CCTK_GFINDEX3D(cctkGH,i,j,k-1)] \ + + gf[CCTK_GFINDEX3D(cctkGH,i,j,k-2)]) * (dxi / 12.)) + + +/*****************************************************/ +/* */ +/* DERIVED METHODS */ +/* */ +/******************************************************/ + + +/* blend c2 and c4 */ +/* second derivatives */ +#define D11_c2c4(gf,i,j,k) (fdweight_c2*D11_c2(gf,i,j,k) + fdweight_c4*D11_c4(gf,i,j,k)) +#define D22_c2c4(gf,i,j,k) (fdweight_c2*D22_c2(gf,i,j,k) + fdweight_c4*D22_c4(gf,i,j,k)) +#define D33_c2c4(gf,i,j,k) (fdweight_c2*D33_c2(gf,i,j,k) + fdweight_c4*D33_c4(gf,i,j,k)) +#define D21_c2c4(gf,i,j,k) (fdweight_c2*D21_c2(gf,i,j,k) + fdweight_c4*D21_c4(gf,i,j,k)) +#define D32_c2c4(gf,i,j,k) (fdweight_c2*D32_c2(gf,i,j,k) + fdweight_c4*D32_c4(gf,i,j,k)) +#define D31_c2c4(gf,i,j,k) (fdweight_c2*D31_c2(gf,i,j,k) + fdweight_c4*D31_c4(gf,i,j,k)) + +/* first derivatives */ +#define D1_c2c4(gf,i,j,k) (fdweight_c2*D1_c2(gf, i,j,k) + fdweight_c4*D1_c4(gf,i,j,k)) +#define D2_c2c4(gf,i,j,k) (fdweight_c2*D2_c2(gf, i,j,k) + fdweight_c4*D2_c4(gf,i,j,k)) +#define D3_c2c4(gf,i,j,k) (fdweight_c2*D3_c2(gf, i,j,k) + fdweight_c4*D3_c4(gf,i,j,k)) + diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h new file mode 100644 index 0000000..74136cc --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h @@ -0,0 +1,25 @@ + +#define Power(x, y) (pow((x), (y))) +#define Sqrt(x) (sqrt((x))) + +#define Abs(x) (fabs((x))) + +#define Exp(x) (exp((x))) +#define Log(x) (log((x))) + +#define Sin(x) (sin((x))) +#define Cos(x) (cos((x))) +#define Tan(x) (tan((x))) + +#define ArcSin(x) (asin((x))) +#define ArcCos(x) (acos((x))) +#define ArcTan(x) (atan((x))) + +#define Sinh(x) (sinh((x))) +#define Cosh(x) (cosh((x))) +#define Tanh(x) (tanh((x))) + + +#define E 2.71828182845904523536029 +#define Pi 3.14159265358979323846264 + diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/Startup.c b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/Startup.c new file mode 100644 index 0000000..e54bcee --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/Startup.c @@ -0,0 +1,60 @@ +/*@@ + @file GenericFD/src/Startup.c + @date June 16 2002 + @author S. Husa + @desc + Register Banner - straight copy of WaveToy + + $Header$ + + @enddesc + @@*/ + +/* Copyright 2004 Sascha Husa, Ian Hinder, Christiane Lechner + + This file is part of Kranc. + + Kranc is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + Kranc is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Foobar; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "cctk.h" +#include "GenericFD.h" + +int GenericFD_Startup(void); + +/*@@ + @routine GenericFD_Startup + @date June 16 2002 + @author S. Husa + @desc + + @enddesc + @calls + @calledby + @history + @endhistory + @@*/ + + + +int GenericFD_Startup(void) +{ + const char *banner = "GenericFD: generic finite differencing"; + CCTK_RegisterBanner(banner); + + + CCTK_INFO(FD_METHOD_DESC); + return 0; + } diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/make.code.defn b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/make.code.defn new file mode 100644 index 0000000..ccff2fb --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/make.code.defn @@ -0,0 +1,8 @@ +# Main make.code.defn file for thorn GenericFD +# $Header$ + +# Source files in this directory +SRCS = Startup.c GenericFD.c + +# Subdirectories containing source files +SUBDIRS = diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/testmacros.c b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/testmacros.c new file mode 100644 index 0000000..3208ea0 --- /dev/null +++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/testmacros.c @@ -0,0 +1,23 @@ +/* process me with something like + * cpp -DFD_C2 testmacros.c + */ + + +#include "GenericFD.h" + + +dummy = D11loc(testfunc,i,j,k); + +dummy = D11gf(testfunc,i,j,k); + +dummy = D11_c2c4(testfunc,i,j,k); + +dummy = D11(testfunc,i,j,k); + +dummy = D31(testfunc,i,j,k); + +dummy = D1(testfunc,i,j,k); + + +DECLAREVARS + |