a rewrite of Courtier's IonMonger in Julia
Documentation | Build Status | DOI |
---|---|---|
This package implements basic functionality to conduct time resolved drift-diffusion simulations of ionic solar cells like perovskites and related systems in one spatial dimension. It applies Courtier's finite element scheme and solves the resulting equations using the awesome DifferentialEquations.jl package by Chris Rackauckas.
using Pkg
Pkg.add("https://github.com/MatFi/AnnA.jl")
First load the package and define the parameter set for the simulation run.
The defaults, are stored in /src/Parameters.jl and will be overwritten by giving the corresponding values as arguments to the Parameters()
constructor
using AnnA, Unitful
parameters = AnnABase.Parameters(light = t->0,Rₛₕ =Inf*1u"V/A*m^2" )
The whole package uses Unitful.jl to handle the units nicely. This also means that all parameters must carry a unit (subtype of Unitful.AbstractQuantity
). The unit can easily set by the Unitful.@u_str
macro.
For the simplest experimental protocols an wrapper is implemented to create them conveniently, e.g. a IV-Sweep as IVProblem(p::AbstractParameters, range::AbstractArray, sweep_rate::AbstractQuantity)
:
prob = IVProblem(parameters,[-0.2,1.4]u"V",0.005u"V/s")
solve(prob)