diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2011-07-16 00:07:37 -0400 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2011-07-16 00:07:37 -0400 |
commit | fba5cedc1dfe1d1c3989fd39413ae171e9fce6b0 (patch) | |
tree | 4b8dc5c143ef5d4754b93fa2d385c2425461a4a4 /fortran | |
parent | 0a3a963aa07cb79548c13aa1ff5520a89dd040e8 (diff) | |
download | Nresonances-fba5cedc1dfe1d1c3989fd39413ae171e9fce6b0.tar.gz Nresonances-fba5cedc1dfe1d1c3989fd39413ae171e9fce6b0.zip |
Make dt = dz
* as Simon discovered dt must equal to dz (in normilized units)
then some term cancels in derivatives calculations
* as result tpts is not a free parameter anymore but locked to length of
the cell and number of zpts
Diffstat (limited to 'fortran')
-rw-r--r-- | fortran/navy_four_levels/FourLevelPulseProp_Double.f95 | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fortran/navy_four_levels/FourLevelPulseProp_Double.f95 b/fortran/navy_four_levels/FourLevelPulseProp_Double.f95 index 5ccbd80..2873180 100644 --- a/fortran/navy_four_levels/FourLevelPulseProp_Double.f95 +++ b/fortran/navy_four_levels/FourLevelPulseProp_Double.f95 @@ -30,7 +30,7 @@ program FourLevelPulseProp_v3_Double parameter (nmat=3,npts=100) !matrix size, number of detuning points in dispersion curve !tpts is the number of temporal points in the cell !zpts is the number of z output slices - 1 - parameter (tpts=400,zpts=100) ! evrything fails with tpts = 100 + parameter (zpts=100) ! Number of slices in z direction parameter (Nframemax=2000000) parameter (NWrite=1) !number of frames to actually write integer i,j,k,m,n @@ -148,7 +148,6 @@ program FourLevelPulseProp_v3_Double ! Length of cell in m Lcell=100 Lcell=beta*Lcell/c !Now dimensionless - Lcell=6 t_start=secnds(0.E0) write (*,*)'t_start = ',t_start ! @@ -160,10 +159,11 @@ program FourLevelPulseProp_v3_Double tmax=130.0 write(*,*) 'tmax = ', tmax write(*,*) 'Lcell = ', Lcell - dt=tmax/(tpts-1) dz=Lcell/(zpts-1) !(no c because we're dimensionless) - !write (*,*)'tp = ',tp - Nframe=tpts !Change the number 4 to anything you want to see longer pulse evolution + ! It is crucial that dz = dt in unitless coordinates, there is built in + ! cancellation of some term on grid because of it. See Simon's note. + dt = dz + Nframe=tmax/dz+1 if (Nframe.ge.Nframemax) write (*,*)'Error!!!!Nframe>Nframemax' ! ! Initialize matrices |