{"id":100183,"date":"2026-02-15T20:25:33","date_gmt":"2026-02-15T20:25:33","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100183"},"modified":"2026-04-05T15:37:29","modified_gmt":"2026-04-05T15:37:29","slug":"pipe-flexibility-calculator","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/nb\/calculators\/pipe-flexibility-calculator\/","title":{"rendered":"Kalkulator for termisk utvidelse av r\u00f8r | EN 13480 | Vibromera"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Pipe Thermal Expansion & Flexibility Calculator\",\"alternateName\":[\"Expansion Loop Calculator\",\"Pipe Stress Calculator\",\"EN 13480 Flexibility Calculator\"],\"description\":\"Free online calculator for pipe thermal expansion and flexibility analysis per EN 13480. Calculate expansion, loop dimensions, and stress check.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/pipe-flexibility-calculator\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2025-01-01\",\"dateModified\":\"2025-06-01\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"Thermal expansion calculation\",\"Expansion loop sizing\",\"Stress check per EN 13480\",\"SVG pipe layout diagram\",\"Material CTE database\",\"Multiple pipe materials\"],\"keywords\":\"pipe thermal expansion, flexibility, expansion loop, EN 13480, piping stress, CTE\"}\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 Flexibility Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/pipe-flexibility-calculator\/\"}\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{--vc-bg:#f4f1ec;--vc-surface:#ffffff;--vc-surface-alt:#f8f6f2;--vc-ink:#1a1a1a;--vc-ink-secondary:#5a5650;--vc-ink-muted:#8a857e;--vc-accent:#c85a2a;--vc-accent-hover:#b04d22;--vc-accent-light:#fdf0ea;--vc-blue:#2a5c8c;--vc-blue-light:#eaf1f8;--vc-green:#2a7a4b;--vc-green-light:#eaf8ef;--vc-yellow:#a67c00;--vc-yellow-light:#fef9e8;--vc-red:#b91c1c;--vc-red-light:#fef2f2;--vc-border:#d9d4cc;--vc-border-light:#e8e4dd;--vc-shadow:0 1px 3px rgba(26,26,26,0.06),0 4px 12px rgba(26,26,26,0.04);--vc-radius:8px;--vc-radius-lg:12px;--vc-font:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--vc-mono:'JetBrains Mono','Consolas','Monaco',monospace;--vc-display:'Fraunces',Georgia,serif}\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}.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:640px}\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-form{padding:24px}.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}.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:4000px;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-rcard-good{border-color:var(--vc-green);background:var(--vc-green-light)}\n.vc-rcard-bad{border-color:var(--vc-red);background:var(--vc-red-light)}\n.vc-chart-wrap{background:var(--vc-surface);border:1px solid var(--vc-border-light);border-radius:var(--vc-radius);padding:16px;margin-bottom:16px}\n.vc-chart-wrap svg{width:100%;height:auto}\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}.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{font-size:14px;color:var(--vc-ink-secondary);margin:0 0 12px 18px;padding:0}.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-flex\">\n\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Pipe Thermal Expansion &amp; Flexibility Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Calculate thermal expansion, required expansion loop dimensions, and thermal stress for piping systems per EN 13480 \/ ASME B31.3.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">EN 13480<\/span>\n        <span class=\"vc-badge\">ASME B31.3<\/span>\n        <span class=\"vc-badge\">Expansion Loop<\/span>\n    <\/div>\n<\/header>\n\n<div class=\"vc-card\">\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-length\">Pipe Run Length <span class=\"vc-label-hint\">(m)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-length\" inputmode=\"decimal\" step=\"any\" min=\"0.1\" placeholder=\"e.g. 30\" value=\"30\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-material\">Material<\/label>\n                <select class=\"vc-select\" id=\"vc-material\">\n                    <option value=\"cs\" selected>Carbon Steel (\u03b1=12.0 \u00b5m\/m\/\u00b0C, E=200 GPa)<\/option>\n                    <option value=\"ss304\">SS 304 (\u03b1=17.3 \u00b5m\/m\/\u00b0C, E=193 GPa)<\/option>\n                    <option value=\"ss316\">SS 316 (\u03b1=16.0 \u00b5m\/m\/\u00b0C, E=193 GPa)<\/option>\n                    <option value=\"copper\">Copper (\u03b1=16.5 \u00b5m\/m\/\u00b0C, E=117 GPa)<\/option>\n                    <option value=\"custom\">Custom<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-cte-field\" style=\"display:none\">\n                <label class=\"vc-label\" for=\"vc-cte\">CTE <span class=\"vc-label-hint\">(\u00b5m\/m\/\u00b0C)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-cte\" inputmode=\"decimal\" step=\"any\" min=\"0\" value=\"12.0\">\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-emod-field\" style=\"display:none\">\n                <label class=\"vc-label\" for=\"vc-emod\">Elastic Modulus <span class=\"vc-label-hint\">(GPa)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-emod\" inputmode=\"decimal\" step=\"any\" min=\"1\" value=\"200\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-dt\">Temperature Change \u0394T <span class=\"vc-label-hint\">(\u00b0C)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-dt\" inputmode=\"decimal\" step=\"any\" placeholder=\"e.g. 180\" value=\"180\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-od\">Pipe OD <span class=\"vc-label-hint\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-od\" inputmode=\"decimal\" step=\"any\" min=\"1\" placeholder=\"e.g. 168.3\" value=\"168.3\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-wall\">Wall Thickness <span class=\"vc-label-hint\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-wall\" inputmode=\"decimal\" step=\"any\" min=\"0.1\" placeholder=\"e.g. 7.11\" value=\"7.11\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-sallow\">Allowable Stress <span class=\"vc-label-hint\">(MPa)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-sallow\" inputmode=\"decimal\" step=\"any\" min=\"1\" placeholder=\"e.g. 138\" value=\"138\">\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-l=\"30\" data-m=\"cs\" data-dt=\"180\" data-od=\"168.3\" data-w=\"7.11\" data-s=\"138\">6\u2033 CS \/ 180\u00b0C \/ 30m<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-l=\"50\" data-m=\"ss304\" data-dt=\"250\" data-od=\"219.1\" data-w=\"8.18\" data-s=\"115\">8\u2033 SS304 \/ 250\u00b0C \/ 50m<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-l=\"20\" data-m=\"cs\" data-dt=\"100\" data-od=\"114.3\" data-w=\"6.02\" data-s=\"138\">4\u2033 CS \/ 100\u00b0C \/ 20m<\/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 Thermal Expansion<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-delta\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Required Loop Length (L_loop)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-loop\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Loop Width (perpendicular)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-width\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Unrestrained Thermal Stress<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-stress\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\" id=\"vc-r-check-card\">\n                <div class=\"vc-rcard-label\">Stress Check<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-check\">\u2014<\/div>\n            <\/div>\n        <\/div>\n\n        <!-- SVG Pipe Layout -->\n        <div class=\"vc-chart-wrap\">\n            <svg id=\"vc-svg\" viewBox=\"0 0 700 300\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><\/svg>\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\">\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>Thermal Expansion<\/h3>\n            <p>The total thermal expansion of a pipe run is:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n            <ul>\n                <li><strong>\u03b1<\/strong> \u2014 coefficient of thermal expansion (\u00b5m\/m\/\u00b0C)<\/li>\n                <li><strong>L<\/strong> \u2014 pipe length (m)<\/li>\n                <li><strong>\u0394T<\/strong> \u2014 temperature change (\u00b0C)<\/li>\n            <\/ul>\n\n            <h3>Expansion Loop Sizing<\/h3>\n            <p>The required expansion loop leg length to absorb the expansion without exceeding allowable stress:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <ul>\n                <li><strong>D<\/strong> \u2014 pipe outside diameter (mm)<\/li>\n                <li><strong>\u0394<\/strong> \u2014 thermal expansion to be absorbed (mm)<\/li>\n                <li><strong>S<sub>a<\/sub><\/strong> \u2014 allowable stress range (MPa)<\/li>\n            <\/ul>\n\n            <h3>Guided Cantilever Method<\/h3>\n            <p>The unrestrained thermal stress if the pipe is rigidly fixed at both ends:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-3\"><\/div>\n\n            <h3>CTE Reference Table<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Material<\/th><th>\u03b1 (\u00b5m\/m\/\u00b0C)<\/th><th>E (GPa)<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>Carbon Steel<\/td><td>12.0<\/td><td>200<\/td><\/tr>\n                    <tr><td>SS 304<\/td><td>17.3<\/td><td>193<\/td><\/tr>\n                    <tr><td>SS 316<\/td><td>16.0<\/td><td>193<\/td><\/tr>\n                    <tr><td>Copper<\/td><td>16.5<\/td><td>117<\/td><\/tr>\n                    <tr><td>Inconel 625<\/td><td>12.8<\/td><td>207<\/td><\/tr>\n                    <tr><td>Titanium Gr.2<\/td><td>8.6<\/td><td>105<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 6\u2033 Carbon Steel at 180\u00b0C<\/div>\n                <p><strong>Given:<\/strong> L = 30 m, CS (\u03b1 = 12.0), \u0394T = 180\u00b0C, OD = 168.3 mm, S<sub>a<\/sub> = 138 MPa<\/p>\n                <p>\u0394 = 12.0 \u00d7 30 \u00d7 180 \/ 1000 = <strong>64.8 mm<\/strong><\/p>\n                <p>L<sub>loop<\/sub> = \u221a(3 \u00d7 168.3 \u00d7 64.8 \/ 138) = \u221a(236.1) = <strong>4.85 m<\/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> This is a simplified guided cantilever calculation. Actual piping flexibility analysis requires considering branch connections, multiple directional changes, support locations, and should be performed with pipe stress analysis software for critical systems.<\/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\">\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\/pressure-vessel-en13445\/\">Pressure Vessel (EN 13445)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/flange-rating-lookup\/\">Flange Rating Lookup<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/valve-leak-rate-iso5208\/\">Valve Leak Rate (ISO 5208)<\/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<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional field vibration analysis and balancing instruments. 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 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;\">Based on EN 13480-3 and ASME B31.3. Last updated: June 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    function $(id){ return document.getElementById(id); }\n    function fmt(n,d){ if(isNaN(n)||!isFinite(n)) return '\u2014'; var f=n.toFixed(d===undefined?2:d); return f.replace(\/(\\.\\d*?)0+$\/,'$1').replace(\/\\.$\/,''); }\n\n    var materials = {\n        cs: { alpha: 12.0, E: 200 },\n        ss304: { alpha: 17.3, E: 193 },\n        ss316: { alpha: 16.0, E: 193 },\n        copper: { alpha: 16.5, E: 117 },\n        custom: { alpha: 12.0, E: 200 }\n    };\n\n    function drawSVG(L, loopLen, loopW, delta) {\n        var svg = $('vc-svg');\n        var W = 700, H = 300, pad = 40;\n        \/\/ Scale pipe run + loop to fit\n        var totalLen = L * 1000; \/\/ mm\n        var scale = (W - 2*pad) \/ (totalLen + loopW * 2 + 200);\n        if (scale > 1) scale = 1;\n        if (scale < 0.01) scale = 0.01;\n\n        var pipeW = 8;\n        var y0 = H \/ 2 + 30;\n        var x0 = pad;\n\n        \/\/ Pipe segments\n        var seg1 = totalLen * 0.4 * scale;\n        var loopH = loopW * scale;\n        var loopL = loopLen * scale;\n        if (loopH < 40) loopH = 40;\n        if (loopL < 30) loopL = 30;\n        var seg2 = totalLen * 0.4 * scale;\n\n        var html = '<rect width=\"'+W+'\" height=\"'+H+'\" fill=\"var(--vc-surface)\" rx=\"4\"\/>';\n\n        \/\/ First straight segment\n        html += '<line x1=\"'+x0+'\" y1=\"'+y0+'\" x2=\"'+(x0+seg1)+'\" y1=\"'+y0+'\" stroke=\"var(--vc-blue)\" stroke-width=\"'+pipeW+'\" stroke-linecap=\"round\"\/>';\n        \/\/ Fixed anchor\n        html += '<rect x=\"'+(x0-6)+'\" y=\"'+(y0-15)+'\" width=\"12\" height=\"30\" fill=\"var(--vc-ink)\" rx=\"2\"\/>';\n        html += '<text x=\"'+x0+'\" y=\"'+(y0+30)+'\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--vc-ink-muted)\" font-family=\"var(--vc-mono)\">Fixed<\/text>';\n\n        \/\/ Up leg of loop\n        var lx = x0 + seg1;\n        html += '<line x1=\"'+lx+'\" y1=\"'+y0+'\" x2=\"'+lx+'\" y2=\"'+(y0-loopH)+'\" stroke=\"var(--vc-accent)\" stroke-width=\"'+pipeW+'\" stroke-linecap=\"round\"\/>';\n        \/\/ Top of loop\n        html += '<line x1=\"'+lx+'\" y1=\"'+(y0-loopH)+'\" x2=\"'+(lx+loopL)+'\" y2=\"'+(y0-loopH)+'\" stroke=\"var(--vc-accent)\" stroke-width=\"'+pipeW+'\" stroke-linecap=\"round\"\/>';\n        \/\/ Down leg\n        html += '<line x1=\"'+(lx+loopL)+'\" y1=\"'+(y0-loopH)+'\" x2=\"'+(lx+loopL)+'\" y2=\"'+y0+'\" stroke=\"var(--vc-accent)\" stroke-width=\"'+pipeW+'\" stroke-linecap=\"round\"\/>';\n\n        \/\/ Loop dimensions\n        html += '<text x=\"'+(lx+loopL\/2)+'\" y=\"'+(y0-loopH-10)+'\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--vc-accent)\" font-weight=\"600\" font-family=\"var(--vc-mono)\">L_loop = '+fmt(loopLen\/1000,2)+' m<\/text>';\n        \/\/ Width dimension\n        html += '<line x1=\"'+(lx-15)+'\" y1=\"'+y0+'\" x2=\"'+(lx-15)+'\" y2=\"'+(y0-loopH)+'\" stroke=\"var(--vc-ink-muted)\" stroke-width=\"1\" stroke-dasharray=\"3,3\"\/>';\n        html += '<text x=\"'+(lx-20)+'\" y=\"'+(y0-loopH\/2)+'\" text-anchor=\"end\" font-size=\"11\" fill=\"var(--vc-ink-muted)\" font-family=\"var(--vc-mono)\">W = '+fmt(loopW\/1000,2)+' m<\/text>';\n\n        \/\/ Second straight segment\n        var x2 = lx + loopL;\n        html += '<line x1=\"'+x2+'\" y1=\"'+y0+'\" x2=\"'+(x2+seg2)+'\" y2=\"'+y0+'\" stroke=\"var(--vc-blue)\" stroke-width=\"'+pipeW+'\" stroke-linecap=\"round\"\/>';\n        \/\/ Fixed anchor\n        html += '<rect x=\"'+(x2+seg2-6)+'\" y=\"'+(y0-15)+'\" width=\"12\" height=\"30\" fill=\"var(--vc-ink)\" rx=\"2\"\/>';\n        html += '<text x=\"'+(x2+seg2)+'\" y=\"'+(y0+30)+'\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--vc-ink-muted)\" font-family=\"var(--vc-mono)\">Fixed<\/text>';\n\n        \/\/ Delta arrow\n        var arrowY = y0 + 50;\n        html += '<line x1=\"'+x0+'\" y1=\"'+arrowY+'\" x2=\"'+(x2+seg2)+'\" y2=\"'+arrowY+'\" stroke=\"var(--vc-ink-muted)\" stroke-width=\"1\"\/>';\n        html += '<text x=\"'+((x0+x2+seg2)\/2)+'\" y=\"'+(arrowY+18)+'\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--vc-ink-secondary)\" font-family=\"var(--vc-mono)\">\u0394 = '+fmt(delta,1)+' mm (expansion)<\/text>';\n\n        \/\/ Legend\n        html += '<rect x=\"'+(W-180)+'\" y=\"12\" width=\"12\" height=\"4\" rx=\"2\" fill=\"var(--vc-blue)\"\/>';\n        html += '<text x=\"'+(W-164)+'\" y=\"18\" font-size=\"11\" fill=\"var(--vc-ink-secondary)\" font-family=\"var(--vc-font)\">Pipe run<\/text>';\n        html += '<rect x=\"'+(W-180)+'\" y=\"28\" width=\"12\" height=\"4\" rx=\"2\" fill=\"var(--vc-accent)\"\/>';\n        html += '<text x=\"'+(W-164)+'\" y=\"34\" font-size=\"11\" fill=\"var(--vc-ink-secondary)\" font-family=\"var(--vc-font)\">Expansion loop<\/text>';\n\n        svg.innerHTML = html;\n    }\n\n    function calculate(){\n        var L = parseFloat($('vc-length').value);\n        var matKey = $('vc-material').value;\n        var dT = parseFloat($('vc-dt').value);\n        var OD = parseFloat($('vc-od').value);\n        var wall = parseFloat($('vc-wall').value);\n        var Sa = parseFloat($('vc-sallow').value);\n\n        $('vc-cte-field').style.display = matKey === 'custom' ? 'flex' : 'none';\n        $('vc-emod-field').style.display = matKey === 'custom' ? 'flex' : 'none';\n\n        var alpha = matKey === 'custom' ? parseFloat($('vc-cte').value) : materials[matKey].alpha;\n        var E = matKey === 'custom' ? parseFloat($('vc-emod').value) : materials[matKey].E;\n\n        if(!L||L<=0||!dT||!OD||OD<=0||!wall||wall<=0||!Sa||Sa<=0||!alpha||!E) {\n            $('vc-results').classList.remove('vc-visible'); return;\n        }\n\n        \/\/ Thermal expansion (mm)\n        var delta = alpha * L * dT \/ 1000; \/\/ \u00b5m\/m\/\u00b0C \u00d7 m \u00d7 \u00b0C \/ 1000 = mm\n\n        \/\/ Expansion loop: L_loop = sqrt(3 * D * \u0394 \/ Sa)  \u2014 classic guided cantilever\n        \/\/ D in mm, \u0394 in mm, Sa in MPa \u2192 L_loop in mm\n        var Lloop = Math.sqrt(3 * OD * Math.abs(delta) \/ Sa); \/\/ mm\n\n        \/\/ Loop width (rule of thumb: half of loop length)\n        var Lwidth = Lloop \/ 2;\n\n        \/\/ Unrestrained thermal stress: \u03c3 = E \u00d7 \u03b1 \u00d7 \u0394T\n        var sigma = E * 1000 * alpha * 1e-6 * Math.abs(dT); \/\/ GPa \u2192 MPa, \u00b5m\/m\/\u00b0C \u2192 1\/\u00b0C\n        \/\/ E*1000 = MPa, alpha*1e-6 = 1\/\u00b0C \u2192 \u03c3 in MPa\n\n        \/\/ Stress check\n        var pass = sigma <= Sa;\n\n        \/\/ Display\n        $('vc-r-delta').innerHTML = fmt(Math.abs(delta),1) + ' <span class=\"vc-rcard-unit\">mm<\/span>' + (delta < 0 ? ' <span class=\"vc-rcard-unit\">(contraction)<\/span>' : ' <span class=\"vc-rcard-unit\">(expansion)<\/span>');\n        $('vc-r-loop').innerHTML = fmt(Lloop,0) + ' <span class=\"vc-rcard-unit\">mm<\/span> <span class=\"vc-rcard-unit\">(' + fmt(Lloop\/1000,2) + ' m)<\/span>';\n        $('vc-r-width').innerHTML = fmt(Lwidth,0) + ' <span class=\"vc-rcard-unit\">mm<\/span> <span class=\"vc-rcard-unit\">(' + fmt(Lwidth\/1000,2) + ' m)<\/span>';\n        $('vc-r-stress').innerHTML = fmt(sigma,1) + ' <span class=\"vc-rcard-unit\">MPa<\/span>';\n\n        var card = $('vc-r-check-card');\n        if(pass) {\n            $('vc-r-check').innerHTML = '<span style=\"color:var(--vc-green)\">OK<\/span> <span class=\"vc-rcard-unit\">(' + fmt(sigma,1) + ' \u2264 ' + fmt(Sa,0) + ' MPa)<\/span>';\n            card.className = 'vc-rcard vc-rcard-good';\n        } else {\n            $('vc-r-check').innerHTML = '<span style=\"color:var(--vc-red)\">OVER<\/span> <span class=\"vc-rcard-unit\">(' + fmt(sigma,1) + ' > ' + fmt(Sa,0) + ' MPa) \u2014 loop required<\/span>';\n            card.className = 'vc-rcard vc-rcard-bad';\n        }\n\n        $('vc-results').classList.add('vc-visible');\n\n        \/\/ Draw SVG\n        drawSVG(L, Lloop, Lwidth, Math.abs(delta));\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-length').value = this.getAttribute('data-l');\n            $('vc-material').value = this.getAttribute('data-m');\n            $('vc-dt').value = this.getAttribute('data-dt');\n            $('vc-od').value = this.getAttribute('data-od');\n            $('vc-wall').value = this.getAttribute('data-w');\n            $('vc-sallow').value = this.getAttribute('data-s');\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 Flexibility Calculation (EN 13480)\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Length: ' + $('vc-length').value + ' m\\n' +\n            '\u0394T: ' + $('vc-dt').value + ' \u00b0C\\n' +\n            'OD: ' + $('vc-od').value + ' mm\\n' +\n            'Expansion: ' + $('vc-r-delta').textContent + '\\n' +\n            'Loop Length: ' + $('vc-r-loop').textContent + '\\n' +\n            'Thermal Stress: ' + $('vc-r-stress').textContent + '\\n' +\n            'Check: ' + $('vc-r-check').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-flexibility-calculator\/';\n        if(navigator.clipboard){\n            navigator.clipboard.writeText(text).then(function(){\n                var btn=$('vc-copy-btn'); 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'); 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 expansion loop formula?', a:'<p>The classic guided cantilever formula for expansion loop leg length is:<\/p><p><strong>L_loop = \u221a(3 \u00d7 D \u00d7 \u0394 \/ S_a)<\/strong><\/p><p>Where D is pipe OD (mm), \u0394 is thermal expansion (mm), and S_a is allowable stress range (MPa). This gives the minimum loop leg length in mm.<\/p>' },\n        { q:'When is an expansion loop needed?', a:'<p>An expansion loop is needed when the thermal expansion of a straight pipe run would cause stresses exceeding the allowable range. As a rule of thumb, any run over 10 m with \u0394T > 50\u00b0C should be checked. The unrestrained thermal stress \u03c3 = E\u00b7\u03b1\u00b7\u0394T must be compared to the allowable stress.<\/p>' },\n        { q:'What alternatives exist to expansion loops?', a:'<p>Alternatives include:<\/p><ul><li><strong>Bellows expansion joints<\/strong> \u2014 compact but require maintenance<\/li><li><strong>Slip joints<\/strong> \u2014 for large movements<\/li><li><strong>Natural flexibility<\/strong> \u2014 using existing direction changes (L-bends, Z-bends)<\/li><li><strong>Flexible pipe sections<\/strong> \u2014 braided hose for small sizes<\/li><\/ul>' },\n        { q:'What is the difference between EN 13480 and ASME B31.3?', a:'<p>Both are piping design codes. EN 13480 is the European metallic industrial piping standard, ASME B31.3 is the American process piping code. Both require flexibility analysis but use slightly different allowable stress formulations. The expansion loop formula is the same engineering principle in both.<\/p>' },\n        { q:'What is CTE and how does it affect expansion?', a:'<p>CTE (Coefficient of Thermal Expansion, \u03b1) is a material property that defines how much a material expands per unit length per degree of temperature change. Higher CTE means more expansion. Stainless steel (\u03b1 \u2248 17.3) expands about 44% more than carbon steel (\u03b1 \u2248 12.0) for the same temperature change.<\/p>' }\n    ];\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq){ 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    faqList.addEventListener('click', function(e){ var btn=e.target.closest('.vc-faq-q'); if(btn) btn.closest('.vc-faq-item').classList.toggle('vc-open'); });\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas(){\n        try{\n            katex.render('\\\\Delta = \\\\alpha \\\\cdot L \\\\cdot \\\\Delta T \\\\quad [\\\\text{mm}]', $('vc-katex-1'), {displayMode:true,throwOnError:false});\n            katex.render('L_{\\\\text{loop}} = \\\\sqrt{\\\\frac{3 \\\\cdot D \\\\cdot \\\\Delta}{S_a}} \\\\quad [\\\\text{mm}]', $('vc-katex-2'), {displayMode:true,throwOnError:false});\n            katex.render('\\\\sigma_{\\\\text{thermal}} = E \\\\cdot \\\\alpha \\\\cdot \\\\Delta T \\\\quad [\\\\text{MPa}]', $('vc-katex-3'), {displayMode:true,throwOnError:false});\n        }catch(e){}\n    }\n\n    function init(){ renderFormulas(); calculate(); }\n    if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',init); else init();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Gratis online kalkulator for termisk ekspansjon og fleksibilitet av r\u00f8r i henhold til EN 13480. Beregn termisk ekspansjon, n\u00f8dvendige dimensjoner for ekspansjonssl\u00f8yfer og spenningskontroll for r\u00f8rsystemer.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100183","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":2,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100183\/revisions"}],"predecessor-version":[{"id":100925,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100183\/revisions\/100925"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/media?parent=100183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/categories?post=100183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/tags?post=100183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}