Skip to content
/ qdyn Public

Program for N-dimensional numerical quantum propagation on a grid.

Notifications You must be signed in to change notification settings

PHOTOX/qdyn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QDYN - quantum dynamics code

Program for one to three-dimensional numerical quantum propagation on a grid in real and imaginary time.

Compilation

  1. Compile FFTW3 library for fast Fourier transform
    • cd fftw
    • tar -xvf fftw.tar.gz to extract files from the archive, two versions available (3.3.10 and 3.3.6)
    • ./compile.sh to compile the version selected within the script (3.3.10 default)
    • compilation will output a path of the compilation that will used in Makefile, e.g. LIBS = -L/home/janos/Programs/fftw/fftw-3.3.6/lib -lfftw3 -lm -llapack
  2. Compile Qdym
    • cd src
    • change the library path from the previous FFTW3 compilation in Makefile
    • make clean && make for compilation
    • Ideally, add the \src folder to your path so that you can call Qdyn by just $ qdyn in the command line
  3. Run tests
    • make test - it runs tests/run_test_suite.sh which can be accessed separately (python3 with numpy library is necessary for some tests, otherwise they will be skipped)

To run qdyn, input.q file must be in the folder

Inputs

Sample input for imaginary time propagation is provided below.

&general
  dynamics='it',               ! Type of job ('rt' - real time propagation, 'it' - imaginary time propagation)
  nstep=200,                   ! Number of steps
  dt=0.5,                      ! Timestep [a.u.]
  dtwrite=10.0,                ! Printing every time unit (modulo)
  ngrid=512,                   ! Number of grid points (power of 2 for FFT)
  xmin=-37.0,                  ! Grid xmin, xmax same for all dimensions
  xmax=37.0,
  mass_x=1.0,                  ! Reduced mass of system [a.u.]
  wf=0,                        ! Initial wavefunction (0 - generated by program, 1 - wf.chk file)
  nstates=10,                  ! Number of states to be optimized
  print_wf=.false.,            ! Printing wavefunction turned off
  rank=1,                      ! Dimensionality
/

&it
  pot='0.005*(x)**2'  ! Potential
  project_rot=.true.
/

&init_wf
/

Input is separated into sections:

&general

The general section sets general variables like time step, number of steps, mass, etc.

&init_wf

Settings of the initial wave packet.

&it

Imaginary-time propagation settings.

&rt

Real-time propagation settings.

Preparing input

Inputs can be prepared with the help of python scripts.

Plotting

A series of python scripts is prepared for plotting the data.

Notes

Hydrogen atom test is not working well, probably too much stretch for the code. Spherical harmonic oscilator works so there should be no problem with spherical harmonics.

TODO

Imaginary-time propagation and real-time propagation in 1D are finished and tested. Extension of RT to multiple states is currently under progress.

  1. Add rotation matrix for propagation expH1
  2. Add autocorrelation function to the analyze scripts
  3. Add imaginary absorption potential

small TODO list

  1. change input description in README.md

About

Program for N-dimensional numerical quantum propagation on a grid.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published