Skip to content

Jesse-jApps/mesolve-cuda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 Voltage

###Performance Performance

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

About

Based on qutip mesolve, a simple implementation using pycuda

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published