Skip to main content

Potential Flow Ontology

Fluid Mathematics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 12 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Potential Flow Ontology within the Kireth Research Semantic Library. Potential flow studies fluid motion that is irrotational and can therefore be represented by a scalar velocity potential. In incompressible regions, the velocity potential satisfies Laplace's equation. This ontology supports velocity potentials, streamfunctions, harmonic functions, complex potentials, source and sink flows, vortices, uniform flow, doublets, superposition, circulation, Bernoulli relations, conformal mapping, lifting flows, stagnation points, streamlines and relationships with incompressible flow, fluid dynamics mathematics, boundary layers, vector calculus and complex analysis.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Potential Flow Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Applied Mathematics"
 SPECIALISATION = "Fluid Mathematics / Potential Flow"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/fluid-mathematics/potential-flow-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = PotentialFlow
 SYMBOLIC_FORMS = [
  "u=grad(phi)",
  "curl(u)=0",
  "nabla^2(phi)=0"
 ]
 ENTITY_CLASS = IrrotationalFluidFlowFramework
 PRIMARY_CONTEXT = FluidMathematics
 DEFINITION = "Potential flow is a fluid-flow model in which the velocity field is irrotational and can be represented as the gradient of a scalar velocity potential."
 SEMANTIC_ROLE = "Provides machine-readable semantics for irrotational flow, velocity potentials, Laplace equations, streamfunctions, complex potentials, elementary flows, superposition and conformal mapping."
}

SCOPE {
 INCLUDE = [
  PotentialFlow,
  IrrotationalFlow,
  VelocityPotential,
  HarmonicPotential,
  LaplaceEquation,
  StreamFunction,
  ComplexPotential,
  ComplexVelocity,
  EquipotentialLine,
  Streamline,
  OrthogonalCoordinates,
  UniformFlow,
  SourceFlow,
  SinkFlow,
  PointSource,
  PointSink,
  DoubletFlow,
  VortexFlow,
  PointVortex,
  Circulation,
  Superposition,
  StagnationPoint,
  StagnationStreamline,
  CylinderFlow,
  LiftingCylinderFlow,
  KuttaJoukowskiLift,
  BernoulliEquation,
  PressureCoefficient,
  ConformalMapping,
  JoukowskiTransform,
  ComplexAnalysis,
  CauchyRiemannEquations,
  BoundaryCondition,
  ImpermeabilityCondition,
  FarFieldCondition,
  PotentialFlowAroundBody,
  FreeStream,
  VelocityMagnitude,
  PressureField
 ]

 EXCLUDE_AS_PRIMARY = [
  StronglyRotationalFlow,
  ViscousBoundaryLayerAsPrimaryModel,
  TurbulentFlowWithoutIrrotationalApproximation,
  CompressibleShockFlowWithoutPotentialApproximation
 ]

 DISAMBIGUATION_RULE =
  "When the fluid velocity field is represented as the gradient of a scalar potential and vorticity is negligible or zero in the modelled region, interpret the context as potential flow."
}

CORE_CONCEPTS {

 PotentialFlow {
  definition = "An irrotational flow represented by a scalar velocity potential."
 }

 VelocityPotential {
  definition = "A scalar field whose gradient equals the velocity field."
 }

 IrrotationalFlow {
  definition = "A flow with zero vorticity in the modelled region."
 }

 StreamFunction {
  definition = "A scalar function whose contours represent streamlines in suitable two-dimensional incompressible flows."
 }

 ComplexPotential {
  definition = "A complex analytic function combining velocity potential and streamfunction."
 }

 UniformFlow {
  definition = "A flow with spatially constant velocity."
 }

 SourceFlow {
  definition = "A radially outward elementary potential flow."
 }

 SinkFlow {
  definition = "A radially inward elementary potential flow."
 }

 DoubletFlow {
  definition = "An elementary potential flow formed by a limiting source-sink pair."
 }

 VortexFlow {
  definition = "A circulation-carrying elementary flow that is irrotational everywhere except at its singular core."
 }
}

