{"id":100185,"date":"2026-02-15T20:25:38","date_gmt":"2026-02-15T20:25:38","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100185"},"modified":"2026-04-05T15:37:08","modified_gmt":"2026-04-05T15:37:08","slug":"pipe-pressure-drop","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bn\/calculators\/pipe-pressure-drop\/","title":{"rendered":"Pipe Pressure Drop Calculator \u2014 Darcy-Weisbach | Vibromera"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Pipe Pressure Drop Calculator\",\"description\":\"Free pipe pressure drop calculator using Darcy-Weisbach with iterative Colebrook-White friction factor. Minor losses K-factor support.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/pipe-pressure-drop\/\",\"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}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"What is the Darcy-Weisbach equation?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u0394P = f \u00d7 (L\/D) \u00d7 \u03c1v\u00b2\/2, where f is the Darcy friction factor, L is pipe length, D is diameter, \u03c1 is density, and v is velocity.\"}},\n{\"@type\":\"Question\",\"name\":\"How is the friction factor calculated?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For laminar flow (Re<2300): f = 64\/Re. For turbulent flow: solved iteratively using Colebrook-White equation 1\/\u221af = -2log\u2081\u2080(\u03b5\/3.7D + 2.51\/(Re\u221af)).\"}},\n{\"@type\":\"Question\",\"name\":\"What pipe roughness should I use?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Steel: 0.045mm. Stainless: 0.015mm. Copper\/plastic: 0.0015mm. Cast iron: 0.25mm. Hydraulic hose: 0.005mm.\"}},\n{\"@type\":\"Question\",\"name\":\"How do minor losses work?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Minor losses from fittings use K-factors: \u0394P_minor = \u03a3K \u00d7 \u03c1v\u00b2\/2. Common K values: 90\u00b0 elbow = 0.9, tee = 1.8, ball valve = 0.05.\"}},\n{\"@type\":\"Question\",\"name\":\"What are typical pressure drop limits?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Hydraulic systems: typically 3-5 bar\/10m in pressure lines. Water: 0.1-0.3 bar\/100m. Keep total system \u0394P within pump capacity.\"}}\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 Pressure Drop Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/pipe-pressure-drop\/\"}\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 { font-family:var(--vc-font); font-size:15px; line-height:1.65; color:var(--vc-ink); max-width:960px; margin:0 auto; padding:20px 16px 40px; -webkit-font-smoothing:antialiased; }\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing:border-box; }\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.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.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.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.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.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.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.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.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.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; } .vc-faq-a-inner p:last-child { margin-bottom:0; }\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; } .vc-faq-a-inner li { margin-bottom:3px; }\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.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); } .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.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; } .vc-footer a:hover { text-decoration:underline; }\n.vc-footer-links { margin-top:8px; font-size:12px; } .vc-footer-links a { margin:0 8px; }\n@media print { .vc-section-body { max-height:none!important; } .vc-faq-a { max-height:none!important; } .vc-results { max-height:none!important; padding:24px!important; } .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; } }\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-pipe-pressure-drop\">\n\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Pipe Pressure Drop Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Darcy-Weisbach equation with iterative Colebrook-White friction factor. Supports laminar\/turbulent flow, pipe roughness presets, and minor losses from fittings.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">Darcy-Weisbach<\/span>\n        <span class=\"vc-badge\">Colebrook-White<\/span>\n        <span class=\"vc-badge\">Minor Losses<\/span>\n        <span class=\"vc-badge\">bar \/ kPa \/ PSI<\/span>\n    <\/div>\n<\/header>\n\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, bar)<\/button>\n        <button type=\"button\" class=\"vc-unit-btn\" data-system=\"imperial\">Imperial (GPM, in, PSI)<\/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\" value=\"60\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-dia\">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\" value=\"25\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-length\">Pipe Length <span class=\"vc-label-hint\" id=\"vc-len-hint\">(m)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-length\" inputmode=\"decimal\" step=\"any\" min=\"0\" value=\"10\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-material\">Pipe Material<\/label>\n                <select class=\"vc-select\" id=\"vc-material\">\n                    <option value=\"0.045\" selected>Steel (\u03b5 = 0.045 mm)<\/option>\n                    <option value=\"0.015\">Stainless Steel (\u03b5 = 0.015 mm)<\/option>\n                    <option value=\"0.0015\">Copper (\u03b5 = 0.0015 mm)<\/option>\n                    <option value=\"0.0015\">Plastic\/PE\/PVC (\u03b5 = 0.0015 mm)<\/option>\n                    <option value=\"0.25\">Cast Iron (\u03b5 = 0.25 mm)<\/option>\n                    <option value=\"0.005\">Hydraulic Hose (\u03b5 = 0.005 mm)<\/option>\n                    <option value=\"custom\">Custom roughness\u2026<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-field-rough\" style=\"display:none\">\n                <label class=\"vc-label\" for=\"vc-rough\">Roughness \u03b5 <span class=\"vc-label-hint\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-rough\" inputmode=\"decimal\" step=\"any\" min=\"0\" value=\"0.045\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-visc\">Kinematic Viscosity <span class=\"vc-label-hint\">(cSt)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-visc\" inputmode=\"decimal\" step=\"any\" min=\"0\" value=\"32\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-density\">Fluid Density <span class=\"vc-label-hint\" id=\"vc-dens-hint\">(kg\/m\u00b3)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-density\" inputmode=\"decimal\" step=\"any\" min=\"0\" value=\"870\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-kfactor\">Minor Loss \u03a3K <span class=\"vc-label-hint\">(fittings)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-kfactor\" inputmode=\"decimal\" step=\"any\" min=\"0\" value=\"0\" placeholder=\"0 = none\">\n            <\/div>\n        <\/div>\n\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-l=\"5\" data-mat=\"0.045\" data-nu=\"32\" data-rho=\"870\">20 L\/min \u00d815 oil 5m<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"60\" data-d=\"25\" data-l=\"10\" data-mat=\"0.045\" data-nu=\"32\" data-rho=\"870\">60 L\/min \u00d825 oil 10m<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"200\" data-d=\"50\" data-l=\"20\" data-mat=\"0.045\" data-nu=\"46\" data-rho=\"870\">200 L\/min \u00d850 oil 20m<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"100\" data-d=\"32\" data-l=\"50\" data-mat=\"0.0015\" data-nu=\"1\" data-rho=\"998\">100 L\/min \u00d832 water 50m<\/button>\n        <\/div>\n    <\/form>\n\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\">Total Pressure Drop<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-dp\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Pressure Drop (kPa \/ PSI)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-dp2\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Friction Loss (pipe only)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-dpfrict\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Minor Losses (fittings)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-dpminor\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\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\">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\">Darcy Friction Factor f<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-ff\">\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>\n    <\/div>\n<\/div>\n\n<!-- Theory -->\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\"><span class=\"vc-section-icon\">\ud83d\udcd8<\/span><span class=\"vc-section-title\">Theory &amp; Formulas<\/span><\/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>Darcy-Weisbach Equation<\/h3>\n            <p>The fundamental equation for pressure drop due to friction in a pipe:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n            <ul>\n                <li><strong>f<\/strong> \u2014 Darcy friction factor (dimensionless)<\/li>\n                <li><strong>L<\/strong> \u2014 pipe length (m)<\/li>\n                <li><strong>D<\/strong> \u2014 pipe inner diameter (m)<\/li>\n                <li><strong>\u03c1<\/strong> \u2014 fluid density (kg\/m\u00b3)<\/li>\n                <li><strong>v<\/strong> \u2014 mean flow velocity (m\/s)<\/li>\n            <\/ul>\n\n            <h3>Colebrook-White Equation (Turbulent Flow)<\/h3>\n            <p>For turbulent flow (Re > 4000), the friction factor is found iteratively:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <p>This calculator uses the iterative Newton-Raphson method (50 iterations) for accurate results matching the Moody diagram.<\/p>\n\n            <h3>Laminar Flow<\/h3>\n            <p>For Re &lt; 2300 (laminar flow), the friction factor is simply:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-3\"><\/div>\n\n            <h3>Minor Losses<\/h3>\n            <p>Fittings, valves, elbows, and other components add additional pressure drop expressed via K-factors:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-4\"><\/div>\n            <table class=\"vc-table\">\n                <thead><tr><th>Fitting<\/th><th>K-factor<\/th><th>Fitting<\/th><th>K-factor<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>90\u00b0 elbow (standard)<\/td><td>0.9<\/td><td>45\u00b0 elbow<\/td><td>0.4<\/td><\/tr>\n                    <tr><td>Tee (through)<\/td><td>0.4<\/td><td>Tee (branch)<\/td><td>1.8<\/td><\/tr>\n                    <tr><td>Gate valve (full open)<\/td><td>0.15<\/td><td>Ball valve (full open)<\/td><td>0.05<\/td><\/tr>\n                    <tr><td>Check valve (swing)<\/td><td>2.5<\/td><td>Globe valve (full open)<\/td><td>10<\/td><\/tr>\n                    <tr><td>Pipe entrance (sharp)<\/td><td>0.5<\/td><td>Pipe exit<\/td><td>1.0<\/td><\/tr>\n                    <tr><td>Sudden expansion<\/td><td>~1.0<\/td><td>Sudden contraction<\/td><td>~0.5<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <h3>Pipe Roughness Values<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Material<\/th><th>Roughness \u03b5 (mm)<\/th><th>Notes<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>Carbon steel<\/td><td>0.045<\/td><td>New commercial pipe<\/td><\/tr>\n                    <tr><td>Stainless steel<\/td><td>0.015<\/td><td>Smooth welded<\/td><\/tr>\n                    <tr><td>Copper<\/td><td>0.0015<\/td><td>Drawn tubing<\/td><\/tr>\n                    <tr><td>Plastic (PE, PVC)<\/td><td>0.0015<\/td><td>Very smooth<\/td><\/tr>\n                    <tr><td>Cast iron<\/td><td>0.25<\/td><td>New; aged can be 1\u20133 mm<\/td><\/tr>\n                    <tr><td>Hydraulic hose<\/td><td>0.005<\/td><td>Rubber inner liner<\/td><\/tr>\n                    <tr><td>Concrete<\/td><td>0.3 \u2013 3.0<\/td><td>Depends on finish<\/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, D = 25 mm, L = 10 m, steel pipe (\u03b5 = 0.045 mm), oil \u03bd = 32 cSt, \u03c1 = 870 kg\/m\u00b3<\/p>\n                <p>v = 4 \u00d7 0.001 \/ (\u03c0 \u00d7 0.025\u00b2) = 2.037 m\/s<\/p>\n                <p>Re = 2.037 \u00d7 0.025 \/ (32 \u00d7 10\u207b\u2076) = 1,592 \u2192 <strong>Laminar<\/strong><\/p>\n                <p>f = 64 \/ 1592 = 0.04020<\/p>\n                <p>\u0394P = 0.04020 \u00d7 (10\/0.025) \u00d7 870 \u00d7 2.037\u00b2 \/ 2 = <strong>29,045 Pa = 0.290 bar<\/strong><\/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> In the transition region (Re 2300\u20134000) the friction factor is interpolated. Real flow may oscillate between laminar and turbulent. Avoid designing systems to operate in this region.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related -->\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\"><span class=\"vc-section-icon\">\ud83d\udd17<\/span><span class=\"vc-section-title\">Related Calculators<\/span><\/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\/reynolds-number-calculator\/\">Reynolds Number<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/pipe-flow-velocity\/\">Flow Velocity<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/pipe-diameter-flow-rate\/\">Pipe Diameter<\/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\"><span class=\"vc-section-icon\">\u2753<\/span><span class=\"vc-section-title\">Frequently Asked Questions<\/span><\/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<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\"><strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>Professional field balancing instruments and software. Used in 50+ countries.<\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\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;\">Darcy-Weisbach with Colebrook-White. Last updated: February 2025<\/p>\n    <div class=\"vc-footer-links\"><a href=\"\/calculators\/engineering-calculators\/\">All Calculators<\/a><a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a><\/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-pressure-drop';\n    var unitSystem = 'metric';\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) { if (isNaN(n) || !isFinite(n)) return '\u2014'; return Math.round(n).toLocaleString('en-US'); }\n\n    \/* \u2500\u2500 COLEBROOK-WHITE (iterative) \u2500\u2500 *\/\n    function frictionFactor(Re, eD) {\n        if (Re <= 0) return 0;\n        if (Re < 2300) return 64 \/ Re;\n        if (Re <= 4000) {\n            \/\/ Transition: interpolate\n            var fLam = 64 \/ 2300;\n            var fTurb = colebrook(4000, eD);\n            return fLam + (fTurb - fLam) * (Re - 2300) \/ 1700;\n        }\n        return colebrook(Re, eD);\n    }\n    function colebrook(Re, eD) {\n        \/\/ Initial guess: Swamee-Jain\n        var f = 0.25 \/ Math.pow(Math.log10(eD \/ 3.7 + 5.74 \/ Math.pow(Re, 0.9)), 2);\n        for (var i = 0; i < 50; i++) {\n            var sqrtF = Math.sqrt(f);\n            var lhs = -2 * Math.log10(eD \/ 3.7 + 2.51 \/ (Re * sqrtF));\n            f = 1 \/ (lhs * lhs);\n        }\n        return f;\n    }\n\n    function getRoughness() {\n        var mat = $('vc-material').value;\n        if (mat === 'custom') {\n            $('vc-field-rough').style.display = '';\n            return parseFloat($('vc-rough').value) || 0.045;\n        }\n        $('vc-field-rough').style.display = 'none';\n        return parseFloat(mat);\n    }\n\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var Q_raw = parseFloat($('vc-flow').value);\n        var D_raw = parseFloat($('vc-dia').value);\n        var L_raw = parseFloat($('vc-length').value);\n        var nu = parseFloat($('vc-visc').value);\n        var rho = parseFloat($('vc-density').value);\n        var sumK = parseFloat($('vc-kfactor').value) || 0;\n        var eps = getRoughness();\n\n        if (!Q_raw || !D_raw || !L_raw || !nu || !rho || Q_raw <= 0 || D_raw <= 0 || L_raw <= 0) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        \/\/ Convert to SI\n        var Q = unitSystem === 'imperial' ? Q_raw * 6.309e-5 : Q_raw \/ 60000;\n        var D = unitSystem === 'imperial' ? D_raw * 0.0254 : D_raw \/ 1000;\n        var L = unitSystem === 'imperial' ? L_raw * 0.3048 : L_raw;\n\n        var A = Math.PI \/ 4 * D * D;\n        var v = Q \/ A;\n        var Re = v * D \/ (nu * 1e-6);\n        var eD = (eps \/ 1000) \/ D;\n        var f = frictionFactor(Re, eD);\n\n        var dP_friction = f * (L \/ D) * rho * v * v \/ 2; \/\/ Pa\n        var dP_minor = sumK * rho * v * v \/ 2; \/\/ Pa\n        var dP_total = dP_friction + dP_minor;\n\n        var regime = Re < 2300 ? 'Laminar' : Re > 4000 ? 'Turbulent' : 'Transition';\n        var regColor = Re < 2300 ? 'var(--vc-green)' : Re > 4000 ? 'var(--vc-red)' : 'var(--vc-yellow)';\n\n        \/\/ Display\n        $('vc-r-dp').innerHTML = fmt(dP_total \/ 1e5, 4) + ' <span class=\"vc-rcard-unit\">bar<\/span>';\n        $('vc-r-dp2').innerHTML = fmt(dP_total \/ 1000, 1) + ' <span class=\"vc-rcard-unit\">kPa<\/span> \/ ' + fmt(dP_total * 0.000145038, 2) + ' <span class=\"vc-rcard-unit\">PSI<\/span>';\n        $('vc-r-dpfrict').innerHTML = fmt(dP_friction \/ 1e5, 4) + ' <span class=\"vc-rcard-unit\">bar<\/span>';\n        $('vc-r-dpminor').innerHTML = sumK > 0 ? fmt(dP_minor \/ 1e5, 4) + ' <span class=\"vc-rcard-unit\">bar<\/span>' : '0 <span class=\"vc-rcard-unit\">(no fittings)<\/span>';\n        $('vc-r-vel').innerHTML = fmt(v, 3) + ' <span class=\"vc-rcard-unit\">m\/s<\/span>';\n        $('vc-r-re').innerHTML = fmtInt(Re);\n        $('vc-r-ff').innerHTML = fmt(f, 6);\n        $('vc-r-regime').innerHTML = '<span style=\"color:' + regColor + '\">' + regime + '<\/span>';\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('length', $('vc-length').value);\n        u.searchParams.set('visc', $('vc-visc').value);\n        u.searchParams.set('density', $('vc-density').value);\n        u.searchParams.set('kfactor', sumK);\n        u.searchParams.set('units', unitSystem);\n        history.replaceState(null, '', u.toString());\n\n        saveHistory({\n            Q: Q_raw, D: D_raw, L: L_raw, dP: fmt(dP_total \/ 1e5, 3),\n            _summary: Q_raw + (unitSystem === 'imperial' ? ' GPM' : ' L\/min') + ' \u00d8' + D_raw + ' L=' + L_raw + ' \u2192 ' + fmt(dP_total \/ 1e5, 3) + ' bar'\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            $('vc-len-hint').textContent = unitSystem === 'imperial' ? '(ft)' : '(m)';\n            $('vc-dens-hint').textContent = unitSystem === 'imperial' ? '(lb\/ft\u00b3)' : '(kg\/m\u00b3)';\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            $('vc-flow').value = this.getAttribute('data-q');\n            $('vc-dia').value = this.getAttribute('data-d');\n            $('vc-length').value = this.getAttribute('data-l');\n            $('vc-material').value = this.getAttribute('data-mat');\n            $('vc-visc').value = this.getAttribute('data-nu');\n            $('vc-density').value = this.getAttribute('data-rho');\n            calculate();\n        });\n    });\n\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 Pressure Drop Calculation\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Total \u0394P: ' + $('vc-r-dp').textContent + '\\n' +\n            '         ' + $('vc-r-dp2').textContent + '\\n' +\n            'Friction: ' + $('vc-r-dpfrict').textContent + '\\n' +\n            'Minor: ' + $('vc-r-dpminor').textContent + '\\n' +\n            'Velocity: ' + $('vc-r-vel').textContent + '\\n' +\n            'Re: ' + $('vc-r-re').textContent + ' (' + $('vc-r-regime').textContent + ')\\n' +\n            'f: ' + $('vc-r-ff').textContent + '\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\nvibromera.eu\/calculators\/pipe-pressure-drop\/';\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() { btn.classList.remove('vc-copied'); 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'; }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var s = this.closest('.vc-section');\n            s.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', s.classList.contains('vc-open'));\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'What is the Darcy-Weisbach equation?', a: '<p>The Darcy-Weisbach equation calculates friction pressure drop in pipes: <strong>\u0394P = f \u00d7 (L\/D) \u00d7 \u03c1v\u00b2\/2<\/strong>. It applies to both laminar and turbulent flow \u2014 only the friction factor f changes.<\/p><p>It is more accurate and versatile than Hazen-Williams (which only works for water in turbulent flow).<\/p>' },\n        { q: 'How is the Colebrook-White friction factor calculated?', a: '<p>The Colebrook-White equation is implicit \u2014 f appears on both sides \u2014 so it must be solved iteratively:<\/p><p><strong>1\/\u221af = -2 log\u2081\u2080(\u03b5\/3.7D + 2.51\/(Re\u221af))<\/strong><\/p><p>This calculator uses 50 iterations starting from the Swamee-Jain approximation, achieving accuracy better than 0.01%.<\/p>' },\n        { q: 'What pipe roughness should I use?', a: '<p>Common roughness values (\u03b5):<\/p><ul><li><strong>Steel:<\/strong> 0.045 mm (new commercial)<\/li><li><strong>Stainless:<\/strong> 0.015 mm (smooth welded)<\/li><li><strong>Copper\/plastic:<\/strong> 0.0015 mm (very smooth)<\/li><li><strong>Cast iron:<\/strong> 0.25 mm (new); aged pipes can be 1\u20133 mm<\/li><li><strong>Hydraulic hose:<\/strong> 0.005 mm<\/li><\/ul><p>For aged or corroded pipes, increase roughness by 2\u201310\u00d7.<\/p>' },\n        { q: 'How do I account for fittings (minor losses)?', a: '<p>Each fitting has a K-factor. Sum all K-factors for your system and enter the total in the \u03a3K field. The minor loss is: <strong>\u0394P = \u03a3K \u00d7 \u03c1v\u00b2\/2<\/strong>.<\/p><p>Example: A system with two 90\u00b0 elbows (K=0.9 each), one tee branch (K=1.8), and one check valve (K=2.5): \u03a3K = 0.9 + 0.9 + 1.8 + 2.5 = <strong>6.1<\/strong>.<\/p>' },\n        { q: 'What are typical pressure drop limits?', a: '<p>Rules of thumb:<\/p><ul><li><strong>Hydraulic pressure lines:<\/strong> 3\u20135 bar per 10 m is common<\/li><li><strong>Hydraulic return lines:<\/strong> 0.5\u20131 bar per 10 m<\/li><li><strong>Water supply:<\/strong> 0.1\u20130.3 bar per 100 m of pipe<\/li><li>Total system \u0394P must not exceed available pump pressure<\/li><\/ul>' }\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) { var b = e.target.closest('.vc-faq-q'); if (b) b.closest('.vc-faq-item').classList.toggle('vc-open'); });\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('length')) $('vc-length').value = p.get('length');\n        if (p.has('visc')) $('vc-visc').value = p.get('visc');\n        if (p.has('density')) $('vc-density').value = p.get('density');\n        if (p.has('kfactor')) $('vc-kfactor').value = p.get('kfactor');\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            $('vc-len-hint').textContent = '(ft)';\n        }\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('\\\\Delta P = f \\\\cdot \\\\frac{L}{D} \\\\cdot \\\\frac{\\\\rho v^2}{2} \\\\quad [\\\\text{Pa}]', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('\\\\frac{1}{\\\\sqrt{f}} = -2 \\\\log_{10}\\\\!\\\\left(\\\\frac{\\\\varepsilon\/D}{3.7} + \\\\frac{2.51}{Re\\\\sqrt{f}}\\\\right)', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n            katex.render('f_{\\\\text{laminar}} = \\\\frac{64}{Re}', $('vc-katex-3'), { displayMode: true, throwOnError: false });\n            katex.render('\\\\Delta P_{\\\\text{minor}} = \\\\sum K \\\\cdot \\\\frac{\\\\rho v^2}{2} \\\\quad [\\\\text{Pa}]', $('vc-katex-4'), { displayMode: true, throwOnError: false });\n        } catch(e) {}\n    }\n\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                $('vc-len-hint').textContent = '(ft)';\n            }\n        } catch(e) {}\n        loadParams();\n        renderFormulas();\n        calculate();\n    }\n\n    if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Free pipe pressure drop calculator using Darcy-Weisbach equation with iterative Colebrook-White friction factor. Supports laminar and turbulent flow, minor losses, multiple pipe materials.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100185","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100185","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\/100185\/revisions"}],"predecessor-version":[{"id":100923,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100185\/revisions\/100923"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=100185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=100185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=100185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}