Skip to content

Instantly share code, notes, and snippets.

@amitjamadagni
amitjamadagni / iteratorsmcwf.jl
Created July 29, 2015 12:28
Iterators for QuMCWFEnsemble
immutable QuMCWF <: QuPropagatorMethod
end
type QuMCWFEnsemble{QA<:QuBase.AbstractQuArray}
ntraj
rho::QA
decomp
QuMCWFEnsemble(ntraj, rho, decomp) = new(1:1:ntraj, rho, decomp)
end
@amitjamadagni
amitjamadagni / lindbladmastereq.jl
Created July 8, 2015 15:00
Lindblad Master Equation Integration
immutable QuLindbladMasterEq{H<:QuBase.AbstractQuMatrix, V<:QuBase.AbstractQuArray} <: QuEquation
hamiltonian::H
collapse_ops::Vector{V}
QuLindbladMasterEq(hamiltonian, collapse_ops) = new(hamiltonian, collapse_ops)
end
QuLindbladMasterEq{H<:QuBase.AbstractQuMatrix, V<:QuBase.AbstractQuArray}(hamiltonian::H, collapse_ops::Vector{V}) = QuLindbladMasterEq{H,V}(hamiltonian, collapse_ops)
function lindblad_op(hamiltonian::QuBase.AbstractQuMatrix, collapse_ops::Vector)
nb = size(coeffs(hamiltonian), 1)
@amitjamadagni
amitjamadagni / liouvillian_lindblad.jl
Created July 8, 2015 14:55
Liouvillian from Lindblad constructs
function lindblad_op(hamiltonian::QuBase.AbstractQuMatrix, collapse_ops::Vector)
nb = size(coeffs(hamiltonian), 1)
nlop = length(collapse_ops)
heff = zeros(typeof(im*one(eltype(hamiltonian))), size(coeffs(hamiltonian)))
for l=1:nlop
heff = heff + 0.5*coeffs(collapse_ops[l])'*coeffs(collapse_ops[l])
end
SI = Array(Int,0)
SJ = Array(Int,0)
Lvals = Array(typeof(im*one(eltype(hamiltonian))),0)
@amitjamadagni
amitjamadagni / qulindblad.jl
Created July 8, 2015 14:49
Lindblad and Liouvillian constructs
function lindblad_op(hamiltonian::QuBase.AbstractQuMatrix, collapse_ops::Vector)
nb = size(coeffs(hamiltonian), 1)
nlop = length(collapse_ops)
heff = zeros(typeof(im*one(eltype(hamiltonian))), size(coeffs(hamiltonian)))
for l=1:nlop
heff = heff + 0.5*coeffs(collapse_ops[l])'*coeffs(collapse_ops[l])
end
SI = Array(Int,0)
SJ = Array(Int,0)
Lvals = Array(typeof(im*one(eltype(hamiltonian))),0)
@amitjamadagni
amitjamadagni / qulindbladmastereq.jl
Last active August 29, 2015 14:24
Lindblad Master Equation Type
immutable QuLindbladMasterEq{H<:QuBase.AbstractQuMatrix, V<:QuBase.AbstractQuArray} <: QuEquation
hamitonian::H
collapse_ops::Array{V}
QuLindbladMasterEq(hamiltonian, collapse_ops) = new(hamiltonian, collapse_ops)
end
QuLindbladMasterEq{H<:QuBase.AbstractQuMatrix, V<:QuBase.AbstractQuArray}(hamiltonian::H, collapse_ops::Array{V}) = lindblad(hamiltonian, collapse_ops)
function lindblad(hamiltonian::QuBase.AbstractQuMatrix, collapse_ops::Vector{QuBase.AbstractQuMatrix})
nb = size(coeffs(hamiltonian), 1)
@amitjamadagni
amitjamadagni / qe_propexpmsolvers.jl
Last active August 29, 2015 14:23
Quantum Equation Addition : Expmv solver
##################################################
##### #####
##### propexpmsolvers.jl #####
##### #####
##################################################
abstract QuExponential <: QuPropagatorMethod
immutable QuExpokit <: QuExponential
options::Dict{Symbol, Any}
@amitjamadagni
amitjamadagni / qe_propodesolvers.jl
Last active August 29, 2015 14:23
Quantum Equation Addition : ODE Solvers
##################################################
##### #####
##### propodesolvers.jl #####
##### #####
##################################################
abstract QuODESolvers <: QuPropagatorMethod
const type_to_method_ode = @compat Dict{Any, Any}(:QuODE45 => ODE.ode45, :QuODE78 => ODE.ode78, :QuODE23s => ODE.ode23s)
@amitjamadagni
amitjamadagni / qe_propstepsolvers.jl
Last active August 29, 2015 14:23
Quantum Equation Addition : Step Solvers
##################################################
##### #####
##### propstepsolvers.jl #####
##### #####
##################################################
immutable QuEuler <: QuPropagatorMethod
end
@amitjamadagni
amitjamadagni / qe_propmachinery.jl
Last active August 29, 2015 14:23
Quantum Equation Addition : propmachinery.jl
##################################################
##### #####
##### propmachinery.jl #####
##### #####
##################################################
abstract QuPropagatorMethod
abstract QuEquation
@amitjamadagni
amitjamadagni / prop_eq_types_3.jl
Last active August 29, 2015 14:23
SE, LVN, LME types and integration
using QuBase
using Expokit
import Base: start, next, done
abstract QuPropagatorMethod
abstract QuantumEquation
immutable SchrodingerEquation{H<:QuBase.AbstractQuMatrix} <: QuantumEquation
hamiltonian::H