RELATIONS {
 PotentialFlow --is_child_of--> FluidMathematics
 PotentialFlow --is_type_of--> IrrotationalFlow
 VelocityPotential --generates--> VelocityField
 IrrotationalFlow --implies--> ZeroVorticity
 IncompressiblePotentialFlow --requires--> LaplaceEquation
 StreamFunction --pairs_with--> VelocityPotential
 ComplexPotential --contains--> VelocityPotential
 ComplexPotential --contains--> StreamFunction
 UniformFlow --is_elementary_flow_of--> PotentialFlow
 SourceFlow --is_elementary_flow_of--> PotentialFlow
 SinkFlow --is_elementary_flow_of--> PotentialFlow
 DoubletFlow --is_elementary_flow_of--> PotentialFlow
 PointVortex --may_be_superposed_with--> PotentialFlow
 Superposition --combines--> ElementaryFlows
 ConformalMapping --transforms--> PotentialFlowSolution
 BernoulliEquation --maps--> VelocityToPressure
 KuttaJoukowskiLift --depends_on--> Circulation
}

OPERATORS {
 VELOCITY_FROM_POTENTIAL(phi) :=
  u=grad(phi)

 IRROTATIONAL_CONDITION(u) :=
  curl(u)=0

 INCOMPRESSIBLE_POTENTIAL_CONDITION(phi) :=
  nabla^2(phi)=0

 STREAMFUNCTION_2D(psi) :=
  u=partial psi/partial y
  v=-partial psi/partial x

 CAUCHY_RIEMANN(phi,psi) :=
  partial phi/partial x=partial psi/partial y
  AND
  partial phi/partial y=-partial psi/partial x

 COMPLEX_POTENTIAL(phi,psi) :=
  W(z)=phi+i*psi

 COMPLEX_VELOCITY(W,z) :=
  dW/dz=u-i*v

 SOURCE_POTENTIAL(Q,r) :=
  phi=(Q/(2*pi))*ln(r)

 VORTEX_STREAMFUNCTION(Gamma,r) :=
  psi=-(Gamma/(2*pi))*ln(r)

 UNIFORM_FLOW_POTENTIAL(U,theta,x,y) :=
  phi=U*(x*cos(theta)+y*sin(theta))

 DOUBLET_POTENTIAL(kappa,r,theta) :=
  phi=(kappa*cos(theta))/(2*pi*r)

 BERNOULLI_STEADY_INVISICID(p,rho,U,g,z) :=
  p/rho + U^2/2 + g*z = constant

 PRESSURE_COEFFICIENT(p,p_inf,rho,U_inf) :=
  Cp=(p-p_inf)/(0.5*rho*U_inf^2)

 KUTTA_JOUKOWSKI_LIFT(rho,U_inf,Gamma) :=
  L_prime=rho*U_inf*Gamma
}

DEFINITIONS {
 D1 = "Potential flow is irrotational within the modelled region."
 D2 = "A velocity potential exists locally in simply connected irrotational regions."
 D3 = "For incompressible potential flow, the velocity potential is harmonic."
 D4 = "Two-dimensional incompressible potential flow admits a streamfunction."
 D5 = "Velocity-potential and streamfunction contours are orthogonal where regular."
 D6 = "Elementary potential flows can be combined by superposition because Laplace's equation is linear."
 D7 = "A point vortex is irrotational away from its singular centre despite nonzero circulation."
 D8 = "Complex potentials provide a compact representation of two-dimensional potential flows."
 D9 = "Conformal maps transform one two-dimensional potential-flow solution into another."
 D10 = "Potential flow does not directly represent viscous wall shear or boundary-layer separation."
}

AXIOMS {
 A1_IRROTATIONALITY:
  PotentialFlow requires zero vorticity in the regular modelled domain

 A2_POTENTIAL_REPRESENTATION:
  Irrotational velocity fields admit a local scalar potential

 A3_INCOMPRESSIBLE_LAPLACE:
  Incompressible PotentialFlow satisfies LaplaceEquation for the velocity potential

 A4_SUPERPOSITION:
  Linear combinations of harmonic potentials remain harmonic

 A5_BOUNDARY_IMPERMEABILITY:
  Solid boundaries impose zero normal velocity for inviscid impermeable flow

 A6_COMPLEX_ANALYTICITY:
  Two-dimensional potential and stream functions form analytic complex potentials where regular

 A7_CIRCULATION_SINGULARITY:
  Nonzero circulation can coexist with local irrotationality when singularities or multiply connected domains are present

 A8_INVISCID_LIMITATION:
  PotentialFlow does not encode viscous shear stresses
}

