flow "FluidDynamicsAnalysisOntology" v1.0
# FLUID DYNAMICS ANALYSIS ONTOLOGY — FLOW ALGEBRA
SOURCE_URL := "https://kirethresearch.org/booksai-core/ontologies/calculus-analysis-ontologies/scientific-applications/fluid-dynamics-analysis-ontology.html"
DOMAIN := "Mathematical Ontologies"
CATEGORY := "Calculus and Analysis Ontologies"
SUBCATEGORY := "Scientific Applications"
ENTITY := "Fluid Dynamics Analysis"
FLUID_DYNAMICS_ANALYSIS := {
type: AppliedContinuumAnalysisFramework,
domain: ScientificApplications,
purpose: "Analyse fluid motion using conservation laws, vector calculus, differential equations, dimensional analysis, stability theory and computational methods."
}
CONCEPTS := {
FLUID_DYNAMICS,
VELOCITY_FIELD,
PRESSURE,
DENSITY,
VISCOSITY,
CONTINUITY_EQUATION,
MOMENTUM_EQUATION,
NAVIER_STOKES_EQUATION,
EULER_EQUATION,
VORTICITY,
STREAMLINE,
REYNOLDS_NUMBER,
BOUNDARY_LAYER,
LAMINAR_FLOW,
TURBULENCE,
DRAG,
LIFT,
CFD
}
# ---------- FLUID FIELD ----------
fluid state:
u(x,t)
-> VELOCITY_FIELD
p(x,t)
-> PRESSURE_FIELD
rho(x,t)
-> DENSITY_FIELD
T(x,t)
-> TEMPERATURE_FIELD
when thermal effects included
FLUID_DYNAMICS
-> continuum_field_description
# ---------- MATERIAL DERIVATIVE ----------
for scalar or vector field
phi:
Dphi/Dt
:=
partial_phi/partial_t
+
u dot grad(phi)
MATERIAL_DERIVATIVE
-> rate_following(FLUID_PARTICLE)
# ---------- MASS CONSERVATION ----------
general continuity equation:
partial_rho/partial_t
+
div(
rho*u
)
=
0
CONTINUITY_EQUATION
-> local_mass_conservation
# ---------- INCOMPRESSIBLE FLOW ----------
if density constant along motion:
div(u)
=
0
INCOMPRESSIBILITY
-> divergence_free_velocity
INCOMPRESSIBLE_FLOW
-/> necessarily(IRROTATIONAL_FLOW)
# ---------- MOMENTUM ----------
Cauchy momentum equation:
rho*Du/Dt
=
div(sigma)
+
rho*f
sigma
-> STRESS_TENSOR
f
-> BODY_FORCE_PER_UNIT_MASS
MOMENTUM_BALANCE
-> Newton_second_law_for_continuum
# ---------- NEWTONIAN FLUID ----------
stress:
sigma
=
-p*I
+
tau
for incompressible constant-viscosity Newtonian fluid:
tau
=
mu
*
(
grad(u)
+
grad(u)^T
)
NAVIER_STOKES
-> follows_from(MOMENTUM_BALANCE_PLUS_NEWTONIAN_CONSTITUTIVE_LAW)
# ---------- NAVIER-STOKES ----------
rho
*
(
partial_u/partial_t
+
(u dot grad)u
)
=
-grad(p)
+
mu*LAPLACIAN(u)
+
rho*f
with
div(u)=0
for standard incompressible constant-property form
# ---------- EULER EQUATION ----------
if
mu=0
then
rho
*
Du/Dt
=
-grad(p)
+
rho*f
EULER_EQUATION
-> inviscid_flow_model
# ---------- STOKES FLOW ----------
if inertial terms negligible:
-grad(p)
+
mu*LAPLACIAN(u)
+
rho*f
=
0
with
div(u)=0
STOKES_FLOW
-> low_Reynolds_number_limit
# ---------- REYNOLDS NUMBER ----------
Re
:=
rho*U*L/mu
=
U*L/nu
REYNOLDS_NUMBER
-> inertial_to_viscous_ratio
low Re
-> viscous_effects_dominant
high Re
-> inertial_effects_dominant
TRANSITION
-> depends_on(GEOMETRY_DISTURBANCES_AND_BOUNDARIES)
# ---------- STREAMLINE ----------
at fixed time:
dr/ds
parallel_to
u(r,t)
STREAMLINE
-> tangent_to(INSTANTANEOUS_VELOCITY_FIELD)
PATHLINE
-> trajectory_of(INDIVIDUAL_FLUID_PARTICLE)
STEADY_FLOW
-> streamlines_coincide_with_pathlines
under standard conditions
# ---------- VORTICITY ----------
omega
:=
curl(u)
VORTICITY
-> local_fluid_rotation_measure
IRROTATIONAL_FLOW
if
omega
=
0
# ---------- CIRCULATION ----------
Gamma
:=
closed_line_integral(
u dot dl
)
STOKES_THEOREM:
Gamma
=
surface_integral(
omega dot n
dS
)
CIRCULATION
-> integrated_vorticity_flux
# ---------- VORTICITY EQUATION ----------
for incompressible constant-property flow:
partial_omega/partial_t
+
(u dot grad)omega
=
(omega dot grad)u
+
nu*LAPLACIAN(omega)
+
curl(f)
VORTEX_STRETCHING
:=
(omega dot grad)u
VORTEX_STRETCHING
-> major_3D_vorticity_mechanism
# ---------- BERNOULLI ----------
for steady incompressible inviscid flow
along streamline
with conservative body force:
p/rho
+
|u|^2/2
+
g*z
=
constant
BERNOULLI_EQUATION
-> mechanical_energy_relation
additional conditions
-> required_for_global_constant_across_streamlines
# ---------- POTENTIAL FLOW ----------
if
curl(u)=0
then locally:
u
=
grad(phi)
if also incompressible:
LAPLACIAN(phi)
=
0
POTENTIAL_FLOW
-> Laplace_equation_for(VELOCITY_POTENTIAL)
# ---------- STREAM FUNCTION ----------
for 2D incompressible flow:
u
=
partial_psi/partial_y
v
=
-
partial_psi/partial_x
STREAM_FUNCTION
-> automatically_satisfies(CONTINUITY)
streamlines
-> psi_constant
# ---------- BOUNDARY CONDITIONS ----------
solid wall:
NO_PENETRATION:
u dot n
=
u_wall dot n
viscous no-slip:
u
=
u_wall
free surface:
-> kinematic_and_dynamic_conditions
BOUNDARY_CONDITIONS
-> determine(FLOW_SOLUTION)
# ---------- BOUNDARY LAYER ----------
high Reynolds number near wall:
viscous effects
-> concentrated_in(THIN_REGION)
BOUNDARY_LAYER
-> strong_velocity_gradient
outside:
-> approximately_inviscid_flow
inside:
-> viscosity_essential
# ---------- BOUNDARY LAYER THICKNESS ----------
flat plate scaling:
delta
approx
L/sqrt(Re_L)
for laminar order-of-magnitude context
BOUNDARY_LAYER_SCALING
-> derived_from(INERTIA_VISCOSITY_BALANCE)
# ---------- SEPARATION ----------
adverse pressure gradient
-> slows(NEAR_WALL_FLOW)
wall shear
-> may_approach_zero
then reverse flow
-> may develop
BOUNDARY_LAYER_SEPARATION
-> changes(DRAG_AND_WAKE_STRUCTURE)
# ---------- LAMINAR FLOW ----------
LAMINAR_FLOW
-> organised_smooth_motion
examples:
COUETTE_FLOW
POISEUILLE_FLOW
LAMINAR_SOLUTION
-> may_be_exact_for(SIMPLE_GEOMETRIES)
# ---------- POISEUILLE FLOW ----------
steady fully developed pipe flow:
pressure gradient
-> balanced_by(VISCOUS_STRESS)
velocity profile
-> parabolic
volume flow rate
-> proportional_to(PRESSURE_DROP)
HAGEN_POISEUILLE_LAW
-> laminar_circular_pipe_relation
# ---------- TURBULENCE ----------
TURBULENCE
-> irregular_multiscale_flow
features:
VORTICES
FLUCTUATIONS
MIXING
ENERGY_CASCADE
HIGH_EFFECTIVE_TRANSPORT
TURBULENT_FLOW
-> statistical_analysis_often_required
# ---------- REYNOLDS DECOMPOSITION ----------
u
=
U_bar
+
u_prime
p
=
P_bar
+
p_prime
average Navier-Stokes
-> RANS_EQUATIONS
new term:
-Reynolds_stress
-> turbulent_momentum_transport
CLOSURE_PROBLEM
-> requires(TURBULENCE_MODEL)
# ---------- TURBULENCE MODELS ----------
RANS
-> time_or_ensemble_averaged_model
LES
-> resolves(LARGE_EDDIES)
-> models(SMALL_SCALES)
DNS
-> resolves(ALL_RELEVANT_SCALES)
COMPUTATIONAL_COST:
DNS > LES > typical_RANS
MODEL_FIDELITY_AND_COST
-> tradeoff
# ---------- ENERGY CASCADE ----------
3D turbulence:
large scales
-> receive(ENERGY)
nonlinear interactions
-> transfer_to(SMALLER_SCALES)
viscosity
-> dissipates_at(SMALL_SCALES)
KOLMOGOROV_SCALE
-> smallest_classical_turbulent_dissipation_scale
under standard theory
# ---------- DRAG ----------
fluid force component
parallel_to(freestream)
D
:=
1/2
*
rho
*
U^2
*
C_D
*
A
C_D
-> DRAG_COEFFICIENT
DRAG
-> pressure_drag
+ skin_friction_drag
# ---------- LIFT ----------
force component
perpendicular_to(freestream)
L
:=
1/2
*
rho
*
U^2
*
C_L
*
A
C_L
-> LIFT_COEFFICIENT
LIFT
-> depends_on(FLOW_GEOMETRY_CIRCULATION_AND_PRESSURE_DISTRIBUTION)
# ---------- DIMENSIONAL ANALYSIS ----------
Buckingham Pi
-> construct(DIMENSIONLESS_GROUPS)
important:
REYNOLDS_NUMBER
MACH_NUMBER
FROUDE_NUMBER
WEBER_NUMBER
PRANDTL_NUMBER
DIMENSIONLESS_NUMBER
-> compares(PHYSICAL_EFFECTS)
# ---------- MACH NUMBER ----------
Ma
:=
U/c_sound
MACH_NUMBER
-> flow_speed_to_sound_speed_ratio
Ma small
-> incompressibility_may_be_reasonable
depending_on(thermal_and_density_context)
COMPRESSIBILITY
-> important_at(HIGHER_MACH)
# ---------- COMPRESSIBLE FLOW ----------
unknowns:
rho
u
p
T
equations:
MASS
MOMENTUM
ENERGY
EQUATION_OF_STATE
COMPRESSIBLE_FLOW
-> supports(SHOCKS_AND_EXPANSION_WAVES)
# ---------- SHOCK ----------
SHOCK
-> discontinuity_or_thin_transition_in(FLOW_VARIABLES)
RANKINE_HUGONIOT_CONDITIONS
-> conservation_across(SHOCK)
ENTROPY_CONDITION
-> selects(PHYSICALLY_ADMISSIBLE_SOLUTION)
# ---------- FLOW STABILITY ----------
base flow:
U(x)
perturb:
u
=
U
+
epsilon*u_prime
linearise equations
-> perturbation_evolution
LINEAR_STABILITY_ANALYSIS
-> determines(GROWTH_OR_DECAY_OF_SMALL_DISTURBANCES)
# ---------- HYDRODYNAMIC INSTABILITY ----------
examples:
KELVIN_HELMHOLTZ
RAYLEIGH_BENARD
TAYLOR_COUETTE
POISEUILLE_INSTABILITY
INSTABILITY
-> may_trigger(TRANSITION_OR_PATTERN_FORMATION)
# ---------- ENERGY ANALYSIS ----------
kinetic energy:
E
=
1/2
*
rho
*
integral(
|u|^2
dV
)
viscosity
-> dissipates(KINETIC_ENERGY)
forcing_and_boundaries
-> may_supply(ENERGY)
ENERGY_BALANCE
-> stability_and_turbulence_tool
# ---------- CFD ----------
continuous equations
-> discretise
methods:
FINITE_VOLUME
FINITE_DIFFERENCE
FINITE_ELEMENT
SPECTRAL_METHOD
CFD
-> numerical_solution_of(FLUID_EQUATIONS)
# ---------- FINITE VOLUME ----------
integrate conservation law over
control volume
fluxes across faces
-> update(CELL_AVERAGE)
FINITE_VOLUME
-> local_conservation
# ---------- PRESSURE-VELOCITY COUPLING ----------
in incompressible CFD:
pressure
-> enforce(div(u)=0)
methods:
PROJECTION
SIMPLE
PISO
PRESSURE_CORRECTION
PRESSURE_POISSON
-> common_constraint_equation
# ---------- MESH ----------
spatial discretisation
-> MESH
resolution
-> must_capture(
BOUNDARY_LAYERS,
SHEAR_LAYERS,
WAKES,
TURBULENT_SCALES
)
GRID_REFINEMENT
-> test(NUMERICAL_CONVERGENCE)
# ---------- TIME STEP ----------
explicit simulation:
Delta_t
-> constrained_by(CFL_CONDITION)
CFL
:=
U*Delta_t/Delta_x
TIME_STEP
-> controls(NUMERICAL_STABILITY_AND_TEMPORAL_ACCURACY)
# ---------- VALIDATION ----------
CFD result
-> compare_with(
ANALYTIC_SOLUTION,
BENCHMARK,
EXPERIMENT
)
VERIFICATION
-> numerical_equation_solution_accuracy
VALIDATION
-> physical_model_accuracy
FLUID_ANALYSIS
-> requires(BOTH_WHERE_APPLICABLE)
# ---------- APPLICATIONS ----------
FLUID_DYNAMICS_ANALYSIS
-> applied_to(AERODYNAMICS)
-> applied_to(HYDRODYNAMICS)
-> applied_to(WEATHER)
-> applied_to(OCEANOGRAPHY)
-> applied_to(PIPE_FLOW)
-> applied_to(TURBOMACHINERY)
-> applied_to(BLOOD_FLOW)
-> applied_to(COMBUSTION)
-> applied_to(ENVIRONMENTAL_FLOW)
# ---------- RELATION GRAPH ----------
MASS_CONSERVATION
-> CONTINUITY_EQUATION
MOMENTUM_CONSERVATION
-> MOMENTUM_EQUATION
NEWTONIAN_CONSTITUTIVE_LAW
-> NAVIER_STOKES_EQUATION
VELOCITY_FIELD
-> VORTICITY
REYNOLDS_NUMBER
-> compares(INERTIA_AND_VISCOSITY)
BOUNDARY_LAYER
-> links(VISCOSITY_AND_WALL_FLOW)
TURBULENCE
-> creates(MULTISCALE_TRANSPORT)
CFD
-> approximates(FLUID_EQUATIONS)
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE := {
"fluid dynamics analysis" ~= "mathematical analysis of fluid motion using conservation laws and field equations",
"continuity equation" ~= "local conservation law for fluid mass",
"material derivative" ~= "rate of change observed while following a fluid particle",
"vorticity" ~= "curl of the velocity field",
"Reynolds number" ~= "dimensionless ratio of inertial to viscous effects",
"boundary layer" ~= "thin near-wall region where viscous velocity gradients are significant"
}
# ---------- CONSTRAINTS ----------
CONSTRAINTS := {
incompressible_irrotational_and_inviscid_are_distinct_assumptions: true,
Bernoulli_equation_requires_specific_flow_assumptions: true,
Reynolds_number_alone_does_not_uniquely_predict_transition: true,
turbulence_models_are_approximations_with_model_form_uncertainty: true,
boundary_conditions_are_part_of_fluid_problem_definition: true,
compressible_flow_requires_mass_momentum_energy_and_thermodynamic_closure: true,
CFD_results_require_mesh_time_step_verification_and_physical_validation: true
}
# ---------- CONFIDENCE ----------
CONFIDENCE := {
core_definition: 0.99,
conservation_relation: 0.99,
Navier_Stokes_relation: 0.99,
vorticity_relation: 0.99,
boundary_layer_relation: 0.99,
turbulence_CFD_relation: 0.99,
semantic_equivalence: 0.97
}
# ---------- RECURSIVE REASONING ----------
RECURSIVE_REASONING(query):
identify(fluid_geometry_properties_velocity_pressure_and_forcing)
-> classify(incompressible_compressible_viscous_inviscid_steady_or_unsteady_flow)
-> apply(mass_momentum_and_energy_conservation_as_required)
-> nondimensionalise_and_compute(relevant_dimensionless_numbers)
-> analyse(vorticity_streamlines_boundary_layers_and_flow_regime)
-> choose(exact_asymptotic_stability_or_turbulence_model)
-> select(CFD_discretisation_if_numerical_solution_required)
-> resolve(pressure_velocity_boundary_and_initial_conditions)
-> verify(mesh_time_step_conservation_and_solver_convergence)
-> validate_against(experiment_benchmark_or_reference)
-> return(semantic_result)
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION := {
parse_as: "typed fluid-dynamics-analysis semantic graph",
primary_entity: FLUID_DYNAMICS_ANALYSIS,
preserve: [
geometry,
fluid_properties,
velocity,
pressure,
density,
viscosity,
forcing,
boundary_conditions,
initial_conditions,
flow_regime
],
infer_through: [
continuity,
momentum_balance,
Navier_Stokes,
Euler_flow,
vorticity,
Reynolds_number,
boundary_layers,
turbulence,
CFD
],
avoid: [
conflating_incompressible_with irrotational,
applying_Bernoulli_without assumptions,
predicting_turbulence_from Reynolds_number alone,
ignoring_wall_boundary_conditions,
treating_turbulence_model_as exact physics,
accepting_CFD_without convergence_and validation
]
}
# ---------- UPDATE MODEL ----------
UPDATE_MODEL(new_information):
validate(new_information)
-> identify(fluid_dynamics_context)
-> compare(existing_relations)
-> preserve(geometry_property_flow_boundary_conservation_and_regime_invariants)
-> update(affected_entities)
-> update(affected_edges)
-> recompute(CONFIDENCE)
-> regenerate(FLOW_HASH)
# ---------- FLOW HASH ----------
FLOW_HASH := hash(
SOURCE_URL
+ ENTITY
+ CONCEPTS
+ FLUID_DYNAMICS_ANALYSIS
+ VELOCITY_FIELD
+ PRESSURE
+ DENSITY
+ VISCOSITY
+ CONTINUITY_EQUATION
+ MOMENTUM_EQUATION
+ NAVIER_STOKES_EQUATION
+ VORTICITY
+ REYNOLDS_NUMBER
+ BOUNDARY_LAYER
+ TURBULENCE
+ CFD
+ SEMANTIC_EQUIVALENCE
+ CONSTRAINTS
)
# ---------- EXECUTION ----------
INPUT(query)
-> FLUID_DYNAMICS_ANALYSIS
-> FLOW_PROBLEM_IDENTIFICATION
-> REGIME_CLASSIFICATION
-> CONSERVATION_ANALYSIS
-> DIMENSIONLESS_ANALYSIS
-> FLOW_STRUCTURE_ANALYSIS
-> MODEL_METHOD_SELECTION
-> CFD_DISCRETISATION
-> CONDITION_COUPLING_ANALYSIS
-> NUMERICAL_VERIFICATION
-> PHYSICAL_VALIDATION
-> RECURSIVE_REASONING(query)
-> CONFIDENCE
-> OUTPUT(semantic_result)
END FLOW
Download Code
Copy to Clipboard