Scholarly effort of IAMReX ========================== IAMReX represents a significant enhancement to the baseline IAMR (Incompressible Adaptive Mesh Refinement) code, introducing advanced multi-physics capabilities for complex multi-phase flow and fluid-solid interaction simulations. This analysis identifies and summarizes the key innovations and contributions that distinguish IAMeX from the standard IAMR implementation. I. Two Enhanced Time Advancement Methods ---------------------------------------- IAMeX introduces two distinct time advancement methods, each targeting specific multi-physics scenarios: 1. Two-Phase Flow with Level Set Method ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - **Function**: ``NavierStokes::advance_semistaggered_twophase_ls()`` - **Purpose**: Sharp interface tracking for immiscible two-phase flows - **Key Features**: - Level set field evolution with both non-conservative and conservative advection schemes - Level-by-level reinitialization functions for conserving mass and avoid shape distortion - Interface-dependent density and viscosity updates - Heaviside function computation for material properties 2. Fluid-Structure Interaction with Diffused Immersed Boundary Method (DIBM) and Particle Collision ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - **Function**: ``NavierStokes::advance_semistaggered_fsi_diffusedib()`` - **Purpose**: Robust fluid-solid coupling without mesh conformity - **Key Features**: - Particle-based immersed boundary implementation - 6-DOF rigid body dynamics - Collision detection and resolution II. Level Set Method -------------------- Enhanced State Management ^^^^^^^^^^^^^^^^^^^^^^^^^ - **Extended State Vector**: ``NUM_STATE_MAX`` increased from 4 to 5 components - **Level Set Component**: ``phicomp`` for interface representation - **Signed Distance**: Maintained through reinitialization Key Computational Functions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``NavierStokesBase::get_phi_half_time()``: Get the mid point Level set function - ``NavierStokesBase::phi_to_heavi()``: Level set to Heaviside function conversion - ``NavierStokesBase::phi_to_sgn0()``: Level set to Sign function conversion - ``NavierStokesBase::heavi_to_rhoormu()``: Material property mapping - ``NavierStokesBase::reinit()``: Distance function maintenance using reinitialization - ``NavierStokesBase::reinitialization_sussman()``: Reinitialization with Sussman's method - ``NavierStokesBase::reinitialization_consls``: Reinitialization for the conservative LS method - ``NavierStokesBase::rk_first_reinit()``: First RK step during reinitialization - ``NavierStokesBase::rk_second_reinit()``: Second RK step during reinitialization - ``NavierStokesBase::mass_fix()``: Mass fix subroutine during reinitialization Features(**Level Set**) ^^^^^^^^^^^^^^^^^^^^^^^ - **Sharp Interface**: Maintains interface thickness of 1.5~2 grid cells - **Mass Conservation**: Conservative advection schemes - **Reinitialization**: Periodic distance function correction III. DIBM and Particle Collision -------------------------------- Core Architecture of DIBM ^^^^^^^^^^^^^^^^^^^^^^^^^ Primary Classes (**Particle**) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``mParticle``: Main particle management class - ``mParticleContainer``: AMReX-based parallel particle container - ``kernel``: Individual particle data structure - ``Particles``: High-level particle system interface Particle Data Structure (**Kernel**) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: cpp struct kernel { RealVect location, velocity, omega; // 6-DOF state RealVect ib_force, ib_moment; // Fluid forces/moments RealVect Fcp, Tcp; // Collision forces/moments Real radius, rho, Vp; // Physical properties int ml; // Number of markers Vector phiK, thetaK; // Spherical marker distribution } Key Computational functions(**IBM**) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Fluid-Solid Coupling ~~~~~~~~~~~~~~~~~~~~~~~ - ``mParticle::InteractWithEuler()``: Master coupling routine - Iterative sub-cycling for stability - Configurable iteration counts (``loop_ns``, ``loop_solid``) - Force/moment accumulation and averaging 2. Velocity Transfer (Eulerian → Lagrangian) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``mParticle::VelocityInterpolation()``: Grid-to-particle velocity mapping - **Delta Function Types**: - ``FOUR_POINT_IB``: 4-point kernel for smooth transfer - ``THREE_POINT_IB``: 3-point kernel for efficiency - **Implementation**: GPU-compatible parallel loops 3. Force Computation and Spreading ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``mParticle::ComputeLagrangianForce()``: No-slip constraint enforcement - ``mParticle::ForceSpreading()``: Particle-to-grid force distribution - **Volume Integration**: Marker-based volume fraction calculations 4. Particle Dynamics ~~~~~~~~~~~~~~~~~~~~ - ``mParticle::UpdateParticles()``: 6-DOF motion integration - **Constraint Handling**: - Translation locks (``TL[i]``): 0=fixed, 1=prescribed, 2=free - Rotation locks (``RL[i]``): Similar constraint system - **Collision Integration**: Seamless coupling with collision forces - ``nodal_phi_to_pvf()``: Particle volume fraction calculation Features(**IBM**) ^^^^^^^^^^^^^^^^^ Marker Distribution ~~~~~~~~~~~~~~~~~~~ - **Spherical Coverage**: Fibonacci spiral distribution for uniform sampling - **Adaptive Resolution**: Marker count based on particle size and grid resolution - **Volume Conservation**: Distributed volume elements for accurate integration GPU Acceleration ~~~~~~~~~~~~~~~~ - **CUDA Kernels**: All particle operations GPU-compatible - **Parallel Reductions**: Efficient force/moment summation - **Memory Coalescing**: Optimized data layouts for performance Core Architecture of Particle Collision ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Primary Classes (**Collision**) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``ParticleCollision``: Main collision management - ``CollisionParticle``: Particle representation for collisions - ``CollisionPair``: Collision pair structure - ``CollisionCell``: Spatial hashing cell Collision Detection Algorithm ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - **Spatial Hashing**: O(N) complexity using background grid - **Neighbor Search**: 27-cell stencil for proximity detection - **Pair Generation**: Systematic collision pair identification DKT Model for Collision Resolution ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: cpp F_collision = k * (overlap)² * n_normal - **Spring Constant**: Configurable collision stiffness - **Overlap Calculation**: Geometric intersection detection - **Force Direction**: Normal to contact surface Integration with Fluid Forces ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - **Force Superposition**: Collision forces added to fluid forces - **Momentum Conservation**: Proper force-moment coupling - **Stability**: Sub-cycling for collision time scales IV. Technical Innovations of IAMReX ----------------------------------- Multi-Physics Integration ^^^^^^^^^^^^^^^^^^^^^^^^^ - **Unified Multi-Physics Framework**: Single platform for diverse interface methods - **Modular Design**: Independent activation of physics models - **Unified Interface**: Common API across different methods Computational Efficiency and Memory Management ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - **Efficient Storage**: Compact particle data structures - **GPU-Accelerated Particles**: High-performance particle operations - **Load Balancing**: Dynamic particle redistribution - **Communication Optimization**: Minimal inter-processor data exchange Numerical Stability ^^^^^^^^^^^^^^^^^^^ - **Sub-cycling**: Independent time stepping for different physics - **Iterative Coupling**: Multiple fluid-solid interaction iterations Research Applications ^^^^^^^^^^^^^^^^^^^^^ 1. **Dense Particulate Flows**: Fluidized beds, sediment transport 2. **Multiphase Systems**: Bubble dynamics, droplet collisions 3. **Fluid-Structure Interaction**: Flexible structures, bio-fluid mechanics 4. **Industrial Processes**: Mixing, separation, crystallization V. Summary ---------- IAMeX represents a substantial advancement in computational multi-physics, transforming the single-phase IAMR code into a comprehensive platform for complex fluid-solid interaction simulations. The integration of diffused immersed boundary methods, particle collision dynamics, and multiple interface tracking approaches provides researchers with unprecedented capabilities for studying real-world multi-physics phenomena while maintaining computational efficiency and scalability. The modular design and robust implementation ensure that IAMeX serves as both a production simulation tool and a research platform for developing next-generation multi-physics algorithms. Its contributions to the computational fluid dynamics community extend beyond mere feature additions, representing fundamental advances in the numerical treatment of complex interfacial and particulate flows.