@@ -75,9 +75,6 @@ pub fn single_ion_bca<T: Geometry>(particle: particle::Particle, material: &mate
75
75
76
76
//Remove particle from top of vector as particle_1
77
77
let mut particle_1 = particles. pop ( ) . unwrap ( ) ;
78
-
79
- //println!("Particle start Z: {} E: {} ({}, {}, {})", particle_1.Z, particle_1.E/Q, particle_1.pos.x/ANGSTROM, particle_1.pos.y/ANGSTROM, particle_1.pos.z/ANGSTROM);
80
-
81
78
//BCA loop
82
79
while !particle_1. stopped & !particle_1. left {
83
80
@@ -114,8 +111,6 @@ pub fn single_ion_bca<T: Geometry>(particle: particle::Particle, material: &mate
114
111
particle_1. pos. x, particle_2. pos. x, & binary_collision_geometry) )
115
112
. unwrap ( ) ;
116
113
117
- //println!("{}", binary_collision_result);
118
-
119
114
//Only use 0th order collision for local electronic stopping
120
115
if k == 0 {
121
116
normalized_distance_of_closest_approach = binary_collision_result. normalized_distance_of_closest_approach ;
@@ -127,17 +122,14 @@ pub fn single_ion_bca<T: Geometry>(particle: particle::Particle, material: &mate
127
122
particle_2. E = binary_collision_result. recoil_energy - material. average_bulk_binding_energy ( particle_2. pos . x , particle_2. pos . y , particle_2. pos . z ) ;
128
123
particle_2. energy_origin = particle_2. E ;
129
124
130
- //Accumulate asymptotic deflections for primary particle
125
+ //Accumulate energy losses and asymptotic deflections for primary particle
131
126
total_energy_loss += binary_collision_result. recoil_energy ;
132
-
133
- //total_deflection_angle += psi;
134
127
total_asymptotic_deflection += binary_collision_result. asymptotic_deflection ;
135
128
136
- //Rotate particle 1, 2 by lab frame scattering angles
137
- particle:: rotate_particle ( & mut particle_1, binary_collision_result. psi ,
129
+ particle_1. rotate ( binary_collision_result. psi ,
138
130
binary_collision_geometry. phi_azimuthal ) ;
139
131
140
- particle :: rotate_particle ( & mut particle_2, -binary_collision_result. psi_recoil ,
132
+ particle_2. rotate ( -binary_collision_result. psi_recoil ,
141
133
binary_collision_geometry. phi_azimuthal ) ;
142
134
143
135
particle_2. dir_old . x = particle_2. dir . x ;
@@ -184,28 +176,24 @@ pub fn single_ion_bca<T: Geometry>(particle: particle::Particle, material: &mate
184
176
185
177
//Advance particle in space and track total distance traveled
186
178
#[ cfg( not( feature = "accelerated_ions" ) ) ]
187
- let distance_traveled = particle :: particle_advance ( & mut particle_1,
179
+ let distance_traveled = particle_1. advance (
188
180
binary_collision_geometries[ 0 ] . mfp , total_asymptotic_deflection) ;
189
181
190
182
#[ cfg( feature = "accelerated_ions" ) ]
191
- let distance_traveled = particle :: particle_advance ( & mut particle_1,
183
+ let distance_traveled = particle_1. advance (
192
184
binary_collision_geometries[ 0 ] . mfp + distance_to_target - material. geometry . get_energy_barrier_thickness ( ) , total_asymptotic_deflection) ;
193
185
194
186
//Subtract total energy from all simultaneous collisions and electronic stopping
195
187
bca:: update_particle_energy ( & mut particle_1, & material, distance_traveled,
196
188
total_energy_loss, normalized_distance_of_closest_approach, strong_collision_Z,
197
189
strong_collision_index, & options) ;
198
- //println!("Particle finished collision loop Z: {} E: {} ({}, {}, {})", particle_1.Z, particle_1.E/Q, particle_1.pos.x/ANGSTROM, particle_1.pos.y/ANGSTROM, particle_1.pos.z/ANGSTROM);
199
-
200
- //println!("{} {} {}", energy_0/EV, energy_1/EV, (energy_1 - energy_0)/EV);
201
190
202
191
//Check boundary conditions on leaving and stopping
203
192
material:: boundary_condition_planar ( & mut particle_1, & material) ;
204
193
205
194
//Set particle index to topmost particle
206
195
particle_index = particles. len ( ) ;
207
196
}
208
- //println!("Particle stopped or left Z: {} E: {} ({}, {}, {})", particle_1.Z, particle_1.E/Q, particle_1.pos.x/ANGSTROM, particle_1.pos.y/ANGSTROM, particle_1.pos.z/ANGSTROM);
209
197
particle_output. push ( particle_1) ;
210
198
}
211
199
particle_output
0 commit comments