The water membrane domain is one of MatCraft's most mature plugins. It supports optimization of polymeric membranes for reverse osmosis (RO), nanofiltration (NF), and ultrafiltration (UF) applications.
name: "ro-membrane-study"
domain: water_membrane
components:
- name: polymer_concentration
type: continuous
bounds: [0.10, 0.35]
unit: "wt%"
description: "Polymer (PSf/PES/PVDF) concentration in casting solution"
- name: additive_type
type: categorical
choices: ["PVP", "PEG", "LiCl", "ZnCl2", "none"]
- name: additive_concentration
type: continuous
bounds: [0.0, 0.15]
unit: "wt%"
- name: coagulation_bath_temp
type: continuous
bounds: [15, 60]
unit: "°C"
- name: evaporation_time
type: continuous
bounds: [0, 120]
unit: "seconds"
objectives:
- name: water_flux
direction: maximize
unit: "L/m²/h"
- name: salt_rejection
direction: maximize
unit: "%"
- name: fouling_resistance
direction: maximize
unit: "FRR%"
description: "Flux recovery ratio after BSA fouling"
constraints:
- type: custom
expression: "salt_rejection >= 90.0"
description: "Minimum acceptable rejection for RO"The water membrane plugin includes a simplified transport model based on the solution-diffusion framework:
These physics models provide approximate evaluations for surrogate training when you do not have experimental data for every candidate. They are calibrated against published literature data for common PSf/PES systems.
In our benchmarks with PSf membranes, MatCraft found Pareto-optimal compositions that matched or exceeded manually optimized formulations from the literature within 12 iterations (60 total evaluations including 20 seed points). The key insight from the optimization was a non-obvious interaction between additive concentration and coagulation temperature that was not captured by one-variable-at-a-time experiments.
For lab-based optimization, set the evaluator to manual mode. MatCraft will suggest 5 compositions per iteration, you fabricate and test them, enter the results, and the next iteration refines the search.