-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Description
Namelist ordering requirements
There are a variety of rules about namelist ordering, some of which can be determined from the manual. This is my current understanding of those requirements:
&setupmust be the first in the namelists&setupmust come before&alter_setup(of course)&profile_const,&profile_gauss,&profile_step,&profile_polynom,&profile_fileall must come before any references to them (via theirlabel)&profile*must come before&beamif it contains references to the profile&profile*must come before&fieldif it contains references to the profile
&sequence_const,&sequence_polynom,&sequence_power,&sequence_randomall must come before any references to them (via theirlabel)&sequence*must come before&latticeif it has references to the sequence
&timemust come before&beam&timemust come before&importbeam&timemust come before&importfield&writeshould be near the end&trackshould be near the end
Usage count
Some namelists must only be used once, whereas others can be used multiple times:
- Single-use
&setup
- Multi-use
&lattice&field
User-reported errors
A LUME-Genesis user provided failure cases with the following:
&beambefore&timecauses a crash (libc++abi: terminating due to uncaught exception of type std::out_of_range: vector)- This is at least somewhat expected as the manual says
&timemust come before&beam
- This is at least somewhat expected as the manual says
&lattice(withzmatch) in the wrong spot resulted in different and non-matching/incorrect results- Non-matching ordering:
setup,time,profile_gauss,beam,lattice,track, and thenwrite - Matching ordering:
setup,lattice,time,profile_gauss,beam,field,track, andwrite - With a bit more testing, it appears that this is the requirement:
&latticemust come before&beam- is this in all scenarios?
- Non-matching ordering:
Overall question / thought
Could we come up with a full list of all the known requirements in this issue?
Maybe then we could determine a foolproof sort order of namelists - if it's even possible.
At the very least, we can add a documentation section about it.
I'd set up LUME-Genesis to make this a bit more user-friendly - either telling the user what's wrong with their ordering or perhaps helping them fix it.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels