skills/simulation-workflow/parameter-optimization/SKILL.md
Explore and optimize simulation parameters via design of experiments (DOE), sensitivity analysis, and optimizer selection — generate Latin Hypercube, quasi-random, or factorial sample plans, rank parameter influence with sensitivity scores, recommend Bayesian optimization, CMA-ES, or gradient- based methods based on dimension and budget, and fit surrogate models for expensive evaluations. Use when calibrating material properties against experimental data, planning a parameter sweep, performing uncertainty quantification, or choosing an optimization strategy for a simulation with a limited evaluation budget, even if the user only says "which parameters matter most" or "how do I calibrate my model."
npx skillsauth add HeshamFS/materials-simulation-skills parameter-optimizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Provide a workflow to design experiments, rank parameter influence, and select optimization strategies for materials simulation calibration.
Before running any scripts, collect from the user:
| Input | Description | Example |
|-------|-------------|---------|
| Parameter bounds | Min/max for each parameter with units | kappa: [0.1, 10.0] W/mK |
| Evaluation budget | Max number of simulations allowed | 50 runs |
| Noise level | Stochasticity of simulation outputs | low, medium, high |
| Constraints | Feasibility rules or forbidden regions | kappa + mobility < 5 |
Is dimension <= 3 AND full coverage needed?
├── YES → Use factorial
└── NO → Is sensitivity analysis the goal?
├── YES → Use quasi-random (preferred; "sobol" is accepted but deprecated)
└── NO → Use lhs (Latin Hypercube)
| Method | Best For | Avoid When |
|--------|----------|------------|
| lhs | General exploration, moderate dimensions (3-20) | Need exact grid coverage |
| sobol | Sensitivity analysis, uniform coverage | Very high dimensions (>20) |
| factorial | Low dimension (<4), need all corners | High dimension (exponential growth) |
Is dimension <= 5 AND budget <= 100?
├── YES → Bayesian Optimization
└── NO → Is dimension <= 20?
├── YES → CMA-ES
└── NO → Random Search with screening
| Noise Level | Recommendation | |-------------|----------------| | Low | Gradient-based if derivatives available, else Bayesian Optimization | | Medium | Bayesian Optimization with noise model | | High | Evolutionary algorithms or robust Bayesian Optimization |
| Script | Output Fields |
|--------|---------------|
| scripts/doe_generator.py | samples, method, coverage |
| scripts/optimizer_selector.py | recommended, expected_evals, notes |
| scripts/sensitivity_summary.py | ranking, notes |
| scripts/surrogate_builder.py | model_type, metrics, notes |
scripts/doe_generator.pyscripts/sensitivity_summary.pyscripts/optimizer_selector.pyscripts/surrogate_builder.py# Generate 20 LHS samples for 3 parameters
python3 scripts/doe_generator.py --params 3 --budget 20 --method lhs --json
# Rank parameters by sensitivity scores
python3 scripts/sensitivity_summary.py --scores 0.2,0.5,0.3 --names kappa,mobility,W --json
# Get optimizer recommendation for 3D problem with 50 eval budget
python3 scripts/optimizer_selector.py --dim 3 --budget 50 --noise low --json
# Build surrogate model from simulation data
python3 scripts/surrogate_builder.py --x 0,1,2 --y 10,12,15 --model rbf --json
User: I need to calibrate thermal conductivity and diffusivity for my FEM simulation. I can run about 30 simulations.
Agent workflow:
--params 2--budget 30python3 scripts/doe_generator.py --params 2 --budget 30 --method lhs --json
python3 scripts/sensitivity_summary.py --scores 0.7,0.3 --names conductivity,diffusivity --json
python3 scripts/optimizer_selector.py --dim 2 --budget 30 --noise low --json
| Error | Cause | Resolution |
|-------|-------|------------|
| params must be positive | Zero or negative dimension | Ask user for valid parameter count |
| budget must be positive | Zero or negative budget | Ask user for realistic simulation budget |
| method must be lhs, sobol, or factorial | Invalid method | Use decision guidance to pick valid method |
| scores must be comma-separated | Malformed input | Reformat as 0.1,0.2,0.3 |
sensitivity_summary.py validates --names against [a-zA-Z_][a-zA-Z0-9_ .-]* with a 200-char limit, preventing shell metacharacter injection via crafted parameter namesNaN/Inf rejected)doe_generator.py caps dimension at 1,000 and budget at 1,000,000; optimizer_selector.py caps dimension at 100,000 and budget at 10,000,000--method is validated against a fixed allowlist (lhs, sobol, factorial)--noise is validated against a fixed allowlist (low, medium, high)--model (surrogate type) is validated against a fixed allowlist (rbf, linear, polynomial)allowed-tools excludes Bash to prevent the agent from executing arbitrary commands when processing user-provided parameter names and constraintseval(), exec(), or dynamic code generationshell=True)surrogate_builder.py computes basic metrics; replace with actual model for productionreferences/doe_methods.md - Detailed DOE method comparisonreferences/optimizer_selection.md - Optimizer algorithm detailsreferences/sensitivity_guidelines.md - Sensitivity analysis interpretationreferences/surrogate_guidelines.md - Surrogate model selectiondevelopment
Plan verification and validation campaigns for simulation codes using manufactured solutions, canonical benchmark problems, grid/time refinement, uncertainty propagation, and pass/fail acceptance criteria. Use when an agent needs to prove a solver, model, or result is trustworthy rather than only plausible.
testing
Map computational materials tasks onto workflow engines such as atomate2, jobflow, AiiDA, pyiron, or a simple one-off script. Use when deciding how to structure a reproducible campaign, DAG, restart strategy, provenance record, storage layout, or migration path from ad hoc scripts to managed workflows.
development
Plan molecular dynamics post-processing for materials simulations, including RDF, MSD and diffusion, VACF/VDOS, coordination numbers, bond-angle distributions, stress-strain curves, equilibration detection, PBC unwrapping, and trajectory format choices. Use before writing MD analysis scripts or trusting trajectory-derived results.
development
Triage cross-code simulation failures and propose safe retry ladders for nonconvergence, NaN/Inf, exploding energies, unstable timesteps, pressure blow-up, missing potentials, bad pseudopotentials, corrupted output, and incomplete runs. Use when an agent sees a failed or suspicious materials simulation and needs a defensible first response.