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 (existing)
6//! - **MMFF94**: Merck Molecular Force Field (new, for small molecules)
7//!
8//! Includes atom type enumerations, assignment functions, and parameter lookups.
9
10pub mod dreiding;
11pub mod mmff94;
12pub mod mmff94_advanced;
13pub mod mmff94_bci;
14pub mod mmff94_energy;
15pub mod mmff94_minimizer;
16pub mod mmff94_numeric;
17pub mod mmff94_params;
18pub mod params;
19
20pub use dreiding::{DREIDINGType, assign_dreiding_types};
21pub use mmff94::{MMFF94Type, assign_mmff94_types, AssignError, mmff94_charges_3d};
22pub use mmff94_bci::{bci, mmff94_charges_bci, mmff94_formal_charge};
23pub use mmff94_advanced::{
24    ElectrostaticMatrix, MMFF94BatchProperties,
25};
26pub use mmff94_params::{
27    mmff94_angle_params, mmff94_bond_dipole, mmff94_bond_params, mmff94_charge_params,
28    mmff94_electrostatic_scaling_1_4, mmff94_torsion_params, mmff94_vdw_params,
29    AngleParams, BondDipoleParams, BondParams, ChargeParams, ElectrostaticScalingParams,
30    MMFF94MoleculeProperties, TorsionParams, VdWParams,
31};
32pub use mmff94_energy::{
33    mmff94_angle_energy, mmff94_bond_energy, mmff94_oop, mmff94_stbn, mmff94_torsion_energy,
34    mmff94_vdw_combined, mmff94_vdw_energy, AngleEnergyParams, BondEnergyParams,
35    TorsionEnergyParams, VdwEnergyParams,
36};
37pub use mmff94_minimizer::{
38    minimize_mmff94_full, minimize_mmff94_lbfgs, mmff94_energy_breakdown, mmff94_torsion_scan,
39    mmff94_total_energy, EnergyBreakdown, MinimizeResult, MinimizerError,
40};
41pub use mmff94_numeric::{
42    assign_mmff94_numeric_types, mmff94_charges_numeric, pbci_for, NumericTypeError,
43};
44pub use params::{dreiding_angle, dreiding_bond_len, dreiding_torsion_barrier, dreiding_vdw};