Impedance update snippets
ind_voltage_freq = InducedVoltageFreq(...)
total_ind = TotalInducedVoltage(..., [ind_voltage_object])
for turn in range(n_turns):
my_new_real_Z, my_new_imag_Z = impedance_calc(frequency_array)
ind_voltage_freq.impedance_source_list[...].Re_Z_array_loaded = my_new_real_Z
ind_voltage_freq.impedance_source_list[...].Im_Z_array_loaded = my_new_imag_Z
ind_voltage_freq.sum_impedances(frequency_array)
total_ind.induced_voltage_sum()
ind_voltage_object = InducedVoltageFreq(...)
total_ind = TotalInducedVoltage(..., [ind_voltage_object])
for turn in range(n_turns):
my_new_impedance = impedance_calc(frequency_array)
ind_voltage_object.total_impedance[:] = \
(my_new_impedance +...) / profile.bin_size
total_ind.induced_voltage_sum()
ind_voltage_object = InducedVoltageFreq(...)
total_ind = TotalInducedVoltage(..., [ind_voltage_object])
n_points_update = np.where(frequency_array < my_freq_limit)[0][-1]
for turn in range(n_turns):
my_new_impedance = impedance_calc(frequency_array[:n_points_update])
ind_voltage_object.total_impedance[:n_points_update] = \
(my_new_impedance +...) / profile.bin_size
total_ind.induced_voltage_sum()
ind_voltage_object = InducedVoltageFreq(...)
total_ind = TotalInducedVoltage(..., [ind_voltage_object])
n_points_update = np.where(frequency_array < my_freq_limit)[0][-1]
frequency_array = frequency_array[:n_points_update]
frequency_array = worker.scatter(frequency_array)
for turn in range(n_turns):
my_new_impedance = impedance_calc(frequency_array) / profile.bin_size
my_new_impedance = worker.allgather(my_new_impedance)
ind_voltage_object.total_impedance[:n_points_update] = \
(my_new_impedance +...)
total_ind.induced_voltage_sum()
ind_voltage_object = InducedVoltageFreq(...)
total_ind = TotalInducedVoltage(..., [ind_voltage_object])
n_points_update = np.where(frequency_array < my_freq_limit)[0][-1]
frequency_array = frequency_array[:n_points_update]
frequency_array = worker.scatter(frequency_array)
for turn in range(n_turns):
my_new_impedance = impedance_calc(frequency_array) / profile.bin_size
my_new_impedance = worker.allgather(my_new_impedance)
ind_voltage_object.total_impedance[:n_points_update] = \
(my_new_impedance +...)
total_ind.induced_voltage_sum()
ind_voltage_object = InducedVoltageFreq(...)
total_ind = TotalInducedVoltage(..., [ind_voltage_object])
n_points_update = np.where(frequency_array < my_freq_limit)[0][-1]
frequency_array = frequency_array[:n_points_update]
frequency_array = worker.scatter(frequency_array)
my_new_impedance_real_mp = mp.Array(ctypes.c_double,[0]*n_points_update)
my_new_impedance_real = np.frombuffer(my_new_impedance_real_mp.get_obj())
my_new_impedance_imag_mp = mp.Array(ctypes.c_double,[0]*n_points_update)
my_new_impedance_imag = np.frombuffer(my_new_impedance_imag_mp.get_obj())
shared_globals = {
'frequency_array':frequency_array,
'whatever_parameter_you_need':whatever_parameter_you_need}
shared_mp_arrays = {
'my_new_impedance_real_mp':my_new_impedance_real_mp,
'my_new_impedance_imag_mp':my_new_impedance_imag_mp}
pool = mp.Pool(processes=n_cores,
initializer=mp_init_func,
initargs=(shared_globals,
shared_mp_arrays))
list_indexes_mp = split_indexes_mp(n_points_update, n_cores)
for turn in range(n_turns):
pool.starmap(impedance_calc_mp,
zip(list_indexes_mp,
repeat(turn),
...),
chunksize=1)
my_new_impedance = (my_new_impedance_real +
1j * my_new_impedance_imag) / profile.bin_size
my_new_impedance = worker.allgather(my_new_impedance)
ind_voltage_object.total_impedance[:n_points_update] = \
(my_new_impedance +...)
total_ind.induced_voltage_sum()
All_C10_1TFB_Parametric_model.load_model(
main_harmonic,
revolution_frequency,
impedance_reduction_target,
main_harmonic_FB=False,
manual_params=None,
ZFactor=1.):