Replaces Triangle library with Gmsh as the default triangulation engine for adaptive isogrid generation. Gmsh's Frontal-Delaunay algorithm provides: - Better adaptive density response (concentric rings around holes) - Superior triangle quality (min angles 30-35° vs 25-30°) - Single-pass meshing with background size fields (vs iterative refinement) - More equilateral triangles → uniform rib widths, better manufacturability - Natural boundary conformance → cleaner frame edges Comparison results (mixed hole weights plate): - Min angle improvement: +5.1° (25.7° → 30.8°) - Density field accuracy: Excellent vs Poor - Visual quality: Concentric hole refinement vs random patterns Changes: - Updated src/brain/__main__.py to import triangulation_gmsh - Added gmsh>=4.11 to requirements.txt (Triangle kept as fallback) - Updated README and technical-spec.md - Added comparison script and test results Triangle library remains available as fallback option. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
91 lines
4.3 KiB
JSON
91 lines
4.3 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(dir:*)",
|
|
"Bash(powershell -Command:*)",
|
|
"Bash(python:*)",
|
|
"Bash(git:*)",
|
|
"Bash(npm:*)",
|
|
"Bash(conda:*)",
|
|
"Bash(pip:*)",
|
|
"Bash(cmd /c:*)",
|
|
"Bash(tasklist:*)",
|
|
"Bash(taskkill:*)",
|
|
"Bash(robocopy:*)",
|
|
"Bash(xcopy:*)",
|
|
"Bash(del:*)",
|
|
"Bash(type:*)",
|
|
"Bash(where:*)",
|
|
"Bash(netstat:*)",
|
|
"Bash(findstr:*)",
|
|
"Bash(curl:*)",
|
|
"Read",
|
|
"Skill(dashboard:*)",
|
|
"Bash(C:/Users/antoi/anaconda3/envs/atomizer/python.exe:*)",
|
|
"Bash(C:\\Users\\antoi\\anaconda3\\envs\\atomizer\\python.exe:*)",
|
|
"Bash(\"C:\\Users\\antoi\\anaconda3\\envs\\atomizer\\python.exe\":*)",
|
|
"Bash(ls:*)",
|
|
"Bash(mkdir:*)",
|
|
"Bash(timeout:*)",
|
|
"Bash(sqlite3:*)",
|
|
"Bash(bash:*)",
|
|
"Bash(sh:*)",
|
|
"Skill(ralph-wiggum:ralph-loop)",
|
|
"Skill(ralph-wiggum:ralph-loop:*)",
|
|
"Skill(ralph-wiggum:help)",
|
|
"Skill(ralph-wiggum:help:*)",
|
|
"Skill(study-builder)",
|
|
"Skill(study-builder:*)",
|
|
"Bash(cat:*)",
|
|
"Bash(du:*)",
|
|
"Bash(for file in docs/protocols/operations/OP_*.md)",
|
|
"Bash(do basename \"$file\")",
|
|
"Bash(done)",
|
|
"Bash(for file in docs/protocols/system/SYS_*.md)",
|
|
"Bash(for file in docs/protocols/extensions/EXT_*.md)",
|
|
"Bash(grep:*)",
|
|
"Bash(wc:*)",
|
|
"Bash(.claude/skills/00_BOOTSTRAP.md )",
|
|
"Bash(.claude/skills/00_BOOTSTRAP_V2.md )",
|
|
"Bash(.claude/skills/archive/00_BOOTSTRAP_V2.0_archived.md )",
|
|
"Bash(.claude/skills/01_CHEATSHEET.md )",
|
|
"Bash(.claude/skills/modules/OPTIMIZATION_ENGINE_MIGRATION_PLAN.md )",
|
|
"Bash(.claude/skills/modules/insights-catalog.md )",
|
|
"Bash(CLAUDE.md )",
|
|
"Bash(docs/06_PHYSICS/ )",
|
|
"Bash(docs/api/CONTEXT_ENGINEERING_API.md )",
|
|
"Bash(docs/protocols/ )",
|
|
"Bash(knowledge_base/playbook.json )",
|
|
"Bash(docs/plans/RESTRUCTURING_PLAN.md)",
|
|
"Bash(.claude/skills/archive/ )",
|
|
"Bash(C:Usersantoianaconda3envsatomizerpython.exe -m uvicorn:*)",
|
|
"Bash(xargs -I{} git ls-tree -r -l HEAD {})",
|
|
"Bash(sort:*)",
|
|
"Bash(C:Usersantoianaconda3envsatomizerpython.exe introspect_model.py)",
|
|
"Bash(xargs:*)",
|
|
"Bash(ping:*)",
|
|
"Bash(C:Usersantoianaconda3envsatomizerpython.exe -c \"import requests; r = requests.post\\(''http://127.0.0.1:8001/api/claude/sessions'', json={''mode'': ''user''}\\); print\\(f''Status: {r.status_code}''\\); print\\(f''Response: {r.text}''\\)\")",
|
|
"Bash(start \"Atomizer Backend\" cmd /k C:UsersantoiAtomizerrestart_backend.bat)",
|
|
"Bash(start \"Test Backend\" cmd /c \"cd /d C:\\\\Users\\\\antoi\\\\Atomizer\\\\atomizer-dashboard\\\\backend && C:\\\\Users\\\\antoi\\\\anaconda3\\\\Scripts\\\\activate.bat atomizer && python -m uvicorn api.main:app --port 8002\")",
|
|
"Bash(C:Usersantoianaconda3envsatomizerpython.exe C:UsersantoiAtomizertest_backend.py)",
|
|
"Bash(start \"Backend 8002\" C:UsersantoiAtomizerstart_backend_8002.bat)",
|
|
"Bash(C:Usersantoianaconda3envsatomizerpython.exe -c \"from api.main import app; print\\(''Import OK''\\)\")",
|
|
"Bash(find:*)",
|
|
"Bash(npx tailwindcss:*)",
|
|
"Bash(C:Usersantoianaconda3envsatomizerpython.exe -c \"from pathlib import Path; p = Path\\(''C:/Users/antoi/Atomizer/studies''\\) / ''M1_Mirror/m1_mirror_cost_reduction_lateral''; print\\(''exists:'', p.exists\\(\\), ''path:'', p\\)\")",
|
|
"Bash(C:Usersantoianaconda3envsatomizerpython.exe -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\(''Study:'', d.get\\(''meta'',{}\\).get\\(''study_name'',''N/A''\\)\\); print\\(''Design Variables:''\\); [print\\(f'' - {dv[\"\"name\"\"]} \\({dv[\"\"expression_name\"\"]}\\)''\\) for dv in d.get\\(''design_variables'',[]\\)]\")",
|
|
"Bash(C:Usersantoianaconda3envsatomizerpython.exe -m py_compile:*)",
|
|
"Skill(ralph-loop:ralph-loop)",
|
|
"Skill(ralph-loop:ralph-loop:*)",
|
|
"mcp__Claude_in_Chrome__computer",
|
|
"mcp__Claude_in_Chrome__navigate",
|
|
"Bash(/c/Users/antoi/anaconda3/envs/atomizer/python.exe -m pip install:*)",
|
|
"Bash(/c/Users/antoi/anaconda3/envs/atomizer/python.exe tests/compare_triangle_vs_gmsh.py)",
|
|
"Bash(/c/Users/antoi/anaconda3/envs/atomizer/python.exe:*)"
|
|
],
|
|
"deny": [],
|
|
"ask": []
|
|
},
|
|
"enableAllProjectMcpServers": true
|
|
}
|