Skip to content

jrjohansson/qutipf90mc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qutipf90mc

The development of a "wave-function monte carlo" solver written in Fortran 90/95, with a python interface trough f2py. The program is intended to be used with the qutip python package.

Features:

- Usage (almost, see missing features) identical to QuTiP v.2.1.0's mcsolve
- Uses sparse (compressed row format) matrices for operators
- Uses zvode to integrate in time
- Time evolution algorithm from QuTiP v2.1.0 to find correct times for jumps.
- Automatic parallelization via Python's multiprocessing module.

Missing features:
- Does not accept list as "ntraj" argument.
- Only solves prolbems without explicit time-dependence.


Dependencies:

- QuTiP v.2.1.0 or higher and all its dependencies.
- A fortran compiler and the BLAS library (BLAS comes with many fortran compilers, such as gfortran).


Installation:

1. Download code with
git clone https://github.com/arnelg/qutipf90mc.git

2. Enter directory and install
cd qutipf90mc
python setup.py install

Or, if you prefer to install locally:
python setup.py build_ext --inplace


Testing and usage:

Test the installation by leaving the directory, starting python and entering
import qutipf90mc

To run a few unit tests do:
qutipf90mc.test()

To run a few demos do:
qutipf90mc.alldemos()

This will run some demos from QuTiP where the call to qutip.mcsolve has been replaced by qutipf90mc.mcsolve_f90.

For general usage see
help(qutipf90mc.mcsolve_f90)

You can also run qutipf90mc.compare.run(dim,ntraj) to compare the speed of mcsolve_f90 vs. mcsolve for a decaying system with Hilbert space dimension dim, and ntraj trajectories, run on a single CPU.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Fortran 83.4%
  • Python 16.6%