-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation of an additional ionization rate function for bulk #361
Comments
Hi @Gvaz98, thanks a lot for putting this together! Unfortunately I don't have a huge amount of time right now as I'm travelling. I will be able to look at the error in more detail in August, but just a quick thought--it may be easier to get it to work with the other freespace example, as the one you modified actually simulates HCF propagation, but using the Hankel transform (this is formally different but accesses the same physics). Regarding your two questions:
|
@jtravs if you have a moment you could also look at this before I'm back? |
Hello again, Small update. Now I am having issues with an “InexactError” e.g. @. Plas.phase = Plas.fraction * e_ratio * E In particular because the phase is Float64 and the result on the right-hand side is a ComplexF64 because of E.
Here is the link to what I added so far. EDIT: Nonlinear.PlasmaCumtrapz(grid.to, convert(Array{ComplexF64}, grid.to), ionrate, ionpot) Probably not the most elegant, but at least the code runs. |
Hi! Sorry for the slow response. I've been away for several weeks but I'm back now. The main problem you're running into here is that the |
Hello, Sorry, I have not had much time and could not benchmark yet. Just a few questions. Meanwhile, I think I managed to make a cached version of the rate function. Although I am not sure in how to define the Emax and Emin for it. For now, I am using: function makeKeldyshcache(ionpot::Float64, λ0;
rtol = 1e-6, maxiter = 10000, N=2^16, Emax=nothing)
Imax=ionpot/λ0^3*c #Intensity in W/m^2 where the energy matches the ionisation potential, the duration λ/c and area of λ^2.
#i.e. a λ^3 laser
Emax = isnothing(Emax) ? 1e4*sqrt(μ_0*c*Imax) : Emax
Emin = Emax/50000
E = collect(range(Emin, stop=Emax, length=N));
@info @sprintf("Pre-calculating Keldysh rate rate for %.2f eV, %.1f nm...", ionpot/electron, 1e9λ0)
rate = ionrate_Keldysh(ionpot, λ0, E; rtol = rtol, maxiter = maxiter);
@info "...Keldysh pre-calculation done"
return E, rate
end Where the “safety factor” 1e4 is arbitrary. |
Hi @Gvaz98, I'm very sorry that this dropped off of my to-do list and I haven't looked at this yet. Are you still working on this? |
Hello @chrisbrahms. To be honest, I also had to drop this from my list as well because of other projects, and I am not sure if I will be able to pick it back up in the near future. But someone else my continue this work as they seem interested in a code for that. |
I guessed this might have been the case! Don't worry about making a PR. If I get the chance I will finish it. If anyone else wants to pick this up, just point them in my direction. |
Hello,
I am trying to add the Keldysh ionization rate to include plasma effects for bulk samples. I have already written the equation in Ionization.jl copying the structure of the ADK rate
https://github.com/Gvaz98/Luna.jl/blob/08338aff8473233f8de79af3c2d12074923a1cd0/src/Ionisation.jl#L389) ,
but have a few doubts:
Additionally, for a first try, I changed one of the free space examples to include plasma effects
https://github.com/Gvaz98/Luna.jl/blob/b9fb68ee9c13e49b0daf5a809aadd7cfcdeea975/examples/low_level_interface/freespace/radial_hcf_keldysh_plasma.jl
However, when propagation starts the rate function receives NaN for the electric field, not sure why.
Thanks in advance
The text was updated successfully, but these errors were encountered: