# Fluid dynamics ## Microsim ### Live player <div class="microsim-player"> <iframe src="https://editor.p5js.org/sciencenibber/full/sevFmMxGw" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> </div> <div class="microsim-fallback"> <img src="Microsims/thumbs/Fluid_dynamics.png" alt="Fluid_dynamics microsim poster" style="width:100%;border:1px solid #4445;border-radius:6px;"> <p><em>Live microsim (desktop) · <a href="https://editor.p5js.org/sciencenibber/sketches/sevFmMxGw">open sketch in the p5.js editor</a></em></p> </div> **Editor URL:** https://editor.p5js.org/sciencenibber/sketches/sevFmMxGw **Description (100 words):** Tracer particles drift left to right past a circular cylinder labeled L = 2a, painting streaklines that color-code particle speed (cool blue where slow, warm orange where fast). A logarithmic Reynolds-number slider sweeps the flow from Re = 0.1 to 10000 and a regime label updates live: creeping Stokes flow, steady twin-eddy attachment, Karman vortex shedding above Re = 47 (alternating crosswise wake at the Strouhal frequency 0.21 U / 2a), then transitional turbulence above Re = 300 (Perlin-noise fluctuations layered onto the wake). Three more sliders set free-stream speed, particle count, and trail length. The bottom-right HUD pins the canonical relation Re = rho U L / mu = U L / nu. ```js // ===================================================================== // Fluid_dynamics.js -- Wikitube microsim // Article: Fluid_dynamics en.wikitube.io/wiki/Fluid_dynamics // Room: Helium Pattern: E (particles, kinetic phenomena) // --------------------------------------------------------------------- // Idea: a particle-tracer microsim of incompressible 2D flow past a // circular cylinder, with the Reynolds number set by a slider. The // reader watches three named regimes appear without changing any // geometry -- only the Reynolds number changes: // // * Re < 1 creeping (Stokes) flow -- smooth, symmetric // * 1 < Re < 40 steady attached / recirculating -- twin standing eddies // * 40 < Re < ~300 Karman vortex shedding -- periodic alternating wake // * Re > ~300 transitional / turbulent wake -- chaotic, broadband // // Velocity field: ideal-fluid potential flow around a cylinder of // radius a in a free stream U along +x. In cylinder-polar (r, theta), // // u_r = U cos(theta) * (1 - a^2 / r^2) // u_theta = -U sin(theta) * (1 + a^2 / r^2) // // This is exact for inviscid flow. Real fluids add a wake that the // d'Alembert paradox (1752) showed cannot exist in inviscid theory. // We superpose the wake explicitly: // // * for Re > 47 (the Roshko / Karman onset): a periodic crosswise // shedding velocity v_shed = A * sin(2 pi f t - kx), where // f = St * U / (2a) with Strouhal St ~ 0.21 for a circular // cylinder, A grows from zero at Re_c = 47 and saturates, // decays exponentially downstream. // * for Re > 100: small-scale Perlin-noise perturbation whose // amplitude grows logarithmically with Re, representing the // broadband turbulent fluctuations that fill the wake. // // The single governing dimensionless group is the Reynolds number // // Re = rho * U * L / mu = U * L / nu // // named after Osborne Reynolds' 1883 pipe-flow paper. It controls the // entire transition sequence shown here. Reynolds' number is the // central organizing parameter of fluid dynamics, from cryogenic // helium transfer lines (where mu is tiny so even slow flow is // turbulent) to whale-scale aerodynamics. // // Visual layout (720 x 520 canvas): // * top-left: HUD title + en.wikitube.io/wiki/Fluid_dynamics subtitle // * top-right: live Re value + regime label // * center: particle tracers flow left -> right past a cylinder // drawn at (x=300, y=260), radius a = 38 px // * particles colored by speed (blue = slow, yellow/orange = fast) // * trails (short ring buffer per particle) show streaklines // * bottom-left: sliders -- Reynolds number (log), particle count, // trail length, free-stream speed // * bottom-right: canonical equation // // Conventions (Wikitube Betterfire Standard v0): // * single ARTICLE constant, single quotes // * p5.disableFriendlyErrors = true // * all non-ASCII (Greek letters, dots) live in COMMENTS ONLY; // every text() string is pure ASCII // * Energy-room palette (P5_JS_EDITOR section 4): dark BG, HOT/COLD, // STRUCT grey, TRAJ accent // ===================================================================== const ARTICLE = 'Fluid_dynamics'; const TITLE = ARTICLE.replace(/_/g, ' '); p5.disableFriendlyErrors = true; // ----- Energy room palette (P5_JS_EDITOR section 4) ------------------ const BG = 18; const FG = 240; const DIM = [240, 240, 240, 150]; const HOT = [220, 110, 60]; // warm: high-speed flow const COLD = [60, 130, 220]; // cool: low-speed flow const STRUCT = [120, 130, 150]; // cylinder, axes, gridlines const TRAJ = [240, 220, 80]; // accent: regime label const SCRATCH = [120, 120, 120, 80]; // ----- Geometry constants -------------------------------------------- const CYL_X = 300; const CYL_Y = 260; const CYL_R = 38; // cylinder radius (px). Stand-in for L. const INLET_X = 20; const OUTLET_X = 700; // ----- Flow / regime constants --------------------------------------- const RE_KARMAN = 47; // Roshko onset of vortex shedding const RE_TURB = 300; // transition to turbulent wake const STROUHAL = 0.21; // Karman vortex shedding Strouhal number // ----- Controls (assigned in setup) ---------------------------------- let reSlider; // log10(Re) in [-1, 4]: Re from 0.1 to 10000 let speedSlider; // free-stream speed U (px/s) let countSlider; // particle count let trailSlider; // trail length (frames) // ----- Particle field ------------------------------------------------- // Each particle is { x, y, trail: [{x,y}, ...] }. Trails are short // ring buffers; we cap length to trail length set by the slider. let particles = []; let targetCount = 320; // ----- Time -------------------------------------------------------- let tSim = 0; // simulated time (s), advanced by deltaTime // ===================================================================== // setup // ===================================================================== function setup() { createCanvas(720, 520); pixelDensity(2); textFont('system-ui'); // Sliders -- bottom-left column. Labels rendered manually in drawHUD. reSlider = createSlider(-1, 4, 2.0, 0.05).position(14, 430).size(180); // log10(Re) speedSlider = createSlider(40, 240, 130, 1).position(14, 462).size(180); // U (px/s) countSlider = createSlider(60, 700, 320, 10).position(14, 494).size(180); // n particles trailSlider = createSlider(1, 60, 22, 1).position(220, 430).size(140); // trail len // Seed particle field at the inlet column. for (let i = 0; i < targetCount; i++) { particles.push(makeParticle(true)); } } // ===================================================================== // Particle helpers // ===================================================================== function makeParticle(initial) { // On initial seeding, scatter particles across the canvas so the // wake doesn't need a long "warm-up" before the reader sees flow. // After respawn, particles are placed near the inlet column. const x = initial ? random(INLET_X, OUTLET_X - 40) : random(INLET_X, INLET_X + 30); const y = random(20, height - 100); return { x, y, trail: [] }; } function respawnParticle(p) { p.x = random(INLET_X, INLET_X + 30); p.y = random(20, height - 100); p.trail.length = 0; } // ===================================================================== // Velocity field // Potential flow past a cylinder + Karman shedding wake + turb noise. // ===================================================================== function velocityAt(x, y, t, U, Re) { // Cylinder-local polar. const dx = x - CYL_X; const dy = y - CYL_Y; const r2 = dx * dx + dy * dy; const r = sqrt(r2); // Inside cylinder: no flow (we'll also kill particles there). if (r < CYL_R) return { vx: 0, vy: 0, inside: true }; const a2r2 = (CYL_R * CYL_R) / r2; const ct = dx / r; // cos(theta) const st = dy / r; // sin(theta) // Potential-flow velocity in polar coords. const u_r = U * ct * (1 - a2r2); const u_th = -U * st * (1 + a2r2); // Rotate (r, theta) -> (x, y). let vx = u_r * ct - u_th * st; let vy = u_r * st + u_th * ct; // Karman vortex shedding: periodic crosswise (vy) perturbation // downstream of the cylinder, switched on smoothly at Re_c = 47. if (Re > RE_KARMAN && dx > 0) { const onset = constrain((Re - RE_KARMAN) / 80, 0, 1); const decay = exp(-dx / (10 * CYL_R)); const freq = STROUHAL * U / (2 * CYL_R); // Hz const phase = TWO_PI * freq * t - dx / (1.2 * CYL_R); const amp = 0.55 * U * onset * decay; // Confine the wake to a band of width ~ 4a around the centerline. const band = exp(-(dy * dy) / (2 * (1.8 * CYL_R) * (1.8 * CYL_R))); vy += amp * sin(phase) * band; } // Broadband turbulent fluctuation: log-growing Perlin noise // amplitude once Re > 100. Confined to the wake region downstream. if (Re > 100 && dx > -CYL_R) { const turbAmp = 0.25 * U * constrain(log(Re / 100) / log(100), 0, 1); const wakeMask = dx > 0 ? exp(-(dy * dy) / (2 * (2.4 * CYL_R) * (2.4 * CYL_R))) : 0.15; const nx = noise(x * 0.012, y * 0.012, t * 1.7) - 0.5; const ny = noise(x * 0.012 + 41, y * 0.012 + 19, t * 1.7) - 0.5; vx += 2 * turbAmp * nx * wakeMask; vy += 2 * turbAmp * ny * wakeMask; } return { vx, vy, inside: false }; } // ===================================================================== // draw // ===================================================================== function draw() { background(BG); // Read slider values once at top of draw (P5_JS_EDITOR section 4 // recommendation: do not call .value() inline in physics code). const Re = pow(10, reSlider.value()); const U = speedSlider.value(); const newN = countSlider.value(); const trailN = trailSlider.value(); const dt = min(deltaTime / 1000, 0.05); tSim += dt; // Grow / shrink particle list to match slider. while (particles.length < newN) particles.push(makeParticle(false)); if (particles.length > newN) particles.length = newN; // Advance and draw particles. drawCylinder(); drawAxesAndGrid(); drawParticles(U, Re, dt, trailN); drawHUD(); } // ===================================================================== // Drawing helpers // ===================================================================== function drawAxesAndGrid() { // Faint grid so motion reads against a steady frame. stroke(...SCRATCH); strokeWeight(1); for (let gx = 0; gx <= width; gx += 60) line(gx, 0, gx, height - 110); for (let gy = 0; gy <= height - 110; gy += 60) line(0, gy, width, gy); // Centerline through the cylinder. stroke(...STRUCT, 60); strokeWeight(1); line(0, CYL_Y, width, CYL_Y); // Inlet arrow indicator on left edge. stroke(...STRUCT); strokeWeight(2); noFill(); for (let yy = 80; yy < height - 130; yy += 40) { line(4, yy, 14, yy); line(10, yy - 3, 14, yy); line(10, yy + 3, 14, yy); } } function drawCylinder() { // Filled cylinder, thin outline. noStroke(); fill(40, 50, 65); ellipse(CYL_X, CYL_Y, CYL_R * 2, CYL_R * 2); noFill(); stroke(...STRUCT); strokeWeight(1.2); ellipse(CYL_X, CYL_Y, CYL_R * 2, CYL_R * 2); // Label noStroke(); fill(...DIM); textAlign(CENTER, CENTER); textSize(11); text('L = 2a', CYL_X, CYL_Y); } function drawParticles(U, Re, dt, trailN) { // Integrate every particle forward by dt with simple forward-Euler. // Forward-Euler is plenty for tracer visualisation; the visual // truth here is the velocity field, not the integrator. for (let p of particles) { const v = velocityAt(p.x, p.y, tSim, U, Re); if (v.inside) { respawnParticle(p); continue; } // Push current position into the trail ring buffer. p.trail.push({ x: p.x, y: p.y }); while (p.trail.length > trailN) p.trail.shift(); p.x += v.vx * dt; p.y += v.vy * dt; // Respawn if the particle has left the visible domain. if (p.x > OUTLET_X || p.y < 6 || p.y > height - 108) { respawnParticle(p); continue; } // Speed for color mapping (px/s). const speed = sqrt(v.vx * v.vx + v.vy * v.vy); const s = constrain(speed / (U * 1.6), 0, 1); const cr = lerp(COLD[0], HOT[0], s); const cg = lerp(COLD[1], HOT[1], s); const cb = lerp(COLD[2], HOT[2], s); // Trail noFill(); stroke(cr, cg, cb, 90); strokeWeight(1); beginShape(); for (let i = 0; i < p.trail.length; i++) { vertex(p.trail[i].x, p.trail[i].y); } vertex(p.x, p.y); endShape(); // Particle head noStroke(); fill(cr, cg, cb, 220); circle(p.x, p.y, 3); } } // ===================================================================== // HUD // ===================================================================== function regimeLabel(Re) { if (Re < 1) return 'creeping (Stokes) flow'; if (Re < 40) return 'steady attached / twin eddies'; if (Re < RE_KARMAN) return 'about to shed (near onset)'; if (Re < RE_TURB) return 'Karman vortex shedding'; return 'transitional / turbulent wake'; } function drawHUD() { // Top-left: title + Wikitube URL (Betterfire Standard rule 2 + 3). noStroke(); fill(FG); textAlign(LEFT, TOP); textSize(22); text(TITLE, 14, 12); fill(...DIM); textSize(12); text('Wikitube microsim . en.wikitube.io/wiki/Fluid_dynamics', 14, 40); // Top-right: live Re + regime label. const Re = pow(10, reSlider.value()); textAlign(RIGHT, TOP); textSize(13); fill(FG); text('Re = ' + nfRe(Re), width - 14, 12); fill(...TRAJ); textSize(12); text(regimeLabel(Re), width - 14, 32); fill(...DIM); textSize(10); text('drag sliders below', width - 14, 50); // Slider labels (above each slider, since createSlider has no label). fill(...DIM); textAlign(LEFT, BOTTOM); textSize(11); text('log10(Re): ' + nf(reSlider.value(), 1, 2), 14, 426); text('U (free-stream speed, px/s): ' + speedSlider.value(), 14, 458); text('particle count: ' + countSlider.value(), 14, 490); text('trail length: ' + trailSlider.value(), 220, 426); // Bottom-right: canonical equation (Betterfire Standard rule 4). textAlign(RIGHT, BOTTOM); fill(FG); textSize(13); text('Re = rho * U * L / mu = U * L / nu [Reynolds 1883]', width - 14, height - 10); } // Pretty-print Re across 0.1 .. 10000 with reasonable significant digits. function nfRe(Re) { if (Re < 1) return nf(Re, 0, 2); if (Re < 100) return nf(Re, 0, 1); return str(round(Re)); } // ===================================================================== // End of Fluid_dynamics.js -- Wikitube microsim, Helium room, Pattern E. // ===================================================================== ``` ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Fluid_dynamics.json (2026-07-30T02:09:12Z) --> `ASHRAE` · `ASHRAE_Handbook` · `ASTM_International` · `Absorption-compression_heat_pump` · `Absorption_refrigerator` · `Acoustics` · `Adhesion` · `Adolf_Eugen_Fick` · `Aerodynamics` · `Aeronautics` · `Air-mixing_plenum` · `Air_Conditioning,_Heating_and_Refrigeration_Institute` · `Air_Movement_and_Control_Association` · `Air_barrier` · `Air_changes_per_hour` · `Air_conditioning` · `Air_door` · `Air_filter` · `Air_flow_meter` · `Air_handler` · `Air_ioniser` · `Air_purifier` · `Air_source_heat_pump` · `Airbus_A300` · `Aircraft` · `Airfoil` · `Alfvén_Mach_number` · `American_Physical_Society` · `Analytical_mechanics` · `Anchor` · `Antifreeze` · `Applied_physics` · `Aquastat` · `Archimedes'_principle` · `Archimedes_number` · `Architectural_acoustics` · [[Architectural_engineering]] · `Architectural_technologist` · `Aspect_ratio` · `Astrophysical_fluid_dynamics` · `Astrophysics` · `Atmosphere` · `Atmospheric_physics` · `Atomic,_molecular,_and_optical_physics` · `Atomic_physics` · `Attic_fan` · `Atwood_number` · `Augustin-Louis_Cauchy` · `Automatic_balancing_valve` · `Autonomous_building` · `Average` · `BACnet` · `BSRIA` · `Back_boiler` · `Bagnold_number` · `Bake-out` · `Balanced_flow` · `Barrier_pipe` · `Basic_research` · `Bejan_number` · `Bending` · `Bernoulli's_principle` · `Biophysics` · `Biot_number` · `Blaise_Pascal` · `Blast_damper` · `Blood` · `Blower_door` · `Bodenstein_number` · `Body_force` · `Boeing_747` · `Boiler` · `Boundary_layer` · `Boussinesq_approximation_(buoyancy)` · `Boyle's_law` · `Branches_of_physics` · `Brinkman_number` · `Building_Research_Establishment` · `Building_automation` · `Building_envelope` · `Building_information_modeling` · `Building_insulation_material` · `Building_science` · [[Building_services_engineering]] · `Buoy` · `Buoyancy` · `Capillary_action` · `Capillary_number` · `Carbon_dioxide_sensor` · `Cauchy_momentum_equation` · `Cauchy_number` · `Celestial_mechanics` · `Central_heating` · `Central_solar_heating` · `Centrifugal_fan` · `Ceramic_heater` · `Chandrasekhar_number` · `Charles's_law` · `Chartered_Institution_of_Building_Services_Engineers` · `Chemical_kinetics` · `Chemical_physics` · `Chilled_beam` · `Chilled_water` · `Chiller` · `Chromatography` · `Classical_electromagnetism` · `Classical_mechanics` · `Classical_physics` · `Claude-Louis_Navier` · `Clausius–Duhem_inequality` · `Clean_air_delivery_rate` · `Clifford_Truesdell` · `Cohesion_(chemistry)` · `Combustion` · `Compatibility_(mechanics)` · `Compressibility` · `Compressible_flow` · `Compressor` · `Computational_fluid_dynamics` · `Computational_physics` · `Condensate_pump` · `Condensed_matter_physics` · `Condenser_(heat_transfer)` · `Condensing_boiler` · `Conservation_of_energy` · `Conservation_of_mass` · `Constant_air_volume` · `Constitutive_equation` · `Contact_mechanics` · `Continuity_equation` · `Continuum_mechanics` · `Control_valve` · `Convection` · `Convection_heater` · `Coolant` · `Cooling_tower` · `Coriolis_force` · `Cross_ventilation` · `Crystallography` · `D'Alembert's_paradox` · `Damköhler_numbers` · `Damper_(flow)` · `Daniel_Bernoulli` · `Darcy's_law` · `Darcy_number` · `Dean_number` · `Deborah_number` · `Dedicated_outdoor_air_system` · `Deep_energy_retrofit` · `Deep_water_source_cooling` · `Deformation_(physics)` · `Dehumidifier` · `Demand_controlled_ventilation` · [[Density]] · `Detached_eddy_simulation` · `Dilution_(equation)` · `Dimensionless_numbers_in_fluid_mechanics` · `Dimensionless_quantity` · `Direct_numerical_simulation` · `Displacement_ventilation` · `District_cooling` · `District_heating` · `Divergence_theorem` · `Domestic_energy_consumption` · `Drag_(physics)` · `Dry_dock` · `Duct_(flow)` · `Duct_leakage_testing` · `Dukhin_number` · `Dynamic_pressure` · `Eckert_number` · `Economizer` · `Eddy_(fluid_dynamics)` · `Ekman_number` · `Elasticity_(physics)` · `Electric_heating` · `Electromagnetism` · `Electrorheological_fluid` · `Electrostatic_precipitator` · `Emulsion` · [[Energy]] · `Energy_conservation` · [[Engineering]] · [[Engineering_physics]] · `Enthalpy` · `Entrance_length_(fluid_dynamics)` · [[Environmental_engineering]] · `Euler_equations_(fluid_dynamics)` · `Euler_number_(physics)` · `Evaporative_cooler` · `Evaporator` · `Evgeny_Lifshitz` · `Expansion_tank` · `Experimental_physics` · `Eötvös_number` · `Fan_(machine)` · `Fan_coil_unit` · `Fan_filter_unit` · `Fan_heater` · `Ferrofluid` · `Fick's_laws_of_diffusion` · `Field_(physics)` · `Finite_strain_theory` · `Fire_damper` · `Fireplace` · `Fireplace_insert` · `Fireproofing` · `Firestop` · `First_law_of_thermodynamics` · `First_law_of_thermodynamics_(fluid_mechanics)` · `Flow_measurement` · `Flow_separation` · `Flow_velocity` · `Flue` · `Fluid` · `Fluid_mechanics` · `Fluid_parcel` · `Fluid_power` · `Fluidics` · [[Force]] · `Forced-air` · `Forced-air_gas` · [[Fracture_mechanics]] · `Free_cooling` · `Free_surface` · `Freeze_stat` · `Freon` · `Frictional_contact_mechanics` · `Froude_number` · `Fume_hood` · `Galilei_number` · `Gas` · `Gas_constant` · `Gas_detector` · `Gas_heater` · `Gasoline_heater` · `Gay-Lussac's_law` · `General_relativity` · `Geodynamics` · `Geometrical_optics` · `Geophysical_fluid_dynamics` · `Geophysics` · `George_Batchelor` · `Glossary_of_HVAC_terms` · `Glossary_of_nautical_terms_(A–L)` · `Glossary_of_nautical_terms_(M–Z)` · `Gradient` · `Graetz_number` · `Graham's_law` · `Grashof_number` · `Grease_duct` · `Grille_(architecture)` · `Ground-coupled_heat_exchanger` · `Ground_source_heat_pump` · `Görtler_vortices` · `HEPA` · `HVAC_control_system` · `Hagen_number` · `Hagen–Poiseuille_equation` · `Heat_exchanger` · `Heat_flux` · `Heat_pipe` · `Heat_pump` · `Heat_pump_and_refrigeration_cycle` · `Heat_recovery_ventilation` · [[Heat_transfer]] · `Heating,_ventilation,_and_air_conditioning` · `Heating_film` · `Heating_system` · `High_efficiency_glandless_circulating_pump` · `History_of_physics` · `Home_energy_monitor` · `Honey` · `Hooke's_law` · `Horace_Lamb` · `Hubert_Chanson` · `Humidifier` · `Humidistat` · `Humidity` · `Hybrid_heat` · `Hydraulic_machinery` · `Hydraulics` · `Hydrodynamic_stability` · `Hydrology` · `Hydronic_balancing` · `Hydronics` · `Hydrostatics` · `Hypersonic_speed` · `Ice_navigation` · `Ice_storage_air_conditioning` · `Ideal_gas_law` · `Incompressible_flow` · `Indoor_air_quality` · `Infiltration_(HVAC)` · `Infinitesimal` · `Infinitesimal_strain_theory` · `Infrared_heater` · `Infrared_thermometer` · `Institute_of_Refrigeration` · `Integral` · `International_Institute_of_Refrigeration` · `International_Organization_for_Standardization` · `Inverter_compressor` · `Inviscid_flow` · `Iribarren_number` · [[Isaac_Newton]] · `Jacques_Charles` · `Joseph_Louis_Gay-Lussac` · `Kammback` · `Kapitza_number` · `Kerosene_heater` · `Keulegan–Carpenter_number` · `Kitchen_exhaust_cleaning` · `Kitchen_ventilation` · `Knot` · `Knudsen_number` · `Laminar_flow` · `Laplace_number` · `Large_eddy_simulation` · `Latent_heat` · `Latex` · `Laurence_Clancy` · `Leonhard_Euler` · `Lev_Landau` · `Lewis_number` · `Linear_elasticity` · `Liquid` · `List_of_publications_in_physics` · `LonWorks` · `Louver` · `Lubrication_theory` · `Mach_number` · `Magnetic_Prandtl_number` · `Magnetic_Reynolds_number` · `Magnetohydrodynamics` · `Magnetorheological_fluid` · `Man_overboard_rescue_turn` · `Marangoni_number` · `Maritime_law` · `Maritime_pilot` · `Maritime_studies` · `Mass` · `Mass_flow_rate` · `Mass_transfer` · `Material_derivative` · `Material_failure_theory` · [[Materials_science]] · `Mathematical_physics` · `Maxwell's_equations` · `Mechanical,_electrical,_and_plumbing` · [[Mechanical_engineering]] · `Mechanical_room` · `Medical_physics` · `Meteorology` · `Methane` · `Method_of_matched_asymptotic_expansions` · `Microgeneration_(energy)` · `Minimum_efficiency_reporting_value` · `Minkowski_spacetime` · `Mixed-mode_ventilation` · `Mixing_(process_engineering)` · `Modern_physics` · `Molar_mass` · `Molecular_physics` · `Moment_(physics)` · `Momentum` · `Mooring` · `Morton_number` · [[Naval_architecture]] · `Navier–Stokes_equations` · `Navigation` · `Nebula` · [[Newton's_laws_of_motion]] · `Newtonian_fluid` · `No-slip_condition` · `Nobel_Prize_in_Physics` · `Noise_control` · `Non-Newtonian_fluid` · `Non-equilibrium_thermodynamics` · `Nuclear_physics` · `Nuclear_weapon_design` · `Nusselt_number` · `Oceanography` · `Ohnesorge_number` · `Oil_heater` · `OpenTherm` · `Optics` · `Outgassing` · `Outline_of_astrophysics` · `Outline_of_fluid_dynamics` · `Packaged_terminal_air_conditioner` · `Particle_physics` · `Pascal's_law` · `Passage_planning` · `Passive_cooling` · `Passive_daytime_radiative_cooling` · `Passive_house` · `Passive_smoking` · `Passive_ventilation` · `Petroleum` · `Philosophy_of_physics` · `Physical_chemistry` · `Physical_oceanography` · `Physical_optics` · [[Physics]] · `Physics_education` · `Physics_education_research` · [[Plasma_(physics)]] · `Plasticity_(physics)` · `Plenum_space` · `Pneumatics` · `Polymer` · [[Porous_medium]] · `Potential_flow` · `Prandtl_number` · `Pressure` · `Pressure_gradient` · `Pressure_measurement` · `Pressurisation_ductwork` · `Process_duct_work` · `Programmable_communicating_thermostat` · `Programmable_thermostat` · `Propeller_walk` · `Propulsion` · `Psychrometrics` · `Péclet_number` · `Quantum_information_science` · [[Quantum_mechanics]] · `Quasi-geostrophic_equations` · `Radiant_heating_and_cooling` · `Radiator_(heating)` · `Radiator_reflector` · `Radon_mitigation` · `Raised_floor` · `Rayleigh_number` · `Rayleigh–Taylor_instability` · `RealMedia` · `Recuperator` · `Refrigerant` · `Refrigerant_reclamation` · `Refrigeration` · `Register_(air_and_heating)` · `Relativistic_mechanics` · `Renewable_heat` · `Reversing_valve` · `Reynolds-averaged_Navier–Stokes_equations` · `Reynolds_decomposition` · [[Reynolds_number]] · `Reynolds_transport_theorem` · `Rheology` · `Rheometer` · `Rheometry` · `Richardson_number` · `Riemannian_geometry` · `Robert_Boyle` · `Robert_Hooke` · `Room_air_distribution` · `Room_temperature` · `Ropework` · `Roshko_number` · `Rossby_number` · `Rouse_number` · `Run-around_coil` · `Sail_switch` · `Sailing` · `Saline_water` · `Schmidt_number` · `Scholarpedia` · `Scroll_compressor` · `Scruton_number` · `Sea_anchor` · `Seamanship` · [[Second_law_of_thermodynamics]] · `Sensible_heat` · `Sheet_Metal_and_Air_Conditioning_Contractors'_National_Association` · `Sherwood_number` · `Shields_parameter` · `Ship-to-ship_cargo_transfer` · `Ship_stability` · `Sick_building_syndrome` · `Sir_George_Stokes,_1st_Baronet` · `Slender-body_theory` · `Slope` · `Smart_fluid` · `Smart_thermostat` · `Smoke_canopy` · `Smoke_damper` · `Smoke_exhaust_ductwork` · `Solar-assisted_heat_pump` · `Solar_air_heat` · `Solar_chimney` · `Solar_combisystem` · `Solid-state_physics` · [[Solid_mechanics]] · `Space_heater` · `Special_relativity` · `Speed_of_sound` · `Sphere` · `Spoiler_(aeronautics)` · `Stack_effect` · `Stagnation_point` · `Stagnation_pressure` · `Standard_temperature_and_pressure` · `Stanton_number` · `Static_pressure` · `Stationary_process` · `Statistical_mechanics` · `Stokes'_theorem` · `Stokes_flow` · `Stokes_number` · `Strain_(mechanics)` · `Strain_rate` · `Streamlines,_streaklines,_and_pathlines` · `Stress_(mechanics)` · `Strouhal_number` · `Stuart_number` · `Supersonic_speed` · `Surface_force` · `Surface_tension` · `Taylor_number` · `Temperature` · `Testing,_adjusting,_balancing` · `Theoretical_physics` · `Thermal_comfort` · `Thermal_destratification` · `Thermal_expansion_valve` · `Thermal_insulation` · `Thermal_mass` · `Thermal_wheel` · [[Thermodynamics]] · `Thermosiphon` · `Thermostat` · `Thermostatic_radiator_valve` · `Thomas_Graham_(chemist)` · `Time_derivative` · `Timeline_of_fundamental_physics_discoveries` · `Transonic` · `Transport_phenomena` · `Trickle_vent` · `Trombe_wall` · `TurboSwing` · `Turbomachinery` · `Turbulence` · `Turbulent_Prandtl_number` · `Turning_vanes` · `Ultra-low_particulate_air` · `Underfloor_air_distribution` · `Underfloor_heating` · `Uniform_Mechanical_Code` · `Ursell_number` · `Vapor-compression_refrigeration` · `Vapor_barrier` · `Vapour_pressure_of_water` · `Variable_air_volume` · `Variable_refrigerant_flow` · [[Velocity]] · `Ventilation_(architecture)` · `Viscoelasticity` · [[Viscosity]] · `Viscous_stress_tensor` · `Volatile_organic_compound` · `Vortex` · `Vortex_generator` · `Vortex_shedding` · `Vorticity` · `Walter_Noll` · `Warm_Spaces` · `Watchkeeping` · `Water` · `Water_heat_recycling` · [[Wayback_Machine]] · [[Weather_forecasting]] · `Weber_number` · `Weissenberg_number` · `White_noise` · `Whole-house_fan` · `Windcatcher` · `Womersley_number` · `Wood-burning_stove` · `World_Refrigeration_Day` · `Zone_valve` ## From the Real GENERATIVE library (beauty pass) ![Fluid dynamics animation](https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/T%C3%BAnel_de_viento%2C_v%C3%B3rtice_de_Von_Karman.gif/310px-T%C3%BAnel_de_viento%2C_v%C3%B3rtice_de_Von_Karman.gif) *Fluid dynamics — animation hotlinked from Wikimedia Commons (via the Real G.E.N.E.R.A.T.I.V.E. course library, Engineering room). [Details & license](https://commons.wikimedia.org/wiki/File:T%C3%BAnel_de_viento%2C_v%C3%B3rtice_de_Von_Karman.gif).* ![Fluid dynamics image](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Teardrop_shape.svg/300px-Teardrop_shape.svg.png) *Fluid dynamics — image hotlinked from Wikimedia Commons (via the Real G.E.N.E.R.A.T.I.V.E. course library, Engineering room). [Details & license](https://commons.wikimedia.org/wiki/File:Teardrop_shape.svg).* > In physics, physical chemistry and engineering, fluid dynamics is a subdiscipline of fluid mechanics that describes the flow of fluids — liquids and gases. It has several subdisciplines, including aerodynamics (the study of air and other gases in motion) and hydrodynamics (the study of liquids in motion). ([Wikipedia](https://en.wikipedia.org/wiki/Fluid_dynamics)) <!-- BEAUTY-PASS-MEDIA:END --> <!-- SIGN-SYSTEMS:START --> **Semiotic universals** (the notations and alphabet letters this article speaks — each opens its canonical card): flow · energy · noise · spiral · exponential. Index: the glyph gallery · SEMIOTICS PORTAL. <!-- SIGN-SYSTEMS:END --> > **Room:** [[Helium]] · **Status:** ✅ shipped ## Overview Fluid dynamics is the branch of fluid mechanics that describes the motion of fluids — liquids, gases, and plasmas — and the forces that govern that motion. It comprises two principal subfields: hydrodynamics, treating liquid flow, and aerodynamics, treating gas flow, especially air around solid bodies. The governing equations descend from conservation laws: continuity (conservation of mass), the Navier–Stokes equations (conservation of momentum for a viscous Newtonian fluid), and an [[Energy|energy]] equation. For inviscid flow, Euler's equations (1757) suffice; for low-speed steady streamlines, Bernoulli's equation links pressure and [[Velocity|velocity]] along a streamline. The single most important dimensionless number is the [[Reynolds_number|Reynolds number]], Re = rho v L / mu, whose magnitude separates orderly laminar flow from chaotic turbulence and whose use Osborne Reynolds demonstrated in his 1883 pipe experiment. Ludwig Prandtl's 1904 boundary-layer concept showed how [[Viscosity|viscosity]], however small, controls drag and separation near solid walls; Kolmogorov's 1941 scaling laws set the modern theory of turbulent energy cascade. Practical fluid dynamics underpins aircraft and rocket aerodynamics, weather and climate models, oceanography, blood and respiratory flow, pipe and pump design, cryogenic helium transfer lines, helium [[Leak_detection|leak detection]] by mass spectrometry, and superfluid two-fluid behavior below the lambda point. Computational fluid dynamics solves the governing equations numerically on discrete grids and is now standard across aerospace, automotive, energy, and [[Biomedical_engineering|biomedical engineering]]. The discipline spans continuum mechanics, statistical [[Physics|physics]], and high-performance computing. ## See also - Room hub: [[Helium]] - p5.js Editor conventions: P5 JS EDITOR - Wiki root: MAIN --- *Scaffolded by `generative-microsim` from row 77 of the Helium sheet on 2026-05-12T08:10:19Z.* <!-- BEAUTY-PASS-MEDIA:START --> <!-- CRAFT-LINK:START g12 --> *Built to the [[WT!P5_js_Microsim_Master_Class|p5.js Master Class]].* <!-- CRAFT-LINK:END --> <!-- COMPENDIUMLINK:BEGIN g19 — generated from _registry/plans/THURY_COMPENDIUM_SECTIONS.md; do not hand-edit inside --> **Part of the [[WT!Thury_Hydrodynamics_Compendium|Thury Hydrodynamics Compendium]]** — main article for section 1, *Fluid dynamics*. Related sections: [[Hydrostatics]] · [[Turbulence]] · [[Hydrodynamic_stability]] · [[Geophysical_fluid_dynamics]] · [[Bernoulli's_principle]] · [[Viscosity]]. <!-- COMPENDIUMLINK:END --> <!-- THURYSIM:BEGIN g21 — Thury Compendium microsim (framework build, specs/sims/Fluid_dynamics.json); do not hand-edit inside --> **Microsim — three.js (Wikitube framework):** *Fluid dynamics* <div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/thury/Fluid_dynamics.html" data-title="Fluid dynamics"></div> *Built from `MICROSIM_GUIDE/specs/sims/Fluid_dynamics.json`; part of the [[WT!Thury_Hydrodynamics_Compendium|Thury Hydrodynamics Compendium]] set.* <!-- THURYSIM:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Fluid_dynamics) : [Wikitube](https://en.wikitube.io/wiki/Fluid_dynamics) ## Previous hub tags Tree parents: [[Dynamical_system]] · [[Monte_Carlo_method]] · [[Self-organization]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*