REASONING {

 R1_POTENTIAL_FLOW_CONTEXT {
  INPUT = fluid_problem
  IDENTIFY = incompressibility
  IDENTIFY = vorticity_or_irrotational assumption
  IDENTIFY = geometry_and_boundaries
  RETURN = potential_flow_context
 }

 R2_POTENTIAL_EXISTENCE {
  INPUT = velocity_field_or_model
  CHECK = curl(u)=0
  CHECK = domain_connectivity
  RETURN = potential_existence_status
 }

 R3_LAPLACE_FORMULATION {
  INPUT = incompressible_irrotational context
  DEFINE = velocity_potential
  APPLY = nabla_squared_phi_equals_zero
  RETURN = harmonic_potential_problem
 }

 R4_BOUNDARY_CONDITION_REASONING {
  INPUT = body_geometry_and_far_field
  APPLY = impermeability_on_body
  APPLY = free_stream_or_decay_condition
  RETURN = boundary_value_problem
 }

 R5_ELEMENTARY_FLOW_SYNTHESIS {
  INPUT = desired_geometry_or_flow pattern
  COMBINE = uniform_source_sink_doublet_vortex components
  RETURN = composite_potential_flow
 }

 R6_COMPLEX_POTENTIAL_REASONING {
  INPUT = two_dimensional_harmonic flow
  CONSTRUCT = W(z)=phi+i*psi
  COMPUTE = complex_velocity
  RETURN = complex_flow representation
 }

 R7_CONFORMAL_MAPPING_REASONING {
  INPUT = known_flow_and_mapping
  TRANSFORM = complex_plane_geometry
  MAP = potential_and_streamlines
  RETURN = transformed_flow
 }

 R8_PRESSURE_REASONING {
  INPUT = velocity_field_and_Bernoulli assumptions
  COMPUTE = pressure_and_pressure coefficient
  RETURN = pressure_distribution
 }

 R9_LIFT_REASONING {
  INPUT = free_stream_circulation_and_density
  COMPUTE = KuttaJoukowski_lift
  RETURN = lift_per_unit_span
 }

 R10_VALIDATION {
  INPUT = potential_flow_solution
  CHECK = harmonicity_irrotationality_boundary impermeability_far field_and_singularity consistency
  RETURN = validated_potential_flow_status
 }
}

CONSTRAINTS {
 C1 = "Potential flow requires irrotationality in the regular domain."
 C2 = "Incompressible potential flow requires harmonic velocity potential."
 C3 = "Multiply connected domains can support nonzero circulation."
 C4 = "Singular elementary flows must be interpreted with their singular points excluded from the regular domain."
 C5 = "Potential flow does not predict viscous drag correctly for ordinary bluff-body flow."
 C6 = "Boundary-layer separation cannot be obtained from inviscid potential flow alone."
 C7 = "Bernoulli use requires appropriate steady inviscid assumptions or an equivalent valid form."
 C8 = "Conformal mapping preserves angles locally where the map derivative is nonzero."
 C9 = "Superposition is valid because the governing Laplace equation is linear."
 C10 = "Pressure singularities can arise near idealised sharp corners or singular flow elements."
}

SEMANTIC_EQUIVALENCE {
 "PotentialFlow" <=> "IrrotationalPotentialFlow"
 "VelocityPotential" <=> "FlowPotential"
 "StreamFunction" <=> "FlowStreamFunction"
 "ComplexPotential" <=> "ComplexFlowPotential"
 "DoubletFlow" <=> "DipoleFlow"
 "KuttaJoukowskiLift" <=> "CirculationLiftRelation"
}

