Feature Matrix

Status labels used here:

  • Implemented: present in current source and covered by tests/examples.
  • Partial: available with notable scope limits.
  • Missing: not implemented in current package.
  • Experimental: available but intended as exploratory/developer path.

1. Models

FeatureStatusNotes / evidence
Steady monophasic StokesImplementedStokesModelMono, assemble_steady!, solve_steady!; core test coverage in test/runtests.jl
Unsteady monophasic StokesImplementedassemble_unsteady!, solve_unsteady!; BE/CN/theta paths tested
Moving-boundary monophasic StokesImplementedMovingStokesModelMono, assemble_unsteady_moving!; tests in test/moving_boundary_stokes_tests.jl
Fixed-interface two-phase StokesImplementedStokesModelTwoPhase; geometry/traction/profile tests in test/runtests.jl and examples/08..12
Moving-interface two-phase StokesMissingno two-phase moving-geometry constructor/path in source
Rigid-body FSI split couplingImplementedstep_fsi!, simulate_fsi!; test/fsi_tests.jl, examples/17..23
Rigid-body FSI strong couplingImplementedstep_fsi_strong!; strong-coupling testset + examples/22
Rotational rigid-body FSIPartial2D rotational path and 3D rotational state updates are present; practical 3D rotation validation is narrower than 2D
Multi-body FSIMissingsingle-body wrapper design
Deformable-body FSIMissingrigid-body-only scope

2. Dimensionality

CapabilityStatusNotes / evidence
2D monophasicImplementedextensive tests + examples
3D monophasicImplementedexamples 07, 21
2D two-phase fixed interfaceImplementedtests + examples 08..11
3D two-phase fixed interfacePartialexample 12 demonstrates path; broad regression coverage is lighter than 2D
2D moving monoImplementedtests in moving_boundary_stokes_tests.jl, examples 13, 14, 25
3D moving monoPartial07 exercises 3D moving path; narrower validation set than 2D
2D FSIImplementedmultiple tests/examples
3D FSIPartialsplit/strong sphere examples exist (21, 22), but coverage is less broad than 2D

3. Boundary Conditions

BC featureStatusNotes / evidence
Velocity DirichletImplementedcore assembly + tests
Velocity NeumannImplementedassembly path + tests
Velocity periodicImplementedoperator periodic flags + examples/tests
Traction (vector)Implementedrow overwrite path + BC regression tests
PressureOutletImplementedspecial traction form + dedicated tests/examples
DoNothingImplementedzero-traction specialization + tests
SymmetryImplementedside-level free-slip/symmetry row path + tests
Cut/interface Dirichlet velocityImplemented_cut_values Dirichlet path
Cut/interface Neumann velocityMissingexplicitly rejected (ArgumentError)
Cut/interface periodic velocityMissingexplicitly rejected (ArgumentError)

4. Pressure / Nullspace Control

FeatureStatusNotes / evidence
Pin gaugeImplementedPinPressureGauge, tested row replacement
Mean gaugeImplementedMeanPressureGauge, active-volume weighted test
Optional side pressure BC (bc_p)Implementedsupported with compatibility checks
Pressure BC compatibility rulesImplementedside-level conflicts with traction/symmetry enforced

5. Postprocessing

FeatureStatusNotes / evidence
Embedded boundary stressImplementedembedded_boundary_stress
Embedded boundary tractionImplementedembedded_boundary_traction
Integrated forceImplementedintegrated_embedded_force
Pressure/viscous splitImplementedreturned by embedded_boundary_quantities
TorqueImplementedscalar 2D / vector 3D path in postprocessing
Postprocessing on two-phase modelMissingcurrent exported implementation is for StokesModelMono

6. Validation Coverage

Validation familyStatusNotes / evidence
MMS (mono)Implementedexamples/01/04/05/24, multiple testsets
Planar Couette (two-phase)Implementedexamples/09, testset in runtests.jl
Planar Poiseuille (two-phase)Implementedexamples/10, testset in runtests.jl
Oscillatory Couette (two-phase)Implementedexamples/11
Moving-body verificationImplementedexamples/13/14/25 + moving tests
Drag/force verificationImplementedpostprocessing tests + examples/12/21
FSI split vs strong comparisonImplementedexamples/22, strong-coupling testset
3D sphere runsImplementedexamples/07/21/22

7. Documentation Coverage (This PR)

AreaStatusNotes
Theory/models pageImplementedstokes.md
Algorithms pageImplementedalgorithms.md
BC/gauge semantics pageImplementedboundary_conditions.md
FSI pageImplementedfsi.md
Postprocessing pageImplementedpostprocessing.md
API reference pageImplementedapi.md with expanded symbol coverage
Examples/verification mapImplementedexamples.md
Developer notesImplementeddeveloper_notes.md

Known Gaps / Next Steps

  1. Add broader 3D regression coverage for two-phase and rotational FSI paths.
  2. Add dedicated multi-body/contact/deformable-body roadmap docs when relevant.
  3. If two-phase moving interface is added, expand matrix and examples accordingly.
  4. Add optional postprocessing utilities for two-phase models if needed.