else:
n_particles -= 1
position = np.delete(position, j)
direction = np.delete(direction, j)
rand_num = np.random.uniform()
num_fission += 1
if rand_num < Sigma_f1/Sigma_f:
neutron_count_per_batch += 1
num_fission += 1
n_particles += 1
position = np.concatenate([
position, np.random.uniform(low=x_min, high=x_max, size=1)])
direction = np.concatenate([
direction, np.random.choice([-1, 1], size=1)])
for index in range(I_bins):
if x_index[index] < position[j] < x_index[index + 1]:
fission_count[1, index] += 1
elif Sigma_f1/Sigma_f <= rand_num < (Sigma_f1+Sigma_f2)/Sigma_f:
neutron_count_per_batch += 2
num_fission += 1
n_particles += 2
position = np.concatenate([
position, np.random.uniform(low=x_min, high=x_max, size=2)])
direction = np.concatenate([
direction, np.random.choice([-1, 1], size=2)])
for index in range(I_bins):
if x_index[index] < position[j] < x_index[index + 1]:
fission_count[2, index] += 1
else:
neutron_count_per_batch += 3
num_fission += 1
n_particles += 3
position = np.concatenate([
position, np.random.uniform(low=x_min, high=x_max, size=3)])
direction = np.concatenate([
direction, np.random.choice([-1, 1], size=3)])
for index in range(I_bins):
if x_index[index] < position[j] < x_index[index + 1]:
fission_count[3, index] += 1
if inc_j:
j += 1