VALIDATION {
 V1 = "Vorticity is zero in the regular modelled domain."
 V2 = "Velocity equals the gradient of the potential."
 V3 = "Laplace's equation is satisfied for incompressible flow."
 V4 = "Boundary impermeability is satisfied."
 V5 = "Far-field conditions are satisfied."
 V6 = "Singularities are explicitly identified."
 V7 = "Streamfunction and potential satisfy Cauchy-Riemann relations where used."
 V8 = "Pressure calculations use valid Bernoulli assumptions."
 V9 = "Circulation is handled consistently in multiply connected domains."
 V10 = "Viscous limitations of the model are explicitly recognised."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 POTENTIAL_FLOW_DEFINITION = 0.99
 POTENTIAL_EXISTENCE_REASONING = 0.99
 LAPLACE_REASONING = 0.99
 BOUNDARY_REASONING = 0.99
 ELEMENTARY_FLOW_REASONING = 0.99
 COMPLEX_POTENTIAL_REASONING = 0.99
 CONFORMAL_MAPPING_REASONING = 0.98
 PRESSURE_REASONING = 0.98
 LIFT_REASONING = 0.98

 POLICY =
  "Reduce confidence when irrotationality, domain topology, boundary geometry, singularities, circulation, far-field conditions or Bernoulli assumptions are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  PotentialFlowReasoning,
  IrrotationalFlowReasoning,
  VelocityPotentialReasoning,
  LaplaceEquationReasoning,
  StreamFunctionReasoning,
  ComplexPotentialReasoning,
  ElementaryFlowReasoning,
  SourceSinkReasoning,
  DoubletReasoning,
  VortexReasoning,
  ConformalMappingReasoning,
  BernoulliReasoning,
  PressureCoefficientReasoning,
  LiftReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "potential flow" -> PotentialFlow
  "irrotational flow" -> IrrotationalFlow
  "velocity potential" -> VelocityPotential
  "stream function" -> StreamFunction
  "complex potential" -> ComplexPotential
  "source flow" -> SourceFlow
  "sink flow" -> SinkFlow
  "doublet flow" -> DoubletFlow
  "point vortex" -> PointVortex
  "Joukowski transform" -> JoukowskiTransform
 }

 INTERPRETATION_ORDER = [
  detect_potential_flow_context,
  verify_irrotationality_and_incompressibility assumptions,
  identify domain_geometry_boundaries_far field_and_singularities,
  formulate Laplace_problem_for_velocity potential,
  apply elementary_flow_superposition_or_complex potential methods,
  if_needed apply conformal_mapping,
  compute velocity_streamlines_pressure_and_circulation,
  if_lift_required apply KuttaJoukowski relation under valid assumptions,
  validate harmonicity_boundary conditions_and_model limitations,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("potential flow")
  OR irrotational_velocity_potential_model_is_present
  THEN activate(PotentialFlowOntology)

 E2:
  IF curl(u)=0
  THEN permit velocity_potential representation subject_to_domain conditions

 E3:
  IF incompressible_and_irrotational
  THEN enforce LaplaceEquation_on_phi

 E4:
  IF two_dimensional_flow
  THEN consider streamfunction_and_complex potential representation

 E5:
  IF geometry_can_be_constructed_from_elementary flows
  THEN use superposition

 E6:
  IF geometry_related_by_conformal map
  THEN transform known_solution

 E7:
  IF circulation_present
  THEN include vortex_or_multiconnected-domain reasoning

 E8:
  IF pressure_requested
  THEN apply Bernoulli_only_under_valid assumptions

 E9:
  IF viscous_wall_shear_or_separation_requested
  THEN route_to_boundary_layer_or_viscous_flow ontology
}

