Set, add, remove¶
The user needs to link materials, absorbers and detectors to Experiment() objects and pins to Assembly() objects. The syntax is very similar to create all this linking for each of these class types. Below one can find some basic examples, which are not covered in the other tutorials (there only the set functions are used).
[1]:
from feign.blocks import *
Setting materials¶
[2]:
uo2=Material('1')
h2o=Material('2')
zr=Material('3')
ss=Material('4')
lead=Material('5')
ex=Experiment()
ex.set_materials(uo2,h2o)
ex.materials
[2]:
{'1': Material(matID=1), '2': Material(matID=2)}
[3]:
ex.add_material(zr)
ex.materials
[3]:
{'1': Material(matID=1), '2': Material(matID=2), '3': Material(matID=3)}
[4]:
ex.add_material(ss,lead)
ex.materials
[4]:
{'1': Material(matID=1),
'2': Material(matID=2),
'3': Material(matID=3),
'4': Material(matID=4),
'5': Material(matID=5)}
[5]:
ex.remove_material(h2o)
ex.materials
[5]:
{'1': Material(matID=1),
'3': Material(matID=3),
'4': Material(matID=4),
'5': Material(matID=5)}
[6]:
ex.remove_material(zr,uo2)
ex.materials
[6]:
{'4': Material(matID=4), '5': Material(matID=5)}
[7]:
ex.remove_material(uo2)
ID 1 is not in dict yet
Setting pins¶
[8]:
fuel1=Pin('1')
fuel2=Pin('2')
fuel3=Pin('3')
fuel4=Pin('4')
fuel5=Pin('5')
assy=Assembly(17,17)
assy.set_pins(fuel1,fuel2)
assy.pins
[8]:
{'1': Pin(pinID=1), '2': Pin(pinID=2)}
[9]:
assy.add_pin(fuel3)
assy.pins
[9]:
{'1': Pin(pinID=1), '2': Pin(pinID=2), '3': Pin(pinID=3)}
[10]:
assy.add_pin(fuel4,fuel5)
assy.pins
[10]:
{'1': Pin(pinID=1),
'2': Pin(pinID=2),
'3': Pin(pinID=3),
'4': Pin(pinID=4),
'5': Pin(pinID=5)}
[11]:
assy.remove_pin(fuel2)
assy.pins
[11]:
{'1': Pin(pinID=1), '3': Pin(pinID=3), '4': Pin(pinID=4), '5': Pin(pinID=5)}
[12]:
assy.remove_pin(fuel1,fuel3)
assy.pins
[12]:
{'4': Pin(pinID=4), '5': Pin(pinID=5)}
[13]:
assy.remove_pin(fuel1)
ID 1 is not in dict yet
Setting detectors¶
[14]:
d1=Detector('1')
d2=Detector('2')
d3=Detector('3')
d4=Detector('4')
d5=Detector('5')
ex=Experiment()
ex.set_detectors(d1,d2)
ex.detectors
[14]:
{'1': Detector(detID=1), '2': Detector(detID=2)}
[15]:
ex.add_detector(d3)
ex.detectors
[15]:
{'1': Detector(detID=1), '2': Detector(detID=2), '3': Detector(detID=3)}
[16]:
ex.add_detector(d4,d5)
ex.detectors
[16]:
{'1': Detector(detID=1),
'2': Detector(detID=2),
'3': Detector(detID=3),
'4': Detector(detID=4),
'5': Detector(detID=5)}
[17]:
ex.remove_detector(d2)
ex.detectors
[17]:
{'1': Detector(detID=1),
'3': Detector(detID=3),
'4': Detector(detID=4),
'5': Detector(detID=5)}
[18]:
ex.remove_detector(d1,d3)
ex.detectors
[18]:
{'4': Detector(detID=4), '5': Detector(detID=5)}
[19]:
ex.remove_detector(d1)
ID 1 is not in dict yet
Setting absorbers¶
[20]:
a1=Absorber('1')
a2=Absorber('2')
a3=Absorber('3')
a4=Absorber('4')
a5=Absorber('5')
ex=Experiment()
ex.set_absorbers(a1,a2)
ex.absorbers
[20]:
{'1': Absorber(absID=1), '2': Absorber(absID=2)}
[21]:
ex.add_absorber(a3)
ex.absorbers
[21]:
{'1': Absorber(absID=1), '2': Absorber(absID=2), '3': Absorber(absID=3)}
[22]:
ex.add_absorber(a4,a5)
ex.absorbers
[22]:
{'1': Absorber(absID=1),
'2': Absorber(absID=2),
'3': Absorber(absID=3),
'4': Absorber(absID=4),
'5': Absorber(absID=5)}
[23]:
ex.remove_absorber(a2)
ex.absorbers
[23]:
{'1': Absorber(absID=1),
'3': Absorber(absID=3),
'4': Absorber(absID=4),
'5': Absorber(absID=5)}
[24]:
ex.remove_absorber(a1,a3)
ex.absorbers
[24]:
{'4': Absorber(absID=4), '5': Absorber(absID=5)}
[25]:
ex.remove_absorber(a1)
ID 1 is not in dict yet