Program for one to three-dimensional numerical quantum propagation on a grid in real and imaginary time.
- 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
- 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
- Run tests
make test
- it runstests/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
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:
The general section sets general variables like time step, number of steps, mass, etc.
Settings of the initial wave packet.
Imaginary-time propagation settings.
Real-time propagation settings.
Inputs can be prepared with the help of python scripts.
A series of python scripts is prepared for plotting the data.
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. A better grid point selection would be necessary for such potential.