mod minima_db

module minima_db

Action-outcome models for cost-aware global-minimum information. Durable corpus of quenched minima, one trajectory per system, temperature and seed, on readcon-db.

Every search run leaves its validated minima here rather than in a log: the structure, its plain energy to full precision, the system it belongs to, the temperature of the walk that found it and the seed. A trajectory per seed keeps concurrent seeds from contending on one trajectory, and a system-and-temperature query folds the seeds back together. Energies are stored as exact bit patterns beside the CON energy field, so a minimum read back is the one written.

Enums

enum MinimaDbError

Errors of the minima corpus.

Database(readcon_db::Error)

The underlying corpus failed.

InvalidRecord(String)

A record could not be encoded or decoded.

Json(serde_json::Error)

Metadata serialization failed.

Structs and Unions

struct MinimaCorpus

A readcon-db corpus of minima.

Implementations

impl MinimaCorpus

Functions

fn distinct_energies(&self, system: &str, temperature: f64, tolerance: f64) -> Result<Vec<f64>, MinimaDbError>

Distinct energies of one system at one temperature, folded across seeds at tolerance, lowest first.

fn minima(&self, system: &str, temperature: f64) -> Result<Vec<StoredMinimum>, MinimaDbError>

Every stored minimum of one system at one temperature, across seeds, sorted by energy.

fn open(root: impl AsRef<Path>, signature_digest: SignatureDigest) -> Result<Self, MinimaDbError>

Open or create the corpus below root, in the directory named by the canonical system-signature digest. A second open of that exact system in one process shares the first environment.

fn path(&self) -> &Path

Where the corpus lives.

fn record(&self, set: &MinimaSet, species: &[u32], units: &MinimaUnits, entries: &[(f64, ArrayView1<'_, f64>)], energy_tolerance: f64, provenance: serde_json::Value) -> Result<usize, MinimaDbError>

Append the distinct minima of one run.

Exact repeated coordinates whose energies differ by at most energy_tolerance are stored once within a call. Equal energy alone is not a structure identity test. Returns how many frames were appended.

fn signature_digest(&self) -> SignatureDigest

Canonical PES identity bound to this corpus environment.

struct MinimaSet

Which run a set of minima came from.

system: String

System name, such as lj75 or water6-gfn2.

temperature: f64

Metropolis temperature of the walk, in the objective’s energy units.

seed: u64

Seed of the run.

Implementations

impl MinimaSet

Functions

fn trajectory_id(&self, signature_digest: SignatureDigest) -> u64

The trajectory this set writes to.

struct MinimaUnits

Native units of the stored values, recorded beside them.

length: String

Name of the length unit the coordinates carry, such as sigma.

energy: String

Name of the energy unit, such as epsilon.

struct StoredMinimum

One stored minimum.

set: MinimaSet

The run that found it.

energy: f64

Exact plain energy.

coordinates: Vec<f64>

Exact coordinates.