7. API

There is work presently going on to decouple the functionality from the interface, some of the basic classes can be used to input processing

file: input.py

to manipulate input files

import deck
deck.init([database])

to initialize the database of cards

Most commonly used classes:
Card

containing the description of each card

Input

manipulating the FLUKA input file

file: Project.py

to manipulate project files

7.1. Card class

Constructor:

input.Card(tag, what [,comment [,extra]])

what is a list starting with what[0]=name=sdum

Important Methods:
setWhat(n,value)

set value to what#n

nwhats()

return number of whats

what(n)

return value of what#n

numWhat(n)

return numeric value of what#n

intWhat(n)

return integer value of what#n

clone()

return a copy of the card

setEnable(e)

enable/disable card

7.2. Input class

Constructor:

input.Input([filename])

initialize the structure to hold an input file and optionally read the input filename

Important Variables:
cardlist

a list with pointers to cards

cards

a dictionary with pointers to cards grouped per tag

Important Methods:
read(filename)

read input from file filename

write(filename)

write input to file filename

addCard(card,pos)

add card to position pos (or end of file)

delCard(pos)

delete card from position pos

preprocess()

pre-process input to check for active cards

setEnable(e)

enable/disable card

7.3. Project class

Constructor:

Project.Project()

Initialize the structure to hold a project file

Important Methods:
clear()

to re-initialize project

load(filename)

load project from file filename

save([filename])

save project to filename

runCmd(run)

create run command

7.4. .flair file structure

# comments
Variable: Value
Notes:
     multi-line values are terminated with
     Ctrl-L

Run: name
     ...                  Block of Run related information
     Data:
     ...                  ... Including Data processing information
     EndData
EndRun
Plot: name
...                          Plot related informations
EndPlot

7.5. Example

Read an input file and modify the random number seed

import deck
deck.init()
inp = deck.Input("test.inp")
try:
    rndcard = inp["RANDOMIZ"][0]
    rndcard.setWhat(2, 5723)
except:
    print "No RANDOMIZe card found"
    sys.exit(0)
inp.write("test2.inp")