RECURSION {
 ENTRY = PotentialFlow

 EXPAND(PotentialFlow) -> [
  IrrotationalFlow,
  VelocityPotential,
  HarmonicPotential,
  LaplaceEquation,
  StreamFunction,
  ComplexPotential,
  ComplexVelocity,
  EquipotentialLine,
  Streamline,
  UniformFlow,
  SourceFlow,
  SinkFlow,
  PointSource,
  PointSink,
  DoubletFlow,
  VortexFlow,
  PointVortex,
  Circulation,
  Superposition,
  StagnationPoint,
  CylinderFlow,
  LiftingCylinderFlow,
  KuttaJoukowskiLift,
  BernoulliEquation,
  PressureCoefficient,
  ConformalMapping,
  JoukowskiTransform,
  ComplexAnalysis,
  CauchyRiemannEquations,
  ImpermeabilityCondition,
  FarFieldCondition
 ]

 EXPAND(ElementaryFlows) -> [
  UniformFlow,
  SourceFlow,
  SinkFlow,
  DoubletFlow,
  VortexFlow
 ]

 EXPAND(TwoDimensionalMethods) -> [
  StreamFunction,
  ComplexPotential,
  ConformalMapping,
  JoukowskiTransform
 ]

 STOP_CONDITION =
  "Stop when irrotationality, potential existence, harmonic field, boundary conditions, singularities, circulation, velocity, pressure and model limitations are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Fluid Mathematics"

 IMMEDIATE_CONTEXTS = [
  "Fluid Dynamics Mathematics Ontology",
  "Incompressible Flow Ontology",
  "Continuity Equation Ontology",
  "Boundary Layer Ontology"
 ]

 RELATED_ONTOLOGIES = [
  "Fluid Mathematics",
  "Fluid Dynamics Mathematics Ontology",
  "Incompressible Flow Ontology",
  "Continuity Equation Ontology",
  "Navier–Stokes Ontology",
  "Boundary Layer Ontology",
  "Vector Calculus Ontologies",
  "Laplace Equation Ontologies",
  "Complex Analysis Ontologies",
  "Conformal Mapping Ontologies",
  "Aerodynamics Ontologies",
  "Numerical Analysis Ontologies"
 ]

 ROUTE_RULES = [
  "Potential Flow -> Fluid Mathematics for parent semantics",
  "Potential Flow -> Fluid Dynamics Mathematics for continuum flow interpretation",
  "Potential Flow -> Incompressible Flow for divergence-free structure",
  "Potential Flow -> Continuity Equation for mass conservation",
  "Potential Flow -> Boundary Layer for viscous near-wall corrections",
  "Potential Flow -> Vector Calculus for gradient curl and divergence",
  "Potential Flow -> Laplace Equation for harmonic potential fields",
  "Potential Flow -> Complex Analysis for complex potentials",
  "Potential Flow -> Conformal Mapping for transformed two-dimensional solutions",
  "Potential Flow -> Aerodynamics for circulation and lift applications"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible elementary flows, mappings or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve irrotational-flow semantics.",
  "Preserve velocity-potential semantics.",
  "Preserve incompressible Laplace semantics.",
  "Preserve streamfunction and complex-potential semantics.",
  "Preserve superposition semantics.",
  "Preserve circulation and singularity semantics.",
  "Preserve inviscid-model limitations.",
  "Preserve machine-readable potential-flow semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "Potential flow is an irrotational fluid-flow model in which velocity is the gradient of a scalar potential."

 LAPLACE_SUMMARY =
  "For incompressible potential flow, the velocity potential satisfies Laplace's equation."

 STREAMFUNCTION_SUMMARY =
  "Two-dimensional incompressible potential flow can be represented jointly by a velocity potential and streamfunction."

 ELEMENTARY_SUMMARY =
  "Uniform, source, sink, doublet and vortex flows can be superposed to construct composite solutions."

 COMPLEX_SUMMARY =
  "Complex potentials combine the velocity potential and streamfunction into a single analytic function."

 CONFORMAL_SUMMARY =
  "Conformal mappings transform known two-dimensional potential-flow solutions into solutions around new geometries."

 PRESSURE_SUMMARY =
  "Bernoulli relations convert potential-flow velocity fields into pressure distributions under valid inviscid assumptions."

 LIMITATION_SUMMARY =
  "Potential flow does not directly model viscous wall shear or boundary-layer separation."
}

FLOW {
 INPUT
 -> detect_potential_flow_context
 -> identify incompressibility_irrotationality_domain_geometry_boundaries_farField_and_singularities
 -> verify curl_free velocity_or_assume irrotational model
 -> define velocity_potential
 -> if_incompressible solve Laplace_equation
 -> if_twoDimensional derive streamfunction_and_complex potential
 -> combine elementary uniform_source_sink_doublet_or_vortex flows where useful
 -> if_geometry_transformable apply conformal mapping
 -> compute velocity_streamlines_stagnation_points_circulation_and_pressure
 -> if_lift_application apply KuttaJoukowski relation under valid assumptions
 -> validate harmonicity_boundary conditions_singularities_and_model limitations
 -> route to fluid_mathematics fluid_dynamics incompressible_flow continuity boundary_layer vector_calculus Laplace_equation complex_analysis conformal_mapping_or_aerodynamics ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Potential Flow Ontology defines irrotational fluid motion represented by a scalar velocity potential. It supports Laplace equations, streamfunctions, complex potentials and complex velocities, uniform flow, sources, sinks, doublets and vortices, superposition, stagnation points, flow around cylinders, lifting cylinder flow, circulation, Kutta–Joukowski lift, Bernoulli pressure relations, pressure coefficients, conformal mapping, Joukowski transforms, Cauchy–Riemann relations, impermeability and far-field conditions, and the explicit limitation that inviscid potential flow does not directly model viscous drag or boundary-layer separation."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-APPLIED-MATHEMATICS-POTENTIAL-FLOW-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