Skip to main content

chematic_ff/
lib.rs

1#![forbid(unsafe_code)]
2//! `chematic-ff` — Force field atom typing and parameters.
3//!
4//! Provides pure-Rust force field support for molecular mechanics calculations:
5//! - **DREIDING**: general-purpose force field
6//! - **MMFF94**: Merck Molecular Force Field (small organic molecules)
7//! - **UFF**: Universal Force Field (all elements, metal complexes)
8//!
9//! Includes atom type enumerations, assignment functions, and parameter lookups.
10
11pub mod dreiding;
12pub mod mmff94;
13pub mod mmff94_advanced;
14pub mod mmff94_bci;
15pub mod mmff94_energy;
16pub mod mmff94_minimizer;
17pub mod mmff94_numeric;
18pub mod mmff94_params;
19pub mod params;
20pub mod uff;
21
22pub use dreiding::{DREIDINGType, assign_dreiding_types};
23pub use mmff94::{AssignError, MMFF94Type, assign_mmff94_types, mmff94_charges_3d};
24pub use mmff94_advanced::{ElectrostaticMatrix, MMFF94BatchProperties};
25pub use mmff94_bci::{bci, mmff94_charges_bci, mmff94_formal_charge};
26pub use mmff94_energy::{
27    AngleEnergyParams, BondEnergyParams, TorsionEnergyParams, VdwEnergyParams, mmff94_angle_energy,
28    mmff94_bond_energy, mmff94_oop, mmff94_stbn, mmff94_torsion_energy, mmff94_vdw_combined,
29    mmff94_vdw_energy,
30};
31pub use mmff94_minimizer::{
32    EnergyBreakdown, MinimizeResult, MinimizerError, minimize_mmff94_full, minimize_mmff94_lbfgs,
33    mmff94_energy_breakdown, mmff94_torsion_scan, mmff94_total_energy,
34};
35pub use mmff94_numeric::{
36    NumericTypeError, assign_mmff94_numeric_types, mmff94_charges_numeric, pbci_for,
37};
38pub use mmff94_params::{
39    AngleParams, BondDipoleParams, BondParams, ChargeParams, ElectrostaticScalingParams,
40    MMFF94MoleculeProperties, TorsionParams, VdWParams, mmff94_angle_params, mmff94_bond_dipole,
41    mmff94_bond_params, mmff94_charge_params, mmff94_electrostatic_scaling_1_4,
42    mmff94_torsion_params, mmff94_vdw_params,
43};
44pub use params::{dreiding_angle, dreiding_bond_len, dreiding_torsion_barrier, dreiding_vdw};
45pub use uff::{UffMinimizeResult, UffType, assign_uff_types, minimize_uff, uff_total_energy};