MDL Templates
Pre-built MDL templates for common material optimization scenarios.
Apr 1, 20267 min read
mdl
templates
examples
MDL Templates
MatCraft provides pre-built templates for common optimization scenarios across all 16 domains. Templates give you a working starting point with sensible parameter ranges, objectives, and optimizer settings that you can customize for your specific problem.
Listing Available Templates
bash
# List all templates
materia init --list-templates
# List templates for a specific domain
materia init --list-templates --domain batteryExample output:
Available templates:
water/
ro-membrane Reverse osmosis membrane optimization
uf-membrane Ultrafiltration membrane design
forward-osmosis Forward osmosis draw solution
battery/
nmc-cathode NMC cathode composition optimization
solid-electrolyte Solid-state electrolyte screening
anode-design Silicon-graphite anode blending
solar/
perovskite Perovskite absorber composition
tandem-cell Two-junction tandem solar cell
organic-pv Organic photovoltaic donor-acceptor
catalyst/
haber-bosch Ammonia synthesis catalyst
water-splitting OER/HER catalyst design
co2-reduction CO2 electroreduction catalystUsing a Template
bash
# Initialize with a specific template
materia init my-project --template battery/nmc-cathodeThis creates a project with a fully populated material.yaml based on the selected template.
Template: Water / RO Membrane
yaml
name: ro-membrane
domain: water
description: Reverse osmosis membrane for desalination
parameters:
- name: polymer_concentration
type: continuous
bounds: [0.10, 0.35]
unit: wt%
- name: crosslinker_ratio
type: continuous
bounds: [0.02, 0.12]
- name: pore_size_nm
type: continuous
bounds: [0.5, 50.0]
unit: nm
- name: support_porosity
type: continuous
bounds: [0.3, 0.8]
- name: tmpc_concentration
type: continuous
bounds: [0.05, 0.50]
unit: wt%
objectives:
- name: permeability
direction: maximize
unit: L/(m2*h*bar)
- name: salt_rejection
direction: maximize
unit: "%"
optimizer:
method: cma-es
budget: 300
batch_size: 15Template: Battery / NMC Cathode
yaml
name: nmc-cathode
domain: battery
description: NMC cathode composition for Li-ion cells
parameters:
- name: ni_content
type: continuous
bounds: [0.33, 0.90]
- name: mn_content
type: continuous
bounds: [0.05, 0.34]
- name: co_content
type: continuous
bounds: [0.05, 0.34]
- name: calcination_temp
type: integer
bounds: [700, 950]
unit: C
- name: coating_thickness
type: continuous
bounds: [0.0, 5.0]
unit: nm
objectives:
- name: specific_capacity
direction: maximize
unit: mAh/g
- name: capacity_retention
direction: maximize
unit: "%"
- name: cobalt_cost
direction: minimize
unit: USD/kWh
constraints:
- expression: ni_content + mn_content + co_content <= 1.0
optimizer:
method: cma-es
budget: 400
batch_size: 20Template: Solar / Perovskite
yaml
name: perovskite-absorber
domain: solar
description: Halide perovskite ABX3 composition
parameters:
- name: ma_fraction
type: continuous
bounds: [0.0, 1.0]
description: Methylammonium fraction in A-site
- name: fa_fraction
type: continuous
bounds: [0.0, 1.0]
description: Formamidinium fraction in A-site
- name: cs_fraction
type: continuous
bounds: [0.0, 0.2]
description: Cesium fraction in A-site
- name: br_fraction
type: continuous
bounds: [0.0, 0.5]
description: Bromide fraction in X-site
- name: film_thickness
type: continuous
bounds: [200, 800]
unit: nm
objectives:
- name: pce
direction: maximize
unit: "%"
description: Power conversion efficiency
- name: stability_hours
direction: maximize
unit: hours
description: T80 stability under illumination
constraints:
- expression: ma_fraction + fa_fraction + cs_fraction <= 1.0
optimizer:
method: cma-es
budget: 350
batch_size: 15Customizing Templates
Templates are starting points. Common customizations include:
- Narrowing parameter bounds to focus on a region of interest
- Adding parameters for additional design variables
- Changing the budget based on available compute resources
- Adding constraints for lab or equipment limitations
- Adjusting objectives for your specific application requirements
Creating Your Own Templates
If you frequently optimize a specific class of materials, save your MDL file as a reusable template:
bash
# Save current material.yaml as a template
materia config set-template my-lab/custom-membrane material.yamlCustom templates are stored in ~/.config/materia/templates/ and appear in —list-templates output.