diff options
Diffstat (limited to 'CarpetExtra/CarpetRegridTest/src/SetupGaussian.c')
-rw-r--r-- | CarpetExtra/CarpetRegridTest/src/SetupGaussian.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/CarpetExtra/CarpetRegridTest/src/SetupGaussian.c b/CarpetExtra/CarpetRegridTest/src/SetupGaussian.c new file mode 100644 index 000000000..768656f10 --- /dev/null +++ b/CarpetExtra/CarpetRegridTest/src/SetupGaussian.c @@ -0,0 +1,48 @@ +#include <math.h> + +#include "cctk.h" +#include "cctk_Parameters.h" +#include "cctk_Arguments.h" + + +static const char *rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/CarpetRegridTest/src/SetupGaussian.c,v 1.2 2004/05/27 13:22:49 schnetter Exp $"; + +CCTK_FILEVERSION(CarpetExtra_CarpetRegridTest_SetupGaussian_c); + +void CarpetRegrid_SetupGaussian(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_PARAMETERS; + DECLARE_CCTK_ARGUMENTS; + + int i,j,k; + + CCTK_REAL omega; + int index; + CCTK_REAL X, Y, Z, R; + CCTK_REAL pi; + + for(k=0; k<cctk_lsh[2]; k++) + { + for(j=0; j<cctk_lsh[1]; j++) + { + for(i=0; i<cctk_lsh[0]; i++) + { + index = CCTK_GFINDEX3D(cctkGH,i,j,k); + + X = x[index]; + Y = y[index]; + Z = z[index]; + + R = sqrt(X*X + Y*Y + Z*Z); + + phi[index] = amplitude*exp( - pow( (R - radius) / sigma, 2.0 ) ); + + phi_p[index] = phi[index]; + phi_p_p[index] = phi[index]; + } + } + } + + CCTK_VInfo(CCTK_THORNSTRING,"Gaussian initial data have been set."); + +} |