openmaterials.ai / codes / openmaterials-ai

openmaterials-ai: the kernel that evaluates the map's closed-form relations

The Python kernel of the OpenMaterials map: typed quantities, executable sympy formulas and per-code representations, computing algebraically defined quantities from their inputs.

What it is and how it works

A map whose edges execute

Quantities are typed nodes and formulas are operators the kernel runs on numerical arrays. Four map variables, two composite conductivities and two cure values, come from the kernel (OpenMaterials document).

Nan effective medium

Composite conductivity for random and aligned fillers with Kapitza resistance, kc = k / (1 + 2 R k / d), in the Nan mixing formulas of the map (omai.composites module).

Cure kinetics

The degree of cure after an isothermal hold under Kamal-Sourour kinetics, and the glass transition temperature it sets by DiBenedetto (omai.cure_kinetics module).

Representations

A representation maps an external code's outputs onto the shared nodes with units and conventions, and carries its citation and license (openmaterials-ai README).

Resolver

omai.semantics maps a method name as a paper writes it, such as 'quasi-harmonic approximation', to content-addressed node ids and formulas (openmaterials-ai README).

Lineage identity

omai.lineages.lineage_id is the sha256 of a canonical lineage. Vectors in the wheel pin 32 lineages and 35 records so all consumers agree (openmaterials-ai README).

What people do with it

DGEBA epoxy with graphene nanoplatelets

In the OpenMaterials document, the reference draft at 5 vol% filler gives kappa_c = 1.2452 W/(m K) from the map's own closed-form edges (OpenMaterials document). OpenMaterials document

How it is used

  1. Install

    pip install openmaterials-ai==0.6.1 on Python 3.11 or later.

  2. Build the DAG

    python examples/quickstart.py builds the operator DAG and derives Cp from frequencies.

  3. Evaluate a closed form

    nan_kappa_random(params) in omai.composites.evaluate takes km, k11, k33, d1, d3, G and f.

  4. Render a record

    omai.render.render_composite_kappa turns the result into an Instance with its provenance.

  5. Validate

    omai.schema.validate_record lists every schema violation. An empty list means valid.