1mod cg;
3mod dimer;
4mod fourier;
5mod options;
6mod raw;
7mod rotation;
8mod translation;
9
10#[cfg(test)]
11mod test;
12use gut::prelude::*;
18use std::f64::consts::PI;
19use vecfx::*;
20
21type DVector = nalgebra::DVector<f64>;
22
23use raw::*;
24pub trait EvaluateDimer {
29 fn position(&self) -> &[f64];
31
32 fn set_position(&mut self, position: &[f64]);
34
35 fn get_energy(&mut self) -> Result<f64>;
37
38 fn get_force(&mut self) -> Result<&[f64]>;
40}
41pub struct Dimer {
46 pub vars: UserOptions,
48}
49
50impl Dimer {
51 pub fn new() -> Self {
53 Self {
54 vars: UserOptions::default(),
55 }
56 }
57}
58
59pub use crate::dimer::*;
60pub use options::UserOptions;
61#[cfg(feature = "adhoc")]
65pub mod docs {
67 macro_rules! export_doc {
68 ($l:ident) => {
69 pub mod $l {
70 pub use crate::$l::*;
71 }
72 };
73 }
74
75 export_doc!(raw);
76 export_doc!(fourier);
77 export_doc!(options);
78 export_doc!(rotation);
79 export_doc!(translation);
80 export_doc!(cg);
81}
82