Anto01 a4805947d1 feat: Add NX study models and optimization histories
Includes all study folders with NX models for development:
- bracket_stiffness_optimization (V1, V2, V3)
- drone_gimbal_arm_optimization
- simple_beam_optimization
- uav_arm_optimization (V1, V2)
- training_data_export_test
- uav_arm_atomizerfield_test

Contains .prt, .fem, .sim files and optimization databases.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 12:19:07 -05:00
2025-11-15 08:12:32 -05:00

Atomizer

Advanced LLM-native optimization platform for Siemens NX Simcenter with Neural Network Acceleration

Python 3.10+ License Status Neural

Overview

Atomizer is an LLM-native optimization framework for Siemens NX Simcenter that transforms how engineers interact with optimization workflows. It combines AI-assisted natural language interfaces with Graph Neural Network (GNN) surrogates that achieve 600x-500,000x speedup over traditional FEA simulations.

Core Philosophy

Atomizer enables engineers to:

  • Describe optimizations in natural language instead of writing configuration files
  • Accelerate optimization 1000x using trained neural network surrogates
  • Generate custom analysis functions on-the-fly (RSS metrics, weighted objectives, constraints)
  • Get intelligent recommendations based on optimization results and surrogate models
  • Generate comprehensive reports with AI-written insights and visualizations
  • Extend the framework autonomously through LLM-driven code generation

Key Features

  • Neural Network Acceleration: Graph Neural Networks predict FEA results in 4.5ms vs 10-30min for traditional solvers
  • LLM-Driven Workflow: Natural language study creation, configuration, and analysis
  • Advanced Optimization: Optuna-powered TPE, Gaussian Process surrogates, multi-objective Pareto fronts
  • Dynamic Code Generation: AI writes custom Python functions and NX journal scripts during optimization
  • Intelligent Decision Support: Surrogate quality assessment, sensitivity analysis, engineering recommendations
  • Real-Time Monitoring: Interactive web dashboard with live progress tracking
  • Extensible Architecture: Plugin system with hooks for pre/post mesh, solve, and extraction phases
  • Hybrid FEA/NN Optimization: Intelligent switching between physics simulation and neural predictions
  • Self-Improving: Continuous learning from optimization runs to improve neural surrogates

Documentation

📚 Complete Documentation Index - Start here for all documentation

By Topic


Architecture

┌─────────────────────────────────────────────────────────┐
│                 LLM Interface Layer                     │
│  Claude Skill + Natural Language Parser + Workflow Mgr  │
└─────────────────────────────────────────────────────────┘
                          ↕
┌─────────────────────────────────────────────────────────┐
│              Optimization Engine Core                   │
│  Plugin System + Feature Registry + Code Generator      │
└─────────────────────────────────────────────────────────┘
                          ↕
┌───────────────────────────┬─────────────────────────────┐
│     Traditional Path      │      Neural Path (New!)     │
├───────────────────────────┼─────────────────────────────┤
│  NX Solver (via Journals) │   AtomizerField GNN         │
│  ~10-30 min per eval      │   ~4.5 ms per eval          │
│  Full physics fidelity    │   Physics-informed learning │
└───────────────────────────┴─────────────────────────────┘
                          ↕
┌─────────────────────────────────────────────────────────┐
│         Hybrid Decision Engine                          │
│  Confidence-based switching • Uncertainty quantification│
│  Automatic FEA validation • Online learning             │
└─────────────────────────────────────────────────────────┘
                          ↕
┌─────────────────────────────────────────────────────────┐
│              Analysis & Reporting                       │
│  Surrogate Quality + Sensitivity + Report Generator     │
└─────────────────────────────────────────────────────────┘

Neural Network Components (AtomizerField)

┌─────────────────────────────────────────────────────────┐
│                  AtomizerField System                   │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ┌─────────────┐   ┌─────────────┐   ┌─────────────┐  │
│  │ BDF/OP2     │   │    GNN      │   │  Inference  │  │
│  │ Parser      │──>│  Training   │──>│   Engine    │  │
│  │ (Phase 1)   │   │  (Phase 2)  │   │  (Phase 2)  │  │
│  └─────────────┘   └─────────────┘   └─────────────┘  │
│        │                 │                  │          │
│        ▼                 ▼                  ▼          │
│  ┌─────────────────────────────────────────────────┐  │
│  │              Neural Model Types                  │  │
│  ├─────────────────────────────────────────────────┤  │
│  │ • Field Predictor GNN (displacement + stress)   │  │
│  │ • Parametric GNN (all 4 objectives directly)    │  │
│  │ • Ensemble models for uncertainty               │  │
│  └─────────────────────────────────────────────────┘  │
│                                                         │
└─────────────────────────────────────────────────────────┘

