| name | mesh-generation |
| description | Plan and evaluate mesh generation for numerical simulations. Use when choosing grid resolution, checking aspect ratios/skewness, estimating mesh quality constraints, or planning adaptive mesh refinement for PDE discretization. |
| allowed-tools | Read, Bash, Write, Grep, Glob |
Mesh Generation
Goal
Provide a consistent workflow for selecting mesh resolution and checking mesh quality for PDE simulations.
Requirements
- Python 3.8+
- No external dependencies (uses stdlib)
Inputs to Gather
| Input |
Description |
Example |
| Domain size |
Physical dimensions |
1.0 × 1.0 m |
| Feature size |
Smallest feature to resolve |
0.01 m |
| Points per feature |
Resolution requirement |
10 points |
| Aspect ratio limit |
Maximum dx/dy ratio |
5:1 |
| Quality threshold |
Skewness limit |
< 0.8 |
Decision Guidance
Resolution Selection
What is the smallest feature size?
├── Interface width → dx ≤ width / 5
├── Boundary layer → dx ≤ layer_thickness / 10
├── Wave length → dx ≤ lambda / 20
└── Diffusion length → dx ≤ sqrt(D × dt) / 2
Mesh Type Selection
| Problem |
Recommended Mesh |
| Simple geometry, uniform |
Structured Cartesian |
| Complex geometry |
Unstructured triangular/tetrahedral |
| Boundary layers |
Hybrid (structured near walls) |
| Adaptive refinement |
Quadtree/Octree or AMR |
Script Outputs (JSON Fields)
| Script |
Key Outputs |
scripts/grid_sizing.py |
dx, nx, ny, nz, notes |
scripts/mesh_quality.py |
aspect_ratio, skewness, quality_flags |
Workflow
- Estimate resolution - From physics scales
- Compute grid sizing - Run
scripts/grid_sizing.py
- Check quality metrics - Run
scripts/mesh_quality.py
- Adjust if needed - Fix aspect ratios, reduce skewness
- Validate - Mesh convergence study
Conversational Workflow Example
User: I need to mesh a 1mm × 1mm domain for a phase-field simulation with interface width of 10 μm.
Agent workflow:
- Compute grid sizing:
python3 scripts/grid_sizing.py --length 0.001 --resolution 200 --json
- Verify interface is resolved: dx = 5 μm, interface width = 10 μm → 2 points per interface width.
- Recommend: Increase to 500 points (dx = 2 μm) for 5 points across interface.
Pre-Mesh Checklist
CLI Examples
# Compute grid sizing for 1D domain
python3 scripts/grid_sizing.py --length 1.0 --resolution 200 --json
# Check mesh quality
python3 scripts/mesh_quality.py --dx 1.0 --dy 0.5 --dz 0.5 --json
# High aspect ratio check
python3 scripts/mesh_quality.py --dx 1.0 --dy 0.1 --json
Error Handling
| Error |
Cause |
Resolution |
length must be positive |
Invalid domain size |
Use positive value |
resolution must be > 1 |
Insufficient points |
Use at least 2 |
dx, dy must be positive |
Invalid spacing |
Use positive values |
Interpretation Guidance
Aspect Ratio
| Aspect Ratio |
Quality |
Impact |
| 1:1 |
Excellent |
Optimal accuracy |
| 1:1 - 3:1 |
Good |
Acceptable |
| 3:1 - 5:1 |
Fair |
May affect accuracy |
| > 5:1 |
Poor |
Solver issues likely |
Skewness
| Skewness |
Quality |
Impact |
| 0 - 0.25 |
Excellent |
Optimal |
| 0.25 - 0.50 |
Good |
Acceptable |
| 0.50 - 0.80 |
Fair |
May affect accuracy |
| > 0.80 |
Poor |
Likely problems |
Resolution Guidelines
| Application |
Points per Feature |
| Phase-field interface |
5-10 |
| Boundary layer |
10-20 |
| Shock |
3-5 (with capturing) |
| Wave propagation |
10-20 per wavelength |
| Smooth gradients |
5-10 |
Limitations
- 2D/3D only: No unstructured mesh generation
- Quality metrics: Basic aspect ratio and skewness only
- No mesh generation: Sizing recommendations only
References
references/mesh_types.md - Structured vs unstructured
references/quality_metrics.md - Aspect ratio/skewness thresholds
Version History
- v1.1.0 (2024-12-24): Enhanced documentation, decision guidance, examples
- v1.0.0: Initial release with 2 mesh quality scripts