jax-modal-analysislisted
Install: claude install-skill lamm-mit/scienceclaw
# JAX 3D Modal Analysis
Full 3D tetrahedral FEM eigenvalue solver for ribbed membrane resonators.
Complements `fem-analysis` (2D Kirchhoff plate approximation) by accounting for
3D volumetric effects, frame stiffness, and out-of-plane deformation.
## Usage
```bash
python3 {baseDir}/scripts/jax_modal_analysis.py \
--stl /path/to/membrane.stl \
--material '{"E_Pa":3e9,"nu":0.35,"rho_kg_m3":1500}' \
--num-modes 12 \
--solver-backend jax-iterative \
--stl-length-scale 1e-3 \
--target-freq-min 2000 \
--target-freq-max 8000 \
--output-dir /tmp/jax_modal_results
```
## Arguments
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| `--stl` | path | required | Binary STL file (mm units assumed) |
| `--material` | JSON str | required | `{"E_Pa":3e9,"nu":0.35,"rho_kg_m3":1500}` |
| `--num-modes` | int | 12 | Number of modes to compute |
| `--solver-backend` | str | `jax-iterative` | `arpack`, `jax-iterative`, or `jax-xla` |
| `--stl-length-scale` | float | `1e-3` | Scale factor to convert STL units → metres |
| `--target-freq-min` | float | 2000 | Lower bound of target frequency band (Hz) |
| `--target-freq-max` | float | 8000 | Upper bound of target frequency band (Hz) |
| `--output-dir` | path | auto | Directory for all output files |
## Output JSON
```json
{
"stl_path": "/path/to/membrane.stl",
"topology": "v1_cricket_fine",
"num_modes_computed": 12,
"eigenfrequencies_hz": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2153.0, 2388.1, ...]