@@ -280,26 +280,27 @@ pub fn screening_length(Za: f64, Zb: f64, interaction_potential: InteractionPote
280
280
pub fn polynomial_coefficients ( relative_energy : f64 , impact_parameter : f64 , interaction_potential : InteractionPotential ) -> Vec < f64 > {
281
281
match interaction_potential {
282
282
InteractionPotential :: LENNARD_JONES_12_6 { sigma, epsilon} => {
283
- let impact_parameteter_angstroms = impact_parameter/ANGSTROM ;
283
+ let impact_parameter_angstroms = impact_parameter/ANGSTROM ;
284
284
let epsilon_ev = epsilon/EV ;
285
285
let sigma_angstroms = sigma/ANGSTROM ;
286
286
let relative_energy_ev = relative_energy/EV ;
287
- vec ! [ 1. , 0. , -impact_parameteter_angstroms. powi( 2 ) , 0. , 0. , 0. , 4. * epsilon_ev* sigma_angstroms. powf( 6. ) /relative_energy_ev, 0. , 0. , 0. , 0. , 0. , -4. * epsilon_ev* sigma_angstroms. powf( 12. ) /relative_energy_ev]
287
+ //vec![1., 0., -impact_parameter.powi(2), 0., 0., 0., 4.*epsilon_ev*sigma.powf(6.)/relative_energy_ev, 0., 0., 0., 0., 0., -4.*epsilon_ev*sigma.powf(12.)/relative_energy_ev]
288
+ vec ! [ 1.0 , -impact_parameter. powi( 2 ) , 0.0 , 4. * epsilon_ev* sigma. powf( 6. ) /relative_energy_ev, 0.0 , 0.0 , -4. * epsilon_ev* sigma. powf( 12. ) /relative_energy_ev]
288
289
} ,
289
290
InteractionPotential :: LENNARD_JONES_65_6 { sigma, epsilon} => {
290
- let impact_parameteter_angstroms = impact_parameter/ANGSTROM ;
291
+ let impact_parameter_angstroms = impact_parameter/ANGSTROM ;
291
292
let epsilon_ev = epsilon/EV ;
292
293
let sigma_angstroms = sigma/ANGSTROM ;
293
294
let relative_energy_ev = relative_energy/EV ;
294
- vec ! [ 1. , 0. , 0. , 0. , -impact_parameteter_angstroms . powi( 2 ) , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 4. * epsilon_ev* sigma_angstroms . powf( 6. ) /relative_energy , -4. * epsilon_ev* sigma_angstroms . powf( 6.5 ) /relative_energy_ev]
295
+ vec ! [ 1. , 0. , 0. , 0. , -impact_parameter . powi( 2 ) , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 4. * epsilon_ev* sigma . powf( 6. ) /relative_energy_ev , -4. * epsilon_ev* sigma . powf( 6.5 ) /relative_energy_ev]
295
296
} ,
296
297
InteractionPotential :: FOUR_EIGHT { alpha, beta} => {
297
298
//Note: I've transformed to angstroms here to help the rootfinder with numerical issues.
298
299
//The units on alpha [m^4 J] and beta [m^8 J] make them unreasonably small to use numerically.
299
300
let alpha_angstroms4_joule = alpha/ANGSTROM . powi ( 4 ) ;
300
301
let beta_angstroms8_joule = beta/ANGSTROM . powi ( 8 ) ;
301
302
let impact_parameteter_angstroms = impact_parameter/ANGSTROM ;
302
- vec ! [ 1. , 0. , -( impact_parameteter_angstroms) . powi( 2 ) , 0. , alpha_angstroms4_joule/relative_energy, 0. , 0. , 0. , -beta_angstroms8_joule/relative_energy, ]
303
+ vec ! [ 1. , -( impact_parameteter_angstroms) . powi( 2 ) , alpha_angstroms4_joule/relative_energy, 0. , -beta_angstroms8_joule/relative_energy, ]
303
304
}
304
305
_ => panic ! ( "Input error: non-polynomial interaction potential used with polynomial root-finder." )
305
306
}
@@ -311,13 +312,13 @@ pub fn polynomial_coefficients(relative_energy: f64, impact_parameter: f64, inte
311
312
pub fn inverse_transform ( x : f64 , interaction_potential : InteractionPotential ) -> f64 {
312
313
match interaction_potential {
313
314
InteractionPotential :: LENNARD_JONES_12_6 { ..} => {
314
- x* ANGSTROM
315
+ x. sqrt ( )
315
316
} ,
316
317
InteractionPotential :: LENNARD_JONES_65_6 { ..} => {
317
318
x* x
318
319
} ,
319
320
| InteractionPotential :: FOUR_EIGHT { ..} => {
320
- x* ANGSTROM
321
+ x. sqrt ( ) * ANGSTROM
321
322
}
322
323
_ => panic ! ( "Input error: non-polynomial interaction potential used with polynomial root-finder transformation." )
323
324
}
0 commit comments