Quick Start

Prerequisites

  • Siemens NX 2412 with NX Nastran solver
  • Python 3.10+ (recommend Anaconda)
  • Git for version control

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/Atomizer.git
    cd Atomizer
    
  2. Create Python environment:

    conda create -n atomizer python=3.10
    conda activate atomizer
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Configure NX path (edit if needed):

    • Default NX path: C:\Program Files\Siemens\NX2412\NXBIN\run_journal.exe
    • Update in optimization_engine/nx_solver.py if different

Basic Usage

Example 1: Natural Language Optimization (LLM Mode - Available Now!)

New in Phase 3.2: Describe your optimization in natural language - no JSON config needed!

python optimization_engine/run_optimization.py \
  --llm "Minimize displacement and mass while keeping stress below 200 MPa. \
        Design variables: beam_half_core_thickness (15-30 mm), \
        beam_face_thickness (15-30 mm). Run 10 trials using TPE." \
  --prt studies/simple_beam_optimization/1_setup/model/Beam.prt \
  --sim studies/simple_beam_optimization/1_setup/model/Beam_sim1.sim \
  --trials 10

What happens automatically:

  • LLM parses your natural language request
  • Auto-generates result extractors (displacement, stress, mass)
  • Auto-generates inline calculations (safety factor, RSS objectives)
  • Auto-generates post-processing hooks (plotting, reporting)
  • Runs optimization with Optuna
  • Saves results, plots, and best design

Example: See examples/llm_mode_simple_example.py for a complete walkthrough.

Requirements: Claude Code integration (no API key needed) or provide --api-key for Anthropic API.

Example 2: Current JSON Configuration

Create studies/my_study/config.json:

{
  "sim_file": "studies/bracket_stress_minimization/model/Bracket_sim1.sim",
  "design_variables": [
    {
      "name": "wall_thickness",
      "expression_name": "wall_thickness",
      "min": 3.0,
      "max": 8.0,
      "units": "mm"
    }
  ],
  "objectives": [
    {
      "name": "max_stress",
      "extractor": "stress_extractor",
      "metric": "max_von_mises",
      "direction": "minimize",
      "weight": 1.0,
      "units": "MPa"
    }
  ],
  "optimization_settings": {
    "n_trials": 50,
    "sampler": "TPE",
    "n_startup_trials": 20
  }
}

Run optimization:

python tests/test_journal_optimization.py
# Or use the quick 5-trial test:
python run_5trial_test.py

Features

Neural Network Acceleration (AtomizerField)

  • Graph Neural Networks (GNN): Physics-aware architecture that respects FEA mesh topology
  • Parametric Surrogate: Design-conditioned GNN predicts all 4 objectives (mass, frequency, displacement, stress)
  • Ultra-Fast Inference: 4.5ms per prediction vs 10-30 minutes for FEA (2,000-500,000x speedup)
  • Physics-Informed Loss: Custom loss functions enforce equilibrium, constitutive laws, and boundary conditions
  • Uncertainty Quantification: Ensemble-based confidence scores with automatic FEA validation triggers
  • Hybrid Optimization: Smart switching between FEA and NN based on confidence thresholds
  • Training Data Export: Automatic export of FEA results in neural training format (BDF/OP2 → HDF5+JSON)
  • Pre-trained Models: Ready-to-use models for UAV arm optimization with documented training pipelines

Core Optimization

  • Intelligent Multi-Objective Optimization: NSGA-II algorithm for Pareto-optimal solutions
  • Advanced Dashboard: React-based real-time monitoring with parallel coordinates visualization
  • NX Integration: Seamless journal-based control of Siemens NX Simcenter
  • Multi-Solution Support: Automatic handling of combined analysis types (static + modal, thermal + structural)
  • Smart Logging: Detailed per-trial logs + high-level optimization progress tracking
  • Plugin System: Extensible hooks at pre-solve, post-solve, and post-extraction points
  • Study Management: Isolated study folders with automatic result organization
  • Substudy System: NX-like hierarchical studies with shared models and independent configurations
  • Live History Tracking: Real-time incremental JSON updates for monitoring progress
  • Resume Capability: Interrupt and resume optimizations without data loss
  • Pareto Front Analysis: Automatic extraction and visualization of non-dominated solutions
  • Parallel Coordinates Plot: Research-grade multi-dimensional visualization with interactive selection

Current Status

Development Phase: Beta - 95% Complete

Core Optimization

  • Phase 1 (Plugin System): 100% Complete & Production Ready
  • Phases 2.5-3.1 (LLM Intelligence): 100% Complete - Components built and tested
  • Phase 3.2 (LLM Mode): Complete - Natural language optimization available
  • Protocol 10 (IMSO): Complete - Intelligent Multi-Strategy Optimization
  • Protocol 11 (Multi-Objective): Complete - Pareto optimization
  • Protocol 13 (Dashboard): Complete - Real-time React dashboard

