Phase 1 - Session Bootstrap: - Add .claude/ATOMIZER_CONTEXT.md as single entry point for new sessions - Add study state detection and task routing Phase 2 - Code Deduplication: - Add optimization_engine/base_runner.py (ConfigDrivenRunner) - Add optimization_engine/generic_surrogate.py (ConfigDrivenSurrogate) - Add optimization_engine/study_state.py for study detection - Add optimization_engine/templates/ with registry and templates - Studies now require ~50 lines instead of ~300 Phase 3 - Skill Consolidation: - Add YAML frontmatter metadata to all skills (versioning, dependencies) - Consolidate create-study.md into core/study-creation-core.md - Update 00_BOOTSTRAP.md, 01_CHEATSHEET.md, 02_CONTEXT_LOADER.md Phase 4 - Self-Expanding Knowledge: - Add optimization_engine/auto_doc.py for auto-generating documentation - Generate docs/generated/EXTRACTORS.md (27 extractors documented) - Generate docs/generated/TEMPLATES.md (6 templates) - Generate docs/generated/EXTRACTOR_CHEATSHEET.md Phase 5 - Subagent Implementation: - Add .claude/commands/study-builder.md (create studies) - Add .claude/commands/nx-expert.md (NX Open API) - Add .claude/commands/protocol-auditor.md (config validation) - Add .claude/commands/results-analyzer.md (results analysis) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
Extractor Quick Reference
| Physics | Extractor | Function Call |
|---|---|---|
| Reaction forces | extract_spc_forces | extract_spc_forces(op2_file, subcase) |
| Reaction forces | extract_total_reaction_force | extract_total_reaction_force(op2_file, subcase) |
| Reaction forces | extract_reaction_component | extract_reaction_component(op2_file, component) |
| Reaction forces | check_force_equilibrium | check_force_equilibrium(op2_file, applied_load) |
| Displacement | extract_part_material | extract_part_material(prt_file, properties_file) |
| Displacement | extract_frequencies | extract_frequencies(f06_file, n_modes) |
| Mass | extract_part_mass_material | extract_part_mass_material(prt_file, properties_file) |
| Mass | extract_part_mass | extract_part_mass(prt_file, properties_file) |
| Natural frequency | extract_modal_mass | extract_modal_mass(f06_file, mode) |
| Natural frequency | get_first_frequency | get_first_frequency(f06_file) |
| Natural frequency | get_modal_mass_ratio | get_modal_mass_ratio(f06_file, direction) |
| Zernike WFE | extract_zernike_from_op2 | extract_zernike_from_op2(op2_file, bdf_file) |
| Zernike WFE | extract_zernike_filtered_rms | extract_zernike_filtered_rms(op2_file, bdf_file) |
| Zernike WFE | extract_zernike_relative_rms | extract_zernike_relative_rms(op2_file, target_subcase) |
| Strain energy | extract_strain_energy | extract_strain_energy(op2_file, subcase) |
| Strain energy | extract_total_strain_energy | extract_total_strain_energy(op2_file, subcase) |
| Strain energy | extract_strain_energy_density | extract_strain_energy_density(op2_file, subcase) |
| Von Mises stress | extract_solid_stress | extract_solid_stress(op2_file, subcase) |
| Von Mises stress | extract_principal_stress | extract_principal_stress(op2_file, subcase) |
| Von Mises stress | extract_max_principal_stress | extract_max_principal_stress(op2_file, subcase) |
| Von Mises stress | extract_min_principal_stress | extract_min_principal_stress(op2_file, subcase) |
| Temperature | extract_temperature | extract_temperature(op2_file, subcase) |
| Temperature | extract_temperature_gradient | extract_temperature_gradient(op2_file, subcase) |
| Temperature | extract_heat_flux | extract_heat_flux(op2_file, subcase) |
| Temperature | get_max_temperature | get_max_temperature(op2_file, subcase) |