Complete update of SOURCE [SDEF] entry
Abstract
The source system is changing from a variable driven system to a command line driven system based on --sdefType and --sdefMod. All other sdef command line options are going, and all variable type sourceName+Value variable type e.g. -va beamSourceEnergy 10 are going.
Introduction
The source system is based on the idea of entering an --sdefType card followed by a name e.g. beam. Then there is a mess of either -sdefNAME, were NAME is replaced by a random mix of values dependent on source type, and by a set of variables listed as beamSourceEnergy or beamSourceYPos etc.
This is a mess because
beamSourceetc variables are normally not defaulted, so a-vacommand is needed.- It is completely unclear if
-sdefYpostakes presidence over-va beamSourceYStep. - For each source you have to look at the multiple pieces of code to figure out the capability of that source.
Solution
The solution is that we are going to have -sdefType which will name a source type. That will be followed by -sdefObj should any FixedComp and linkPt reference be needed and finally -sdefMod keyname values...
-sdefMod takes a set of keynames followed by values. The expected layout will be somthing like:
--sdefMod energy 10.0 \
--sdefMod yStep 20.0 \
--sdefMod radius 5.0 \
--sdefMod aSpead 1.0
Note that every keyword starts with a lower case letter.
The plan [not implemented yet] is to add -sdefModHelp so that a given source can report the sdefMod cards available.
Note
This will break all existing scripts that don't use default sources. Sorry.