MDL Examples
Complete MDL examples for various material optimization scenarios.
Apr 1, 20269 min read
mdl
examples
recipes
MDL Examples
This page provides complete, ready-to-use MDL examples for various material optimization scenarios. Each example includes inline comments explaining the design choices.
Example 1: Polymer Blend Optimization
Optimizing a two-component polymer blend for tensile strength and elongation at break:
yaml
name: polymer-blend-v1
domain: polymer
description: Binary polymer blend for packaging film
parameters:
- name: polymer_a_fraction
type: continuous
bounds: [0.2, 0.8]
description: Weight fraction of high-density polyethylene
- name: processing_temp
type: continuous
bounds: [150, 280]
unit: C
description: Extrusion temperature
- name: draw_ratio
type: continuous
bounds: [2.0, 8.0]
description: Uniaxial draw ratio
- name: cooling_rate
type: categorical
choices: [slow, medium, fast, quench]
description: Post-extrusion cooling method
objectives:
- name: tensile_strength
direction: maximize
unit: MPa
- name: elongation_at_break
direction: maximize
unit: "%"
optimizer:
method: cma-es
budget: 200
seed: 101Example 2: Solid Oxide Fuel Cell Electrolyte
Screening doped zirconia compositions for ionic conductivity and mechanical stability:
yaml
name: sofc-electrolyte
domain: ceramic
description: Yttria-stabilized zirconia electrolyte
parameters:
- name: yttria_mol_pct
type: continuous
bounds: [3.0, 12.0]
unit: mol%
description: Yttria dopant concentration
- name: sintering_temp
type: integer
bounds: [1200, 1600]
unit: C
- name: sintering_time_h
type: continuous
bounds: [1.0, 24.0]
unit: hours
- name: grain_size_target
type: continuous
bounds: [0.1, 10.0]
unit: um
objectives:
- name: ionic_conductivity
direction: maximize
unit: S/cm
description: Oxide ion conductivity at 800C
- name: fracture_toughness
direction: maximize
unit: MPa*m^0.5
constraints:
- expression: sintering_temp >= 1300
description: Minimum temp for full densification
optimizer:
method: cma-es
budget: 250
batch_size: 12
surrogate: mlp
seed: 42Example 3: Heterogeneous Catalyst
Optimizing a bimetallic catalyst for selectivity and conversion in CO2 hydrogenation:
yaml
name: co2-hydrogenation-catalyst
domain: catalyst
description: Cu-Zn/Al2O3 catalyst for methanol synthesis
parameters:
- name: cu_loading
type: continuous
bounds: [5.0, 40.0]
unit: wt%
- name: zn_loading
type: continuous
bounds: [5.0, 30.0]
unit: wt%
- name: calcination_temp
type: integer
bounds: [300, 600]
unit: C
- name: reduction_temp
type: integer
bounds: [200, 400]
unit: C
- name: support
type: categorical
choices: [alumina, silica, titania, ceria]
objectives:
- name: methanol_selectivity
direction: maximize
unit: "%"
- name: co2_conversion
direction: maximize
unit: "%"
- name: stability_hours
direction: maximize
unit: hours
description: Time to 10% activity loss
constraints:
- expression: cu_loading + zn_loading <= 60
description: Total metal loading limit
optimizer:
method: cma-es
budget: 400
batch_size: 20Example 4: Single-Objective with Constraints
Sometimes you only care about one property, subject to feasibility constraints:
yaml
name: thermal-barrier-coating
domain: ceramic
description: Maximize thermal resistance within CTE limits
parameters:
- name: ysz_thickness
type: continuous
bounds: [50, 500]
unit: um
- name: bond_coat_thickness
type: continuous
bounds: [20, 150]
unit: um
- name: porosity
type: continuous
bounds: [0.05, 0.30]
- name: spray_distance
type: continuous
bounds: [80, 150]
unit: mm
objectives:
- name: thermal_resistance
direction: maximize
unit: m2*K/W
constraints:
- expression: ysz_thickness + bond_coat_thickness <= 600
description: Maximum total coating thickness
- expression: porosity <= 0.25
description: Structural integrity limit
optimizer:
method: cma-es
budget: 150
seed: 7Example 5: High-Dimensional Design Space
A thermoelectric material with many design variables:
yaml
name: thermoelectric-screen
domain: thermoelectric
description: Bi2Te3-based thermoelectric for room temperature
parameters:
- name: bi_fraction
type: continuous
bounds: [0.35, 0.45]
- name: sb_substitution
type: continuous
bounds: [0.0, 0.10]
- name: se_substitution
type: continuous
bounds: [0.0, 0.10]
- name: dopant_concentration
type: continuous
bounds: [0.001, 0.05]
log_scale: true
- name: hot_press_temp
type: integer
bounds: [350, 550]
unit: C
- name: hot_press_pressure
type: continuous
bounds: [30, 80]
unit: MPa
- name: hot_press_time
type: continuous
bounds: [5, 60]
unit: min
- name: ball_mill_time
type: continuous
bounds: [1, 48]
unit: hours
- name: annealing_temp
type: integer
bounds: [200, 400]
unit: C
objectives:
- name: zt
direction: maximize
description: Thermoelectric figure of merit at 300K
- name: power_factor
direction: maximize
unit: uW/(cm*K2)
optimizer:
method: cma-es
budget: 600
batch_size: 25
surrogate: mlp
seed: 2026Tips for Writing MDL Files
- Start with a template and customize rather than writing from scratch.
- Use descriptive names that match your lab terminology.
- Include units in the description or unit field for clarity.
- Set a seed for reproducible results during development.
- Start with a small budget (50-100) to verify the setup, then increase for production runs.