{"id":100105,"date":"2026-02-15T20:16:50","date_gmt":"2026-02-15T20:16:50","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100105"},"modified":"2026-07-12T07:17:31","modified_gmt":"2026-07-12T07:17:31","slug":"foundation-natural-frequency","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/lv\/calculators\/foundation-natural-frequency\/","title":{"rendered":"Equivalent-Stiffness SDOF Natural Frequency Check"},"content":{"rendered":"\r\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Equivalent-Stiffness SDOF Natural Frequency Check\",\"description\":\"Calculate undamped single-degree-of-freedom natural frequency from a documented equivalent stiffness and participating mass,with an optional documented area-normalized stiffness model.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/foundation-natural-frequency\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"dateModified\":\"2026-07-12\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true}<\/script>\r\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Does this result prove that a machine foundation avoids resonance?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. It is an undamped one-degree-of-freedom arithmetic check. A resonance assessment must include excitation orders,all relevant modes,damping,frequency-dependent impedance and acceptance criteria for the actual system.\"}},{\"@type\":\"Question\",\"name\":\"When may area-normalized stiffness be multiplied by area?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Only when the source explicitly defines that coefficient for the same direction,mode,foundation geometry,frequency range and K equals coefficient times area model.\"}}]}<\/script>\r\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Equivalent-stiffness SDOF frequency check\",\"item\":\"https:\/\/vibromera.eu\/calculators\/foundation-natural-frequency\/\"}]}<\/script>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<style>:root{--vc-bg:#f4f1ec;--vc-surface:#fff;--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-border:#d9d4cc;--vc-border-light:#e8e4dd;--vc-shadow:0 1px 3px rgba(26,26,26,.06),0 4px 12px rgba(26,26,26,.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}.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}.vc-calculator *,.vc-calculator *::before,.vc-calculator *::after{box-sizing:border-box}.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}.vc-header-eyebrow{font-family:var(--vc-mono);font-size:11px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--vc-accent);margin:0 0 12px}.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:-.02em}.vc-header-subtitle{font-size:15px;color:var(--vc-ink-secondary);margin:0 auto 20px;max-width:600px}.vc-badges{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}.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)}.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}.vc-form{padding:24px}.vc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:600px){.vc-form-grid{grid-template-columns:1fr}}.vc-field{display:flex;flex-direction:column}.vc-label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--vc-ink-secondary);margin-bottom:6px}.vc-label-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--vc-ink-muted);font-size:11px}.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 .15s,box-shadow .15s}.vc-select{padding-right:36px;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}.vc-select:focus,.vc-input:focus{outline:none;border-color:var(--vc-accent);box-shadow:0 0 0 3px rgba(200,90,42,.12)}.vc-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:18px;border-top:1px solid var(--vc-border-light)}.vc-presets-label{font-family:var(--vc-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vc-ink-muted);width:100%;margin-bottom:2px}.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 .15s}.vc-preset-btn:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}.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 .5s cubic-bezier(.4,0,.2,1),padding .3s}.vc-results.vc-visible{max-height:2000px;padding:24px}.vc-results-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.vc-results-title{font-family:var(--vc-display);font-size:20px;font-weight:700;color:var(--vc-ink);margin:0}.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 .15s}.vc-copy-btn:hover{border-color:var(--vc-accent);color:var(--vc-accent)}.vc-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}@media(max-width:500px){.vc-result-grid{grid-template-columns:1fr}}.vc-rcard{background:var(--vc-surface);border:1px solid var(--vc-border-light);border-radius:var(--vc-radius);padding:16px;transition:transform .2s}.vc-rcard:hover{transform:translateY(-1px)}.vc-rcard-primary{border-color:var(--vc-accent);border-width:2px;background:linear-gradient(135deg,#fdf6f2,var(--vc-surface));grid-column:1\/-1}.vc-rcard-label{font-family:var(--vc-mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vc-ink-muted);margin-bottom:4px}.vc-rcard-value{font-family:var(--vc-mono);font-size:22px;font-weight:600;color:var(--vc-ink);line-height:1.2}.vc-rcard-primary .vc-rcard-value{font-size:30px;color:var(--vc-accent)}.vc-rcard-unit{font-size:14px;font-weight:400;color:var(--vc-ink-secondary)}.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}.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 .15s}.vc-section-toggle:hover{background:var(--vc-surface-alt)}.vc-section-toggle-text{display:flex;align-items:center;gap:10px}.vc-section-icon{font-size:20px;line-height:1}.vc-section-title{font-family:var(--vc-display);font-size:18px;font-weight:700;color:var(--vc-ink);margin:0}.vc-section-chevron{width:20px;height:20px;color:var(--vc-ink-muted);transition:transform .3s;flex-shrink:0}.vc-section.vc-open .vc-section-chevron{transform:rotate(180deg)}.vc-section-body{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1)}.vc-section.vc-open .vc-section-body{max-height:20000px}.vc-section-inner{padding:0 24px 24px;border-top:1px solid var(--vc-border-light)}.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}.vc-theory p{font-size:14px;color:var(--vc-ink-secondary);margin:0 0 10px}.vc-theory ul{font-size:14px;color:var(--vc-ink-secondary);margin:0 0 12px 18px;padding:0}.vc-theory li{margin-bottom:5px}.vc-formula-box{background:var(--vc-surface-alt);border:2px solid var(--vc-border);border-radius:6px;padding:14px 20px;text-align:center;margin:14px 0;overflow-x:auto}.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}.vc-example-box{background:var(--vc-surface-alt);border:1px solid var(--vc-border-light);border-radius:6px;padding:16px;margin:14px 0}.vc-example-title{font-family:var(--vc-mono);font-size:13px;font-weight:600;color:var(--vc-accent);margin-bottom:8px}.vc-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13px}.vc-table th,.vc-table td{padding:10px 12px;border:1px solid var(--vc-border-light);text-align:left}.vc-table th{background:var(--vc-surface-alt);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--vc-ink-secondary)}.vc-table tr:nth-child(even){background:var(--vc-surface-alt)}.vc-faq-list{display:flex;flex-direction:column;gap:8px;margin-top:20px}.vc-faq-item{border:1px solid var(--vc-border-light);border-radius:6px;overflow:hidden}.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 .15s}.vc-faq-q:hover{background:#ede9e3}.vc-faq-chevron{width:16px;height:16px;color:var(--vc-ink-muted);flex-shrink:0;transition:transform .25s}.vc-faq-item.vc-open .vc-faq-chevron{transform:rotate(180deg)}.vc-faq-a{max-height:0;overflow:hidden;transition:max-height .35s}.vc-faq-item.vc-open .vc-faq-a{max-height:1200px}.vc-faq-a-inner{padding:14px 16px;border-top:1px solid var(--vc-border-light);font-size:14px;color:var(--vc-ink-secondary)}.vc-faq-a-inner p{margin:0 0 8px}.vc-faq-a-inner p:last-child{margin-bottom:0}.vc-related{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.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 .15s}.vc-related-link:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}.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}.vc-promo-text{flex:1;font-size:14px;color:var(--vc-ink-secondary)}.vc-promo-text strong{color:var(--vc-ink)}.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 .15s}.vc-promo-link:hover{background:var(--vc-accent-hover)}.vc-footer{text-align:center;padding:32px 16px;font-size:13px;color:var(--vc-ink-muted)}.vc-footer a{color:var(--vc-accent);text-decoration:none}.vc-footer a:hover{text-decoration:underline}.vc-footer-links{margin-top:8px;font-size:12px}.vc-footer-links a{margin:0 8px}@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}}\r\n.vc-form-grid-sdof{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.vc-result-note{margin:0;color:var(--vc-ink-secondary);font-size:13px}.vc-hidden{display:none!important}@media(max-width:600px){.vc-form-grid-sdof{grid-template-columns:1fr}}\r\n<\/style>\r\n<div class=\"vc-calculator\" id=\"vc-sdof-frequency\"><header class=\"vc-header\"><p class=\"vc-header-eyebrow\">Linear undamped model \u2014 one degree of freedom<\/p><h1 class=\"vc-header-title\">Equivalent-Stiffness SDOF Natural Frequency Check<\/h1><p class=\"vc-header-subtitle\">Calculate one undamped translational natural frequency from a documented equivalent stiffness and participating mass. This is not a complete machine-foundation dynamic analysis.<\/p><div class=\"vc-badges\"><span class=\"vc-badge\">\u03c9\u2099=\u221a(K\/m)<\/span><span class=\"vc-badge\">f\u2099=\u03c9\u2099\/(2\u03c0)<\/span><span class=\"vc-badge\">No resonance margin inferred<\/span><\/div><\/header>\r\n<div class=\"vc-card\"><form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\"><div class=\"vc-form-grid-sdof\">\r\n<div class=\"vc-field\"><label class=\"vc-label\" for=\"vc-basis\">Equivalent-stiffness basis<\/label><select class=\"vc-select\" id=\"vc-basis\"><option value=\"\">Select\u2026<\/option><option value=\"direct\">Documented equivalent K<\/option><option value=\"area\">Documented area-normalized k_A \u00d7 A<\/option><\/select><\/div>\r\n<div class=\"vc-field\"><label class=\"vc-label\" for=\"vc-mass\">Participating mass m (kg)<\/label><input class=\"vc-input\" id=\"vc-mass\" type=\"text\" inputmode=\"decimal\" placeholder=\"e.g. 20000\"><\/div>\r\n<div class=\"vc-field\"><label class=\"vc-label\" for=\"vc-mode\">Mode and direction represented<\/label><input class=\"vc-input\" id=\"vc-mode\" type=\"text\" placeholder=\"e.g. vertical translation\"><\/div>\r\n<div class=\"vc-field\"><label class=\"vc-label\" for=\"vc-source\">Stiffness\/mass provenance<\/label><input class=\"vc-input\" id=\"vc-source\" type=\"text\" placeholder=\"e.g. dynamic test report,rev 2\"><\/div>\r\n<div class=\"vc-field vc-hidden\" id=\"vc-k-wrap\"><label class=\"vc-label\" for=\"vc-k\">Equivalent stiffness K<\/label><input class=\"vc-input\" id=\"vc-k\" type=\"text\" inputmode=\"decimal\" placeholder=\"e.g. 300\"><\/div>\r\n<div class=\"vc-field vc-hidden\" id=\"vc-kunit-wrap\"><label class=\"vc-label\" for=\"vc-kunit\">K unit<\/label><select class=\"vc-select\" id=\"vc-kunit\"><option value=\"\">Select\u2026<\/option><option value=\"Nm\">N\/m<\/option><option value=\"MNm\">MN\/m<\/option><\/select><\/div>\r\n<div class=\"vc-field vc-hidden\" id=\"vc-ka-wrap\"><label class=\"vc-label\" for=\"vc-ka\">Area-normalized coefficient k<sub>A<\/sub> (MN\/m\u00b3)<\/label><input class=\"vc-input\" id=\"vc-ka\" type=\"text\" inputmode=\"decimal\" placeholder=\"e.g. 50\"><\/div>\r\n<div class=\"vc-field vc-hidden\" id=\"vc-area-wrap\"><label class=\"vc-label\" for=\"vc-area\">Model contact area A (m\u00b2)<\/label><input class=\"vc-input\" id=\"vc-area\" type=\"text\" inputmode=\"decimal\" placeholder=\"e.g. 6\"><\/div>\r\n<\/div><p id=\"vc-error\" role=\"alert\" style=\"margin:.75rem 0 0;color:#b42318\"><\/p><div class=\"vc-warning-box\"><p style=\"margin:0\"><strong>Model boundary:<\/strong> linear,undamped,one-degree-of-freedom free vibration only. K and m must describe the same mode and direction. The result does not include rotational\/coupled modes,frequency-dependent soil impedance,damping,foundation flexibility,soil nonlinearity,excitation forces or acceptance criteria.<\/p><\/div><\/form>\r\n<div class=\"vc-results\" id=\"vc-results\" aria-live=\"polite\"><div class=\"vc-results-head\"><h2 class=\"vc-results-title\">Undamped SDOF result<\/h2><button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">Copy<\/button><\/div><div class=\"vc-result-grid\">\r\n<div class=\"vc-rcard\"><div class=\"vc-rcard-label\">Equivalent stiffness<\/div><div class=\"vc-rcard-value\" id=\"vc-r-k\">\u2014<\/div><\/div>\r\n<div class=\"vc-rcard\"><div class=\"vc-rcard-label\">Natural angular frequency<\/div><div class=\"vc-rcard-value\" id=\"vc-r-w\">\u2014<\/div><\/div>\r\n<div class=\"vc-rcard vc-rcard-primary\"><div class=\"vc-rcard-label\">Natural frequency<\/div><div class=\"vc-rcard-value\" id=\"vc-r-f\">\u2014<\/div><\/div>\r\n<div class=\"vc-rcard\"><div class=\"vc-rcard-label\">Cycles per minute<\/div><div class=\"vc-rcard-value\" id=\"vc-r-cpm\">\u2014<\/div><\/div>\r\n<div class=\"vc-rcard\"><div class=\"vc-rcard-label\">Undamped period<\/div><div class=\"vc-rcard-value\" id=\"vc-r-t\">\u2014<\/div><\/div>\r\n<\/div><p class=\"vc-result-note\" id=\"vc-r-note\"><\/p><\/div><\/div>\r\n<div class=\"vc-section vc-open\"><button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\"><span class=\"vc-section-toggle-text\"><span class=\"vc-section-icon\">\ud83d\udcd8<\/span><span class=\"vc-section-title\">Formula,definitions and applicability<\/span><\/span><\/button><div class=\"vc-section-body\"><div class=\"vc-section-inner vc-theory\">\r\n<h3>Implemented model<\/h3><div class=\"vc-formula-box\">m\u1e8d+Kx=0<br>\u03c9<sub>n<\/sub>=\u221a(K\/m)<br>f<sub>n<\/sub>=\u03c9<sub>n<\/sub>\/(2\u03c0)<br>T<sub>n<\/sub>=1\/f<sub>n<\/sub><\/div><p>K is the equivalent translational stiffness in N\/m for the stated mode,m is its participating mass in kg,\u03c9<sub>n<\/sub> is in rad\/s,f<sub>n<\/sub> is in Hz and T<sub>n<\/sub> is in seconds. Dimensional check:\u221a[(N\/m)\/kg]=\u221a(s\u207b\u00b2)=s\u207b\u00b9.<\/p>\r\n<h3>Two input bases<\/h3><p><strong>Direct K<\/strong> uses a documented modal\/equivalent stiffness. <strong>Area-normalized<\/strong> uses K=k<sub>A<\/sub>A only when the cited source explicitly defines k<sub>A<\/sub> in MN\/m\u00b3 and that linear area model for the same direction,geometry and conditions. The calculator does not treat k<sub>A<\/sub> as an intrinsic soil property.<\/p>\r\n<h3>Traceability and soil-model warning<\/h3><p><a href=\"https:\/\/ocw.mit.edu\/courses\/2-003j-dynamics-and-control-i-spring-2007\/c704130c0a5b24bd0d46f80c7e12d990_lec20.pdf\" target=\"_blank\" rel=\"noopener\">MIT OpenCourseWare,Dynamics and Control I,Lecture20<\/a> gives m\u1e8d+c\u1e8b+Kx=0 and \u03c9<sub>n<\/sub>\u00b2=K\/m for an SDOF system. <a href=\"https:\/\/www.fhwa.dot.gov\/engineering\/geotech\/pubs\/05037\/05c.cfm\" target=\"_blank\" rel=\"noopener\">FHWA NHI-05-037 \u00a75.4.6<\/a> states that the modulus of subgrade reaction is not a true soil property because it also depends on footing\/slab size and stiffness. It further distinguishes dynamic and traditional static k-values.<\/p>\r\n<h3>No automatic resonance criterion<\/h3><p>This result alone cannot label an operating speed safe or unsafe. Compare all excitation orders with all relevant coupled modes using documented damping,forcing and project-specific acceptance criteria. No universal30% separation rule,soil range or machine preset is applied.<\/p>\r\n<\/div><\/div><\/div><footer class=\"vc-footer\"><p>\u00a92024\u20132026 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a><\/p><p>Reference SDOF arithmetic,not a normative foundation design or resonance acceptance calculation. Scientific review:July2026.<\/p><\/footer><\/div>\r\n<script>(function(){'use strict';function $(id){return document.getElementById(id)}var resultIds=['vc-r-k','vc-r-w','vc-r-f','vc-r-cpm','vc-r-t'];function num(raw){var s=String(raw).trim().replace(',','.');return \/^[+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?$\/.test(s)?Number(s):NaN}function fmt(x){return Number(x.toPrecision(12)).toString()}function clear(){resultIds.forEach(function(id){$(id).textContent='\u2014'});$('vc-r-note').textContent='';$('vc-results').classList.remove('vc-visible')}function validPositive(x){return Number.isFinite(x)&&x>=1e-300&&x<=1e300}function updateFields(){var area=$('vc-basis').value==='area';$('vc-k-wrap').classList.toggle('vc-hidden',area||!$('vc-basis').value);$('vc-kunit-wrap').classList.toggle('vc-hidden',area||!$('vc-basis').value);$('vc-ka-wrap').classList.toggle('vc-hidden',!area);$('vc-area-wrap').classList.toggle('vc-hidden',!area)}function setUrl(){var u=new URL(location),basis=$('vc-basis').value,map={basis:'vc-basis',mass:'vc-mass',mode:'vc-mode',source:'vc-source',k:'vc-k',kunit:'vc-kunit',ka:'vc-ka',area:'vc-area'};Object.keys(map).forEach(function(key){var relevant=(key!=='k'&&key!=='kunit'||basis==='direct')&&(key!=='ka'&&key!=='area'||basis==='area'),value=relevant?$(map[key]).value.trim():'';if(value)u.searchParams.set(key,value);else u.searchParams.delete(key)});history.replaceState(null,'',u.toString())}function calc(){updateFields();setUrl();var basis=$('vc-basis').value,massRaw=$('vc-mass').value.trim(),mode=$('vc-mode').value.trim(),source=$('vc-source').value.trim();if(!basis&&!massRaw&&!mode&&!source&&!$('vc-k').value.trim()&&!$('vc-ka').value.trim()&&!$('vc-area').value.trim()){clear();$('vc-error').textContent='';return}if(!basis||!massRaw||!mode||!source){clear();$('vc-error').textContent='Select a stiffness basis and enter mass,mode\/direction and provenance.';return}var m=num(massRaw);if(!validPositive(m)){clear();$('vc-error').textContent='Participating mass must be a strict positive number from10\u207b\u00b3\u2070\u2070 to10\u00b3\u2070\u2070kg.';return}var K,basisText;if(basis==='direct'){var kRaw=$('vc-k').value.trim(),unit=$('vc-kunit').value;if(!kRaw||!unit){clear();$('vc-error').textContent='Enter equivalent stiffness and select its unit.';return}var k=num(kRaw);if(!validPositive(k)){clear();$('vc-error').textContent='Equivalent stiffness input must be a strict positive number from10\u207b\u00b3\u2070\u2070 to10\u00b3\u2070\u2070.';return}K=k*(unit==='MNm'?1e6:1);basisText='documented direct K'}else{var ka=num($('vc-ka').value),A=num($('vc-area').value);if(!validPositive(ka)||!validPositive(A)){clear();$('vc-error').textContent='k_A and area must be strict positive numbers from10\u207b\u00b3\u2070\u2070 to10\u00b3\u2070\u2070.';return}K=ka*1e6*A;basisText='documented K=k_A\u00d7A'}if(!validPositive(K)){clear();$('vc-error').textContent='Equivalent K must be finite and from10\u207b\u00b3\u2070\u2070 to10\u00b3\u2070\u2070N\/m after conversion.';return}var w=Math.sqrt(K)\/Math.sqrt(m),f=w\/(2*Math.PI),cpm=f*60,T=1\/f;if(![w,f,cpm,T].every(function(x){return Number.isFinite(x)&&x>0})){clear();$('vc-error').textContent='The calculated result exceeds the finite numerical range.';return}$('vc-error').textContent='';$('vc-r-k').textContent=fmt(K)+' N\/m';$('vc-r-w').textContent=fmt(w)+' rad\/s';$('vc-r-f').textContent=fmt(f)+' Hz';$('vc-r-cpm').textContent=fmt(cpm)+' cycles\/min';$('vc-r-t').textContent=fmt(T)+' s';$('vc-r-note').textContent='Basis:'+basisText+' | Mode:'+mode+' | Provenance:'+source+' | Undamped SDOF only.';$('vc-results').classList.add('vc-visible')}$('vc-form').addEventListener('input',calc);$('vc-form').addEventListener('change',calc);$('vc-copy-btn').addEventListener('click',function(){if(navigator.clipboard)navigator.clipboard.writeText($('vc-results').innerText)});document.querySelectorAll('.vc-section-toggle').forEach(function(button){button.addEventListener('click',function(){var section=this.closest('.vc-section');section.classList.toggle('vc-open');this.setAttribute('aria-expanded',section.classList.contains('vc-open'))})});var q=new URLSearchParams(location.search),map={basis:'vc-basis',mass:'vc-mass',mode:'vc-mode',source:'vc-source',k:'vc-k',kunit:'vc-kunit',ka:'vc-ka',area:'vc-area'};Object.keys(map).forEach(function(key){if(q.has(key))$(map[key]).value=q.get(key)});calc()})();<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>Calculate undamped SDOF natural frequency from documented equivalent stiffness and participating mass. Optional k_A\u00d7A basis; no resonance margin or foundation approval inferred.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100105","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/lv\/wp-json\/wp\/v2\/calculator\/100105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/lv\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/lv\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":2,"href":"https:\/\/vibromera.eu\/lv\/wp-json\/wp\/v2\/calculator\/100105\/revisions"}],"predecessor-version":[{"id":102412,"href":"https:\/\/vibromera.eu\/lv\/wp-json\/wp\/v2\/calculator\/100105\/revisions\/102412"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/lv\/wp-json\/wp\/v2\/media?parent=100105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/lv\/wp-json\/wp\/v2\/categories?post=100105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/lv\/wp-json\/wp\/v2\/tags?post=100105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}