def setUp(self): # makes the 3d geometry self.my_reactor = paramak.BallReactor( inner_bore_radial_thickness=1, inboard_tf_leg_radial_thickness=30, center_column_shield_radial_thickness=60, divertor_radial_thickness=50, inner_plasma_gap_radial_thickness=30, plasma_radial_thickness=300, outer_plasma_gap_radial_thickness=30, firstwall_radial_thickness=3, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=3, elongation=2.75, triangularity=0.5, rotation_angle=360, ) # makes a homogenised material for the blanket from lithium lead and # eurofer self.blanket_material = nmm.MultiMaterial( fracs=[0.8, 0.2], materials=[ nmm.Material('SiC'), nmm.Material('eurofer') ]) self.source = openmc.Source() # sets the location of the source to x=0 y=0 z=0 self.source.space = openmc.stats.Point((0, 0, 0)) # sets the direction to isotropic self.source.angle = openmc.stats.Isotropic() # sets the energy distribution to 100% 14MeV neutrons self.source.energy = openmc.stats.Discrete([14e6], [1])
def make_cad_model_with_paramak(): """ Makes a reactor object from using theparametric BallReactor. Exports the neutronics description and stp files for the reactor """ my_reactor = paramak.BallReactor(inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=200, center_column_shield_radial_thickness=50, divertor_radial_thickness=50, inner_plasma_gap_radial_thickness=50, plasma_radial_thickness=100, outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=5, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=10, elongation=2, triangularity=0.55, number_of_tf_coils=16, rotation_angle=360) my_reactor.export_stp() my_reactor.export_neutronics_description() return my_reactor
def main(): my_reactor = paramak.BallReactor( inner_bore_radial_thickness=10, inboard_tf_leg_radial_thickness=30, center_column_shield_radial_thickness=60, divertor_radial_thickness=150, inner_plasma_gap_radial_thickness=30, plasma_radial_thickness=300, outer_plasma_gap_radial_thickness=30, firstwall_radial_thickness=30, blanket_radial_thickness=50, blanket_rear_wall_radial_thickness=30, elongation=2, triangularity=0.55, number_of_tf_coils=16, rotation_angle=180, pf_coil_radial_thicknesses=[50, 50, 50, 50], pf_coil_vertical_thicknesses=[50, 50, 50, 50], pf_coil_to_rear_blanket_radial_gap=50, pf_coil_to_tf_coil_radial_gap=50, outboard_tf_coil_radial_thickness=100, outboard_tf_coil_poloidal_thickness=50) my_reactor.export_stp() my_reactor.export_neutronics_description()
def make_neutronics_geometry( inner_bore_radial_thickness, inboard_tf_leg_radial_thickness, center_column_shield_radial_thickness, divertor_radial_thickness, inner_plasma_gap_radial_thickness, plasma_radial_thickness, outer_plasma_gap_radial_thickness, firstwall_radial_thickness, blanket_radial_thickness, blanket_rear_wall_radial_thickness, elongation, triangularity, number_of_tf_coils, rotation_angle): """ Makes a reactor object from using theparametric BallReactor. Exports the neutronics description and stp files for the reactor """ input_parameters = locals() my_reactor = paramak.BallReactor( inner_bore_radial_thickness=inner_bore_radial_thickness, inboard_tf_leg_radial_thickness=inboard_tf_leg_radial_thickness, center_column_shield_radial_thickness= center_column_shield_radial_thickness, divertor_radial_thickness=divertor_radial_thickness, inner_plasma_gap_radial_thickness=inner_plasma_gap_radial_thickness, plasma_radial_thickness=plasma_radial_thickness, outer_plasma_gap_radial_thickness=outer_plasma_gap_radial_thickness, firstwall_radial_thickness=firstwall_radial_thickness, blanket_radial_thickness=blanket_radial_thickness, blanket_rear_wall_radial_thickness=blanket_rear_wall_radial_thickness, elongation=elongation, triangularity=triangularity, number_of_tf_coils=number_of_tf_coils, rotation_angle=rotation_angle) my_reactor.export_stp() my_reactor.export_html('reactor.html') my_reactor.export_neutronics_description() """ Uses Trelis together with a python script to reading the stp files assign material tags to the volumes and create a watertight h5m DAGMC file which can be used as neutronics geometry. """ os.system('trelis -batch -nographics make_faceteted_neutronics_model.py') # os.system('trelis make_faceteted_neutronics_model.py') os.system('make_watertight dagmc_notwatertight.h5m -o dagmc.h5m') # returns all the inputs and some extra reactor attributes, merged into a single dictionary return { **input_parameters, **{ 'major_radius': my_reactor.major_radius, 'minor_radius': my_reactor.minor_radius } }
def setUp(self): self.test_reactor = paramak.BallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=200, center_column_shield_radial_thickness=50, divertor_radial_thickness=100, inner_plasma_gap_radial_thickness=150, plasma_radial_thickness=100, outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=50, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=10, elongation=2, triangularity=0.55, number_of_tf_coils=16, rotation_angle=180, )
def make_random_reactors(number_of_images=11): """Makes a series of random sized reactors and exports an svg image for each one. Combines the svg images into a gif animation.""" # makes a series of reactor models for i in range(number_of_images): my_reactor = paramak.BallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=np.random.uniform(20, 50), center_column_shield_radial_thickness=np.random.uniform(20, 60), divertor_radial_thickness=50, inner_plasma_gap_radial_thickness=50, plasma_radial_thickness=np.random.uniform(20, 200), outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=5, blanket_radial_thickness=np.random.uniform(10, 200), blanket_rear_wall_radial_thickness=10, elongation=np.random.uniform(1.3, 1.7), triangularity=np.random.uniform(0.3, 0.55), number_of_tf_coils=16, rotation_angle=180, pf_coil_radial_thicknesses=[50, 50, 50, 50], pf_coil_vertical_thicknesses=[30, 30, 30, 30], pf_coil_to_rear_blanket_radial_gap=20, pf_coil_to_tf_coil_radial_gap=50, outboard_tf_coil_radial_thickness=100, outboard_tf_coil_poloidal_thickness=50, ) my_reactor.export_svg( filename="random_" + str(i).zfill(4) + ".svg", showHidden=False ) print("made", str(i + 1), "models out of", str(number_of_images)) subprocess.check_call( ["convert", "-delay", "40", "random_*.svg", "randoms.gif"]) print("animation file made as saved as randoms.gif")
def test_BallReactor_svg_creation(self): os.system("rm test_ballreactor_image.svg") my_reactor = paramak.BallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=200, center_column_shield_radial_thickness=50, divertor_radial_thickness=172.5, inner_plasma_gap_radial_thickness=150, plasma_radial_thickness=100, outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=50, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=10, elongation=2, triangularity=0.55, number_of_tf_coils=16, ) my_reactor.export_svg('test_ballreactor_image.svg') assert Path("test_ballreactor_image.svg").exists() is True os.system("rm test_ballreactor_image.svg")
def test_BallReactor_creation_without_extra_blanket_needed(self): """creates blanket from parametric shape and checks a solid is created""" test_reactor = paramak.BallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=200, center_column_shield_radial_thickness=50, divertor_radial_thickness=172.5, inner_plasma_gap_radial_thickness=150, plasma_radial_thickness=100, outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=50, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=10, elongation=2, triangularity=0.55, number_of_tf_coils=16, ) test_reactor.export_stp() assert len(test_reactor.shapes_and_components) == 8
def test_BallReactor_with_pf_coils(self): test_reactor = paramak.BallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=50, center_column_shield_radial_thickness=50, divertor_radial_thickness=100, inner_plasma_gap_radial_thickness=50, plasma_radial_thickness=200, outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=50, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=50, elongation=2, triangularity=0.55, number_of_tf_coils=16, rotation_angle=180, pf_coil_radial_thicknesses=[50, 50, 50, 50], pf_coil_vertical_thicknesses=[50, 50, 50, 50], pf_coil_to_rear_blanket_radial_gap=50, pf_coil_to_tf_coil_radial_gap=50, ) test_reactor.export_stp() assert len(test_reactor.shapes_and_components) == 12
def make_model_and_simulate(): """Makes a neutronics Reactor model and simulates the TBR with specified materials""" # based on # http://www.euro-fusionscipub.org/wp-content/uploads/WPBBCP16_15535_submitted.pdf firstwall_radial_thickness = 3.0 firstwall_armour_material = "tungsten" firstwall_coolant_material = "He" firstwall_structural_material = "eurofer" firstwall_armour_fraction = 0.106305 firstwall_coolant_fraction = 0.333507 firstwall_coolant_temperature_C = 400 firstwall_coolant_pressure_Pa = 8e6 firstwall_structural_fraction = 0.560188 firstwall_material = nmm.MultiMaterial( material_tag="firstwall_mat", materials=[ nmm.Material( material_name=firstwall_coolant_material, temperature_in_C=firstwall_coolant_temperature_C, pressure_in_Pa=firstwall_coolant_pressure_Pa, ), nmm.Material(material_name=firstwall_structural_material), nmm.Material(material_name=firstwall_armour_material), ], fracs=[ firstwall_coolant_fraction, firstwall_structural_fraction, firstwall_armour_fraction, ], percent_type="vo") # based on # https://www.sciencedirect.com/science/article/pii/S2352179118300437 blanket_rear_wall_coolant_material = "H2O" blanket_rear_wall_structural_material = "eurofer" blanket_rear_wall_coolant_fraction = 0.3 blanket_rear_wall_structural_fraction = 0.7 blanket_rear_wall_coolant_temperature_C = 200 blanket_rear_wall_coolant_pressure_Pa = 1e6 blanket_rear_wall_material = nmm.MultiMaterial( material_tag="blanket_rear_wall_mat", materials=[ nmm.Material( material_name=blanket_rear_wall_coolant_material, temperature_in_C=blanket_rear_wall_coolant_temperature_C, pressure_in_Pa=blanket_rear_wall_coolant_pressure_Pa, ), nmm.Material(material_name=blanket_rear_wall_structural_material), ], fracs=[ blanket_rear_wall_coolant_fraction, blanket_rear_wall_structural_fraction, ], percent_type="vo") # based on # https://www.sciencedirect.com/science/article/pii/S2352179118300437 blanket_lithium6_enrichment_percent = 60 blanket_breeder_material = "Li4SiO4" blanket_coolant_material = "He" blanket_multiplier_material = "Be" blanket_structural_material = "eurofer" blanket_breeder_fraction = 0.15 blanket_coolant_fraction = 0.05 blanket_multiplier_fraction = 0.6 blanket_structural_fraction = 0.2 blanket_breeder_packing_fraction = 0.64 blanket_multiplier_packing_fraction = 0.64 blanket_coolant_temperature_C = 500 blanket_coolant_pressure_Pa = 1e6 blanket_breeder_temperature_C = 600 blanket_breeder_pressure_Pa = 8e6 blanket_material = nmm.MultiMaterial( material_tag="blanket_mat", materials=[ nmm.Material( material_name=blanket_coolant_material, temperature_in_C=blanket_coolant_temperature_C, pressure_in_Pa=blanket_coolant_pressure_Pa, ), nmm.Material(material_name=blanket_structural_material), nmm.Material( material_name=blanket_multiplier_material, packing_fraction=blanket_multiplier_packing_fraction, ), nmm.Material( material_name=blanket_breeder_material, enrichment=blanket_lithium6_enrichment_percent, packing_fraction=blanket_breeder_packing_fraction, temperature_in_C=blanket_breeder_temperature_C, pressure_in_Pa=blanket_breeder_pressure_Pa, ), ], fracs=[ blanket_coolant_fraction, blanket_structural_fraction, blanket_multiplier_fraction, blanket_breeder_fraction, ], percent_type="vo") # based on # https://www.sciencedirect.com/science/article/pii/S2352179118300437 divertor_coolant_fraction = 0.57195798876 divertor_structural_fraction = 0.42804201123 divertor_coolant_material = "H2O" divertor_structural_material = "tungsten" divertor_coolant_temperature_C = 150 divertor_coolant_pressure_Pa = 5e6 divertor_material = nmm.MultiMaterial( material_tag="divertor_mat", materials=[ nmm.Material( material_name=divertor_coolant_material, temperature_in_C=divertor_coolant_temperature_C, pressure_in_Pa=divertor_coolant_pressure_Pa, ), nmm.Material(material_name=divertor_structural_material), ], fracs=[divertor_coolant_fraction, divertor_structural_fraction], percent_type="vo") # based on # https://pdfs.semanticscholar.org/95fa/4dae7d82af89adf711b97e75a241051c7129.pdf center_column_shield_coolant_fraction = 0.13 center_column_shield_structural_fraction = 0.57 center_column_shield_coolant_material = "H2O" center_column_shield_structural_material = "tungsten" center_column_shield_coolant_temperature_C = 150 center_column_shield_coolant_pressure_Pa = 5e6 center_column_shield_material = nmm.MultiMaterial( material_tag="center_column_shield_mat", materials=[ nmm.Material( material_name=center_column_shield_coolant_material, temperature_in_C=center_column_shield_coolant_temperature_C, pressure_in_Pa=center_column_shield_coolant_pressure_Pa, ), nmm.Material( material_name=center_column_shield_structural_material), ], fracs=[ center_column_shield_coolant_fraction, center_column_shield_structural_fraction, ], percent_type="vo") # based on # https://pdfs.semanticscholar.org/95fa/4dae7d82af89adf711b97e75a241051c7129.pdf inboard_tf_coils_conductor_fraction = 0.57 inboard_tf_coils_coolant_fraction = 0.05 inboard_tf_coils_structure_fraction = 0.38 inboard_tf_coils_conductor_material = "copper" inboard_tf_coils_coolant_material = "He" inboard_tf_coils_structure_material = "SS_316L_N_IG" inboard_tf_coils_coolant_temperature_C = 30 inboard_tf_coils_coolant_pressure_Pa = 8e6 inboard_tf_coils_material = nmm.MultiMaterial( material_tag="inboard_tf_coils_mat", materials=[ nmm.Material( material_name=inboard_tf_coils_coolant_material, temperature_in_C=inboard_tf_coils_coolant_temperature_C, pressure_in_Pa=inboard_tf_coils_coolant_pressure_Pa, ), nmm.Material(material_name=inboard_tf_coils_conductor_material), nmm.Material(material_name=inboard_tf_coils_structure_material), ], fracs=[ inboard_tf_coils_coolant_fraction, inboard_tf_coils_conductor_fraction, inboard_tf_coils_structure_fraction, ], percent_type="vo") # makes the 3d geometry my_reactor = paramak.BallReactor( inner_bore_radial_thickness=1, inboard_tf_leg_radial_thickness=30, center_column_shield_radial_thickness=60, divertor_radial_thickness=50, inner_plasma_gap_radial_thickness=30, plasma_radial_thickness=300, outer_plasma_gap_radial_thickness=30, firstwall_radial_thickness=firstwall_radial_thickness, # http://www.euro-fusionscipub.org/wp-content/uploads/WPBBCP16_15535_submitted.pdf blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=3, elongation=2.75, triangularity=0.5, number_of_tf_coils=16, rotation_angle=360, ) source = openmc.Source() # sets the location of the source to x=0 y=0 z=0 source.space = openmc.stats.Point((my_reactor.major_radius, 0, 0)) # sets the direction to isotropic source.angle = openmc.stats.Isotropic() # sets the energy distribution to 100% 14MeV neutrons source.energy = openmc.stats.Discrete([14e6], [1]) # makes the neutronics material neutronics_model = paramak.NeutronicsModel( geometry=my_reactor, source=source, materials={ 'inboard_tf_coils_mat': inboard_tf_coils_material, 'center_column_shield_mat': center_column_shield_material, 'divertor_mat': divertor_material, 'firstwall_mat': firstwall_material, 'blanket_mat': blanket_material, 'blanket_rear_wall_mat': blanket_rear_wall_material }, cell_tallies=['TBR'], simulation_batches=5, simulation_particles_per_batch=1e4, ) # starts the neutronics simulation neutronics_model.simulate(method='trelis') # prints the simulation results to screen print('TBR', neutronics_model.results['TBR'])
parser.add_argument("-n", "--number_of_models", type=int, default=10) args = parser.parse_args() for i in tqdm(range(args.number_of_models)): my_reactor = paramak.BallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=np.random.uniform(20, 50), center_column_shield_radial_thickness=np.random.uniform(20, 60), divertor_radial_thickness=50, inner_plasma_gap_radial_thickness=50, plasma_radial_thickness=np.random.uniform(20, 200), outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=5, blanket_radial_thickness=np.random.uniform(10, 200), blanket_rear_wall_radial_thickness=10, elongation=np.random.uniform(1.2, 1.7), triangularity=np.random.uniform(0.3, 0.55), number_of_tf_coils=16, rotation_angle=180, pf_coil_radial_thicknesses=[50, 50, 50, 50], pf_coil_vertical_thicknesses=[50, 50, 50, 50], pf_coil_to_rear_blanket_radial_gap=50, pf_coil_to_tf_coil_radial_gap=50, outboard_tf_coil_radial_thickness=100, outboard_tf_coil_poloidal_thickness=50, ) my_reactor.export_2d_image(filename="output_for_animation_2d/" + str(uuid.uuid4()) + ".png") my_reactor.export_svg(filename="output_for_animation_svg/" + str(uuid.uuid4()) + ".svg")
def make_model_and_simulate(): """Makes a neutronics Reactor model and simulates the TBR""" # makes the 3d geometry my_reactor = paramak.BallReactor( inner_bore_radial_thickness=1, inboard_tf_leg_radial_thickness=30, center_column_shield_radial_thickness=60, divertor_radial_thickness=50, inner_plasma_gap_radial_thickness=30, plasma_radial_thickness=300, outer_plasma_gap_radial_thickness=30, firstwall_radial_thickness=3, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=3, elongation=2.75, triangularity=0.5, number_of_tf_coils=16, rotation_angle=360, ) # makes a homogenised material for the blanket from lithium lead and # eurofer blanket_material = nmm.MultiMaterial(fracs=[0.8, 0.2], materials=[ nmm.Material( 'Pb842Li158', enrichment=90, temperature_in_K=500), nmm.Material('eurofer') ]) source = openmc.Source() # sets the location of the source to x=0 y=0 z=0 source.space = openmc.stats.Point((my_reactor.major_radius, 0, 0)) # sets the direction to isotropic source.angle = openmc.stats.Isotropic() # sets the energy distribution to 100% 14MeV neutrons source.energy = openmc.stats.Discrete([14e6], [1]) # makes the neutronics material neutronics_model = paramak.NeutronicsModel( geometry=my_reactor, source=source, materials={ 'inboard_tf_coils_mat': 'copper', 'center_column_shield_mat': 'WC', 'divertor_mat': 'eurofer', 'firstwall_mat': 'eurofer', 'blanket_mat': blanket_material, # use of homogenised material 'blanket_rear_wall_mat': 'eurofer' }, cell_tallies=['TBR'], simulation_batches=5, simulation_particles_per_batch=1e4, ) # starts the neutronics simulation neutronics_model.simulate(method='trelis') # prints the results to screen print('TBR', neutronics_model.results['TBR'])
def main(): all_reactors = [] my_reactor = paramak.BallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=50, center_column_shield_radial_thickness=50, divertor_radial_thickness=100, inner_plasma_gap_radial_thickness=50, plasma_radial_thickness=200, outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=50, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=50, elongation=2, triangularity=0.55, number_of_tf_coils=16, rotation_angle=180, ) my_reactor.name = "BallReactor" all_reactors.append(my_reactor) my_reactor = paramak.BallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=50, center_column_shield_radial_thickness=50, divertor_radial_thickness=100, inner_plasma_gap_radial_thickness=50, plasma_radial_thickness=200, outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=50, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=50, elongation=2, triangularity=0.55, number_of_tf_coils=16, rotation_angle=180, pf_coil_radial_thicknesses=[50, 50, 50, 50], pf_coil_vertical_thicknesses=[50, 50, 50, 50], pf_coil_to_rear_blanket_radial_gap=50, pf_coil_to_tf_coil_radial_gap=50, outboard_tf_coil_radial_thickness=100, outboard_tf_coil_poloidal_thickness=50, ) my_reactor.name = "BallReactor_with_pf_tf_coils" all_reactors.append(my_reactor) my_reactor = paramak.SingleNullBallReactor( inner_bore_radial_thickness=50, inboard_tf_leg_radial_thickness=50, center_column_shield_radial_thickness=50, divertor_radial_thickness=100, inner_plasma_gap_radial_thickness=50, plasma_radial_thickness=200, outer_plasma_gap_radial_thickness=50, firstwall_radial_thickness=50, blanket_radial_thickness=100, blanket_rear_wall_radial_thickness=50, elongation=2, triangularity=0.55, number_of_tf_coils=16, rotation_angle=180, pf_coil_radial_thicknesses=[50, 50, 50, 50], pf_coil_vertical_thicknesses=[50, 50, 50, 50], pf_coil_to_rear_blanket_radial_gap=50, pf_coil_to_tf_coil_radial_gap=50, outboard_tf_coil_radial_thickness=100, outboard_tf_coil_poloidal_thickness=50, divertor_position="lower") my_reactor.name = "SingleNullBallReactor_with_pf_tf_coils" all_reactors.append(my_reactor) my_reactor = paramak.SubmersionTokamak( inner_bore_radial_thickness=25, inboard_tf_leg_radial_thickness=50, center_column_shield_radial_thickness=50, inboard_blanket_radial_thickness=50, firstwall_radial_thickness=50, inner_plasma_gap_radial_thickness=70, plasma_radial_thickness=300, outer_plasma_gap_radial_thickness=70, outboard_blanket_radial_thickness=200, blanket_rear_wall_radial_thickness=50, divertor_radial_thickness=50, plasma_high_point=(50 + 50 + 50 + 100 + 100, 350), rotation_angle=180, support_radial_thickness=150, outboard_tf_coil_radial_thickness=50, ) my_reactor.name = "SubmersionTokamak" all_reactors.append(my_reactor) my_reactor = paramak.SubmersionTokamak( inner_bore_radial_thickness=25, inboard_tf_leg_radial_thickness=50, center_column_shield_radial_thickness=50, inboard_blanket_radial_thickness=50, firstwall_radial_thickness=50, inner_plasma_gap_radial_thickness=70, plasma_radial_thickness=300, outer_plasma_gap_radial_thickness=70, outboard_blanket_radial_thickness=200, blanket_rear_wall_radial_thickness=50, divertor_radial_thickness=50, plasma_high_point=(50 + 50 + 50 + 100 + 100, 350), rotation_angle=180, support_radial_thickness=150, outboard_tf_coil_radial_thickness=50, tf_coil_to_rear_blanket_radial_gap=50, outboard_tf_coil_poloidal_thickness=70, pf_coil_vertical_thicknesses=[50, 50, 50, 50, 50], pf_coil_radial_thicknesses=[40, 40, 40, 40, 40], pf_coil_to_tf_coil_radial_gap=50, number_of_tf_coils=16, ) my_reactor.name = "SubmersionTokamak_with_pf_tf_coils" all_reactors.append(my_reactor) my_reactor = paramak.SingleNullSubmersionTokamak( inner_bore_radial_thickness=10, inboard_tf_leg_radial_thickness=30, center_column_shield_radial_thickness=60, divertor_radial_thickness=50, inner_plasma_gap_radial_thickness=30, plasma_radial_thickness=300, outer_plasma_gap_radial_thickness=30, firstwall_radial_thickness=30, blanket_rear_wall_radial_thickness=30, number_of_tf_coils=16, rotation_angle=180, support_radial_thickness=20, inboard_blanket_radial_thickness=20, outboard_blanket_radial_thickness=20, plasma_high_point=(200, 200), divertor_position="upper", support_position="upper") my_reactor.name = "SingleNullSubmersionTokamak" all_reactors.append(my_reactor) my_reactor = paramak.SingleNullSubmersionTokamak( inner_bore_radial_thickness=10, inboard_tf_leg_radial_thickness=30, center_column_shield_radial_thickness=60, divertor_radial_thickness=50, inner_plasma_gap_radial_thickness=30, plasma_radial_thickness=300, outer_plasma_gap_radial_thickness=30, firstwall_radial_thickness=30, blanket_rear_wall_radial_thickness=30, number_of_tf_coils=16, rotation_angle=180, support_radial_thickness=20, inboard_blanket_radial_thickness=20, outboard_blanket_radial_thickness=20, plasma_high_point=(200, 200), pf_coil_radial_thicknesses=[50, 50, 50, 50], pf_coil_vertical_thicknesses=[50, 50, 50, 50], pf_coil_to_tf_coil_radial_gap=50, outboard_tf_coil_radial_thickness=100, outboard_tf_coil_poloidal_thickness=50, tf_coil_to_rear_blanket_radial_gap=20, divertor_position="upper", support_position="upper") my_reactor.name = "SingleNullSubmersionTokamak_with_pf_tf_coils" all_reactors.append(my_reactor) return all_reactors