diff options
Diffstat (limited to 'src/InitialData.F')
-rw-r--r-- | src/InitialData.F | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/src/InitialData.F b/src/InitialData.F deleted file mode 100644 index b7dfffd..0000000 --- a/src/InitialData.F +++ /dev/null @@ -1,126 +0,0 @@ - /*@@ - @file InitialData.F77 - @date - @author Tom Goodale - @desc - Initial data for the 3D Wave Equation - @enddesc - @@*/ - -#include "cctk.h" -#include "cctk_parameters.h" -#include "cctk_arguments.h" - - - - /*@@ - @routine WaveToyF77_InitialData - @date - @author Tom Goodale - @desc - Set up initial data for the wave equation - @enddesc - @calls - @calledby - @history - - @endhistory - -@@*/ - - subroutine WaveToy_InitialData(CCTK_FARGUMENTS) - - implicit none - - DECLARE_CCTK_FARGUMENTS - DECLARE_CCTK_PARAMETERS - - INTEGER CCTK_Equals - - INTEGER i,j,k - CCTK_REAL dt, omega, pi - CCTK_REAL min_delta, dx,dy,dz - - pi = 4.0*atan(1.0) - -c Grid spacing shortcuts -c ---------------------- - dx = cctk_delta_space(1) - dy = cctk_delta_space(2) - dz = cctk_delta_space(3) - -c Calculate timestep -c ------------------ - min_delta = min(dx,dy,dz) - cctk_delta_time = dtfac*min_delta - dt = cctk_delta_time - - omega = sqrt(kx**2+ky**2+kz**2) - - if (CCTK_EQUALS(initial_data,"plane")) then - - do k=1,cctk_lsh(3) - do j=1,cctk_lsh(2) - do i=1,cctk_lsh(1) - - phi(i,j,k) = amplitude*cos(kx*x(i,j,k)+ky*y(i,j,k) - & +kz*z(i,j,k)+omega*cctk_time) - phi_old(i,j,k) = amplitude*cos(kx*x(i,j,k)+ky*y(i,j,k) - & +kz*z(i,j,k)+omega*(cctk_time-dt)) - - end do - end do - end do - - else if (CCTK_Equals(initial_data,"gaussian").eq.1) then - - do k=1,cctk_lsh(3) - do j=1,cctk_lsh(2) - do i=1,cctk_lsh(1) - - phi(i,j,k) = amplitude*exp( -(sqrt(x(i,j,k)**2 - & +y(i,j,k)**2+z(i,j,k)**2)-radius)**2/sigma**2) - phi_old(i,j,k) = amplitude*exp( -(sqrt(x(i,j,k)**2 - & +y(i,j,k)**2+z(i,j,k)**2)-radius(i,j,k)-dt)**2/sigma**2) - - end do - end do - end do - - else if (CCTK_Equals(initial_data, "box").eq.1) then - -c Use kx,ky,kz as number of modes in each direction. - - do k=1,cctk_lsh(3) - do j=1,cctk_lsh(2) - do i=1,cctk_lsh(1) - - phi(i,j,k) = amplitude*sin(kx*(x(i,j,k)-0.5)*pi)* - $ sin(ky*(y(i,j,k)-0.5)*pi)* - $ sin(kz*(z(i,j,k)-0.5)*pi)* - $ cos(omega*cctk_time*pi) - - phi_old(i,j,k)= amplitude*sin(kx*(x(i,j,k)-0.5)*pi)* - $ sin(ky*(y(i,j,k)-0.5)*pi)* - $ sin(kz*(z(i,j,k)-0.5)*pi)* - $ cos(omega*(cctk_time-dt)*pi) - - - end do - end do - end do - - end if - -c Apply symmetry boundary conditions -c ---------------------------------- - call ApplySymmetry(cctkGH,"wavetoy::scalarfields") - -c Synchronise -c ----------- - call CCTK_SyncGroup(cctkGH,"wavetoy::scalarfields") - - return - end - - |