public/SKILLS/Scientific & Research Tools/numerical-stability/SKILL.md
Analyze and enforce numerical stability for time-dependent PDE simulations. Use when selecting time steps, choosing explicit/implicit schemes, diagnosing numerical blow-up, checking CFL/Fourier criteria, von Neumann analysis, matrix conditioning, or detecting stiffness in advection/diffusion/reaction problems.
npx skillsauth add eric861129/skills_all-in-one numerical-stabilityInstall 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 repeatable checklist and script-driven checks to keep time-dependent simulations stable and defensible.
scripts/requirements.txt for dependencies| Input | Description | Example |
|-------|-------------|---------|
| Grid spacing dx | Spatial discretization | 0.01 m |
| Time step dt | Temporal discretization | 1e-4 s |
| Velocity v | Advection speed | 1.0 m/s |
| Diffusivity D | Thermal/mass diffusivity | 1e-5 m²/s |
| Reaction rate k | First-order rate constant | 100 s⁻¹ |
| Dimensions | 1D, 2D, or 3D | 2 |
| Scheme type | Explicit or implicit | explicit |
Is the problem stiff (fast + slow dynamics)?
├── YES → Use implicit or IMEX scheme
│ └── Check conditioning with matrix_condition.py
└── NO → Is CFL/Fourier satisfied with reasonable dt?
├── YES → Use explicit scheme (cheaper per step)
└── NO → Consider implicit or reduce dx
| Physics | Number | Explicit Limit (1D) | Formula |
|---------|--------|---------------------|---------|
| Advection | CFL | C ≤ 1 | C = v·dt/dx |
| Diffusion | Fourier | Fo ≤ 0.5 | Fo = D·dt/dx² |
| Reaction | Reaction | R ≤ 1 | R = k·dt |
Multi-dimensional correction: For d dimensions, diffusion limit is Fo ≤ 1/(2d).
| Script | Key Outputs |
|--------|-------------|
| scripts/cfl_checker.py | metrics.cfl, metrics.fourier, recommended_dt, stable |
| scripts/von_neumann_analyzer.py | results.max_amplification, results.stable |
| scripts/matrix_condition.py | results.condition_number, results.is_symmetric |
| scripts/stiffness_detector.py | results.stiffness_ratio, results.stiff, results.recommendation |
scripts/cfl_checker.pydt if neededscripts/stiffness_detector.py if multiple scalesscripts/von_neumann_analyzer.pyscripts/matrix_condition.py for implicit solvesUser: My phase-field simulation is blowing up after 100 steps. I'm using explicit Euler with dx=0.01, dt=1e-4, and diffusivity D=1e-3.
Agent workflow:
python3 scripts/cfl_checker.py --dx 0.01 --dt 1e-4 --diffusivity 1e-3 --dimensions 2 --json
Fo = 1e-3 × 1e-4 / (0.01)² = 1.0Fo ≤ 0.252.5e-5 (to get Fo = 0.25)cfl_checker.pydt or change scheme# Check CFL/Fourier for 2D diffusion-advection
python3 scripts/cfl_checker.py --dx 0.1 --dt 0.01 --velocity 1.0 --diffusivity 0.1 --dimensions 2 --json
# Von Neumann analysis for custom 3-point stencil
python3 scripts/von_neumann_analyzer.py --coeffs 0.2,0.6,0.2 --dx 1.0 --nk 128 --json
# Detect stiffness from eigenvalue estimates
python3 scripts/stiffness_detector.py --eigs=-1,-1000 --json
# Check matrix conditioning for implicit system
python3 scripts/matrix_condition.py --matrix A.npy --norm 2 --json
| Error | Cause | Resolution |
|-------|-------|------------|
| dx and dt must be positive | Zero or negative values | Provide valid positive numbers |
| No stability criteria applied | Missing velocity/diffusivity | Provide at least one physics parameter |
| Matrix file not found | Invalid path | Check matrix file exists |
| Could not compute eigenvalues | Singular or ill-formed matrix | Check matrix validity |
| Scenario | Meaning | Action |
|----------|---------|--------|
| stable: true | All checked criteria satisfied | Proceed with simulation |
| stable: false | At least one limit violated | Reduce dt or change scheme |
| stable: null | No criteria could be applied | Provide more physics inputs |
| Stiffness ratio > 1000 | Problem is stiff | Use implicit integrator |
| Condition number > 10⁶ | Ill-conditioned | Use scaling/preconditioning |
references/stability_criteria.md - Decision thresholds and formulasreferences/common_pitfalls.md - Frequent failure modes and fixesreferences/scheme_catalog.md - Stability properties of common schemesdevelopment
Run structured What-If scenario analysis with multi-branch possibility exploration. Use this skill when the user asks speculative questions like "what if...", "what would happen if...", "what are the possibilities", "explore scenarios", "scenario analysis", "possibility space", "what could go wrong", "best case / worst case", "risk analysis", "contingency planning", "strategic options", or any question about uncertain futures. Also trigger when the user faces a fork-in-the-road decision, wants to stress-test an idea, or needs to think through consequences before committing.
development
Access comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
development
Use when challenging ideas, plans, decisions, or proposals using structured critical reasoning. Invoke to play devil's advocate, run a pre-mortem, red team, or audit evidence and assumptions.
tools
Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA/AMA/Vancouver), figures/tables, reporting guidelines (CONSORT/STROBE/PRISMA), for research papers and journal submissions.