pub struct DFTD3RationalDampingParamBuilder { /* private fields */ }
Expand description
Builder for DFTD3RationalDampingParam
.
Implementations§
Source§impl DFTD3RationalDampingParamBuilder
impl DFTD3RationalDampingParamBuilder
Sourcepub fn s8(self, value: f64) -> Self
pub fn s8(self, value: f64) -> Self
Examples found in repository?
examples/test_interface.rs (line 269)
226fn test_pair_resolved() {
227 let thr = 1.0e-8;
228
229 let numbers = vec![16, 16, 16, 16, 16, 16, 16, 16];
230 #[rustfmt::skip]
231 let positions = vec![
232 -4.15128787379191, 1.71951973863958, -0.93066267097296,
233 -4.15128787379191, -1.71951973863958, 0.93066267097296,
234 -1.71951973863958, -4.15128787379191, -0.93066267097296,
235 1.71951973863958, -4.15128787379191, 0.93066267097296,
236 4.15128787379191, -1.71951973863958, -0.93066267097296,
237 4.15128787379191, 1.71951973863958, 0.93066267097296,
238 1.71951973863958, 4.15128787379191, -0.93066267097296,
239 -1.71951973863958, 4.15128787379191, 0.93066267097296,
240 ];
241
242 #[rustfmt::skip]
243 let pair_disp2 = [
244 [-0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111],
245 [-0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052],
246 [-0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865],
247 [-0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796],
248 [-0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865],
249 [-0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052],
250 [-0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111],
251 [-0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000],
252 ];
253
254 #[rustfmt::skip]
255 let pair_disp3 = [
256 [0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07],
257 [1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07],
258 [2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07],
259 [3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07],
260 [3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07],
261 [3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07],
262 [2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07],
263 [1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00],
264 ];
265
266 let model = DFTD3Model::new(&numbers, &positions, None, None);
267 let param = DFTD3RationalDampingParamBuilder::default()
268 .a1(0.5545)
269 .s8(2.2609)
270 .a2(3.2297)
271 .build()
272 .unwrap()
273 .new_param();
274
275 let res = model.get_pairwise_dispersion(¶m);
276
277 // Flatten the expected matrices for comparison
278 let expected_pairs2: Vec<f64> = pair_disp2.into_iter().flatten().collect();
279 let expected_pairs3: Vec<f64> = pair_disp3.into_iter().flatten().collect();
280
281 res.pair_energy2.iter().zip(expected_pairs2.iter()).for_each(|(x, y)| {
282 assert_abs_diff_eq!(x, y, epsilon = thr);
283 });
284 res.pair_energy3.iter().zip(expected_pairs3.iter()).for_each(|(x, y)| {
285 assert_abs_diff_eq!(x, y, epsilon = thr);
286 });
287}
Sourcepub fn a1(self, value: f64) -> Self
pub fn a1(self, value: f64) -> Self
Examples found in repository?
examples/test_interface.rs (line 268)
226fn test_pair_resolved() {
227 let thr = 1.0e-8;
228
229 let numbers = vec![16, 16, 16, 16, 16, 16, 16, 16];
230 #[rustfmt::skip]
231 let positions = vec![
232 -4.15128787379191, 1.71951973863958, -0.93066267097296,
233 -4.15128787379191, -1.71951973863958, 0.93066267097296,
234 -1.71951973863958, -4.15128787379191, -0.93066267097296,
235 1.71951973863958, -4.15128787379191, 0.93066267097296,
236 4.15128787379191, -1.71951973863958, -0.93066267097296,
237 4.15128787379191, 1.71951973863958, 0.93066267097296,
238 1.71951973863958, 4.15128787379191, -0.93066267097296,
239 -1.71951973863958, 4.15128787379191, 0.93066267097296,
240 ];
241
242 #[rustfmt::skip]
243 let pair_disp2 = [
244 [-0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111],
245 [-0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052],
246 [-0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865],
247 [-0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796],
248 [-0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865],
249 [-0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052],
250 [-0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111],
251 [-0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000],
252 ];
253
254 #[rustfmt::skip]
255 let pair_disp3 = [
256 [0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07],
257 [1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07],
258 [2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07],
259 [3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07],
260 [3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07],
261 [3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07],
262 [2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07],
263 [1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00],
264 ];
265
266 let model = DFTD3Model::new(&numbers, &positions, None, None);
267 let param = DFTD3RationalDampingParamBuilder::default()
268 .a1(0.5545)
269 .s8(2.2609)
270 .a2(3.2297)
271 .build()
272 .unwrap()
273 .new_param();
274
275 let res = model.get_pairwise_dispersion(¶m);
276
277 // Flatten the expected matrices for comparison
278 let expected_pairs2: Vec<f64> = pair_disp2.into_iter().flatten().collect();
279 let expected_pairs3: Vec<f64> = pair_disp3.into_iter().flatten().collect();
280
281 res.pair_energy2.iter().zip(expected_pairs2.iter()).for_each(|(x, y)| {
282 assert_abs_diff_eq!(x, y, epsilon = thr);
283 });
284 res.pair_energy3.iter().zip(expected_pairs3.iter()).for_each(|(x, y)| {
285 assert_abs_diff_eq!(x, y, epsilon = thr);
286 });
287}
Sourcepub fn a2(self, value: f64) -> Self
pub fn a2(self, value: f64) -> Self
Examples found in repository?
examples/test_interface.rs (line 270)
226fn test_pair_resolved() {
227 let thr = 1.0e-8;
228
229 let numbers = vec![16, 16, 16, 16, 16, 16, 16, 16];
230 #[rustfmt::skip]
231 let positions = vec![
232 -4.15128787379191, 1.71951973863958, -0.93066267097296,
233 -4.15128787379191, -1.71951973863958, 0.93066267097296,
234 -1.71951973863958, -4.15128787379191, -0.93066267097296,
235 1.71951973863958, -4.15128787379191, 0.93066267097296,
236 4.15128787379191, -1.71951973863958, -0.93066267097296,
237 4.15128787379191, 1.71951973863958, 0.93066267097296,
238 1.71951973863958, 4.15128787379191, -0.93066267097296,
239 -1.71951973863958, 4.15128787379191, 0.93066267097296,
240 ];
241
242 #[rustfmt::skip]
243 let pair_disp2 = [
244 [-0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111],
245 [-0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052],
246 [-0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865],
247 [-0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796],
248 [-0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865],
249 [-0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052],
250 [-0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111],
251 [-0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000],
252 ];
253
254 #[rustfmt::skip]
255 let pair_disp3 = [
256 [0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07],
257 [1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07],
258 [2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07],
259 [3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07],
260 [3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07],
261 [3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07],
262 [2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07],
263 [1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00],
264 ];
265
266 let model = DFTD3Model::new(&numbers, &positions, None, None);
267 let param = DFTD3RationalDampingParamBuilder::default()
268 .a1(0.5545)
269 .s8(2.2609)
270 .a2(3.2297)
271 .build()
272 .unwrap()
273 .new_param();
274
275 let res = model.get_pairwise_dispersion(¶m);
276
277 // Flatten the expected matrices for comparison
278 let expected_pairs2: Vec<f64> = pair_disp2.into_iter().flatten().collect();
279 let expected_pairs3: Vec<f64> = pair_disp3.into_iter().flatten().collect();
280
281 res.pair_energy2.iter().zip(expected_pairs2.iter()).for_each(|(x, y)| {
282 assert_abs_diff_eq!(x, y, epsilon = thr);
283 });
284 res.pair_energy3.iter().zip(expected_pairs3.iter()).for_each(|(x, y)| {
285 assert_abs_diff_eq!(x, y, epsilon = thr);
286 });
287}
Sourcepub fn build(self) -> Result<DFTD3RationalDampingParam, DFTD3Error>
pub fn build(self) -> Result<DFTD3RationalDampingParam, DFTD3Error>
Examples found in repository?
examples/test_interface.rs (line 271)
226fn test_pair_resolved() {
227 let thr = 1.0e-8;
228
229 let numbers = vec![16, 16, 16, 16, 16, 16, 16, 16];
230 #[rustfmt::skip]
231 let positions = vec![
232 -4.15128787379191, 1.71951973863958, -0.93066267097296,
233 -4.15128787379191, -1.71951973863958, 0.93066267097296,
234 -1.71951973863958, -4.15128787379191, -0.93066267097296,
235 1.71951973863958, -4.15128787379191, 0.93066267097296,
236 4.15128787379191, -1.71951973863958, -0.93066267097296,
237 4.15128787379191, 1.71951973863958, 0.93066267097296,
238 1.71951973863958, 4.15128787379191, -0.93066267097296,
239 -1.71951973863958, 4.15128787379191, 0.93066267097296,
240 ];
241
242 #[rustfmt::skip]
243 let pair_disp2 = [
244 [-0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111],
245 [-0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052],
246 [-0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865],
247 [-0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865, -0.00023796],
248 [-0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052, -0.00032865],
249 [-0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111, -0.00108052],
250 [-0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000, -0.00153111],
251 [-0.00153111, -0.00108052, -0.00032865, -0.00023796, -0.00032865, -0.00108052, -0.00153111, -0.00000000],
252 ];
253
254 #[rustfmt::skip]
255 let pair_disp3 = [
256 [0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07],
257 [1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07],
258 [2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07],
259 [3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07],
260 [3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07, 3.95872130e-07],
261 [3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07, 2.91526483e-07],
262 [2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00, 1.08616452e-07],
263 [1.08616452e-07, 2.91526483e-07, 3.95872130e-07, 3.18133443e-07, 3.95872130e-07, 2.91526483e-07, 1.08616452e-07, 0.00000000e-00],
264 ];
265
266 let model = DFTD3Model::new(&numbers, &positions, None, None);
267 let param = DFTD3RationalDampingParamBuilder::default()
268 .a1(0.5545)
269 .s8(2.2609)
270 .a2(3.2297)
271 .build()
272 .unwrap()
273 .new_param();
274
275 let res = model.get_pairwise_dispersion(¶m);
276
277 // Flatten the expected matrices for comparison
278 let expected_pairs2: Vec<f64> = pair_disp2.into_iter().flatten().collect();
279 let expected_pairs3: Vec<f64> = pair_disp3.into_iter().flatten().collect();
280
281 res.pair_energy2.iter().zip(expected_pairs2.iter()).for_each(|(x, y)| {
282 assert_abs_diff_eq!(x, y, epsilon = thr);
283 });
284 res.pair_energy3.iter().zip(expected_pairs3.iter()).for_each(|(x, y)| {
285 assert_abs_diff_eq!(x, y, epsilon = thr);
286 });
287}
Source§impl DFTD3RationalDampingParamBuilder
impl DFTD3RationalDampingParamBuilder
pub fn init(self) -> DFTD3Param
pub fn init_f(self) -> Result<DFTD3Param, DFTD3Error>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DFTD3RationalDampingParamBuilder
impl RefUnwindSafe for DFTD3RationalDampingParamBuilder
impl Send for DFTD3RationalDampingParamBuilder
impl Sync for DFTD3RationalDampingParamBuilder
impl Unpin for DFTD3RationalDampingParamBuilder
impl UnwindSafe for DFTD3RationalDampingParamBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more