Skip to content

ife_variables

Module containing global variables relating to the inertial fusion energy model

Default IFE builds and material volumes are those for the SOMBRERO device. The 2-dimensional arrays have indices (region, material), where 'region' is the region and maxmat is the 'material':

  • 'region' = 1 radially outside chamber
  • 'region' = 2 above chamber
  • 'region' = 3 below chamber

MAXMAT = 8 module-attribute

Total number of materials in IFE device. Material numbers are as follows: - =0 void - =1 steel - =2 carbon cloth - =3 FLiBe - =4 lithium oxide Li2O - =5 concrete - =6 helium - =7 xenon - =8 lithium

CREATE_DICTS_FROM_DATACLASS = IFEData module-attribute

IFEData dataclass

Source code in process/data_structure/ife_variables.py
 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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
@dataclass
class IFEData:
    bldr: float = 1.0
    """radial thickness of IFE blanket (m; calculated `if ifetyp=4`)"""

    bldrc: float = 1.0
    """radial thickness of IFE curtain (m; `ifetyp=4`)"""

    bldzl: float = 4.0
    """vertical thickness of IFE blanket below chamber (m)"""

    bldzu: float = 4.0
    """vertical thickness of IFE blanket above chamber (m)"""

    blmatf: list[float] = field(
        default_factory=lambda: np.reshape(
            [
                0.05,
                0.05,
                0.05,
                0.0,
                0.0,
                0.0,
                0.45,
                0.45,
                0.45,
                0.0,
                0.0,
                0.0,
                0.20,
                0.20,
                0.20,
                0.0,
                0.0,
                0.0,
                0.30,
                0.30,
                0.30,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
            ],
            (3, MAXMAT + 1),
        )
    )
    """IFE blanket material fractions"""

    blmatm: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE blanket material masses (kg)"""

    blmatv: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE blanket material volumes (m3)"""

    blvol: list[float] = field(default_factory=lambda: np.zeros(3))
    """IFE blanket volume (m3)"""

    cdriv0: float = 154.3
    """IFE generic/laser driver cost at edrive=0 (M$)"""

    cdriv1: float = 163.2
    """IFE low energy heavy ion beam driver cost extrapolated to `edrive=0` (M$)"""

    cdriv2: float = 244.9
    """IFE high energy heavy ion beam driver cost extrapolated to `edrive=0` (M$)"""

    cdriv3: float = 1.463
    """IFE driver cost ($/J wall plug) (`ifedrv==3`)"""

    chdzl: float = 9.0
    """vertical thickness of IFE chamber below centre (m)"""

    chdzu: float = 9.0
    """vertical thickness of IFE chamber above centre (m)"""

    chmatf: list[float] = field(
        default_factory=lambda: np.array([1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
    )
    """IFE chamber material fractions"""

    chmatm: list[float] = field(default_factory=lambda: np.zeros(MAXMAT + 1))
    """IFE chamber material masses (kg)"""

    chmatv: list[float] = field(default_factory=lambda: np.zeros(MAXMAT + 1))
    """IFE chamber material volumes (m3)"""

    chrad: float = 6.5
    """radius of IFE chamber (m) (`iteration variable 84`)"""

    chvol: float = 0.0
    """IFE chamber volume (m3)"""

    dcdrv0: float = 111.4
    """IFE generic/laser driver cost gradient (M$/MJ)"""

    dcdrv1: float = 78.0
    """HIB driver cost gradient at low energy (M$/MJ)"""

    dcdrv2: float = 59.9
    """HIB driver cost gradient at high energy (M$/MJ)"""

    drveff: float = 0.28
    """IFE driver wall plug to target efficiency (`ifedrv=0,3`) (`iteration variable 82`)"""

    edrive: float = 5.0e6
    """IFE driver energy (J) (`iteration variable 81`)"""

    etadrv: float = 0.0
    """IFE driver wall plug to target efficiency"""

    etali: float = 0.4
    """IFE lithium pump wall plug efficiency (`ifetyp=4`)"""

    etave: list[float] = field(
        default_factory=lambda: np.array([
            0.082,
            0.079,
            0.076,
            0.073,
            0.069,
            0.066,
            0.062,
            0.059,
            0.055,
            0.051,
        ])
    )
    """IFE driver efficiency vs driver energy (`ifedrv=-1`)"""

    fauxbop: float = 0.06
    """fraction of gross electric power to balance-of-plant (IFE)"""

    fbreed: float = 0.51
    """fraction of breeder external to device core"""

    fburn: float = 0.3333
    """IFE burn fraction (fraction of tritium fused/target)"""

    flirad: float = 0.78
    """radius of FLiBe/lithium inlet (m) (`ifetyp=3,4`)"""

    fwdr: float = 0.01
    """radial thickness of IFE first wall (m)"""

    fwdzl: float = 0.01
    """vertical thickness of IFE first wall below chamber (m)"""

    fwdzu: float = 0.01
    """vertical thickness of IFE first wall above chamber (m)"""

    fwmatf: list[float] = field(
        default_factory=lambda: np.reshape(
            [
                0.05,
                0.05,
                0.05,
                0.0,
                0.0,
                0.0,
                0.95,
                0.95,
                0.95,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
            ],
            (3, MAXMAT + 1),
        )
    )
    """IFE first wall material fractions"""

    fwmatm: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE first wall material masses (kg)"""

    fwmatv: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE first wall material volumes (kg)"""

    fwvol: list[float] = field(default_factory=lambda: np.zeros(3))
    """IFE first wall volume (m3)"""

    gain: float = 0.0
    """IFE target gain"""

    gainve: list[float] = field(
        default_factory=lambda: np.array([
            60.0,
            95.0,
            115.0,
            125.0,
            133.0,
            141.0,
            152.0,
            160.0,
            165.0,
            170.0,
        ])
    )
    """IFE target gain vs driver energy (`ifedrv=-1`)"""

    htpmw_ife: float = 0.0
    """IFE heat transport system electrical pump power (MW)"""

    ife: int = 0
    """Switch for IFE option:
    - =0 use tokamak, RFP or stellarator model
    - =1 use IFE model
    """

    ifedrv: int = 2
    """Switch for type of IFE driver:
    - =-1 use gainve, etave for gain and driver efficiency
    - =0 use tgain, drveff for gain and driver efficiency
    - =1 use laser driver based on SOMBRERO design
    - =2 use heavy ion beam driver based on OSIRIS
    - =3 Input pfusife, rrin and drveff
    """

    ifetyp: int = 0
    """Switch for type of IFE device build:
    - =0 generic (cylindrical) build
    - =1 OSIRIS-like build
    - =2 SOMBRERO-like build
    - =3 HYLIFE-II-like build
    - =4 2019 build
    """

    lipmw: float = 0.0
    """IFE lithium pump power (MW; `ifetyp=4`)"""

    mcdriv: float = 1.0
    """IFE driver cost multiplier"""

    mflibe: float = 0.0
    """total mass of FLiBe (kg)"""

    pdrive: float = 23.0e6
    """IFE driver power reaching target (W) (`iteration variable 85`)"""

    pfusife: float = 1000.0
    """IFE input fusion power (MW) (`ifedrv=3 only`; `itv 155`)"""

    pifecr: float = 10.0
    """IFE cryogenic power requirements (MW)"""

    ptargf: float = 2.0
    """IFE target factory power at 6 Hz repetition rate (MW)"""

    r1: float = 0.0
    """IFE device radial build (m)"""

    r2: float = 0.0
    """IFE device radial build (m)"""

    r3: float = 0.0
    """IFE device radial build (m)"""

    r4: float = 0.0
    """IFE device radial build (m)"""

    r5: float = 0.0
    """IFE device radial build (m)"""

    r6: float = 0.0
    """IFE device radial build (m)"""

    r7: float = 0.0
    """IFE device radial build (m)"""

    reprat: float = 0.0
    """IFE driver repetition rate (Hz)"""

    rrin: float = 6.0
    """Input IFE repetition rate (Hz) (`ifedrv=3 only`; `itv 156`)"""

    rrmax: float = 20.0
    """maximum IFE repetition rate (Hz)"""

    shdr: float = 1.7
    """radial thickness of IFE shield (m)"""

    shdzl: float = 5.0
    """vertical thickness of IFE shield below chamber (m)"""

    shdzu: float = 5.0
    """vertical thickness of IFE shield above chamber (m)"""

    shmatf: list[float] = field(
        default_factory=lambda: np.reshape(
            [
                0.05,
                0.05,
                0.05,
                0.19,
                0.19,
                0.19,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.665,
                0.665,
                0.665,
                0.095,
                0.095,
                0.095,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
            ],
            (3, MAXMAT + 1),
        )
    )
    """IFE shield material fractions"""

    shmatm: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE shield material masses (kg)"""

    shmatv: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE shield material volumes (kg)"""

    shvol: list[float] = field(default_factory=lambda: np.zeros(3))
    """IFE shield volume (m3)"""

    sombdr: float = 2.7
    """radius of cylindrical blanket section below chamber (`ifetyp=2`)"""

    somtdr: float = 2.7
    """radius of cylindrical blanket section above chamber (`ifetyp=2`)"""

    taufall: float = 0.0
    """Lithium Fall Time (s)"""

    tdspmw: float = 0.01
    """IFE target delivery system power (MW)"""

    tfacmw: float = 0.0
    """IFE target factory power (MW)"""

    tgain: float = 85.0
    """IFE target gain (if `ifedrv = 0`) (`iteration variable 83`)"""

    uccarb: float = 50.0
    """cost of carbon cloth ($/kg)"""

    ucconc: float = 0.1
    """cost of concrete ($/kg)"""

    ucflib: float = 84.0
    """cost of FLiBe ($/kg)"""

    uctarg: float = 0.3
    """cost of IFE target ($/target)"""

    v1dr: float = 0.0
    """radial thickness of IFE void between first wall and blanket (m)"""

    v1dzl: float = 0.0
    """vertical thickness of IFE void 1 below chamber (m)"""

    v1dzu: float = 0.0
    """vertical thickness of IFE void 1 above chamber (m)"""

    v1matf: list[float] = field(
        default_factory=lambda: np.reshape(
            [
                1.0,
                1.0,
                1.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
            ],
            (3, MAXMAT + 1),
        )
    )
    """IFE void 1 material fractions"""

    v1matm: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE void 1 material masses (kg)"""

    v1matv: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE void 1 material volumes (kg)"""

    v1vol: list[float] = field(default_factory=lambda: np.zeros(3))
    """IFE void 1 volume (m3)"""

    v2dr: float = 2.0
    """radial thickness of IFE void between blanket and shield (m)"""

    v2dzl: float = 7.0
    """vertical thickness of IFE void 2 below chamber (m)"""

    v2dzu: float = 7.0
    """vertical thickness of IFE void 2 above chamber (m)"""

    v2matf: list[float] = field(
        default_factory=lambda: np.reshape(
            [
                1.0,
                1.0,
                1.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
            ],
            (3, MAXMAT + 1),
        )
    )
    """IFE void 2 material fractions"""

    v2matm: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE void 2 material masses (kg)"""

    v2matv: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE void 2 material volumes (kg)"""

    v2vol: list[float] = field(default_factory=lambda: np.zeros(3))
    """IFE void 2 volume (m3)"""

    v3dr: float = 43.3
    """radial thickness of IFE void outside shield (m)"""

    v3dzl: float = 30.0
    """vertical thickness of IFE void 3 below chamber (m)"""

    v3dzu: float = 20.0
    """vertical thickness of IFE void 3 above chamber (m)"""

    v3matf: list[float] = field(
        default_factory=lambda: np.reshape(
            [
                1.0,
                1.0,
                1.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
            ],
            (3, MAXMAT + 1),
        )
    )
    """IFE void 3 material fractions"""

    v3matm: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE void 3 material masses (kg)"""

    v3matv: list[float] = field(default_factory=lambda: np.zeros((3, MAXMAT + 1)))
    """IFE void 3 material volumes (kg)"""

    v3vol: list[float] = field(default_factory=lambda: np.zeros(3))
    """IFE void 3 volume (m3)"""

    zl1: float = 0.0
    """IFE vertical build below centre (m)"""

    zl2: float = 0.0
    """IFE vertical build below centre (m)"""

    zl3: float = 0.0
    """IFE vertical build below centre (m)"""

    zl4: float = 0.0
    """IFE vertical build below centre (m)"""

    zl5: float = 0.0
    """IFE vertical build below centre (m)"""

    zl6: float = 0.0
    """IFE vertical build below centre (m)"""

    zl7: float = 0.0
    """IFE vertical build below centre (m)"""

    zu1: float = 0.0
    """IFE vertical build above centre (m)"""

    zu2: float = 0.0
    """IFE vertical build above centre (m)"""

    zu3: float = 0.0
    """IFE vertical build above centre (m)"""

    zu4: float = 0.0
    """IFE vertical build above centre (m)"""

    zu5: float = 0.0
    """IFE vertical build above centre (m)"""

    zu6: float = 0.0
    """IFE vertical build above centre (m)"""

    zu7: float = 0.0
    """IFE vertical build above centre (m)"""

bldr = 1.0 class-attribute instance-attribute

radial thickness of IFE blanket (m; calculated if ifetyp=4)

bldrc = 1.0 class-attribute instance-attribute

radial thickness of IFE curtain (m; ifetyp=4)

bldzl = 4.0 class-attribute instance-attribute

vertical thickness of IFE blanket below chamber (m)

bldzu = 4.0 class-attribute instance-attribute

vertical thickness of IFE blanket above chamber (m)

blmatf = field(default_factory=(lambda: np.reshape([0.05, 0.05, 0.05, 0.0, 0.0, 0.0, 0.45, 0.45, 0.45, 0.0, 0.0, 0.0, 0.2, 0.2, 0.2, 0.0, 0.0, 0.0, 0.3, 0.3, 0.3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], (3, MAXMAT + 1)))) class-attribute instance-attribute

IFE blanket material fractions

blmatm = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE blanket material masses (kg)

blmatv = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE blanket material volumes (m3)

blvol = field(default_factory=(lambda: np.zeros(3))) class-attribute instance-attribute

IFE blanket volume (m3)

cdriv0 = 154.3 class-attribute instance-attribute

IFE generic/laser driver cost at edrive=0 (M$)

cdriv1 = 163.2 class-attribute instance-attribute

IFE low energy heavy ion beam driver cost extrapolated to edrive=0 (M$)

cdriv2 = 244.9 class-attribute instance-attribute

IFE high energy heavy ion beam driver cost extrapolated to edrive=0 (M$)

cdriv3 = 1.463 class-attribute instance-attribute

IFE driver cost ($/J wall plug) (ifedrv==3)

chdzl = 9.0 class-attribute instance-attribute

vertical thickness of IFE chamber below centre (m)

chdzu = 9.0 class-attribute instance-attribute

vertical thickness of IFE chamber above centre (m)

chmatf = field(default_factory=(lambda: np.array([1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))) class-attribute instance-attribute

IFE chamber material fractions

chmatm = field(default_factory=(lambda: np.zeros(MAXMAT + 1))) class-attribute instance-attribute

IFE chamber material masses (kg)

chmatv = field(default_factory=(lambda: np.zeros(MAXMAT + 1))) class-attribute instance-attribute

IFE chamber material volumes (m3)

chrad = 6.5 class-attribute instance-attribute

radius of IFE chamber (m) (iteration variable 84)

chvol = 0.0 class-attribute instance-attribute

IFE chamber volume (m3)

dcdrv0 = 111.4 class-attribute instance-attribute

IFE generic/laser driver cost gradient (M$/MJ)

dcdrv1 = 78.0 class-attribute instance-attribute

HIB driver cost gradient at low energy (M$/MJ)

dcdrv2 = 59.9 class-attribute instance-attribute

HIB driver cost gradient at high energy (M$/MJ)

drveff = 0.28 class-attribute instance-attribute

IFE driver wall plug to target efficiency (ifedrv=0,3) (iteration variable 82)

edrive = 5000000.0 class-attribute instance-attribute

IFE driver energy (J) (iteration variable 81)

etadrv = 0.0 class-attribute instance-attribute

IFE driver wall plug to target efficiency

etali = 0.4 class-attribute instance-attribute

IFE lithium pump wall plug efficiency (ifetyp=4)

etave = field(default_factory=(lambda: np.array([0.082, 0.079, 0.076, 0.073, 0.069, 0.066, 0.062, 0.059, 0.055, 0.051]))) class-attribute instance-attribute

IFE driver efficiency vs driver energy (ifedrv=-1)

fauxbop = 0.06 class-attribute instance-attribute

fraction of gross electric power to balance-of-plant (IFE)

fbreed = 0.51 class-attribute instance-attribute

fraction of breeder external to device core

fburn = 0.3333 class-attribute instance-attribute

IFE burn fraction (fraction of tritium fused/target)

flirad = 0.78 class-attribute instance-attribute

radius of FLiBe/lithium inlet (m) (ifetyp=3,4)

fwdr = 0.01 class-attribute instance-attribute

radial thickness of IFE first wall (m)

fwdzl = 0.01 class-attribute instance-attribute

vertical thickness of IFE first wall below chamber (m)

fwdzu = 0.01 class-attribute instance-attribute

vertical thickness of IFE first wall above chamber (m)

fwmatf = field(default_factory=(lambda: np.reshape([0.05, 0.05, 0.05, 0.0, 0.0, 0.0, 0.95, 0.95, 0.95, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], (3, MAXMAT + 1)))) class-attribute instance-attribute

IFE first wall material fractions

fwmatm = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE first wall material masses (kg)

fwmatv = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE first wall material volumes (kg)

fwvol = field(default_factory=(lambda: np.zeros(3))) class-attribute instance-attribute

IFE first wall volume (m3)

gain = 0.0 class-attribute instance-attribute

IFE target gain

gainve = field(default_factory=(lambda: np.array([60.0, 95.0, 115.0, 125.0, 133.0, 141.0, 152.0, 160.0, 165.0, 170.0]))) class-attribute instance-attribute

IFE target gain vs driver energy (ifedrv=-1)

htpmw_ife = 0.0 class-attribute instance-attribute

IFE heat transport system electrical pump power (MW)

ife = 0 class-attribute instance-attribute

Switch for IFE option: - =0 use tokamak, RFP or stellarator model - =1 use IFE model

ifedrv = 2 class-attribute instance-attribute

Switch for type of IFE driver: - =-1 use gainve, etave for gain and driver efficiency - =0 use tgain, drveff for gain and driver efficiency - =1 use laser driver based on SOMBRERO design - =2 use heavy ion beam driver based on OSIRIS - =3 Input pfusife, rrin and drveff

ifetyp = 0 class-attribute instance-attribute

Switch for type of IFE device build: - =0 generic (cylindrical) build - =1 OSIRIS-like build - =2 SOMBRERO-like build - =3 HYLIFE-II-like build - =4 2019 build

lipmw = 0.0 class-attribute instance-attribute

IFE lithium pump power (MW; ifetyp=4)

mcdriv = 1.0 class-attribute instance-attribute

IFE driver cost multiplier

mflibe = 0.0 class-attribute instance-attribute

total mass of FLiBe (kg)

pdrive = 23000000.0 class-attribute instance-attribute

IFE driver power reaching target (W) (iteration variable 85)

pfusife = 1000.0 class-attribute instance-attribute

IFE input fusion power (MW) (ifedrv=3 only; itv 155)

pifecr = 10.0 class-attribute instance-attribute

IFE cryogenic power requirements (MW)

ptargf = 2.0 class-attribute instance-attribute

IFE target factory power at 6 Hz repetition rate (MW)

r1 = 0.0 class-attribute instance-attribute

IFE device radial build (m)

r2 = 0.0 class-attribute instance-attribute

IFE device radial build (m)

r3 = 0.0 class-attribute instance-attribute

IFE device radial build (m)

r4 = 0.0 class-attribute instance-attribute

IFE device radial build (m)

r5 = 0.0 class-attribute instance-attribute

IFE device radial build (m)

r6 = 0.0 class-attribute instance-attribute

IFE device radial build (m)

r7 = 0.0 class-attribute instance-attribute

IFE device radial build (m)

reprat = 0.0 class-attribute instance-attribute

IFE driver repetition rate (Hz)

rrin = 6.0 class-attribute instance-attribute

Input IFE repetition rate (Hz) (ifedrv=3 only; itv 156)

rrmax = 20.0 class-attribute instance-attribute

maximum IFE repetition rate (Hz)

shdr = 1.7 class-attribute instance-attribute

radial thickness of IFE shield (m)

shdzl = 5.0 class-attribute instance-attribute

vertical thickness of IFE shield below chamber (m)

shdzu = 5.0 class-attribute instance-attribute

vertical thickness of IFE shield above chamber (m)

shmatf = field(default_factory=(lambda: np.reshape([0.05, 0.05, 0.05, 0.19, 0.19, 0.19, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.665, 0.665, 0.665, 0.095, 0.095, 0.095, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], (3, MAXMAT + 1)))) class-attribute instance-attribute

IFE shield material fractions

shmatm = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE shield material masses (kg)

shmatv = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE shield material volumes (kg)

shvol = field(default_factory=(lambda: np.zeros(3))) class-attribute instance-attribute

IFE shield volume (m3)

sombdr = 2.7 class-attribute instance-attribute

radius of cylindrical blanket section below chamber (ifetyp=2)

somtdr = 2.7 class-attribute instance-attribute

radius of cylindrical blanket section above chamber (ifetyp=2)

taufall = 0.0 class-attribute instance-attribute

Lithium Fall Time (s)

tdspmw = 0.01 class-attribute instance-attribute

IFE target delivery system power (MW)

tfacmw = 0.0 class-attribute instance-attribute

IFE target factory power (MW)

tgain = 85.0 class-attribute instance-attribute

IFE target gain (if ifedrv = 0) (iteration variable 83)

uccarb = 50.0 class-attribute instance-attribute

cost of carbon cloth ($/kg)

ucconc = 0.1 class-attribute instance-attribute

cost of concrete ($/kg)

ucflib = 84.0 class-attribute instance-attribute

cost of FLiBe ($/kg)

uctarg = 0.3 class-attribute instance-attribute

cost of IFE target ($/target)

v1dr = 0.0 class-attribute instance-attribute

radial thickness of IFE void between first wall and blanket (m)

v1dzl = 0.0 class-attribute instance-attribute

vertical thickness of IFE void 1 below chamber (m)

v1dzu = 0.0 class-attribute instance-attribute

vertical thickness of IFE void 1 above chamber (m)

v1matf = field(default_factory=(lambda: np.reshape([1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], (3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 1 material fractions

v1matm = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 1 material masses (kg)

v1matv = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 1 material volumes (kg)

v1vol = field(default_factory=(lambda: np.zeros(3))) class-attribute instance-attribute

IFE void 1 volume (m3)

v2dr = 2.0 class-attribute instance-attribute

radial thickness of IFE void between blanket and shield (m)

v2dzl = 7.0 class-attribute instance-attribute

vertical thickness of IFE void 2 below chamber (m)

v2dzu = 7.0 class-attribute instance-attribute

vertical thickness of IFE void 2 above chamber (m)

v2matf = field(default_factory=(lambda: np.reshape([1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], (3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 2 material fractions

v2matm = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 2 material masses (kg)

v2matv = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 2 material volumes (kg)

v2vol = field(default_factory=(lambda: np.zeros(3))) class-attribute instance-attribute

IFE void 2 volume (m3)

v3dr = 43.3 class-attribute instance-attribute

radial thickness of IFE void outside shield (m)

v3dzl = 30.0 class-attribute instance-attribute

vertical thickness of IFE void 3 below chamber (m)

v3dzu = 20.0 class-attribute instance-attribute

vertical thickness of IFE void 3 above chamber (m)

v3matf = field(default_factory=(lambda: np.reshape([1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], (3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 3 material fractions

v3matm = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 3 material masses (kg)

v3matv = field(default_factory=(lambda: np.zeros((3, MAXMAT + 1)))) class-attribute instance-attribute

IFE void 3 material volumes (kg)

v3vol = field(default_factory=(lambda: np.zeros(3))) class-attribute instance-attribute

IFE void 3 volume (m3)

zl1 = 0.0 class-attribute instance-attribute

IFE vertical build below centre (m)

zl2 = 0.0 class-attribute instance-attribute

IFE vertical build below centre (m)

zl3 = 0.0 class-attribute instance-attribute

IFE vertical build below centre (m)

zl4 = 0.0 class-attribute instance-attribute

IFE vertical build below centre (m)

zl5 = 0.0 class-attribute instance-attribute

IFE vertical build below centre (m)

zl6 = 0.0 class-attribute instance-attribute

IFE vertical build below centre (m)

zl7 = 0.0 class-attribute instance-attribute

IFE vertical build below centre (m)

zu1 = 0.0 class-attribute instance-attribute

IFE vertical build above centre (m)

zu2 = 0.0 class-attribute instance-attribute

IFE vertical build above centre (m)

zu3 = 0.0 class-attribute instance-attribute

IFE vertical build above centre (m)

zu4 = 0.0 class-attribute instance-attribute

IFE vertical build above centre (m)

zu5 = 0.0 class-attribute instance-attribute

IFE vertical build above centre (m)

zu6 = 0.0 class-attribute instance-attribute

IFE vertical build above centre (m)

zu7 = 0.0 class-attribute instance-attribute

IFE vertical build above centre (m)