Neural Network Acceleration (AtomizerField)

  • Phase 1 (Data Parser): Complete - BDF/OP2 → HDF5+JSON conversion
  • Phase 2 (Neural Architecture): Complete - GNN models with physics-informed loss
  • Phase 2.1 (Parametric GNN): Complete - Design-conditioned predictions
  • Phase 2.2 (Integration Layer): Complete - Neural surrogate + hybrid optimizer
  • Phase 3 (Testing): Complete - 18 comprehensive tests
  • Pre-trained Models: Available for UAV arm optimization

What's Working:

  • Complete optimization engine with Optuna + NX Simcenter
  • Neural acceleration: 4.5ms predictions (2000x speedup over FEA)
  • Hybrid optimization: Smart FEA/NN switching with confidence thresholds
  • Parametric surrogate: Predicts all 4 objectives from design parameters
  • Training pipeline: Export data → Train GNN → Deploy → Optimize
  • Real-time dashboard with Pareto front visualization
  • Multi-objective optimization with NSGA-II
  • LLM-assisted natural language workflows

Production Ready: Core optimization + neural acceleration fully functional.

See DEVELOPMENT_GUIDANCE.md for comprehensive status and priorities.

Project Structure

Atomizer/
├── optimization_engine/           # Core optimization logic
│   ├── runner.py                 # Main optimization runner
│   ├── runner_with_neural.py     # Neural-enhanced runner (NEW)
│   ├── neural_surrogate.py       # GNN integration layer (NEW)
│   ├── training_data_exporter.py # Export FEA→neural format (NEW)
│   ├── nx_solver.py              # NX journal execution
│   ├── nx_updater.py             # NX model parameter updates
│   ├── result_extractors/        # OP2/F06 parsers
│   └── plugins/                  # Plugin system
│
├── atomizer-field/               # Neural Network System (NEW)
│   ├── neural_field_parser.py    # BDF/OP2 → neural format
│   ├── validate_parsed_data.py   # Physics validation
│   ├── batch_parser.py           # Batch processing
│   ├── neural_models/            # GNN architectures
│   │   ├── field_predictor.py    # Field prediction GNN
│   │   ├── parametric_predictor.py # Parametric GNN (4 objectives)
│   │   └── physics_losses.py     # Physics-informed loss functions
│   ├── train.py                  # Training pipeline
│   ├── train_parametric.py       # Parametric model training
│   ├── predict.py                # Inference engine
│   ├── runs/                     # Pre-trained models
│   │   └── parametric_uav_arm_v2/  # UAV arm model (ready to use)
│   └── tests/                    # 18 comprehensive tests
│
├── atomizer-dashboard/           # React Dashboard (NEW)
│   ├── backend/                  # FastAPI + WebSocket
│   └── frontend/                 # React + Tailwind + Recharts
│
├── studies/                      # Optimization studies
│   ├── uav_arm_optimization/     # Example with neural integration
│   └── [other studies]/          # Traditional optimization examples
│
├── atomizer_field_training_data/ # Training data storage
│   └── [study_name]/             # Exported training cases
│
├── docs/                         # Documentation
│   ├── NEURAL_FEATURES_COMPLETE.md  # Complete neural guide
│   ├── NEURAL_WORKFLOW_TUTORIAL.md  # Step-by-step tutorial
│   ├── GNN_ARCHITECTURE.md          # Architecture deep-dive
│   └── [other docs]/
│
├── tests/                        # Integration tests
└── README.md                     # This file

Example: Neural-Accelerated UAV Arm Optimization

A complete working example with neural acceleration in studies/uav_arm_optimization/:

# Step 1: Run initial FEA optimization (collect training data)
cd studies/uav_arm_optimization
python run_optimization.py --trials 50 --export-training-data

# Step 2: Train neural network on collected data
cd ../../atomizer-field
python train_parametric.py \
  --train_dir ../atomizer_field_training_data/uav_arm \
  --epochs 200

# Step 3: Run neural-accelerated optimization (1000x faster!)
cd ../studies/uav_arm_optimization
python run_optimization.py --trials 5000 --use-neural

What happens:

  1. Initial 50 FEA trials collect training data (~8 hours)
  2. GNN trains on the data (~30 minutes)
  3. Neural-accelerated trials run 5000 designs (~4 minutes total!)

Design Variables:

  • beam_half_core_thickness: 5-15 mm
  • beam_face_thickness: 1-5 mm
  • holes_diameter: 20-50 mm
  • hole_count: 5-15

