{"id":100184,"date":"2026-02-15T20:25:35","date_gmt":"2026-02-15T20:25:35","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100184"},"modified":"2026-04-05T15:37:19","modified_gmt":"2026-04-05T15:37:19","slug":"pipe-flow-velocity","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bn\/calculators\/pipe-flow-velocity\/","title":{"rendered":"Pipe Flow Velocity Calculator | v=4Q\/(\u03c0d\u00b2) | Vibromera"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Pipe Flow Velocity Calculator\",\"alternateName\":[\"Flow Velocity Calculator\",\"Pipe Velocity Calculator\"],\"description\":\"Free online pipe flow velocity calculator. v = 4Q\/(\u03c0d\u00b2). Reynolds number, velocity limits, pipe schedule reference.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/pipe-flow-velocity\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2024-01-01\",\"dateModified\":\"2025-02-15\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"Flow velocity calculation\",\"Reynolds number\",\"Velocity limit warnings\",\"Pipe schedule reference\",\"Metric and Imperial units\",\"URL parameter sharing\",\"Calculation history\"]}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"How do I calculate flow velocity in a pipe?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use v = 4Q\/(\u03c0d\u00b2), where Q is volumetric flow rate in m\u00b3\/s and d is pipe inner diameter in meters. Convert L\/min to m\u00b3\/s by dividing by 60,000.\"}},\n{\"@type\":\"Question\",\"name\":\"What are recommended pipe velocities for hydraulic systems?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Suction lines: 0.5\u20131.5 m\/s. Pressure lines: 3\u20136 m\/s. Return lines: 2\u20134 m\/s. For water systems: 1\u20133 m\/s.\"}},\n{\"@type\":\"Question\",\"name\":\"What happens if pipe velocity is too high?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Excessive velocity causes noise, vibration, pipe erosion, high pressure drop, and potential cavitation on suction lines.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the Reynolds number and why does it matter?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Reynolds number Re = vD\/\u03bd determines whether flow is laminar (<2300), transitional (2300\u20134000), or turbulent (>4000). This affects friction factor and pressure drop calculations.\"}},\n{\"@type\":\"Question\",\"name\":\"How does viscosity affect flow velocity?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Viscosity doesn't change the velocity for a given flow rate, but it affects the Reynolds number, which determines the flow regime and friction losses.\"}}\n]}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Pipe Flow Velocity Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/pipe-flow-velocity\/\"}\n]}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&#038;family=JetBrains+Mono:wght@400;500;600&#038;family=Fraunces:opsz,wght@9..144,700;9..144,800&#038;display=swap\" rel=\"stylesheet\">\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\n\n<style>\n:root {\n    --vc-bg: #f4f1ec;\n    --vc-surface: #ffffff;\n    --vc-surface-alt: #f8f6f2;\n    --vc-ink: #1a1a1a;\n    --vc-ink-secondary: #5a5650;\n    --vc-ink-muted: #8a857e;\n    --vc-accent: #c85a2a;\n    --vc-accent-hover: #b04d22;\n    --vc-accent-light: #fdf0ea;\n    --vc-blue: #2a5c8c;\n    --vc-blue-light: #eaf1f8;\n    --vc-green: #2a7a4b;\n    --vc-green-light: #eaf8ef;\n    --vc-yellow: #a67c00;\n    --vc-yellow-light: #fef9e8;\n    --vc-red: #b91c1c;\n    --vc-red-light: #fef2f2;\n    --vc-border: #d9d4cc;\n    --vc-border-light: #e8e4dd;\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\n    --vc-radius: 8px;\n    --vc-radius-lg: 12px;\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\n    --vc-display: 'Fraunces', Georgia, serif;\n}\n\n.vc-calculator {\n    font-family: var(--vc-font);\n    font-size: 15px;\n    line-height: 1.65;\n    color: var(--vc-ink);\n    max-width: 960px;\n    margin: 0 auto;\n    padding: 20px 16px 40px;\n    -webkit-font-smoothing: antialiased;\n}\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\n.vc-header::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:80px; height:3px; background:var(--vc-accent); border-radius:2px; }\n.vc-header-eyebrow { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--vc-accent); margin:0 0 12px; }\n.vc-header-title { font-family:var(--vc-display); font-size:clamp(24px,4vw,36px); font-weight:800; line-height:1.15; color:var(--vc-ink); margin:0 0 16px; letter-spacing:-0.02em; }\n.vc-header-subtitle { font-size:15px; color:var(--vc-ink-secondary); margin:0 auto 20px; max-width:600px; }\n.vc-badges { display:inline-flex; gap:8px; flex-wrap:wrap; justify-content:center; }\n.vc-badge { font-family:var(--vc-mono); font-size:11px; font-weight:500; padding:4px 10px; border-radius:4px; background:var(--vc-surface); border:1px solid var(--vc-border); color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\n.vc-card { background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); box-shadow:var(--vc-shadow); overflow:hidden; margin-top:32px; }\n\n\/* \u2500\u2500 UNIT TOGGLE \u2500\u2500 *\/\n.vc-unit-bar { display:flex; border-bottom:1px solid var(--vc-border-light); background:var(--vc-surface-alt); }\n.vc-unit-btn { flex:1; padding:12px; border:none; background:transparent; font-family:var(--vc-font); font-size:13px; font-weight:600; color:var(--vc-ink-muted); cursor:pointer; transition:all 0.2s; position:relative; }\n.vc-unit-btn:hover { color:var(--vc-ink-secondary); background:rgba(200,90,42,0.04); }\n.vc-unit-btn.vc-active { color:var(--vc-accent); background:var(--vc-surface); }\n.vc-unit-btn.vc-active::after { content:''; position:absolute; bottom:-1px; left:16px; right:16px; height:2px; background:var(--vc-accent); border-radius:1px 1px 0 0; }\n\n\/* \u2500\u2500 FORM \u2500\u2500 *\/\n.vc-form { padding:24px; }\n.vc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\n@media(max-width:600px) { .vc-form-grid { grid-template-columns:1fr; } }\n.vc-field { display:flex; flex-direction:column; }\n.vc-field-full { grid-column: 1 \/ -1; }\n.vc-label { font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--vc-ink-secondary); margin-bottom:6px; }\n.vc-label-hint { font-weight:400; text-transform:none; letter-spacing:0; color:var(--vc-ink-muted); font-size:11px; }\n.vc-select, .vc-input { width:100%; padding:10px 12px; border:1.5px solid var(--vc-border); border-radius:6px; font-family:var(--vc-font); font-size:14px; color:var(--vc-ink); background:var(--vc-surface); transition:border-color 0.15s, box-shadow 0.15s; }\n.vc-select { padding-right:36px; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='none' stroke='%235a5650' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 10px center; }\n.vc-select:focus, .vc-input:focus { outline:none; border-color:var(--vc-accent); box-shadow:0 0 0 3px rgba(200,90,42,0.12); }\n.vc-select:hover, .vc-input:hover { border-color:var(--vc-ink-muted); }\n\n\/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n.vc-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--vc-border-light); }\n.vc-presets-label { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); width:100%; margin-bottom:2px; }\n.vc-preset-btn { padding:5px 12px; font-family:var(--vc-font); font-size:12px; font-weight:500; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-preset-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 RESULTS \u2500\u2500 *\/\n.vc-results { border-top:1px solid var(--vc-border-light); background:var(--vc-surface-alt); padding:0; max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1), padding 0.3s; }\n.vc-results.vc-visible { max-height:3000px; padding:24px; }\n.vc-results-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }\n.vc-results-title { font-family:var(--vc-display); font-size:20px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-copy-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface); font-family:var(--vc-font); font-size:12px; font-weight:500; color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-copy-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }\n.vc-copy-btn.vc-copied { background:var(--vc-green-light); border-color:var(--vc-green); color:var(--vc-green); }\n\n.vc-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }\n@media(max-width:500px) { .vc-result-grid { grid-template-columns:1fr; } }\n.vc-rcard { background:var(--vc-surface); border:1px solid var(--vc-border-light); border-radius:var(--vc-radius); padding:16px; transition:transform 0.2s; }\n.vc-rcard:hover { transform:translateY(-1px); }\n.vc-rcard-primary { border-color:var(--vc-accent); border-width:2px; background:linear-gradient(135deg, #fdf6f2 0%, var(--vc-surface) 100%); grid-column:1 \/ -1; }\n.vc-rcard-label { font-family:var(--vc-mono); font-size:10px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); margin-bottom:4px; }\n.vc-rcard-value { font-family:var(--vc-mono); font-size:22px; font-weight:600; color:var(--vc-ink); line-height:1.2; }\n.vc-rcard-primary .vc-rcard-value { font-size:30px; color:var(--vc-accent); }\n.vc-rcard-unit { font-size:14px; font-weight:400; color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 WARNING BOX (inline in results) \u2500\u2500 *\/\n.vc-vel-warning { margin-top:12px; padding:12px 16px; border-radius:6px; font-size:13px; font-weight:500; }\n.vc-vel-ok { background:var(--vc-green-light); color:var(--vc-green); border-left:3px solid var(--vc-green); }\n.vc-vel-high { background:var(--vc-red-light); color:var(--vc-red); border-left:3px solid var(--vc-red); }\n.vc-vel-low { background:var(--vc-yellow-light); color:var(--vc-yellow); border-left:3px solid var(--vc-yellow); }\n\n\/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n.vc-section { margin-top:24px; border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); background:var(--vc-surface); box-shadow:var(--vc-shadow); overflow:hidden; }\n.vc-section-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border:none; background:transparent; cursor:pointer; font-family:var(--vc-font); text-align:left; transition:background 0.15s; }\n.vc-section-toggle:hover { background:var(--vc-surface-alt); }\n.vc-section-toggle-text { display:flex; align-items:center; gap:10px; }\n.vc-section-icon { font-size:20px; line-height:1; }\n.vc-section-title { font-family:var(--vc-display); font-size:18px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-section-chevron { width:20px; height:20px; color:var(--vc-ink-muted); transition:transform 0.3s; flex-shrink:0; }\n.vc-section.vc-open .vc-section-chevron { transform:rotate(180deg); }\n.vc-section-body { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }\n.vc-section.vc-open .vc-section-body { max-height:20000px; }\n.vc-section-inner { padding:0 24px 24px; border-top:1px solid var(--vc-border-light); }\n\n\/* \u2500\u2500 THEORY \u2500\u2500 *\/\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\n.vc-theory h3:first-child { margin-top:20px; }\n.vc-theory p { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 10px; }\n.vc-theory ul, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\n.vc-theory li { margin-bottom:5px; }\n.vc-formula-box { background:var(--vc-surface-alt); border:2px solid var(--vc-border); border-radius:6px; padding:14px 20px; font-family:var(--vc-mono); font-size:16px; font-weight:500; text-align:center; margin:14px 0; color:var(--vc-ink); overflow-x:auto; }\n.vc-info-box { background:var(--vc-blue-light); border-left:3px solid var(--vc-blue); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-info-box p { margin:0; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-warning-box { background:var(--vc-yellow-light); border-left:3px solid var(--vc-yellow); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-example-box { background:var(--vc-surface-alt); border:1px solid var(--vc-border-light); border-radius:6px; padding:16px; margin:14px 0; }\n.vc-example-title { font-family:var(--vc-mono); font-size:13px; font-weight:600; color:var(--vc-accent); margin-bottom:8px; }\n.vc-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }\n.vc-table th, .vc-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\n.vc-table th { background:var(--vc-surface-alt); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\n.vc-table tr:nth-child(even) { background:var(--vc-surface-alt); }\n@media(max-width:600px) { .vc-table { font-size:12px; } .vc-table th, .vc-table td { padding:8px; } }\n\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\n.vc-faq-list { display:flex; flex-direction:column; gap:8px; margin-top:20px; }\n.vc-faq-item { border:1px solid var(--vc-border-light); border-radius:6px; overflow:hidden; }\n.vc-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:none; background:var(--vc-surface-alt); cursor:pointer; font-family:var(--vc-font); font-size:15px; font-weight:600; color:var(--vc-ink); text-align:left; transition:background 0.15s; }\n.vc-faq-q:hover { background:#ede9e3; }\n.vc-faq-chevron { width:16px; height:16px; color:var(--vc-ink-muted); flex-shrink:0; transition:transform 0.25s; }\n.vc-faq-item.vc-open .vc-faq-chevron { transform:rotate(180deg); }\n.vc-faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s; }\n.vc-faq-item.vc-open .vc-faq-a { max-height:1200px; }\n.vc-faq-a-inner { padding:14px 16px; border-top:1px solid var(--vc-border-light); font-size:14px; color:var(--vc-ink-secondary); }\n.vc-faq-a-inner p { margin:0 0 8px; }\n.vc-faq-a-inner p:last-child { margin-bottom:0; }\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; }\n.vc-faq-a-inner li { margin-bottom:3px; }\n\n\/* \u2500\u2500 RELATED \u2500\u2500 *\/\n.vc-related { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }\n.vc-related-link { display:inline-block; padding:8px 16px; font-family:var(--vc-font); font-size:13px; font-weight:600; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); border:1px solid var(--vc-border); border-radius:var(--vc-radius); text-decoration:none; transition:all 0.15s; }\n.vc-related-link:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 PROMO \u2500\u2500 *\/\n.vc-promo { margin-top:24px; padding:20px; background:linear-gradient(135deg, var(--vc-accent-light), var(--vc-surface)); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); display:flex; align-items:center; gap:16px; }\n.vc-promo-text { flex:1; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-promo-text strong { color:var(--vc-ink); }\n.vc-promo-link { padding:8px 20px; font-size:13px; font-weight:700; color:#fff; background:var(--vc-accent); border-radius:var(--vc-radius); text-decoration:none; white-space:nowrap; transition:background 0.15s; }\n.vc-promo-link:hover { background:var(--vc-accent-hover); }\n\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n.vc-footer { text-align:center; padding:32px 16px; font-size:13px; color:var(--vc-ink-muted); }\n.vc-footer a { color:var(--vc-accent); text-decoration:none; }\n.vc-footer a:hover { text-decoration:underline; }\n.vc-footer-links { margin-top:8px; font-size:12px; }\n.vc-footer-links a { margin:0 8px; }\n\n\/* \u2500\u2500 PRINT \u2500\u2500 *\/\n@media print {\n    .vc-section-body { max-height:none!important; }\n    .vc-faq-a { max-height:none!important; }\n    .vc-results { max-height:none!important; padding:24px!important; }\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\n}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-pipe-flow-velocity\">\n\n<!-- Header -->\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Pipe Flow Velocity Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Calculate flow velocity v = 4Q\/(\u03c0d\u00b2), Reynolds number, and check against recommended velocity limits for hydraulic and water systems.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">v = 4Q\/(\u03c0d\u00b2)<\/span>\n        <span class=\"vc-badge\">Re = vD\/\u03bd<\/span>\n        <span class=\"vc-badge\">Velocity Limits<\/span>\n        <span class=\"vc-badge\">Pipe Schedule<\/span>\n    <\/div>\n<\/header>\n\n<!-- Calculator Card -->\n<div class=\"vc-card\">\n    <div class=\"vc-unit-bar\">\n        <button type=\"button\" class=\"vc-unit-btn vc-active\" data-system=\"metric\">Metric (L\/min, mm, m\/s)<\/button>\n        <button type=\"button\" class=\"vc-unit-btn\" data-system=\"imperial\">Imperial (GPM, in, ft\/s)<\/button>\n    <\/div>\n\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\n        <div class=\"vc-form-grid\">\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-flow\">Flow Rate <span class=\"vc-label-hint\" id=\"vc-flow-hint\">(L\/min)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-flow\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 60\" value=\"60\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-dia\">Pipe Inner Diameter <span class=\"vc-label-hint\" id=\"vc-dia-hint\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-dia\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 25\" value=\"25\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-visc\">Kinematic Viscosity <span class=\"vc-label-hint\">(cSt = mm\u00b2\/s)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-visc\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 32\" value=\"32\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-line-type\">Line Type<\/label>\n                <select class=\"vc-select\" id=\"vc-line-type\">\n                    <option value=\"pressure\" selected>Pressure line (3\u20136 m\/s)<\/option>\n                    <option value=\"return\">Return line (2\u20134 m\/s)<\/option>\n                    <option value=\"suction\">Suction line (0.5\u20131.5 m\/s)<\/option>\n                    <option value=\"water\">Water system (1\u20133 m\/s)<\/option>\n                <\/select>\n            <\/div>\n        <\/div>\n\n        <!-- Presets -->\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"20\" data-d=\"15\" data-nu=\"32\" data-lt=\"pressure\">20 L\/min \u00d815 oil<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"60\" data-d=\"25\" data-nu=\"32\" data-lt=\"pressure\">60 L\/min \u00d825 oil<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"200\" data-d=\"50\" data-nu=\"46\" data-lt=\"pressure\">200 L\/min \u00d850 oil<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"100\" data-d=\"32\" data-nu=\"1\" data-lt=\"water\">100 L\/min \u00d832 water<\/button>\n        <\/div>\n    <\/form>\n\n    <!-- Results -->\n    <div class=\"vc-results\" id=\"vc-results\">\n        <div class=\"vc-results-head\">\n            <h2 class=\"vc-results-title\">Results<\/h2>\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg>\n                Copy\n            <\/button>\n        <\/div>\n        <div class=\"vc-result-grid\">\n            <div class=\"vc-rcard vc-rcard-primary\">\n                <div class=\"vc-rcard-label\">Flow Velocity<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-vel\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Velocity (ft\/s)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-vel-ft\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Reynolds Number<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-re\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Flow Regime<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-regime\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Cross-Section Area<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-area\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Volume per Meter<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-vol\">\u2014<\/div>\n            <\/div>\n        <\/div>\n        <div id=\"vc-vel-warning\"><\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory & Reference -->\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udcd8<\/span>\n            <span class=\"vc-section-title\">Theory &amp; Formulas<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Flow Velocity Formula<\/h3>\n            <p>The mean flow velocity in a circular pipe is derived from the continuity equation Q = v \u00d7 A:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n            <ul>\n                <li><strong>v<\/strong> \u2014 mean flow velocity (m\/s)<\/li>\n                <li><strong>Q<\/strong> \u2014 volumetric flow rate (m\u00b3\/s)<\/li>\n                <li><strong>d<\/strong> \u2014 pipe inner diameter (m)<\/li>\n                <li><strong>A<\/strong> \u2014 pipe cross-sectional area (m\u00b2)<\/li>\n            <\/ul>\n\n            <h3>Reynolds Number<\/h3>\n            <p>The Reynolds number determines the flow regime \u2014 laminar, transitional, or turbulent:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <ul>\n                <li><strong>Re &lt; 2300<\/strong> \u2014 Laminar flow (smooth, orderly)<\/li>\n                <li><strong>2300 \u2264 Re \u2264 4000<\/strong> \u2014 Transitional (unstable)<\/li>\n                <li><strong>Re &gt; 4000<\/strong> \u2014 Turbulent flow (chaotic, higher friction)<\/li>\n            <\/ul>\n\n            <h3>Recommended Velocity Limits<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Line Type<\/th><th>Velocity (m\/s)<\/th><th>Velocity (ft\/s)<\/th><th>Notes<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>Hydraulic suction<\/td><td>0.5 \u2013 1.5<\/td><td>1.6 \u2013 4.9<\/td><td>Avoid cavitation at pump inlet<\/td><\/tr>\n                    <tr><td>Hydraulic pressure<\/td><td>3.0 \u2013 6.0<\/td><td>9.8 \u2013 19.7<\/td><td>Up to 7 m\/s for short runs<\/td><\/tr>\n                    <tr><td>Hydraulic return<\/td><td>2.0 \u2013 4.0<\/td><td>6.6 \u2013 13.1<\/td><td>Low-pressure, larger pipes acceptable<\/td><\/tr>\n                    <tr><td>Water supply<\/td><td>1.0 \u2013 3.0<\/td><td>3.3 \u2013 9.8<\/td><td>Noise limit ~2.5 m\/s in buildings<\/td><\/tr>\n                    <tr><td>Steam (saturated)<\/td><td>20 \u2013 40<\/td><td>66 \u2013 131<\/td><td>High velocity typical for steam<\/td><\/tr>\n                    <tr><td>Compressed air<\/td><td>6 \u2013 15<\/td><td>20 \u2013 49<\/td><td>Higher velocity = more pressure drop<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <h3>Pipe Schedule Reference \u2014 ID from OD and Wall Thickness<\/h3>\n            <p>Common steel pipe sizes (Schedule 40) with outer diameter, wall thickness, and inner diameter:<\/p>\n            <table class=\"vc-table\">\n                <thead><tr><th>Nominal<\/th><th>OD (mm)<\/th><th>Wall (mm)<\/th><th>ID (mm)<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>DN15 (\u00bd\u2033)<\/td><td>21.3<\/td><td>2.77<\/td><td>15.8<\/td><\/tr>\n                    <tr><td>DN20 (\u00be\u2033)<\/td><td>26.7<\/td><td>2.87<\/td><td>20.9<\/td><\/tr>\n                    <tr><td>DN25 (1\u2033)<\/td><td>33.4<\/td><td>3.38<\/td><td>26.6<\/td><\/tr>\n                    <tr><td>DN32 (1\u00bc\u2033)<\/td><td>42.2<\/td><td>3.56<\/td><td>35.1<\/td><\/tr>\n                    <tr><td>DN40 (1\u00bd\u2033)<\/td><td>48.3<\/td><td>3.68<\/td><td>40.9<\/td><\/tr>\n                    <tr><td>DN50 (2\u2033)<\/td><td>60.3<\/td><td>3.91<\/td><td>52.5<\/td><\/tr>\n                    <tr><td>DN65 (2\u00bd\u2033)<\/td><td>73.0<\/td><td>5.16<\/td><td>62.7<\/td><\/tr>\n                    <tr><td>DN80 (3\u2033)<\/td><td>88.9<\/td><td>5.49<\/td><td>77.9<\/td><\/tr>\n                    <tr><td>DN100 (4\u2033)<\/td><td>114.3<\/td><td>6.02<\/td><td>102.3<\/td><\/tr>\n                    <tr><td>DN150 (6\u2033)<\/td><td>168.3<\/td><td>7.11<\/td><td>154.1<\/td><\/tr>\n                    <tr><td>DN200 (8\u2033)<\/td><td>219.1<\/td><td>8.18<\/td><td>202.7<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <h3>Practical Example<\/h3>\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 Hydraulic Pressure Line<\/div>\n                <p><strong>Given:<\/strong> Q = 60 L\/min, Pipe ID = 25 mm, Oil viscosity = 32 cSt<\/p>\n                <p>Convert: Q = 60 \/ 60000 = 0.001 m\u00b3\/s, d = 0.025 m<\/p>\n                <p>A = \u03c0\/4 \u00d7 0.025\u00b2 = 4.909 \u00d7 10\u207b\u2074 m\u00b2<\/p>\n                <p>v = 0.001 \/ 4.909\u00d710\u207b\u2074 = <strong>2.04 m\/s<\/strong><\/p>\n                <p>Re = 2.04 \u00d7 0.025 \/ (32 \u00d7 10\u207b\u2076) = <strong>1,592<\/strong> \u2192 Laminar<\/p>\n                <p>Velocity of 2.04 m\/s is within recommended range for pressure lines (3\u20136 m\/s is optimal but 2 m\/s is acceptable).<\/p>\n            <\/div>\n\n            <div class=\"vc-warning-box\">\n                <p style=\"margin:0;font-size:14px;color:var(--vc-ink-secondary);\"><strong>\u26a0\ufe0f Note:<\/strong> The calculated velocity is the mean velocity across the pipe cross-section. Actual velocity varies from zero at the wall to maximum at the center (parabolic profile for laminar flow).<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related Calculators -->\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\n            <span class=\"vc-section-title\">Related Calculators<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-related\">\n                <a class=\"vc-related-link\" href=\"\/calculators\/pipe-diameter-flow-rate\/\">Pipe Diameter from Flow Rate<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/pipe-pressure-drop\/\">Pipe Pressure Drop<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/reynolds-number-calculator\/\">Reynolds Number<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/valve-flow-coefficient\/\">Valve Kv\/Cv<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- FAQ -->\n<div class=\"vc-section\" id=\"vc-sec-faq\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\u2753<\/span>\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Promo -->\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional field balancing instruments and software. Used in 50+ countries.\n    <\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\n<!-- Footer -->\n<footer class=\"vc-footer\">\n    <p>\u00a9 2024\u20132025 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\n    <p style=\"font-size:12px;margin-top:4px;\">Flow velocity formula: v = 4Q\/(\u03c0d\u00b2). Last updated: February 2025<\/p>\n    <div class=\"vc-footer-links\">\n        <a href=\"\/calculators\/engineering-calculators\/\">All Calculators<\/a>\n        <a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a>\n    <\/div>\n<\/footer>\n\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\n<script>\n(function() {\n    'use strict';\n\n    var SLUG = 'pipe-flow-velocity';\n    var unitSystem = 'metric';\n    var LPM2M3S = 1 \/ 60000;\n    var GPM2M3S = 6.309e-5;\n    var MM2M = 0.001;\n    var IN2M = 0.0254;\n    var MPS2FPS = 3.28084;\n\n    function $(id) { return document.getElementById(id); }\n    function fmt(n, d) {\n        if (isNaN(n) || !isFinite(n)) return '\u2014';\n        var f = n.toFixed(d === undefined ? 2 : d);\n        return f.replace(\/(\\.\\d*?)0+$\/, '$1').replace(\/\\.$\/, '');\n    }\n    function fmtInt(n) {\n        if (isNaN(n) || !isFinite(n)) return '\u2014';\n        return Math.round(n).toLocaleString('en-US');\n    }\n\n    \/* \u2500\u2500 VELOCITY LIMITS \u2500\u2500 *\/\n    var velLimits = {\n        pressure: { min: 3, max: 6, label: 'Pressure line' },\n        return:   { min: 2, max: 4, label: 'Return line' },\n        suction:  { min: 0.5, max: 1.5, label: 'Suction line' },\n        water:    { min: 1, max: 3, label: 'Water system' }\n    };\n\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var flowVal = parseFloat($('vc-flow').value);\n        var diaVal  = parseFloat($('vc-dia').value);\n        var nuVal   = parseFloat($('vc-visc').value);\n        var lineType = $('vc-line-type').value;\n\n        if (!flowVal || !diaVal || flowVal <= 0 || diaVal <= 0) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        \/\/ Convert to SI\n        var Q_m3s = unitSystem === 'imperial' ? flowVal * GPM2M3S : flowVal * LPM2M3S;\n        var D_m   = unitSystem === 'imperial' ? diaVal * IN2M     : diaVal * MM2M;\n        var nu_m2s = nuVal > 0 ? nuVal * 1e-6 : 0;\n\n        \/\/ Calculations\n        var A = Math.PI \/ 4 * D_m * D_m;\n        var v = Q_m3s \/ A;\n        var v_ft = v * MPS2FPS;\n        var Re = nu_m2s > 0 ? v * D_m \/ nu_m2s : 0;\n        var regime = Re <= 0 ? '\u2014' : Re < 2300 ? 'Laminar' : Re > 4000 ? 'Turbulent' : 'Transition';\n        var regimeColor = Re <= 0 ? '' : Re < 2300 ? 'var(--vc-green)' : Re > 4000 ? 'var(--vc-red)' : 'var(--vc-yellow)';\n        var volPerMeter = A * 1000; \/\/ liters per meter\n\n        \/\/ Display\n        $('vc-r-vel').innerHTML = fmt(v, 3) + ' <span class=\"vc-rcard-unit\">m\/s<\/span>';\n        $('vc-r-vel-ft').innerHTML = fmt(v_ft, 2) + ' <span class=\"vc-rcard-unit\">ft\/s<\/span>';\n        $('vc-r-re').innerHTML = Re > 0 ? fmtInt(Re) : '\u2014';\n        $('vc-r-regime').innerHTML = regime !== '\u2014' ? '<span style=\"color:' + regimeColor + '\">' + regime + '<\/span>' : '\u2014';\n        $('vc-r-area').innerHTML = fmt(A * 1e6, 1) + ' <span class=\"vc-rcard-unit\">mm\u00b2<\/span>';\n        $('vc-r-vol').innerHTML = fmt(volPerMeter, 3) + ' <span class=\"vc-rcard-unit\">L\/m<\/span>';\n\n        \/\/ Velocity warning\n        var lim = velLimits[lineType];\n        var warnEl = $('vc-vel-warning');\n        if (v < lim.min) {\n            warnEl.innerHTML = '<div class=\"vc-vel-warning vc-vel-low\">\u26a0\ufe0f Velocity ' + fmt(v, 2) + ' m\/s is below recommended ' + lim.min + '\u2013' + lim.max + ' m\/s for ' + lim.label.toLowerCase() + '. Pipe may be oversized.<\/div>';\n        } else if (v > lim.max) {\n            warnEl.innerHTML = '<div class=\"vc-vel-warning vc-vel-high\">\ud83d\udd34 Velocity ' + fmt(v, 2) + ' m\/s exceeds recommended ' + lim.min + '\u2013' + lim.max + ' m\/s for ' + lim.label.toLowerCase() + '. Risk of noise, vibration, erosion, excessive pressure drop.<\/div>';\n        } else {\n            warnEl.innerHTML = '<div class=\"vc-vel-warning vc-vel-ok\">\u2705 Velocity ' + fmt(v, 2) + ' m\/s is within recommended ' + lim.min + '\u2013' + lim.max + ' m\/s for ' + lim.label.toLowerCase() + '.<\/div>';\n        }\n\n        $('vc-results').classList.add('vc-visible');\n\n        \/\/ URL params\n        var u = new URL(window.location);\n        u.searchParams.set('flow', $('vc-flow').value);\n        u.searchParams.set('dia', $('vc-dia').value);\n        u.searchParams.set('visc', $('vc-visc').value);\n        u.searchParams.set('line', lineType);\n        u.searchParams.set('units', unitSystem);\n        history.replaceState(null, '', u.toString());\n\n        \/\/ History\n        saveHistory({\n            flow: $('vc-flow').value,\n            dia: $('vc-dia').value,\n            visc: $('vc-visc').value,\n            line: lineType,\n            _summary: $('vc-flow').value + (unitSystem === 'imperial' ? ' GPM' : ' L\/min') + ', \u00d8' + $('vc-dia').value + (unitSystem === 'imperial' ? ' in' : ' mm') + ' \u2192 ' + fmt(v, 2) + ' m\/s'\n        });\n    }\n\n    \/* \u2500\u2500 UNIT TOGGLE \u2500\u2500 *\/\n    var unitBtns = document.querySelectorAll('.vc-unit-btn');\n    unitBtns.forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            unitBtns.forEach(function(b) { b.classList.remove('vc-active'); });\n            this.classList.add('vc-active');\n            unitSystem = this.getAttribute('data-system');\n            $('vc-flow-hint').textContent = unitSystem === 'imperial' ? '(US GPM)' : '(L\/min)';\n            $('vc-dia-hint').textContent = unitSystem === 'imperial' ? '(inches)' : '(mm)';\n            try { localStorage.setItem('vc_units', unitSystem); } catch(e) {}\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\n        btn.addEventListener('click', function(e) {\n            e.preventDefault();\n            var q  = parseFloat(this.getAttribute('data-q'));\n            var d  = parseFloat(this.getAttribute('data-d'));\n            var nu = parseFloat(this.getAttribute('data-nu'));\n            var lt = this.getAttribute('data-lt');\n            if (unitSystem === 'imperial') {\n                $('vc-flow').value = fmt(q * 0.264172, 1);\n                $('vc-dia').value = fmt(d \/ 25.4, 3);\n            } else {\n                $('vc-flow').value = q;\n                $('vc-dia').value = d;\n            }\n            $('vc-visc').value = nu;\n            $('vc-line-type').value = lt;\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\n    $('vc-form').addEventListener('input', calculate);\n    $('vc-form').addEventListener('change', calculate);\n\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\n    $('vc-copy-btn').addEventListener('click', function() {\n        var text = 'Pipe Flow Velocity Calculation\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Flow Rate: ' + $('vc-flow').value + (unitSystem === 'imperial' ? ' GPM' : ' L\/min') + '\\n' +\n            'Pipe ID: ' + $('vc-dia').value + (unitSystem === 'imperial' ? ' in' : ' mm') + '\\n' +\n            'Viscosity: ' + $('vc-visc').value + ' cSt\\n' +\n            'Velocity: ' + $('vc-r-vel').textContent + '\\n' +\n            'Velocity: ' + $('vc-r-vel-ft').textContent + '\\n' +\n            'Reynolds: ' + $('vc-r-re').textContent + '\\n' +\n            'Regime: ' + $('vc-r-regime').textContent + '\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'vibromera.eu\/calculators\/pipe-flow-velocity\/';\n\n        if (navigator.clipboard) {\n            navigator.clipboard.writeText(text).then(function() {\n                var btn = $('vc-copy-btn');\n                btn.classList.add('vc-copied');\n                btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copied!';\n                setTimeout(function() {\n                    btn.classList.remove('vc-copied');\n                    btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy';\n                }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var section = this.closest('.vc-section');\n            var isOpen = section.classList.contains('vc-open');\n            section.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', !isOpen);\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'How do I calculate flow velocity in a pipe?', a: '<p>Use the formula <strong>v = 4Q \/ (\u03c0 d\u00b2)<\/strong>. Convert the flow rate Q to m\u00b3\/s (divide L\/min by 60,000) and diameter d to meters (divide mm by 1000). The result is the mean flow velocity in m\/s.<\/p><p>For example: 60 L\/min through a 25 mm pipe \u2192 v = 4 \u00d7 0.001 \/ (\u03c0 \u00d7 0.025\u00b2) = 2.04 m\/s.<\/p>' },\n        { q: 'What are recommended pipe velocities for hydraulic systems?', a: '<p>Standard hydraulic velocity recommendations:<\/p><ul><li><strong>Suction lines:<\/strong> 0.5 \u2013 1.5 m\/s (avoid cavitation at pump inlet)<\/li><li><strong>Pressure lines:<\/strong> 3 \u2013 6 m\/s (up to 7 m\/s for short runs)<\/li><li><strong>Return lines:<\/strong> 2 \u2013 4 m\/s<\/li><\/ul><p>For water systems: 1 \u2013 3 m\/s; keep below 2.5 m\/s in buildings to control noise.<\/p>' },\n        { q: 'What happens if pipe velocity is too high?', a: '<p>Excessive velocity causes:<\/p><ul><li>Noise and vibration in piping<\/li><li>Increased pressure drop (proportional to v\u00b2)<\/li><li>Erosion of pipe walls and fittings<\/li><li>Cavitation risk on suction lines<\/li><li>Water hammer on sudden valve closure<\/li><\/ul><p>Always size pipes to keep velocity within recommended limits.<\/p>' },\n        { q: 'What is the Reynolds number and why does it matter?', a: '<p>The Reynolds number <strong>Re = vD\/\u03bd<\/strong> is a dimensionless ratio of inertial to viscous forces. It determines the flow regime:<\/p><ul><li><strong>Re &lt; 2300:<\/strong> Laminar flow \u2014 smooth, predictable, low friction<\/li><li><strong>2300 \u2013 4000:<\/strong> Transitional \u2014 unstable, avoid designing here<\/li><li><strong>Re &gt; 4000:<\/strong> Turbulent \u2014 chaotic, higher friction factor<\/li><\/ul><p>The flow regime determines which friction factor formula to use for pressure drop calculations.<\/p>' },\n        { q: 'How does viscosity affect flow velocity?', a: '<p>Viscosity does <strong>not<\/strong> directly change the velocity for a given flow rate and pipe size \u2014 the continuity equation v = Q\/A is independent of viscosity.<\/p><p>However, viscosity affects the Reynolds number, which determines the flow regime and friction losses. Higher viscosity \u2192 lower Re \u2192 more likely laminar flow \u2192 lower friction factor (for the same velocity).<\/p><p>Common viscosities: water at 20\u00b0C \u2248 1 cSt; hydraulic oil ISO VG 32 at 40\u00b0C \u2248 32 cSt; ISO VG 46 at 40\u00b0C \u2248 46 cSt.<\/p>' }\n    ];\n\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq) {\n        faqList.innerHTML += '<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>' + faq.q + '<\/span><svg class=\"vc-faq-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\">' + faq.a + '<\/div><\/div><\/div>';\n    });\n    faqList.addEventListener('click', function(e) {\n        var btn = e.target.closest('.vc-faq-q');\n        if (!btn) return;\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\n    });\n\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\n    function saveHistory(entry) {\n        var key = 'vc_history_' + SLUG;\n        var arr = [];\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\n        entry._ts = new Date().toISOString();\n        arr.unshift(entry);\n        if (arr.length > 10) arr = arr.slice(0, 10);\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\n    }\n\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\n    function loadParams() {\n        var p = new URLSearchParams(window.location.search);\n        if (p.has('flow')) $('vc-flow').value = p.get('flow');\n        if (p.has('dia')) $('vc-dia').value = p.get('dia');\n        if (p.has('visc')) $('vc-visc').value = p.get('visc');\n        if (p.has('line')) $('vc-line-type').value = p.get('line');\n        if (p.get('units') === 'imperial') {\n            unitSystem = 'imperial';\n            unitBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-system') === 'imperial'); });\n            $('vc-flow-hint').textContent = '(US GPM)';\n            $('vc-dia-hint').textContent = '(inches)';\n        }\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('v = \\\\frac{Q}{A} = \\\\frac{4Q}{\\\\pi d^2} \\\\quad [\\\\text{m\/s}]', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('Re = \\\\frac{v \\\\cdot D}{\\\\nu} \\\\quad \\\\text{where } \\\\nu \\\\text{ = kinematic viscosity (m}^2\\\\text{\/s)}', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n        } catch(e) {}\n    }\n\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\n    function init() {\n        try {\n            var saved = localStorage.getItem('vc_units');\n            if (saved === 'imperial') {\n                unitSystem = 'imperial';\n                unitBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-system') === 'imperial'); });\n                $('vc-flow-hint').textContent = '(US GPM)';\n                $('vc-dia-hint').textContent = '(inches)';\n            }\n        } catch(e) {}\n\n        loadParams();\n        renderFormulas();\n        calculate();\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u09ac\u09bf\u09a8\u09be\u09ae\u09c2\u09b2\u09cd\u09af\u09c7 \u09aa\u09be\u0987\u09aa \u09aa\u09cd\u09b0\u09ac\u09be\u09b9 \u09ac\u09c7\u0997 \u0995\u09cd\u09af\u09be\u09b2\u0995\u09c1\u09b2\u09c7\u099f\u09b0\u0964 v = 4Q\/(\u03c0d\u00b2) \u0997\u09a3\u09a8\u09be \u0995\u09b0\u09c1\u09a8, \u09b0\u09c7\u09a8\u09b2\u09cd\u09a1\u09b8 \u09b8\u0982\u0996\u09cd\u09af\u09be, \u09aa\u09cd\u09b0\u09ac\u09be\u09b9 \u09ac\u09cd\u09af\u09ac\u09b8\u09cd\u09a5\u09be\u0964 \u09b9\u09be\u0987\u09a1\u09cd\u09b0\u09cb\u09b2\u09bf\u0995 \u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae \u09b8\u09c1\u09aa\u09be\u09b0\u09bf\u09b6\u09c7\u09b0 \u09ac\u09bf\u09b0\u09c1\u09a6\u09cd\u09a7\u09c7 \u09ac\u09c7\u0997 \u09aa\u09b0\u09c0\u0995\u09cd\u09b7\u09be \u0995\u09b0\u09c1\u09a8\u0964 \u09ae\u09c7\u099f\u09cd\u09b0\u09bf\u0995 \u098f\u09ac\u0982 \u0987\u09ae\u09cd\u09aa\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09b2 \u0987\u0989\u09a8\u09bf\u099f \u09b8\u09ae\u09b0\u09cd\u09a5\u09a8 \u0995\u09b0\u09c7\u0964<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100184","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":2,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100184\/revisions"}],"predecessor-version":[{"id":100924,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100184\/revisions\/100924"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=100184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=100184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=100184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}