From 96f63b4517c4b930522536bdff99f6dda41d69fa Mon Sep 17 00:00:00 2001 From: ym1906 Date: Thu, 8 Oct 2026 09:20:21 +0100 Subject: [PATCH 01/13] Remove duplicate impurity electron fraction array --- process/models/physics/impurity_radiation.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/process/models/physics/impurity_radiation.py b/process/models/physics/impurity_radiation.py index b89e0a746d..fb1391fd66 100644 --- a/process/models/physics/impurity_radiation.py +++ b/process/models/physics/impurity_radiation.py @@ -343,7 +343,7 @@ def init_imp_element( data.impurity_radiation.impurity_arr_label[n_species_index - 1] = name_label data.impurity_radiation.impurity_arr_z[n_species_index - 1] = z data.impurity_radiation.m_impurity_amu_array[n_species_index - 1] = m_species_amu - data.impurity_radiation.f_nd_impurity_electron_array[n_species_index - 1] = ( + data.impurity_radiation.f_nd_impurity_electrons[n_species_index - 1] = ( f_nd_species_electron ) data.impurity_radiation.impurity_arr_len_tab[n_species_index - 1] = len_tab @@ -600,7 +600,7 @@ def calculate_impurity_radiation_power_density( # W/m³ = nᵢ * nₑ * L(Z, Tₑ) # nᵢ = f_nd_species_electron * nₑ return ( - data.impurity_radiation.f_nd_impurity_electron_array[imp_element_index] + data.impurity_radiation.f_nd_impurity_electrons[imp_element_index] * nd_electron_profile * nd_electron_profile * power_loss_function @@ -659,7 +659,7 @@ def __init__(self, plasma_profile: PlasmaProfile, data_structure: DataStructure) self.data = data_structure self.plasma_profile = plasma_profile self.imp = np.nonzero( - self.data.impurity_radiation.f_nd_impurity_electron_array > 1.0e-30 + self.data.impurity_radiation.f_nd_impurity_electrons > 1.0e-30 )[0] self.pden_impurity_radiation_profile = np.zeros( From b5bbf95d87811edde386a61d3df957e71e424e70 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Thu, 8 Oct 2026 09:20:33 +0100 Subject: [PATCH 02/13] Remove duplicate impurity electron fraction array --- process/data_structure/impurity_radiation_variables.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/process/data_structure/impurity_radiation_variables.py b/process/data_structure/impurity_radiation_variables.py index d1992a0145..828d830948 100644 --- a/process/data_structure/impurity_radiation_variables.py +++ b/process/data_structure/impurity_radiation_variables.py @@ -116,11 +116,6 @@ class ImpurityRadiationData: ) """2D array of impurity atomic masses in Atomic Mass Units (amu)""" - f_nd_impurity_electron_array: list[float] = field( - default_factory=lambda: np.zeros(N_IMPURITIES) - ) - """2D array of impurity relative densities (n_imp/n_e)""" - impurity_arr_len_tab: list[int] = field( default_factory=lambda: np.full(N_IMPURITIES, 0) ) From cd8f6ea68fa06d69983af40c68c30e64eb9b016e Mon Sep 17 00:00:00 2001 From: ym1906 Date: Thu, 8 Oct 2026 09:21:01 +0100 Subject: [PATCH 03/13] Remove duplicate impurity electron fraction array read-in --- process/core/scan.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/process/core/scan.py b/process/core/scan.py index 436416368c..99dba07e61 100644 --- a/process/core/scan.py +++ b/process/core/scan.py @@ -105,8 +105,6 @@ def set(self, data: DataStructure, sweep_val: float): if "__" in self.name: name, index = self.name.split("__") getattr(var_area, name)[int(index) - 1] = sweep_val - if name == "f_nd_impurity_electrons": - var_area.f_nd_impurity_electron_array[int(index - 1)] = sweep_val else: setattr(var_area, self.name, sweep_val) name = self.name From 8737a0512fb7167a5b8ad50b27082290de5689a9 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Thu, 8 Oct 2026 09:21:59 +0100 Subject: [PATCH 04/13] Use default impurity electron array --- examples/single_model_evaluation.ex.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/single_model_evaluation.ex.py b/examples/single_model_evaluation.ex.py index 18fa0506a1..c873a99d28 100644 --- a/examples/single_model_evaluation.ex.py +++ b/examples/single_model_evaluation.ex.py @@ -58,8 +58,7 @@ def print_values(): """Function to print values of some variables""" print( - "W frac = " - f"{single_run.data.impurity_radiation.f_nd_impurity_electron_array[13]:.3e}" + f"W frac = {single_run.data.impurity_radiation.f_nd_impurity_electrons[13]:.3e}" ) print(f"p_plasma_rad_mw = {single_run.data.physics.p_plasma_rad_mw:.3e}") print( @@ -74,7 +73,7 @@ def print_values(): # the divertor power. # %% -single_run.data.impurity_radiation.f_nd_impurity_electron_array[13] = 5.0e-5 +single_run.data.impurity_radiation.f_nd_impurity_electrons[13] = 5.0e-5 single_run.models.physics.run() print_values() @@ -101,7 +100,7 @@ def run_impurities(w_imp_fracs): # Loop over W impurity values, evaluate model and store responses at each point for i, imp_frac in enumerate(w_imp_fracs): # Set W impurity fraction, then run physics model - single_run.data.impurity_radiation.f_nd_impurity_electron_array[13] = imp_frac + single_run.data.impurity_radiation.f_nd_impurity_electrons[13] = imp_frac single_run.models.physics.run() # Evaluate constraint equation 15 (L-H threshold constraint) From 4a90d88dc6454374760ed4602b82aaa9394245d1 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Thu, 8 Oct 2026 09:22:14 +0100 Subject: [PATCH 05/13] Remove duplicate impurity electron fraction array --- process/core/init.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/process/core/init.py b/process/core/init.py index 4b5b537029..16165d9ac6 100644 --- a/process/core/init.py +++ b/process/core/init.py @@ -23,7 +23,6 @@ InboardBlanketConfiguration, TFCSRadialConfiguration, ) -from process.data_structure.impurity_radiation_variables import N_IMPURITIES from process.data_structure.numerics import FiguresOfMerit, PROCESSRunMode from process.data_structure.pfcoil_variables import PFConductorModel from process.data_structure.physics_variables import ( @@ -409,12 +408,6 @@ def check_process(inputs, data): # noqa: ARG001 " or set to the default value 0.1D0." ) - # Impurity fractions - for imp in range(N_IMPURITIES): - data.impurity_radiation.f_nd_impurity_electron_array[imp] = ( - data.impurity_radiation.f_nd_impurity_electrons[imp] - ) - # Stop the run if j_tf_coil_full_area is used as an optimisation variable # As the current density is now calculated from b_plasma_toroidal_on_axis # without constraint 10 From fc18f0e38ea3cc01ed6776e1d7305b70e3b8d1d6 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Thu, 8 Oct 2026 09:22:45 +0100 Subject: [PATCH 06/13] Use default impurity electron array --- process/core/solver/iteration_variables.py | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/process/core/solver/iteration_variables.py b/process/core/solver/iteration_variables.py index 5b18d680a6..09a8a7fb59 100644 --- a/process/core/solver/iteration_variables.py +++ b/process/core/solver/iteration_variables.py @@ -108,7 +108,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=2, ), 126: IterationVariable( @@ -116,7 +116,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=3, ), 127: IterationVariable( @@ -124,7 +124,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=4, ), 128: IterationVariable( @@ -132,7 +132,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=5, ), 129: IterationVariable( @@ -140,7 +140,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=6, ), 130: IterationVariable( @@ -148,7 +148,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=7, ), 131: IterationVariable( @@ -156,7 +156,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=8, ), 132: IterationVariable( @@ -164,7 +164,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=9, ), 133: IterationVariable( @@ -172,7 +172,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=10, ), 134: IterationVariable( @@ -180,7 +180,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=11, ), 135: IterationVariable( @@ -188,7 +188,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=12, ), 136: IterationVariable( @@ -196,7 +196,7 @@ class IterationVariable: "impurity_radiation", 1e-8, 0.01, - target_name="f_nd_impurity_electron_array", + target_name="f_nd_impurity_electrons", array_index=13, ), 138: IterationVariable( From 87d5aa1a18e5d8b6b503277ff2a172d42a250949 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Thu, 8 Oct 2026 09:23:01 +0100 Subject: [PATCH 07/13] Remove duplicate impurity electron fraction array --- process/models/physics/physics.py | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/process/models/physics/physics.py b/process/models/physics/physics.py index 454a5824d1..ee6c868b32 100644 --- a/process/models/physics/physics.py +++ b/process/models/physics/physics.py @@ -1134,7 +1134,7 @@ def run(self): " is at least notable" ) - impurity_frac = self.data.impurity_radiation.f_nd_impurity_electron_array[ + impurity_frac = self.data.impurity_radiation.f_nd_impurity_electrons[ self.data.reinke.impvardiv - 1 ] po.write( @@ -1263,7 +1263,7 @@ def plasma_composition(self): np.array([self.data.physics.temp_plasma_electron_vol_avg_kev]), self.data, ).squeeze() * ( - self.data.impurity_radiation.f_nd_impurity_electron_array[imp] + self.data.impurity_radiation.f_nd_impurity_electrons[imp] * self.data.physics.nd_plasma_electrons_vol_avg ) @@ -1300,7 +1300,7 @@ def plasma_composition(self): # Set hydrogen and helium relative impurity densities for # radiation calculations - self.data.impurity_radiation.f_nd_impurity_electron_array[ + self.data.impurity_radiation.f_nd_impurity_electrons[ impurity_radiation.element2index("H_", self.data) ] = ( self.data.physics.nd_plasma_protons_vol_avg @@ -1312,7 +1312,7 @@ def plasma_composition(self): + self.data.physics.nd_beam_ions ) / self.data.physics.nd_plasma_electrons_vol_avg - self.data.impurity_radiation.f_nd_impurity_electron_array[ + self.data.impurity_radiation.f_nd_impurity_electrons[ impurity_radiation.element2index("He", self.data) ] = ( self.data.physics.f_plasma_fuel_helium3 @@ -1328,7 +1328,7 @@ def plasma_composition(self): for imp in range(N_IMPURITIES): if self.data.impurity_radiation.impurity_arr_z[imp] > 2: self.data.physics.nd_plasma_impurities_vol_avg += ( - self.data.impurity_radiation.f_nd_impurity_electron_array[imp] + self.data.impurity_radiation.f_nd_impurity_electrons[imp] * self.data.physics.nd_plasma_electrons_vol_avg ) @@ -1348,20 +1348,20 @@ def plasma_composition(self): # Set some relative impurity density variables # for the benefit of other routines self.data.physics.f_nd_plasma_carbon_electron = ( - self.data.impurity_radiation.f_nd_impurity_electron_array[ + self.data.impurity_radiation.f_nd_impurity_electrons[ impurity_radiation.element2index("C_", self.data) ] ) self.data.physics.f_nd_plasma_oxygen_electron = ( - self.data.impurity_radiation.f_nd_impurity_electron_array[ + self.data.impurity_radiation.f_nd_impurity_electrons[ impurity_radiation.element2index("O_", self.data) ] ) self.data.physics.f_nd_plasma_iron_argon_electron = ( - self.data.impurity_radiation.f_nd_impurity_electron_array[ + self.data.impurity_radiation.f_nd_impurity_electrons[ impurity_radiation.element2index("Fe", self.data) ] - + self.data.impurity_radiation.f_nd_impurity_electron_array[ + + self.data.impurity_radiation.f_nd_impurity_electrons[ impurity_radiation.element2index("Ar", self.data) ] ) @@ -1374,7 +1374,7 @@ def plasma_composition(self): self.data.physics.n_charge_plasma_effective_vol_avg = 0.0 for imp in range(N_IMPURITIES): self.data.physics.n_charge_plasma_effective_vol_avg += ( - self.data.impurity_radiation.f_nd_impurity_electron_array[imp] + self.data.impurity_radiation.f_nd_impurity_electrons[imp] * impurity_radiation.calculate_average_charge_at_temp( imp, np.array([self.data.physics.temp_plasma_electron_vol_avg_kev]), @@ -1444,7 +1444,7 @@ def plasma_composition(self): if self.data.impurity_radiation.impurity_arr_z[imp] > 2: self.data.physics.m_ions_total_amu += ( self.data.physics.nd_plasma_electrons_vol_avg - * self.data.impurity_radiation.f_nd_impurity_electron_array[imp] + * self.data.impurity_radiation.f_nd_impurity_electrons[imp] * self.data.impurity_radiation.m_impurity_amu_array[imp] ) @@ -1493,7 +1493,7 @@ def plasma_composition(self): for imp in range(N_IMPURITIES): if self.data.impurity_radiation.impurity_arr_z[imp] > 2: self.data.physics.n_charge_plasma_effective_mass_weighted_vol_avg += ( - self.data.impurity_radiation.f_nd_impurity_electron_array[imp] + self.data.impurity_radiation.f_nd_impurity_electrons[imp] * impurity_radiation.calculate_average_charge_at_temp( imp, np.array([self.data.physics.temp_plasma_electron_vol_avg_kev]), @@ -1760,7 +1760,7 @@ def calculate_effective_charge_ionisation_profiles(self): zeff_profile[i] = 0.0 for imp in range(N_IMPURITIES): zeff_profile[i] += ( - self.data.impurity_radiation.f_nd_impurity_electron_array[imp] + self.data.impurity_radiation.f_nd_impurity_electrons[imp] * impurity_radiation.calculate_average_charge_at_temp( imp, np.array([self.plasma_profile.teprofile.profile_y[i]]), @@ -3154,11 +3154,6 @@ def output_temperature_density_profile_info(self) -> None: po.oblnkl(self.outfile) for imp in range(N_IMPURITIES): - # MDK Update f_nd_impurity_electrons, as this will make the ITV output - # work correctly. - self.data.impurity_radiation.f_nd_impurity_electrons[imp] = ( - self.data.impurity_radiation.f_nd_impurity_electron_array[imp] - ) str1 = ( self.data.impurity_radiation .impurity_arr_label[imp] From aa53314881cfb36c2edde9198b330aaaa4c10123 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Thu, 8 Oct 2026 09:23:06 +0100 Subject: [PATCH 08/13] Use default impurity electron array --- tests/unit/models/physics/test_physics.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/unit/models/physics/test_physics.py b/tests/unit/models/physics/test_physics.py index ecb59f8792..30e4a0cf29 100644 --- a/tests/unit/models/physics/test_physics.py +++ b/tests/unit/models/physics/test_physics.py @@ -1233,7 +1233,7 @@ def test_conhas(physics): class PlasmaCompositionParam(NamedTuple): f_beam_tritium: Any = None - f_nd_impurity_electron_array: Any = None + f_nd_impurity_electrons: Any = None impurity_arr_z: Any = None @@ -1337,7 +1337,7 @@ class PlasmaCompositionParam(NamedTuple): [ PlasmaCompositionParam( f_beam_tritium=9.9999999999999995e-07, - f_nd_impurity_electron_array=np.array([ + f_nd_impurity_electrons=np.array([ 0.90000000000000002, 0.10000000000000001, 0, @@ -1449,7 +1449,7 @@ class PlasmaCompositionParam(NamedTuple): ), PlasmaCompositionParam( f_beam_tritium=9.9999999999999995e-07, - f_nd_impurity_electron_array=np.array([ + f_nd_impurity_electrons=np.array([ 0.78128535, 0.10000000000000001, 0, @@ -1576,7 +1576,7 @@ def test_plasma_composition(plasmacompositionparam, monkeypatch, physics): plasmacompositionparam.f_beam_tritium, ) for field in [ - "f_nd_impurity_electron_array", + "f_nd_impurity_electrons", "impurity_arr_z", "m_impurity_amu_array", ]: @@ -1625,7 +1625,7 @@ def test_plasma_composition(plasmacompositionparam, monkeypatch, physics): physics.plasma_composition() - assert physics.data.impurity_radiation.f_nd_impurity_electron_array == pytest.approx( + assert physics.data.impurity_radiation.f_nd_impurity_electrons == pytest.approx( plasmacompositionparam.expected_impurity_arr_frac ) From 909e84847fd5119db33a23eaa24348c066076d82 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Fri, 23 Oct 2026 15:24:54 +0100 Subject: [PATCH 09/13] Use imp label as the sole impurity label array --- process/models/physics/impurity_radiation.py | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/process/models/physics/impurity_radiation.py b/process/models/physics/impurity_radiation.py index fb1391fd66..9d2b3b45bf 100644 --- a/process/models/physics/impurity_radiation.py +++ b/process/models/physics/impurity_radiation.py @@ -272,7 +272,7 @@ def read_impurity_file(impurity_file: Path): if clean_line[0:3].upper() in {"C ", "C ", "C", "C--"}: continue - if re.fullmatch(r"[0-9\.e+\- ]+", clean_line) is not None: + if re.fullmatch(r"[0-9\\.e+\- ]+", clean_line) is not None: header = file_contents[-1] new_data = clean_line.split(" ") @@ -333,14 +333,13 @@ def init_imp_element( if error == 1: return - if n_species_index > len(data.impurity_radiation.impurity_arr_label): + if n_species_index > len(data.impurity_radiation.imp_label): raise ProcessValueError( "Illegal impurity number", number=n_species_index, - max=len(data.impurity_radiation.impurity_arr_label), + max=len(data.impurity_radiation.imp_label), ) - data.impurity_radiation.impurity_arr_label[n_species_index - 1] = name_label data.impurity_radiation.impurity_arr_z[n_species_index - 1] = z data.impurity_radiation.m_impurity_amu_array[n_species_index - 1] = m_species_amu data.impurity_radiation.f_nd_impurity_electrons[n_species_index - 1] = ( @@ -624,20 +623,13 @@ def element2index(element: str, data: DataStructure) -> int: Raises ------ ProcessValueError - If the element is not found in impurity_arr_label + If the element is not found in imp_label """ try: - return ( - data.impurity_radiation.impurity_arr_label - .astype(str) - .tolist() - .index(element) - ) + return data.impurity_radiation.imp_label.astype(str).tolist().index(element) except ValueError as e: - raise ProcessValueError( - f"Element {element} is not found in impurity_arr_label" - ) from e + raise ProcessValueError(f"Element {element} is not found in imp_label") from e class ImpurityRadiation: From 5d3de4bd5d5bf0241e2230c45f7ca12d812790f0 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Fri, 23 Oct 2026 15:26:48 +0100 Subject: [PATCH 10/13] clean up imp array --- process/models/physics/physics.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/process/models/physics/physics.py b/process/models/physics/physics.py index ee6c868b32..3e2f6ce6cd 100644 --- a/process/models/physics/physics.py +++ b/process/models/physics/physics.py @@ -3155,10 +3155,7 @@ def output_temperature_density_profile_info(self) -> None: for imp in range(N_IMPURITIES): str1 = ( - self.data.impurity_radiation - .impurity_arr_label[imp] - .item() - .replace("_", "") + self.data.impurity_radiation.imp_label[imp].item().replace("_", "") + " concentration" ) str2 = f"(f_nd_impurity_electrons({imp + 1:02}))" From a6b925b742b2953dbfcf9071502b7bf5682e775a Mon Sep 17 00:00:00 2001 From: ym1906 Date: Fri, 23 Oct 2026 15:31:06 +0100 Subject: [PATCH 11/13] Tidy up label clean up --- process/data_structure/impurity_radiation_variables.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/process/data_structure/impurity_radiation_variables.py b/process/data_structure/impurity_radiation_variables.py index 828d830948..674b684092 100644 --- a/process/data_structure/impurity_radiation_variables.py +++ b/process/data_structure/impurity_radiation_variables.py @@ -104,11 +104,6 @@ class ImpurityRadiationData: ) """Full ion charge of impurity species""" - impurity_arr_label: list[str] = field( - default_factory=lambda: np.full(N_IMPURITIES, " ") - ) - """Array of impurity labels for internal use""" - impurity_arr_z: list[float] = field(default_factory=lambda: np.zeros(N_IMPURITIES)) m_impurity_amu_array: list[float] = field( From e6b5f2214dc1e17042372ff331f99427f9330cb4 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Fri, 23 Oct 2026 15:45:05 +0100 Subject: [PATCH 12/13] Tidy up rebase --- process/models/physics/impurity_radiation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/process/models/physics/impurity_radiation.py b/process/models/physics/impurity_radiation.py index 9d2b3b45bf..97ab8aa18e 100644 --- a/process/models/physics/impurity_radiation.py +++ b/process/models/physics/impurity_radiation.py @@ -704,7 +704,7 @@ def calculate_species_radiation_powers( p_plasma_rad_impurities_mw = 0.0 for index, label in enumerate(self.data.impurity_radiation.imp_label): pden_vol_avg_mw = 0.0 - if self.data.impurity_radiation.f_nd_impurity_electron_array[index] > 1e-30: + if self.data.impurity_radiation.f_nd_impurity_electrons[index] > 1e-30: pden_profile = calculate_impurity_radiation_power_density( imp_element_index=index, nd_electron_profile=self.plasma_profile.neprofile.profile_y, From f443f8c12e3bdd5867a1d39c0c1146b9697c22ea Mon Sep 17 00:00:00 2001 From: ym1906 Date: Fri, 23 Oct 2026 17:10:23 +0100 Subject: [PATCH 13/13] preserve defaul impurity concentrations during radiation initialisation, remove defunct variables --- process/models/physics/impurity_radiation.py | 30 ++------------------ 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/process/models/physics/impurity_radiation.py b/process/models/physics/impurity_radiation.py index 97ab8aa18e..767a3f57a7 100644 --- a/process/models/physics/impurity_radiation.py +++ b/process/models/physics/impurity_radiation.py @@ -54,30 +54,22 @@ def initialise_imprad(data: DataStructure): """ errorflag = 0 - f_nd_species_electron = 1.0e0 - # Hydrogen - init_imp_element( n_species_index=1, name_label=data.impurity_radiation.imp_label[0], z=1, m_species_amu=constants.M_PROTIUM_AMU, # 1.00782503223 1H - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, ) - - f_nd_species_electron = 0.0e0 - # Helium init_imp_element( n_species_index=2, name_label=data.impurity_radiation.imp_label[1], z=2, m_species_amu=constants.M_HELIUM_AMU, # 4.002602 (3He,4He) Average mass - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -89,7 +81,6 @@ def initialise_imprad(data: DataStructure): name_label=data.impurity_radiation.imp_label[2], z=4, m_species_amu=constants.M_BERYLLIUM_AMU, # 9.0121831 9Be - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -101,7 +92,6 @@ def initialise_imprad(data: DataStructure): name_label=data.impurity_radiation.imp_label[3], z=6, m_species_amu=constants.M_CARBON_AMU, # 12.0096, (12C,13C,14C) Average mass - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -113,7 +103,6 @@ def initialise_imprad(data: DataStructure): name_label=data.impurity_radiation.imp_label[4], z=7, m_species_amu=constants.M_NITROGEN_AMU, # 14.00643, (14N,15N) Average mass - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -125,7 +114,6 @@ def initialise_imprad(data: DataStructure): name_label=data.impurity_radiation.imp_label[5], z=8, m_species_amu=constants.M_OXYGEN_AMU, # 15.99903, (16O,17O,18O) Average mass - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -137,7 +125,6 @@ def initialise_imprad(data: DataStructure): name_label=data.impurity_radiation.imp_label[6], z=10, m_species_amu=constants.M_NEON_AMU, # 20.1797 (20Ne,21Ne,22Ne) Average mass - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -149,7 +136,6 @@ def initialise_imprad(data: DataStructure): name_label=data.impurity_radiation.imp_label[7], z=14, m_species_amu=constants.M_SILICON_AMU, # 28.084 (28Si,29Si,30Si) Average mass - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -161,7 +147,6 @@ def initialise_imprad(data: DataStructure): name_label=data.impurity_radiation.imp_label[8], z=18, m_species_amu=constants.M_ARGON_AMU, # 39.948 (40Ar,36Ar,38Ar) Average mass - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -173,7 +158,6 @@ def initialise_imprad(data: DataStructure): name_label=data.impurity_radiation.imp_label[9], z=26, m_species_amu=constants.M_IRON_AMU, # 55.845 (56Fe,54Fe,57Fe,58Fe) Average mass - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -186,7 +170,6 @@ def initialise_imprad(data: DataStructure): z=28, # 58.6934 (58Ni,60Ni,61Ni,62Ni,64Ni) Average mass m_species_amu=constants.M_NICKEL_AMU, - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -199,7 +182,6 @@ def initialise_imprad(data: DataStructure): z=36, # 83.798 (84Kr,86Kr,82Kr,80Kr,78Kr) Average mass m_species_amu=constants.M_KRYPTON_AMU, - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -212,7 +194,6 @@ def initialise_imprad(data: DataStructure): z=54, # 131.293 (132Xe,129Xe,131Xe,134Xe,136Xe) Average mass m_species_amu=constants.M_XENON_AMU, - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -225,7 +206,6 @@ def initialise_imprad(data: DataStructure): z=74, # 183.84 (184W,186W,182W,183W,180W) Average mass m_species_amu=constants.M_TUNGSTEN_AMU, - f_nd_species_electron=f_nd_species_electron, len_tab=N_IMPURITIY_LOSS_FUNCTION_POINTS, error=errorflag, data=data, @@ -272,7 +252,7 @@ def read_impurity_file(impurity_file: Path): if clean_line[0:3].upper() in {"C ", "C ", "C", "C--"}: continue - if re.fullmatch(r"[0-9\\.e+\- ]+", clean_line) is not None: + if re.fullmatch(r"[0-9\.e+\- ]+", clean_line) is not None: header = file_contents[-1] new_data = clean_line.split(" ") @@ -291,7 +271,6 @@ def init_imp_element( name_label: str, z: int, m_species_amu: float, - f_nd_species_electron: float, len_tab: int, error: int, data: DataStructure, @@ -312,8 +291,6 @@ def init_imp_element( Species charge number m_species_amu : float Species atomic mass [amu] - f_nd_species_electron : float - Number density / electron density len_tab : int Length of temperature and Lz tables error : int @@ -342,9 +319,6 @@ def init_imp_element( data.impurity_radiation.impurity_arr_z[n_species_index - 1] = z data.impurity_radiation.m_impurity_amu_array[n_species_index - 1] = m_species_amu - data.impurity_radiation.f_nd_impurity_electrons[n_species_index - 1] = ( - f_nd_species_electron - ) data.impurity_radiation.impurity_arr_len_tab[n_species_index - 1] = len_tab if len_tab > N_IMPURITIY_LOSS_FUNCTION_POINTS: @@ -597,7 +571,7 @@ def calculate_impurity_radiation_power_density( ) # W/m³ = nᵢ * nₑ * L(Z, Tₑ) - # nᵢ = f_nd_species_electron * nₑ + # nᵢ = fᵢ * nₑ return ( data.impurity_radiation.f_nd_impurity_electrons[imp_element_index] * nd_electron_profile