linstabpy
=========
Copyright (C) 2026 École Polytechnique Fédérale de Lausanne (EPFL),
University of Campinas (UNICAMP), École Nationale Supérieure des Arts et
Métiers (ENSAM), and contributors.

This product is a Python port and derivative of LinStab2D
(https://github.com/LinStab2D/LinStab2D), copyright E. Martini and
O. T. Schmidt, licensed under GPL-3.0.

As a derivative work, linstabpy is distributed under the same license as
LinStab2D: GPL-3.0-only. See LICENSE for the full, unmodified text.

The upstream LinStab2D source tree is not bundled with linstabpy. Users
who want the upstream MATLAB code or reference base flows can clone it
themselves; see the README "Fetching reference base flows" section for
the LINSTABPY_BASEFLOW_DATA_DIR env-var override that points linstabpy
at a local upstream clone.

Files whose module docstring states "Translates <FILENAME>.m from the
MATLAB LinStab2D codebase" are direct ports or close adaptations of the
corresponding upstream MATLAB sources. Examples include:

  - src/linstabpy/mesh/mesh.py                       (DeformMesh.m)
  - src/linstabpy/baseflow/viscosity.py              (sutherland_air.m)
  - src/linstabpy/baseflow/loaders.py                (example_1_readbaseflow.m)
  - src/linstabpy/operators/coefficients.py          (getCoeffsLaminar_Cartesian.m)
  - src/linstabpy/operators/energy_norm.py           (GetCompEnergyNorm.m)
  - src/linstabpy/boundary_conditions/dirichlet.py   (BC_Dirichlet.m)
  - src/linstabpy/boundary_conditions/neumann.py     (BC_Neumann.m)

Modifications made by the linstabpy authors (2026):

  - Translation from MATLAB to Python 3.
  - Integration with PETSc/SLEPc/MUMPS sparse solvers, replacing
    MATLAB's `eigs` and built-in sparse stack.
  - Extension to fd2/fd4/fd6/fd8 SBP-MSN operators with optional
    operator dissipation.
  - JSONC-driven configuration system.
  - Test infrastructure and CI.

When using linstabpy in published work, please cite the LinStabPy
paper (Hamada et al., under revision) together with the LinStab2D
methodology paper:

  Hamada, G. Y. R., Wolf, W. R., Junqueira-Junior, C., Robinet, J.-C.
  & Frantz, R. A. S. LinStabPy: an efficient Python framework for
  compressible stability and resolvent analysis. Theor. Comput. Fluid
  Dyn. (under revision, 2026).

  Martini, E. & Schmidt, O. T. LinStab2D: stability and resolvent
  analysis of compressible viscous flows in MATLAB. Theor. Comput.
  Fluid Dyn. 38, 665-685 (2024). doi:10.1007/s00162-024-00706-0
