A MATLAB solver for Bloch analysis of flow perturbations in a channel over a lattice of phononic subsurface units
This repository contains a spectral-FEM solver that performes Bloch analysis of flow perturbations in a channel with a lattice of phononic subsurface units. The code computes the Bloch dispersion relations (frequency vs. wavenumber) and mode shapes characterizing the stability characteristics of a channel flow interacting with a periodic arrangement of phononic subsurface (PSub) units. It considers a single unit cell and solves the generalized Orr-Sommerfeld equation coupled with an elastodynamics model for the surface admittance representing the PSub motion.
- Hybrid discretization: Uses Fourier modes in the streamwise and spanwise directions and Finite Elements (FE) in the wall-normal direction.
- Fluid-Structure Interaction: Fully coupled formulation linking the Orr-Sommerfeld fluid equation with a 1D PSub solid model via impedance boundary conditions.
- Metamaterial support: Capable of modeling standard Phononic Crystals (PnC) and Locally Resonant Metamaterials (MM) with internal resonators.
- Flexible geometry: Supports various lattice shapes (square, hexagon).
- Clone the repository:
git clone [https://github.com/david-roca/BlochFlow.git](https://github.com/david-roca/BlochFlow.git)- Open MATLAB and navigate to the folder.
- Add the source code to your path:
addpath(genpath('src'));
savepath;A complete example is provided in main_example.m.
If you use this solver in your work, please cite the following paper:
M.I. Hussein, D. Roca, A.R. Harris, A. Kianfar. Scatterless interferences: delay of laminar-to-turbulent flow transition by a lattice of subsurface phonons. Proceedings of the Royal Society A. 482, 20250071 (2026); https://doi.org/10.1098/rspa.2025.0771
@article{Hussein2026,
author = {Hussein, Mahmoud I. and Roca, David and Harris, Adam R. and Kianfar, Armin},
title = {Scatterless interference: Delay of laminar-to-turbulent flow transition by a lattice of subsurface phonons},
journal = {Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences},
volume = {482},
number = {2337},
pages = {20250771},
year = {2026},
issn = {1364-5021},
doi = {10.1098/rspa.2025.0771}
}