mesolve-cuda
Based on qutip mesolve, a simple implementation using pycuda
Dependencies
Preferebly Python 3
- qutip
- numpy
- pycuda
- jinja2
- matplotlib (optional)
Usage
The same api as qutip
result = mesolve(hamiltonian, rho0, tlists, c_ops, e_ops, params)
- tlists is expected to be a list of tlist (a tlist for every possible parameter)
- params can hold parameter ranges: params = [ ('I0', I), ('wp', np.arange(0.1, 2.0, 0.1)) ]
See example for more info
Example
- volatage response for a single jospehson junction
- performance test
execute example with: python3 -m example.voltage_response
###Calculation of voltage with qutip and cuda
Todos
- Better Runge-Kutta implementation - 5(4)
- Adaptive stepwidth
- Precompile matrix multiplication for sparse operations
Notes
To enable use cuda devices, the correct environment has to be set
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-7.5/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/cuda-7.5/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/cuda-7.5/include
export PATH=$PATH:/usr/local/cuda-7.5/bin