-
Notifications
You must be signed in to change notification settings - Fork 26
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
Processing multi-mode parameter scans #316
Comments
Hi! Very glad you like Luna! The difference in the output from a multimode simulation is that the field The solution depends on what you want to know:
(by the way, I just realised that the example uses a silly way to extract the final slice of the field--you can also pass a The same thing applies to the output of Another thing to note is that the line
in the example gives the global maximum (i.e. the maximum peak power in any mode) when used on multimode outputs. The size of any statistic arrays which can be mode-resolved changes from Hope this helps! If you have any further issues or weird errors, feel free to paste an example code in here and we can have a look. |
Excellent, thanks @chrisbrahms. I've done a quick test with case (3), and that is working nicely for me I think. I do plan to take a closer look at the modes later, but for the initial pass I'm just interested in scanning over somewhat large parameter ranges, and looking at the integrated outputs (we're currently interested in seeing what we can do for deep UV/VUV generation in a capillary, but don't have much experience here as yet, hence the broad sweeps to get started). Meanwhile, I clearly need to spend some more time getting familiar with Julia! For reference for anyone else struggling, here's the processing snippet with a sum over modes: # Case with sum over modes
λ, Iλ, zstat, edens, max_peakpower = Processing.scanproc(outputdir) do output
λ, Iλ = Processing.getIω(output, :λ)
zstat = Processing.VarLength(output["stats"]["z"])
edens = Processing.VarLength(output["stats"]["electrondensity"])
max_peakpower = maximum(output["stats"]["peakpower"])
# Processing.Common(λ), Iλ[:, end], zstat, edens, max_peakpower # Default case (modes=1)
Processing.Common(λ), dropdims(sum(Iλ[:, :, end]; dims=2); dims=2), zstat, edens, max_peakpower
end |
Thanks for the great tool @chrisbrahms, @jtravs.
I have what is, hopefully, a basic (==stupid user, and new to Julia) question: how does one process the results from a parameter scan when running with multiple modes?
I've run parameter scans as per the docs (http://lupo-lab.com/Luna.jl/dev/scans.html), and processed the resulting files without issue (per http://lupo-lab.com/Luna.jl/dev/scans.html#Processing-scan-output), but when I add
modes
to theprop_capillary
run I can't work out how to do the processing step... the example code breaks (seems to be due to array dimension changes), and I've tried to fix it in a few inelegant, probably silly, ways, but now find myself stuck.Is there some equivalent of
modes=:sum
that I can invoke for the processing step, or agetModes
or similar line that needs to be added to the example?Thanks in advance for any help on this.
The text was updated successfully, but these errors were encountered: