Skip to content

PHOENIX

PHOENIX: Process-resolved Hybrid Omniphysics Engine for Nonlinear In-situ X-evolution

PHOENIX is a hybrid physics-based and AI-accelerated solver for simulating process-to-microstructure evolution in laser-based additive manufacturing.

Key Features

  • Multi-physics: Coupled heat transfer, fluid flow (Navier-Stokes), phase change (melting/solidification), and species transport
  • Marangoni convection: Surface-tension-driven flow from thermal and solutal gradients
  • Dissimilar metal mixing: Species transport with composition-dependent material properties (two-way coupling)
  • Local/global solver: Adaptive solver scheduling — solves only the melt pool region for most time steps, full domain periodically
  • Defect prediction: Post-simulation analysis of lack-of-fusion and keyhole porosity from max temperature field
  • OpenMP parallelization: Shared-memory parallelism for all hot loops (TDMA, discretization, source terms)
  • VTK output: Binary structured-grid VTK files for ParaView visualization

Physics

The solver models:

  • Heat transfer: Conduction with temperature-dependent properties, volumetric laser heat source (Gaussian distribution)
  • Fluid flow: Incompressible Navier-Stokes with SIMPLE algorithm on staggered grid
  • Phase change: Enthalpy-based method with Darcy-type resistance in mushy zone
  • Surface effects: Thermal Marangoni (dg/dT) and solutal Marangoni (dg/dC) stress on free surface
  • Buoyancy: Boussinesq approximation for natural convection
  • Species transport: Convection-diffusion of concentration field with molecular diffusivity
  • Powder layer: Distinct thermal properties for unconsolidated powder
  • Defect prediction: Post-simulation detection of lack-of-fusion (\(T_{max} < T_s\), incomplete melting) and keyhole porosity (\(T_{max} > T_b\), excessive vaporization) from peak temperature history within the build layer

Quick Start

cd fortran_new
bash compile.sh              # Build
bash run.sh mycase 4 &       # Run with 4 OpenMP threads

Results are written to fortran_new/result/mycase/.

Project Structure

PHOENIX/
├── fortran_new/          # Active simulation code
│   ├── main.f90          # Entry point
│   ├── mod_*.f90         # Fortran modules (one per file)
│   ├── compile.sh        # Build script
│   ├── run.sh            # Run script
│   ├── clean.sh          # Clean build artifacts
│   ├── inputfile/        # Simulation parameters
│   └── ToolFiles/        # Toolpath files (.crs)
├── legacy/               # Reference code (read-only)
├── projects/             # Task tracking
└── docs/                 # This documentation