1818
1919# Introduction
2020
21- This iterates over all intermolecular poses between two rigid molecules.
22- For each pose, defined by two quaternions and a mass center separation, the
23- intermolecular interaction energy is calculated.
21+ This iterates over all intermolecular poses between two rigid molecules using a regular grid in angular space using subdivided icosahedrons.
22+ For each mass center separation, _ R_ , the partition function,
23+ $Q(r) = \sum e^{-V(R)/k_BT}$, is explicitly
24+ evaluated to obtain the free energy, $A(R) = -k_BT \ln \langle e^{-V(R)/k_BT} \rangle$ and
25+ the thermally averaged energy,
26+ $$
27+ U(R) = \frac{\sum V(R) e^{-V(R)/k_BT}} {Q}
28+ $$
29+ where $V(R)$ is the inter-body interaction energy averaged over angular space.
2430
25- For each mass center separation, _ r_ , the partition function,
26- $Q(r) = \sum e^{-\beta u(r)}$, is explicitly
27- evaluated, whereby we can obtain the free energy, $w(r) = -kT \ln \langle e^{-\beta u(r)} \rangle$ and
28- the thermally averaged energy, $u(r) = \sum u(r)e^{-\beta u(r)} / Q$.
29-
30- ![ Angular Scan] ( assets/illustration.png )
31+ <p align =" center " >
32+ <img src="assets/illustration.png" alt="crates.io", height="200">
33+ </p >
3134
3235# Installation
3336
37+ ## Using pip (linux x86)
38+
3439``` console
3540pip install duello
3641```
3742
43+ ## Using Cargo (all platforms)
44+
45+ This requires prior installation of the [ Rust] ( https://www.rust-lang.org/learn/get-started ) toolchain.
46+
47+ ``` sh
48+ cargo install duello
49+ ```
50+
51+ Alternatively you may compile and run directly from the source code:
52+
53+ ``` sh
54+ git clone https://github.com/mlund/duello
55+ cd duello/
56+ cargo run --release -- < args...>
57+ ```
58+
3859# Usage
3960
4061The command-line tool ` duello ` does the 6D scanning and calculates
41- the potential of mean force, _ w(r )_ which
42- is used to derive the 2nd virial coefficient and twobody dissociation constant.
62+ the angularly averaged potential of mean force, _ A(R )_ which
63+ is used to derive the 2nd virial coefficient and twobody dissociation constant, $K_d$ .
4364The two input structures should be in ` .xyz ` format and all particle names must
44- be defined in the topology file.
65+ be defined in the topology file under ` atoms ` .
4566The topology also defines the particular pair-potential to use.
4667Note that currently, a coulomb potential is automatically added and should
4768hence _ not_ be specified in the topology.
69+ The program is written in Rust and attempts to use all available CPU cores.
4870
49- ``` console
71+ ``` sh
5072duello scan \
5173 --icotable \
5274 --mol1 cppm-p18.xyz \
@@ -59,8 +81,6 @@ duello scan \
5981 --temperature 298.15
6082```
6183
62- The program is written in Rust and attempts to use all available CPU cores.
63-
6484## Examples
6585
6686Ready run scripts examples are provided in the ` scripts/ ` directory:
@@ -76,7 +96,7 @@ This is for development purposes only.
7696
7797## Create ` pip ` package using Maturin
7898
79- ``` console
99+ ``` sh
80100pip install ziglang pipx
81101pipx install maturin # on ubuntu; then restart shell
82102maturin publish --target=x86_64-unknown-linux-gnu --zig
0 commit comments