Objectives:

  • Minimize mass
  • Maximize frequency
  • Minimize max displacement
  • Minimize max stress

Performance:

  • FEA time: ~10 seconds/trial
  • Neural time: ~4.5 ms/trial
  • Speedup: 2,200x

Example: Traditional Bracket Optimization

For traditional FEA-only optimization, see studies/bracket_displacement_maximizing/:

cd studies/bracket_displacement_maximizing
python run_optimization.py --trials 50

Dashboard Usage

Start the dashboard:

python dashboard/start_dashboard.py

Features:

  • Create studies with folder structure (sim/, results/, config.json)
  • Drop .sim/.prt files into study folders
  • Explore .sim files to extract expressions via NX
  • Configure optimization with 5-step wizard:
    1. Simulation files
    2. Design variables
    3. Objectives
    4. Constraints
    5. Optimization settings
  • Monitor progress with real-time charts
  • View results with trial history and best parameters

Vision: LLM-Native Engineering Assistant

Atomizer is evolving into a comprehensive AI-powered engineering platform. See DEVELOPMENT_ROADMAP.md for details on:

  • Phase 1-7 development plan with timelines and deliverables
  • Example use cases demonstrating natural language workflows
  • Architecture diagrams showing plugin system and LLM integration
  • Success metrics for each phase

Future Capabilities

User: "Add RSS function combining stress and displacement"
→ LLM: Writes Python function, validates, registers as custom objective

User: "Use surrogate to predict these 10 parameter sets"
→ LLM: Checks surrogate R² > 0.9, runs predictions with confidence intervals

User: "Make an optimization report"
→ LLM: Generates HTML with plots, insights, recommendations (30 seconds)

User: "Why did trial #34 perform best?"
→ LLM: "Trial #34 had optimal stress distribution due to thickness 4.2mm
       creating uniform load paths. Fillet radius 3.1mm reduced stress
       concentration by 18%. This combination is Pareto-optimal."

Development Status

Completed Phases

  • Phase 1: Core optimization engine & Plugin system

    • NX journal integration
    • Web dashboard
    • Lifecycle hooks (pre-solve, post-solve, post-extraction)
  • Phase 2.5: Intelligent Codebase-Aware Gap Detection

    • Scans existing capabilities before requesting examples
    • Matches workflow steps to implemented features
    • 80-90% accuracy on complex optimization requests
  • Phase 2.6: Intelligent Step Classification

    • Distinguishes engineering features from inline calculations
    • Identifies post-processing hooks vs FEA operations
    • Foundation for smart code generation
  • Phase 2.7: LLM-Powered Workflow Intelligence

    • Replaces static regex with Claude AI analysis
    • Detects ALL intermediate calculation steps
    • Understands engineering context (PCOMP, CBAR, element forces, etc.)
    • 95%+ expected accuracy with full nuance detection
  • Phase 2.8: Inline Code Generation

    • LLM-generates Python code for simple math operations
    • Handles avg/min/max, normalization, percentage calculations
    • Direct integration with Phase 2.7 LLM output
    • Optional automated code generation for calculations
  • Phase 2.9: Post-Processing Hook Generation

    • LLM-generates standalone Python middleware scripts
    • Integrated with Phase 1 lifecycle hook system
    • Handles weighted objectives, custom formulas, constraints, comparisons
    • Complete JSON-based I/O for optimization loops
    • Optional automated scripting for post-processing operations
  • Phase 3: pyNastran Documentation Integration

    • LLM-enhanced OP2 extraction code generation
    • Documentation research via WebFetch
    • 3 core extraction patterns (displacement, stress, force)
    • Knowledge base for learned patterns
    • Successfully tested on real OP2 files
    • Optional automated code generation for result extraction!
  • Phase 3.1: LLM-Enhanced Automation Pipeline

    • Extractor orchestrator integrates Phase 2.7 + Phase 3.0
    • Optional automatic extractor generation from LLM output
    • Dynamic loading and execution on real OP2 files
    • End-to-end test passed: Request → Code → Execution → Objective
    • LLM-enhanced workflow with user flexibility achieved!

Next Priorities

  • Phase 3.2: Optimization runner integration with orchestrator
  • Phase 3.5: NXOpen introspection & pattern curation
  • Phase 4: Code generation for complex FEA features
  • Phase 5: Analysis & decision support
  • Phase 6: Automated reporting

For Developers:

License

Proprietary - Atomaste © 2025

Support

Resources

NXOpen References

Optimization


Built with ❤️ by Atomaste | Powered by Optuna, NXOpen, and Claude

Description
Main atomizer project (GitHub mirror)
Readme 3.8 GiB
Languages
Python 82.9%
TypeScript 16%
Shell 0.6%
Batchfile 0.3%
PowerShell 0.1%