{"id":100274,"date":"2026-02-15T20:31:24","date_gmt":"2026-02-15T20:31:24","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100274"},"modified":"2026-03-05T15:37:51","modified_gmt":"2026-03-05T15:37:51","slug":"valve-flow-coefficient","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bn\/calculators\/valve-flow-coefficient\/","title":{"rendered":"Kv\/Cv Valve Flow Coefficient Calculator | Vibromera"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Valve Flow Coefficient Calculator\",\"alternateName\":[\"Kv Calculator\",\"Cv Calculator\",\"Valve Sizing Calculator\"],\"description\":\"Bidirectional Kv\/Cv valve flow coefficient calculator for liquid and gas. Calculate Kv from flow+\u0394P, flow from Kv+\u0394P, or \u0394P from Kv+flow.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/valve-flow-coefficient\/\",\"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 Kv (flow coefficient)?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Kv is the flow of water in m\u00b3\/h through a valve at a pressure drop of 1 bar and temperature of 15\u00b0C. It quantifies the valve's flow capacity.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the difference between Kv and Cv?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Kv is the European standard (m\u00b3\/h, bar). Cv is the US standard (US GPM, psi). Cv = 1.156 \u00d7 Kv.\"}},\n{\"@type\":\"Question\",\"name\":\"How do I size a control valve?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Calculate the required Kv for your process conditions, then select a valve with Kv \u2265 1.3\u00d7 required Kv to ensure sufficient range and safety margin.\"}},\n{\"@type\":\"Question\",\"name\":\"Can I use the liquid Kv formula for gases?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Gas flow through valves requires a different formula that accounts for compressibility, upstream pressure, temperature, and molecular weight.\"}},\n{\"@type\":\"Question\",\"name\":\"What about cavitation in valves?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"If the pressure drop exceeds the valve's pressure recovery factor, cavitation or flashing occurs. Check the valve manufacturer's FL factor and limit \u0394P accordingly.\"}}\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\":\"Valve Flow Coefficient Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/valve-flow-coefficient\/\"}\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 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-valve-flow-coefficient\">\n\n<!-- Header -->\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Valve Flow Coefficient Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Bidirectional Kv\/Cv calculator for valve sizing. Calculate Kv from flow + \u0394P, flow from Kv + \u0394P, or \u0394P from Kv + flow. Supports liquid and gas.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">Kv \/ Cv<\/span>\n        <span class=\"vc-badge\">Liquid &amp; Gas<\/span>\n        <span class=\"vc-badge\">Bidirectional<\/span>\n        <span class=\"vc-badge\">Cv = 1.156 \u00d7 Kv<\/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, bar)<\/button>\n        <button type=\"button\" class=\"vc-unit-btn\" data-system=\"imperial\">Imperial (GPM, 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-mode\">Calculation Mode<\/label>\n                <select class=\"vc-select\" id=\"vc-mode\">\n                    <option value=\"kv\" selected>Calculate Kv from Q + \u0394P<\/option>\n                    <option value=\"flow\">Calculate Flow from Kv + \u0394P<\/option>\n                    <option value=\"dp\">Calculate \u0394P from Kv + Q<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-fluid\">Fluid Type<\/label>\n                <select class=\"vc-select\" id=\"vc-fluid\">\n                    <option value=\"liquid\" selected>Liquid<\/option>\n                    <option value=\"gas\">Gas<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-field-flow\">\n                <label class=\"vc-label\" for=\"vc-flow\">Flow Rate Q <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\" id=\"vc-field-dp\">\n                <label class=\"vc-label\" for=\"vc-dp\">Pressure Drop \u0394P <span class=\"vc-label-hint\" id=\"vc-dp-hint\">(bar)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-dp\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 5\" value=\"5\">\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-field-sg\">\n                <label class=\"vc-label\" for=\"vc-sg\">Specific Gravity <span class=\"vc-label-hint\">(water = 1.0)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-sg\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 0.87\" value=\"0.87\">\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-field-kvin\">\n                <label class=\"vc-label\" for=\"vc-kvin\">Known Kv <span class=\"vc-label-hint\">(m\u00b3\/h)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-kvin\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 10\" value=\"\">\n            <\/div>\n            <!-- Gas fields -->\n            <div class=\"vc-field\" id=\"vc-field-p1\" style=\"display:none\">\n                <label class=\"vc-label\" for=\"vc-p1\">Inlet Pressure P1 <span class=\"vc-label-hint\" id=\"vc-p1-hint\">(bar abs)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-p1\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 7\" value=\"7\">\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-field-temp\" style=\"display:none\">\n                <label class=\"vc-label\" for=\"vc-temp\">Temperature <span class=\"vc-label-hint\">(\u00b0C)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-temp\" inputmode=\"decimal\" step=\"any\" placeholder=\"e.g. 20\" value=\"20\">\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-field-z\" style=\"display:none\">\n                <label class=\"vc-label\" for=\"vc-z\">Compressibility Z <span class=\"vc-label-hint\">(1.0 for ideal)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-z\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"1.0\" value=\"1\">\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=\"30\" data-dp=\"3\" data-sg=\"0.87\" data-fl=\"liquid\" data-m=\"kv\">30 L\/min 3 bar oil<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"60\" data-dp=\"5\" data-sg=\"0.87\" data-fl=\"liquid\" data-m=\"kv\">60 L\/min 5 bar oil<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"120\" data-dp=\"10\" data-sg=\"1.0\" data-fl=\"liquid\" data-m=\"kv\">120 L\/min 10 bar water<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-q=\"500\" data-dp=\"2\" data-sg=\"1.0\" data-fl=\"gas\" data-m=\"kv\">500 Nm\u00b3\/h gas 7\u21925 bar<\/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 Coefficient Kv<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-kv\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Cv (US)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-cv\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Flow Rate<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-flow\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">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\">Recommended Valve Kv (\u00d71.3)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-kvrec\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Recommended Valve Cv (\u00d71.3)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-cvrec\">\u2014<\/div>\n            <\/div>\n        <\/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>Kv for Liquid Flow<\/h3>\n            <p>The flow coefficient Kv (European standard) is defined as the flow of water in m\u00b3\/h through a valve at 1 bar pressure drop:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n            <ul>\n                <li><strong>Kv<\/strong> \u2014 flow coefficient (m\u00b3\/h at \u0394P = 1 bar)<\/li>\n                <li><strong>Q<\/strong> \u2014 volumetric flow rate (m\u00b3\/h)<\/li>\n                <li><strong>SG<\/strong> \u2014 specific gravity (water = 1.0; hydraulic oil \u2248 0.87)<\/li>\n                <li><strong>\u0394P<\/strong> \u2014 pressure drop across valve (bar)<\/li>\n            <\/ul>\n\n            <h3>Kv for Gas Flow<\/h3>\n            <p>For compressible gas flow (subcritical, P2 > 0.53 \u00d7 P1):<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <ul>\n                <li><strong>Q<sub>n<\/sub><\/strong> \u2014 flow rate at normal conditions (Nm\u00b3\/h, 0\u00b0C, 1.013 bar)<\/li>\n                <li><strong>P1, P2<\/strong> \u2014 upstream and downstream absolute pressures (bar)<\/li>\n                <li><strong>T<\/strong> \u2014 gas temperature (K)<\/li>\n                <li><strong>Z<\/strong> \u2014 compressibility factor (1.0 for ideal gas)<\/li>\n            <\/ul>\n\n            <h3>Kv \u2194 Cv Conversion<\/h3>\n            <div class=\"vc-formula-box\" id=\"vc-katex-3\"><\/div>\n            <p>Cv is the US\/imperial equivalent: flow in US GPM of water at \u0394P = 1 psi and 60\u00b0F.<\/p>\n\n            <h3>Valve Sizing Guide<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Valve Type<\/th><th>Typical Kv Range<\/th><th>Notes<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>Ball valve DN15<\/td><td>10 \u2013 40<\/td><td>Full bore preferred for hydraulics<\/td><\/tr>\n                    <tr><td>Ball valve DN25<\/td><td>50 \u2013 200<\/td><td>Low pressure drop at full open<\/td><\/tr>\n                    <tr><td>Ball valve DN50<\/td><td>250 \u2013 800<\/td><td>Most common in process<\/td><\/tr>\n                    <tr><td>Globe valve DN25<\/td><td>8 \u2013 15<\/td><td>Good for throttling\/control<\/td><\/tr>\n                    <tr><td>Globe valve DN50<\/td><td>25 \u2013 50<\/td><td>Higher \u0394P than ball<\/td><\/tr>\n                    <tr><td>Butterfly DN100<\/td><td>300 \u2013 600<\/td><td>Compact, large flows<\/td><\/tr>\n                    <tr><td>Needle valve<\/td><td>0.1 \u2013 5<\/td><td>Fine flow adjustment<\/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 Directional Valve<\/div>\n                <p><strong>Given:<\/strong> Q = 60 L\/min hydraulic oil (SG = 0.87), \u0394P = 5 bar<\/p>\n                <p>Convert: Q = 60 \/ 1000 \u00d7 60 = 3.6 m\u00b3\/h<\/p>\n                <p>Kv = 3.6 \u00d7 \u221a(0.87 \/ 5) = 3.6 \u00d7 0.417 = <strong>1.50<\/strong><\/p>\n                <p>Cv = 1.50 \u00d7 1.156 = <strong>1.74<\/strong><\/p>\n                <p>Recommended valve Kv \u2265 1.50 \u00d7 1.3 = <strong>1.95<\/strong> (with safety margin)<\/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> For critical applications, also check: cavitation index (FL factor), noise level, rangeability, and dynamic response. Consult the valve manufacturer&#8217;s sizing software for final selection.<\/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-pressure-drop\/\">Pipe Pressure Drop<\/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\/reynolds-number-calculator\/\">Reynolds Number<\/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;\">Valve flow coefficient Kv\/Cv. 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 = 'valve-flow-coefficient';\n    var unitSystem = 'metric';\n    var KV2CV = 1.156;\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\n    \/* \u2500\u2500 SHOW\/HIDE FIELDS \u2500\u2500 *\/\n    function updateFields() {\n        var mode = $('vc-mode').value;\n        var fluid = $('vc-fluid').value;\n        var isGas = fluid === 'gas';\n\n        \/\/ Show\/hide liquid vs gas fields\n        $('vc-field-sg').style.display = isGas ? 'none' : '';\n        $('vc-field-p1').style.display = isGas ? '' : 'none';\n        $('vc-field-temp').style.display = isGas ? '' : 'none';\n        $('vc-field-z').style.display = isGas ? '' : 'none';\n\n        \/\/ Show\/hide based on mode\n        if (mode === 'kv') {\n            $('vc-field-flow').style.display = '';\n            $('vc-field-dp').style.display = '';\n            $('vc-field-kvin').style.display = 'none';\n        } else if (mode === 'flow') {\n            $('vc-field-flow').style.display = 'none';\n            $('vc-field-dp').style.display = '';\n            $('vc-field-kvin').style.display = '';\n        } else { \/\/ dp\n            $('vc-field-flow').style.display = '';\n            $('vc-field-dp').style.display = 'none';\n            $('vc-field-kvin').style.display = '';\n        }\n\n        \/\/ Update labels for gas\n        if (isGas) {\n            $('vc-flow-hint').textContent = unitSystem === 'imperial' ? '(SCFH)' : '(Nm\u00b3\/h)';\n            $('vc-dp-hint').textContent = 'P2 downstream ' + (unitSystem === 'imperial' ? '(psia)' : '(bar abs)');\n        } else {\n            $('vc-flow-hint').textContent = unitSystem === 'imperial' ? '(US GPM)' : '(L\/min)';\n            $('vc-dp-hint').textContent = unitSystem === 'imperial' ? '(psi)' : '(bar)';\n        }\n    }\n\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var mode = $('vc-mode').value;\n        var fluid = $('vc-fluid').value;\n        var Q_raw = parseFloat($('vc-flow').value);\n        var dP_raw = parseFloat($('vc-dp').value);\n        var sg = parseFloat($('vc-sg').value);\n        var kvIn = parseFloat($('vc-kvin').value);\n        var P1 = parseFloat($('vc-p1').value);\n        var T_C = parseFloat($('vc-temp').value);\n        var Z = parseFloat($('vc-z').value) || 1;\n\n        var Kv, Cv, Q_display, dP_display;\n\n        if (fluid === 'liquid') {\n            \/\/ Convert to m\u00b3\/h and bar\n            var Q_m3h, dP_bar;\n            if (unitSystem === 'imperial') {\n                Q_m3h = Q_raw * 0.227124; \/\/ GPM to m\u00b3\/h\n                dP_bar = dP_raw * 0.0689476; \/\/ psi to bar\n            } else {\n                Q_m3h = Q_raw \/ 1000 * 60; \/\/ L\/min to m\u00b3\/h\n                dP_bar = dP_raw;\n            }\n            sg = sg || 1;\n\n            if (mode === 'kv') {\n                if (!Q_raw || !dP_raw || Q_raw <= 0 || dP_raw <= 0) { $('vc-results').classList.remove('vc-visible'); return; }\n                Kv = Q_m3h * Math.sqrt(sg \/ dP_bar);\n                Q_display = Q_raw;\n                dP_display = dP_raw;\n            } else if (mode === 'flow') {\n                if (!kvIn || !dP_raw || kvIn <= 0 || dP_raw <= 0) { $('vc-results').classList.remove('vc-visible'); return; }\n                Kv = kvIn;\n                Q_m3h = Kv * Math.sqrt(dP_bar \/ sg);\n                Q_display = unitSystem === 'imperial' ? Q_m3h \/ 0.227124 : Q_m3h * 1000 \/ 60;\n                dP_display = dP_raw;\n            } else { \/\/ dp\n                if (!kvIn || !Q_raw || kvIn <= 0 || Q_raw <= 0) { $('vc-results').classList.remove('vc-visible'); return; }\n                Kv = kvIn;\n                dP_bar = sg * Math.pow(Q_m3h \/ Kv, 2);\n                dP_display = unitSystem === 'imperial' ? dP_bar \/ 0.0689476 : dP_bar;\n                Q_display = Q_raw;\n            }\n        } else {\n            \/\/ Gas flow\n            var T_K = (T_C || 20) + 273.15;\n            if (mode === 'kv') {\n                if (!Q_raw || !P1 || !dP_raw || Q_raw <= 0 || P1 <= 0) { $('vc-results').classList.remove('vc-visible'); return; }\n                var P2 = dP_raw; \/\/ for gas, \u0394P field is P2\n                var dP_gas = P1 - P2;\n                if (dP_gas <= 0) { $('vc-results').classList.remove('vc-visible'); return; }\n                \/\/ Kv = Qn \/ (514.7 \u00d7 Y \u00d7 sqrt(dP \u00d7 P2 \/ (T \u00d7 Z)))\n                \/\/ Simplified: Kv = Qn \/ (514.7 \u00d7 sqrt(dP\u00d7P2 \/ (T_K \u00d7 Z)))\n                Kv = Q_raw \/ (514.7 * Math.sqrt(dP_gas * P2 \/ (T_K * Z)));\n                Q_display = Q_raw;\n                dP_display = dP_raw;\n            } else if (mode === 'flow') {\n                if (!kvIn || !P1 || !dP_raw || kvIn <= 0 || P1 <= 0) { $('vc-results').classList.remove('vc-visible'); return; }\n                var P2f = dP_raw;\n                var dPf = P1 - P2f;\n                if (dPf <= 0) { $('vc-results').classList.remove('vc-visible'); return; }\n                Kv = kvIn;\n                Q_display = 514.7 * Kv * Math.sqrt(dPf * P2f \/ (T_K * Z));\n                dP_display = dP_raw;\n            } else {\n                \/\/ dp mode for gas \u2014 not easily invertible, skip\n                $('vc-results').classList.remove('vc-visible');\n                return;\n            }\n        }\n\n        Cv = Kv * KV2CV;\n        var Kv_rec = Kv * 1.3;\n        var Cv_rec = Cv * 1.3;\n\n        \/\/ Display\n        $('vc-r-kv').innerHTML = fmt(Kv, Kv < 1 ? 3 : 2);\n        $('vc-r-cv').innerHTML = fmt(Cv, Cv < 1 ? 3 : 2);\n\n        var flowUnit = fluid === 'gas' ? ' Nm\u00b3\/h' : (unitSystem === 'imperial' ? ' GPM' : ' L\/min');\n        var dpUnit = fluid === 'gas' ? ' bar abs' : (unitSystem === 'imperial' ? ' psi' : ' bar');\n\n        $('vc-r-flow').innerHTML = fmt(Q_display, 1) + ' <span class=\"vc-rcard-unit\">' + flowUnit.trim() + '<\/span>';\n        $('vc-r-dp').innerHTML = fmt(dP_display, 2) + ' <span class=\"vc-rcard-unit\">' + dpUnit.trim() + '<\/span>';\n        $('vc-r-kvrec').innerHTML = fmt(Kv_rec, 2);\n        $('vc-r-cvrec').innerHTML = fmt(Cv_rec, 2);\n\n        $('vc-results').classList.add('vc-visible');\n\n        \/\/ URL params\n        var u = new URL(window.location);\n        u.searchParams.set('mode', mode);\n        u.searchParams.set('fluid', fluid);\n        u.searchParams.set('flow', $('vc-flow').value);\n        u.searchParams.set('dp', $('vc-dp').value);\n        u.searchParams.set('sg', $('vc-sg').value);\n        u.searchParams.set('kvin', $('vc-kvin').value);\n        u.searchParams.set('units', unitSystem);\n        history.replaceState(null, '', u.toString());\n\n        \/\/ History\n        saveHistory({\n            mode: mode, fluid: fluid,\n            _summary: 'Kv=' + fmt(Kv, 2) + ', Cv=' + fmt(Cv, 2)\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            try { localStorage.setItem('vc_units', unitSystem); } catch(e) {}\n            updateFields();\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-dp').value = this.getAttribute('data-dp');\n            $('vc-sg').value = this.getAttribute('data-sg');\n            $('vc-fluid').value = this.getAttribute('data-fl');\n            $('vc-mode').value = this.getAttribute('data-m');\n            if (this.getAttribute('data-fl') === 'gas') {\n                $('vc-p1').value = 7;\n                $('vc-dp').value = 5;\n            }\n            updateFields();\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\n    $('vc-form').addEventListener('input', function() { updateFields(); calculate(); });\n    $('vc-form').addEventListener('change', function() { updateFields(); calculate(); });\n\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\n    $('vc-copy-btn').addEventListener('click', function() {\n        var text = 'Valve Flow Coefficient Calculation\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Kv: ' + $('vc-r-kv').textContent + '\\n' +\n            'Cv: ' + $('vc-r-cv').textContent + '\\n' +\n            'Flow: ' + $('vc-r-flow').textContent + '\\n' +\n            '\u0394P: ' + $('vc-r-dp').textContent + '\\n' +\n            'Recommended Kv: ' + $('vc-r-kvrec').textContent + '\\n' +\n            '\u2501\u2501\u2501\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\/valve-flow-coefficient\/';\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: 'What is Kv (flow coefficient)?', a: '<p>Kv is the volumetric flow of water at 15\u00b0C in <strong>m\u00b3\/h<\/strong> that passes through a valve with a pressure drop of <strong>1 bar<\/strong>. It is a measure of the valve\\'s flow capacity \u2014 higher Kv means the valve can pass more flow for the same pressure drop.<\/p><p>Example: A valve with Kv = 10 passes 10 m\u00b3\/h of water at 1 bar \u0394P.<\/p>' },\n        { q: 'What is the difference between Kv and Cv?', a: '<p><strong>Kv<\/strong> \u2014 European\/ISO standard. Flow in m\u00b3\/h of water at \u0394P = 1 bar.<\/p><p><strong>Cv<\/strong> \u2014 US standard. Flow in US GPM of water at \u0394P = 1 psi at 60\u00b0F.<\/p><p>Conversion: <strong>Cv = 1.156 \u00d7 Kv<\/strong> (or Kv = 0.865 \u00d7 Cv).<\/p>' },\n        { q: 'How do I properly size a control valve?', a: '<p>Steps for valve sizing:<\/p><ul><li>Calculate required Kv for your worst-case operating conditions<\/li><li>Select a valve with Kv \u2265 <strong>1.3\u00d7 calculated Kv<\/strong> (safety margin)<\/li><li>Ensure the valve operates between 20\u201380% open at normal flow<\/li><li>Check cavitation: \u0394P should not exceed the valve\\'s FL\u00b2 \u00d7 (P1 \u2013 Pv)<\/li><li>Verify noise level is acceptable<\/li><\/ul>' },\n        { q: 'Can I use the liquid Kv formula for gases?', a: '<p>No. Gas flow is compressible, so the liquid formula underestimates the required Kv. Use the gas-specific formula that includes upstream and downstream absolute pressures, temperature, and compressibility factor Z.<\/p><p>For critical flow (P2 < 0.53 \u00d7 P1), the flow becomes choked and the formula changes further.<\/p>' },\n        { q: 'What about cavitation and flashing in valves?', a: '<p><strong>Cavitation<\/strong> occurs when the local pressure drops below the liquid\\'s vapor pressure, forming bubbles that collapse violently \u2014 causing noise, vibration, and valve damage.<\/p><p><strong>Flashing<\/strong> occurs when downstream pressure stays below vapor pressure \u2014 the liquid partially vaporizes permanently.<\/p><p>Check the valve\\'s <strong>FL factor<\/strong> (pressure recovery factor). The allowable \u0394P for no cavitation is: \u0394P<sub>max<\/sub> = FL\u00b2 \u00d7 (P1 \u2013 Pv), where Pv is vapor pressure.<\/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('mode')) $('vc-mode').value = p.get('mode');\n        if (p.has('fluid')) $('vc-fluid').value = p.get('fluid');\n        if (p.has('flow')) $('vc-flow').value = p.get('flow');\n        if (p.has('dp')) $('vc-dp').value = p.get('dp');\n        if (p.has('sg')) $('vc-sg').value = p.get('sg');\n        if (p.has('kvin')) $('vc-kvin').value = p.get('kvin');\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        }\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('K_v = Q \\\\cdot \\\\sqrt{\\\\frac{SG}{\\\\Delta P}} \\\\quad \\\\text{where } Q \\\\text{ in m}^3\\\\text{\/h, } \\\\Delta P \\\\text{ in bar}', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('K_v = \\\\frac{Q_n}{514.7} \\\\cdot \\\\sqrt{\\\\frac{T \\\\cdot Z}{\\\\Delta P \\\\cdot P_2}} \\\\quad \\\\text{(gas, subcritical)}', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n            katex.render('C_v = 1.156 \\\\times K_v \\\\quad \\\\Leftrightarrow \\\\quad K_v = 0.865 \\\\times C_v', $('vc-katex-3'), { 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            }\n        } catch(e) {}\n\n        loadParams();\n        updateFields();\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>Free Kv\/Cv valve flow coefficient calculator. Bidirectional: calculate Kv from flow+\u0394P, flow from Kv+\u0394P, or \u0394P from Kv+flow. Supports liquid and gas. Cv\u2194Kv conversion.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100274","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100274","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\/100274\/revisions"}],"predecessor-version":[{"id":100751,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100274\/revisions\/100751"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=100274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=100274"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=100274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}