Imports
/- Copyright (c) 2026 Florian Wiesner. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Florian Wiesner, Michał Mogielnicki -/ module public import Physlib.FluidDynamics.FluidFlow.Basic public import Physlib.SpaceAndTime.Space.Derivatives.Div

Incompressible fluid flows

i. Overview

This module defines general incompressibility predicates for fluid flows. These predicates are not tied to a particular equation of motion, so they can be reused later by incompressible Navier-Stokes, incompressible Euler, and Bernoulli-style developments.

ii. Key results

    FluidFlow.incompressibilityResidual : The divergence of the velocity field.

    FluidFlow.ClassicalIncompressible : Incompressibility guarded by velocity differentiability.

    FluidFlow.SmoothIncompressible : Incompressibility with globally differentiable velocity.

    FluidFlow.classicalIncompressible_of_smoothIncompressible : Smooth incompressibility implies classical incompressibility.

iii. Table of contents

    A. Incompressibility predicates

iv. References

@[expose] public section

A. Incompressibility predicates

A classical incompressible flow has divergence-free velocity at points where the velocity field is differentiable.

def ClassicalIncompressible (d : ) (fluid : FluidFlow d) : Prop := t x, DifferentiableAt (fluid.velocity t) x incompressibilityResidual d fluid t x = 0

A smooth incompressible flow has globally differentiable velocity and vanishing incompressibility residual everywhere.

def SmoothIncompressible (d : ) (fluid : FluidFlow d) : Prop := ( t, Differentiable (fluid.velocity t)) t x, incompressibilityResidual d fluid t x = 0

A smooth incompressible flow is classically incompressible.

lemma classicalIncompressible_of_smoothIncompressible (d : ) (fluid : FluidFlow d) : SmoothIncompressible d fluid ClassicalIncompressible d fluid := d:fluid:FluidFlow dSmoothIncompressible d fluid ClassicalIncompressible d fluid d:fluid:FluidFlow dhSmooth:SmoothIncompressible d fluidt:Timex:Space da✝:DifferentiableAt (fluid.velocity t) xincompressibilityResidual d fluid t x = 0 All goals completed! 🐙