/
larf.cfg
167 lines (131 loc) · 3.44 KB
/
larf.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
[params wiresgeom]
length = 30*mm
radius = 150*um
nwires = 12
pitch = 3*mm
lcar = 3*mm
nsegments = 6
gap = 3*mm
[mesh one]
methods = larf.wires.one
params = wiresgeom
[mesh parallel]
methods = larf.wires.parallel
params = wiresgeom
[mesh symmetric]
methods = larf.wires.symmetric
params = wiresgeom
# Not really a CPA but just a slab to provide voltage plane "well
# away" from the wires. It's posistion and thickness must be taken
# into account when its potential is set in the domain_voltage_map.
[mesh cpa]
methods = larf.electrode.cpa
params = cpa
dx=1*mm
offsetx = 21*mm
# APC is a joke name as it is a backwards CPA. But it's not even that
# as it's meant to shape the field sort of like the cryostat does
# behind the collection wires. As-is, it's really bogus and needs a
# better model and checking.
[mesh apc]
methods = larf.electrode.cpa
params = cpa
dx=1*mm
offsetx = -21*mm
[params cpa]
dy=20*mm
dz=20*mm
lcar = 5*mm
[mesh dunesymmetric]
methods = larf.wires.symmetric
length = 10*cm
radius = 150*um
nwires = 20
pitch = 5*mm
lcar = 1.5*mm
angle = 35.7*deg
[mesh uboone]
# note: must make sure offsetx on the cpa/apc and domain_voltage_map
# and wire plane locations are consistent with desired V/cm for the
# Edrift.
meshes = symmetric, cpa, apc
[mesh wirescpa]
meshes = parallel, cpa
[mesh dune]
meshes = dunesymmetric, cpa
[mesh capacitor]
meshes = cpa, apc
[boundary capdrift]
methods = larf.potentials.drift
domain_voltage_map = [(1,-5000*1*V), (2,5000*1*V)]
[boundary drift]
methods = larf.potentials.drift
# Fixme/warning: must keep 3N+1 in sync with position of CPA and U-wire
# plane to maintain desired V/cm.
# V = V_1 -500V/cm*(offsetx-dx-X_1) = -200V -500V/cm*(21mm-1mm-3mm) = -1050 V
domain_voltage_map = [((1,12),-200*V), ((13,24),0*V), ((25,36),200*V), (37,-1050*V), (38,0*V)]
[boundary weighting]
methods = larf.potentials.weighting
# Override this on cmd line like:
## larf -P domain=11 boundary [...] weighting
domain = 1
[boundary loweighting]
methods = larf.potentials.weighting
params = low_order
domain = 1
[boundary hiweighting]
methods = larf.potentials.weighting
params = high_order
domain = 1
[params low_order]
gqo_near=3
gqo_medium=2
gqo_far=1
[params high_order]
gqo_near=8
gqo_medium=6
gqo_far=4
[raster capacitor]
methods = larf.raster.linear
linspaces = ((-25*mm,25*mm,50), (-25*mm,25*mm,50), (-25*mm,25*mm,50))
[raster tight]
methods = larf.raster.linear
linspaces = ((-5*mm,5*mm,100), (-5*mm,5*mm,100), (-5*mm,5*mm,100))
[raster special]
methods = larf.raster.linear
linspaces = ((5*mm,15*mm,40), (-1*mm,1*mm,3), (-15*mm,-25*mm,40))
[raster uboone]
methods = larf.raster.linear
linspaces = ((-10*mm,20*mm,60), (-15*mm,15*mm,60), (-15*mm,15*mm,60))
[raster uboone-low]
methods = larf.raster.linear
params = low_order
linspaces = ((-10*mm,20*mm,60), (-15*mm,15*mm,60), (-15*mm,15*mm,60))
[raster uboone-high]
methods = larf.raster.linear
params = high_order
linspaces = ((-10*mm,20*mm,60), (-15*mm,15*mm,60), (-15*mm,15*mm,60))
[raster highrez]
methods = larf.raster.linear
# .2mm voxels
linspaces = ((-10*mm,20*mm,150), (-15*mm,15*mm,150), (-15*mm,15*mm,150))
[step uboone]
methods = larf.drift.stepping
lcar = 0.01*mm
time = 0*s
position = 18*mm,0*mm,0*mm
stepper = rkck
stuck = 0.001*mm
[current uboone]
methods = larf.drift.sample
charge = 1
[step capacitor]
methods = larf.drift.stepping
lcar = 0.01*mm
time = 0*s
position = 1*mm,2*mm,3*mm
stepper = rkck
stuck = 0.001*mm
[current capacitor]
methods = larf.drift.sample
charge = 1