HyTOM is a high-performance nonlinear multiscale topology optimization framework. By integrating JAX-accelerated Finite Element Analysis (FEA) with Physics-Informed Neural Surrogate Models (PINNs), HyTOM enables the design of complex, large-scale structures optimized for extreme deformations and high-fidelity lattice architectures.
- JAX-Powered Performance: Leverage XLA compilation and automatic differentiation for lightning-fast sensitivity analysis and gradient-based optimization.
- Multiscale Design Engine: Orchestrate complex design cycles that simultaneously optimize macroscopic topology and microscopic lattice architectures.
-
Physics-Informed Neural Surrogates (PINNs): Accelerate property evaluation using neural networks that predict Strain Energy Density (
$\Psi$ ) and derive Stress ($S$ ) analytically via autodiff. - Advanced Stability & Guardrails: Integrated Adaptive J-Barrier systems and Zero-Strain "Ghost" Corrections ensure stable convergence even under extreme mesh distortions.
- Multi-Device Scalability: Seamlessly scale simulations across multiple GPUs/TPUs using JAX's advanced sharding and parallelization primitives.
- Integrated Visualization Suite: Generate high-fidelity 3D renderings and stress maps directly using the integrated PyVista and Trame pipelines.
HyTOM utilizes a multi-phase design approach, transitioning from a solid structural baseline to a fully optimized multiscale metamaterial architecture.
graph TD
%% Node Definitions
START["Start Optimization"]
PH1["Phase 1: Solid Baseline"]
PH2["Phase 2: Multiscale Loop"]
STEP{"Load Step 1 to N"}
SOLVE["Solve: Neural Solver"]
SENS["Adjoint Sensitivity Analysis"]
UPDATE["Density Update: MMA/OC"]
CONV{"Converged?"}
LAST{"Last Load Step?"}
EXPORT["Export: VTU & Scientific Visuals"]
END["End"]
%% Flow Connections
START --> PH1
PH1 --> PH2
PH2 --> STEP
STEP --> SOLVE
SOLVE --> SENS
SENS --> UPDATE
UPDATE --> CONV
CONV -- No --> SOLVE
CONV -- Yes --> LAST
LAST -- No --> STEP
LAST -- Yes --> EXPORT
EXPORT --> END
The surrogate pipeline transforms expensive unit-cell homogenization data into fast, differentiable material models.
Our PINNs learn the underlying energy potential of a lattice architecture. By deriving the stress tensor via automatic differentiation, we ensure that the surrogate remains strictly consistent with the laws of hyperelasticity.
graph LR
%% Node Definitions
E["Strain Tensor E"]
VF["Volume Fraction vf"]
MLP["HyperElasticMLP (Softplus)"]
PSI["Strain Energy Potential Psi"]
AD["JAX Auto-Diff"]
S["2nd Piola-Kirchhoff Stress S"]
STIFF["Tangent Stiffness Matrix"]
%% Logic Connections
E --> MLP
VF --> MLP
MLP --> PSI
PSI --> AD
AD --> S
S --> STIFF
HyTOM/
├── src/hytom/ # Core High-Performance Package
│ ├── macroscale/ # Nonlinear FEA, Adjoint Solvers, and Optimizers
│ ├── microscale/ # PBC Homogenization and Unit-Cell Analysis
│ ├── neural/ # PINN Architectures and Surrogate Pipelines
│ ├── geometry/ # Lattice Generation and SDF Kernels
│ └── material/ # Hyperelastic Material Registry (Ogden, Neo-Hookean)
├── hpc/ # High-Performance Computing (NSCC/Cluster) Scripts
├── workflows/ # Jupyter Notebooks and Production Entry-Points
├── tests/ # Comprehensive Pytest Suite
└── docs/ # Technical Documentation and Tutorials
-
Clone the repository:
git clone https://github.com/hithesh139/HyTOM.git cd HyTOM -
Environment Setup:
./setup_env.sh conda activate HyTOM
-
Run Optimization: Execute a multiscale beam optimization using a pre-trained surrogate:
python workflows/neural_topopt.py
HyTOM includes comprehensive verification suites. Run the test suite to verify the physics and optimization kernels:
pytest -vThis project is licensed under the MIT License.