{"id":100212,"date":"2026-02-15T20:27:40","date_gmt":"2026-02-15T20:27:40","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100212"},"modified":"2026-07-14T22:26:15","modified_gmt":"2026-07-14T22:26:15","slug":"rotor-moment-of-inertia","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/lt\/calculators\/rotor-moment-of-inertia\/","title":{"rendered":"Uniform-Shape Axial Mass-Inertia Worksheet"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\n  \"@context\":\"https:\/\/schema.org\",\n  \"@type\":\"WebApplication\",\n  \"name\":\"Uniform-Shape Axial Mass-Moment-of-Inertia Worksheet\",\n  \"description\":\"Calculate centroidal axial mass moment of inertia for a documented-mass or uniform-density solid cylinder, annular cylinder, or solid sphere, with exact unit normalization and explicit model limits.\",\n  \"url\":\"https:\/\/vibromera.eu\/calculators\/rotor-moment-of-inertia\/\",\n  \"applicationCategory\":\"EngineeringApplication\",\n  \"operatingSystem\":\"Any\",\n  \"isAccessibleForFree\":true,\n  \"inLanguage\":\"en\",\n  \"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\n  \"featureList\":[\"Documented-mass mode\",\"Uniform-density geometry helper\",\"Exact SI and U.S. customary normalization\",\"Strict domain validation\",\"No acceptance or safety verdict\"]\n}\n<\/script>\n\n<style>\n.vbm212{--ink:#17212b;--muted:#56616c;--line:#d6dee5;--soft:#f4f7f9;--paper:#fff;--blue:#165d89;--blue2:#0b466b;--warn:#8a5400;--warnbg:#fff6df;--ok:#16613b;--okbg:#edf8f2;max-width:1000px;margin:0 auto;padding:20px 16px 44px;color:var(--ink);font:15px\/1.58 system-ui,-apple-system,\"Segoe UI\",sans-serif}\n.vbm212 *{box-sizing:border-box}.vbm212 h1,.vbm212 h2,.vbm212 h3{line-height:1.2}.vbm212 a{color:var(--blue)}\n.vbm212-hero{text-align:center;padding:34px 18px 28px;border-bottom:3px solid var(--blue)}.vbm212-kicker{margin:0 0 7px;color:var(--blue);font:700 12px\/1.2 ui-monospace,monospace;letter-spacing:.11em;text-transform:uppercase}.vbm212 h1{margin:0;font-size:clamp(26px,4vw,39px)}.vbm212-lead{max-width:800px;margin:14px auto 0;color:var(--muted);font-size:16px}.vbm212-badges{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:17px}.vbm212-badge{padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--soft);font:600 12px\/1.2 ui-monospace,monospace}\n.vbm212-notice{margin:22px 0;padding:15px 17px;border-left:4px solid var(--warn);border-radius:5px;background:var(--warnbg)}.vbm212-notice strong{color:#6f4300}\n.vbm212-card{margin-top:22px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 3px 16px rgba(20,35,50,.07);overflow:hidden}.vbm212-card-h{padding:17px 20px;border-bottom:1px solid var(--line);background:var(--soft)}.vbm212-card-h h2{margin:0;font-size:21px}.vbm212-card-h p{margin:6px 0 0;color:var(--muted)}.vbm212-body{padding:20px}\n.vbm212-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vbm212-field{display:flex;flex-direction:column;gap:6px}.vbm212-field.full{grid-column:1\/-1}.vbm212-field label{font-size:13px;font-weight:700}.vbm212-hint{font-weight:400;color:var(--muted)}.vbm212-combo{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:8px}.vbm212 input,.vbm212 select{width:100%;padding:10px 11px;border:1.5px solid #aeb9c3;border-radius:6px;background:#fff;color:var(--ink);font:inherit}.vbm212 input:focus,.vbm212 select:focus{outline:3px solid rgba(22,93,137,.16);border-color:var(--blue)}\n.vbm212-model-note{grid-column:1\/-1;padding:12px 14px;border:1px solid #bdd4e3;border-radius:7px;background:#eef7fc;color:#24485f}.vbm212-fieldset{grid-column:1\/-1;margin:2px 0 0;padding:14px 15px;border:1px solid var(--line);border-radius:8px}.vbm212-fieldset legend{padding:0 6px;font-weight:800}.vbm212-check{display:flex;align-items:flex-start;gap:9px;margin:8px 0;color:var(--muted)}.vbm212-check input{width:auto;margin-top:4px;flex:0 0 auto}\n.vbm212-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.vbm212-btn{width:auto!important;padding:11px 18px!important;border:1px solid var(--blue)!important;border-radius:7px!important;background:var(--blue)!important;color:#fff!important;font-weight:800!important;cursor:pointer}.vbm212-btn:hover{background:var(--blue2)!important}.vbm212-btn.secondary{border-color:#8795a1!important;background:#fff!important;color:var(--ink)!important}.vbm212-error{display:none;margin-top:15px;padding:12px 14px;border-left:4px solid #a52222;border-radius:5px;background:#fff0f0;color:#7e1818}.vbm212-error.show{display:block}\n.vbm212-results{display:none}.vbm212-results.show{display:block}.vbm212-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vbm212-result{padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.vbm212-result.primary{grid-column:1\/-1;border:2px solid var(--blue);background:#edf7fc}.vbm212-result-label{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.vbm212-result-value{margin-top:4px;font:750 20px\/1.3 ui-monospace,monospace;overflow-wrap:anywhere}.vbm212-result.primary .vbm212-result-value{color:var(--blue2);font-size:27px}.vbm212-result-note{margin-top:4px;color:var(--muted);font-size:12px}.vbm212-pass{margin-top:15px;padding:12px 14px;border-left:4px solid var(--ok);border-radius:5px;background:var(--okbg);color:#194b33}\n.vbm212-section{margin-top:25px;padding:21px;border:1px solid var(--line);border-radius:10px;background:#fff}.vbm212-section h2{margin:0 0 13px;font-size:22px}.vbm212-section h3{margin:20px 0 8px;font-size:17px}.vbm212-formula{margin:10px 0;padding:13px 15px;border:1px solid var(--line);border-radius:7px;background:var(--soft);font:650 16px\/1.55 ui-monospace,monospace;text-align:center;overflow-x:auto}.vbm212-tablewrap{overflow-x:auto}.vbm212 table{width:100%;border-collapse:collapse;font-size:13px}.vbm212 th,.vbm212 td{padding:10px;border:1px solid var(--line);text-align:left;vertical-align:top}.vbm212 th{background:var(--soft)}.vbm212-source-list li{margin:8px 0}.vbm212 details{margin:9px 0;border:1px solid var(--line);border-radius:7px;background:#fff}.vbm212 summary{padding:12px 14px;font-weight:750;cursor:pointer}.vbm212 details p{padding:0 14px 13px;margin:0;color:var(--muted)}.vbm212-footer{margin-top:25px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}\n@media(max-width:720px){.vbm212-grid,.vbm212-result-grid{grid-template-columns:1fr}.vbm212-result.primary,.vbm212-field.full,.vbm212-fieldset,.vbm212-model-note{grid-column:1}.vbm212-body,.vbm212-section{padding:16px}.vbm212-combo{grid-template-columns:minmax(0,1fr) 105px}}\n@media print{.vbm212-actions{display:none}.vbm212-card,.vbm212-section{box-shadow:none;break-inside:avoid}.vbm212-results.show{display:block}}\n<\/style>\n\n<main class=\"vbm212\" id=\"vbm-c100212\">\n  <header class=\"vbm212-hero\">\n    <p class=\"vbm212-kicker\">Reference worksheet \u00b7 fixed-axis rigid-body model<\/p>\n    <h1>Uniform-Shape Axial Mass-Moment-of-Inertia Worksheet<\/h1>\n    <p class=\"vbm212-lead\">Calculate mass moment of inertia about the stated centroidal spin axis for one uniform ideal solid cylinder\/disc, annular cylinder, or solid sphere.<\/p>\n    <div class=\"vbm212-badges\"><span class=\"vbm212-badge\">J = \u222br\u22a5\u00b2dm<\/span><span class=\"vbm212-badge\">documented mass or density helper<\/span><span class=\"vbm212-badge\">strict units<\/span><span class=\"vbm212-badge\">no acceptance verdict<\/span><\/div>\n  <\/header>\n\n  <div class=\"vbm212-notice\"><strong>Axis and model first.<\/strong> These are general classical-mechanics formulas, not an ISO or API calculation. They do not represent a stepped, bladed, keyed, slotted, eccentric or assembled rotor unless that real mass distribution is actually equivalent to the selected ideal shape about the stated axis.<\/div>\n\n  <section class=\"vbm212-card\" aria-labelledby=\"vbm212-input-title\">\n    <div class=\"vbm212-card-h\"><h2 id=\"vbm212-input-title\">Controlled inputs<\/h2><p>Use documented mass when available. The density helper is only for a uniform homogeneous shape. Changing a unit clears its paired numeric field and the previous result, so a number is never silently reinterpreted.<\/p><\/div>\n    <div class=\"vbm212-body\">\n      <form id=\"vbm212-form\" novalidate>\n        <div class=\"vbm212-grid\">\n          <div class=\"vbm212-field\"><label for=\"vbm212-shape\">Ideal shape and axis<\/label><select id=\"vbm212-shape\"><option value=\"solid\">Solid cylinder\/disc, central longitudinal axis<\/option><option value=\"annular\">Annular cylinder, central longitudinal axis<\/option><option value=\"sphere\">Solid sphere, any diameter through center<\/option><\/select><\/div>\n          <div class=\"vbm212-field\"><label for=\"vbm212-mode\">Mass basis<\/label><select id=\"vbm212-mode\"><option value=\"documented\">Documented component mass<\/option><option value=\"density\">Uniform-density geometry helper<\/option><\/select><\/div>\n          <div class=\"vbm212-model-note\" id=\"vbm212-model-note\">Documented-mass solid cylinder\/disc: enter component mass and outer diameter. Axial length does not enter J once mass is documented.<\/div>\n\n          <div class=\"vbm212-field\" data-mass><label for=\"vbm212-m\">Documented component mass m<\/label><div class=\"vbm212-combo\"><input id=\"vbm212-m\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><select id=\"vbm212-m-unit\" aria-label=\"Mass unit\"><option value=\"kg\">kg<\/option><option value=\"lbm\">lbm<\/option><\/select><\/div><\/div>\n          <div class=\"vbm212-field\"><label for=\"vbm212-D\">Outer diameter D<\/label><div class=\"vbm212-combo\"><input id=\"vbm212-D\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><select id=\"vbm212-D-unit\" aria-label=\"Outer diameter unit\"><option value=\"mm\">mm<\/option><option value=\"in\">in<\/option><\/select><\/div><\/div>\n          <div class=\"vbm212-field\" data-annular hidden><label for=\"vbm212-d\">Inner diameter d <span class=\"vbm212-hint\">(must satisfy 0 &lt; d &lt; D)<\/span><\/label><div class=\"vbm212-combo\"><input id=\"vbm212-d\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><select id=\"vbm212-d-unit\" aria-label=\"Inner diameter unit\"><option value=\"mm\">mm<\/option><option value=\"in\">in<\/option><\/select><\/div><\/div>\n          <div class=\"vbm212-field\" data-density hidden><label for=\"vbm212-rho\">Documented mass density \u03c1<\/label><div class=\"vbm212-combo\"><input id=\"vbm212-rho\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><select id=\"vbm212-rho-unit\" aria-label=\"Density unit\"><option value=\"kg\/m3\">kg\/m\u00b3<\/option><option value=\"lbm\/in3\">lbm\/in\u00b3<\/option><\/select><\/div><\/div>\n          <div class=\"vbm212-field\" data-length hidden><label for=\"vbm212-L\">Axial length \/ thickness L<\/label><div class=\"vbm212-combo\"><input id=\"vbm212-L\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><select id=\"vbm212-L-unit\" aria-label=\"Axial length unit\"><option value=\"mm\">mm<\/option><option value=\"in\">in<\/option><\/select><\/div><\/div>\n\n          <div class=\"vbm212-field\"><label for=\"vbm212-id\">Component \/ calculation ID<\/label><input id=\"vbm212-id\" autocomplete=\"off\" placeholder=\"required record\"><\/div>\n          <div class=\"vbm212-field\"><label for=\"vbm212-geometry-source\">Geometry source<\/label><input id=\"vbm212-geometry-source\" autocomplete=\"off\" placeholder=\"drawing, revision or measurement\"><\/div>\n          <div class=\"vbm212-field\"><label for=\"vbm212-mass-source\">Mass or density source and condition<\/label><input id=\"vbm212-mass-source\" autocomplete=\"off\" placeholder=\"scale report, specification, temperature\/condition\"><\/div>\n          <div class=\"vbm212-field\"><label for=\"vbm212-axis-source\">Axis \/ idealization source<\/label><input id=\"vbm212-axis-source\" autocomplete=\"off\" placeholder=\"model, drawing axis and revision\"><\/div>\n\n          <fieldset class=\"vbm212-fieldset\"><legend>Required model confirmation<\/legend>\n            <label class=\"vbm212-check\"><input type=\"checkbox\" id=\"vbm212-c1\"> <span>The requested axis is exactly the selected centroidal axis: the cylinder\/disc longitudinal symmetry axis or a sphere diameter through its center.<\/span><\/label>\n            <label class=\"vbm212-check\"><input type=\"checkbox\" id=\"vbm212-c2\"> <span>The component is adequately represented by one uniform ideal shape. The density helper additionally requires homogeneous density and the stated full dimensions.<\/span><\/label>\n            <label class=\"vbm212-check\"><input type=\"checkbox\" id=\"vbm212-c3\"> <span>Keys, blades, hubs, bores other than the selected concentric bore, grooves, holes, shafts, eccentricity, attachments and offset axes are absent or handled in a separate controlled model.<\/span><\/label>\n          <\/fieldset>\n        <\/div>\n        <div class=\"vbm212-actions\"><button class=\"vbm212-btn\" type=\"submit\">Calculate documented case<\/button><button class=\"vbm212-btn secondary\" type=\"button\" id=\"vbm212-reset\">Clear<\/button><\/div>\n        <div class=\"vbm212-error\" id=\"vbm212-error\" role=\"alert\" aria-live=\"assertive\" tabindex=\"-1\"><\/div>\n      <\/form>\n    <\/div>\n  <\/section>\n\n  <section class=\"vbm212-card vbm212-results\" id=\"vbm212-results\" aria-live=\"polite\">\n    <div class=\"vbm212-card-h\"><h2>Reference result<\/h2><p id=\"vbm212-result-context\"><\/p><\/div>\n    <div class=\"vbm212-body\">\n      <div class=\"vbm212-result-grid\">\n        <div class=\"vbm212-result primary\"><div class=\"vbm212-result-label\">Axial mass moment of inertia J<\/div><div class=\"vbm212-result-value\" id=\"vbm212-r-J\">\u2014<\/div><div class=\"vbm212-result-note\" id=\"vbm212-r-J-alt\">\u2014<\/div><\/div>\n        <div class=\"vbm212-result\"><div class=\"vbm212-result-label\">Component mass<\/div><div class=\"vbm212-result-value\" id=\"vbm212-r-m\">\u2014<\/div><div class=\"vbm212-result-note\" id=\"vbm212-r-m-alt\">\u2014<\/div><\/div>\n        <div class=\"vbm212-result\"><div class=\"vbm212-result-label\">Radius of gyration k = \u221a(J\/m)<\/div><div class=\"vbm212-result-value\" id=\"vbm212-r-k\">\u2014<\/div><div class=\"vbm212-result-note\" id=\"vbm212-r-k-alt\">\u2014<\/div><\/div>\n        <div class=\"vbm212-result\" data-volume-result hidden><div class=\"vbm212-result-label\">Derived ideal-shape volume<\/div><div class=\"vbm212-result-value\" id=\"vbm212-r-volume\">\u2014<\/div><\/div>\n      <\/div>\n      <div class=\"vbm212-pass\">No pass\/fail, acceleration, energy, balancing or safe-speed conclusion is produced. Apply the result only to the documented axis and idealized component.<\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"vbm212-section\">\n    <h2>Equations, units and model boundary<\/h2>\n    <p>Mass moment of inertia about a specified fixed axis is <strong>J = \u222br\u22a5\u00b2dm<\/strong>, where r\u22a5 is perpendicular distance from each mass element to that axis. The same body generally has different inertia about a different axis.<\/p>\n    <h3>Centroidal axial formulas used here<\/h3>\n    <div class=\"vbm212-formula\">solid cylinder\/disc: Jz = \u00bdmR\u00b2 &nbsp;\u00b7&nbsp; annular cylinder: Jz = \u00bdm(Ro\u00b2 + Ri\u00b2) &nbsp;\u00b7&nbsp; solid sphere: J = \u2156mR\u00b2<\/div>\n    <p>R = D\/2 and Ri = d\/2. The cylinder formulas are only for the central longitudinal symmetry axis. The sphere formula applies to a diameter through its center.<\/p>\n    <h3>Optional uniform-density helper<\/h3>\n    <div class=\"vbm212-formula\">m = \u03c1\u03c0R\u00b2L &nbsp;\u00b7&nbsp; m = \u03c1\u03c0(Ro\u00b2\u2212Ri\u00b2)L &nbsp;\u00b7&nbsp; m = \u03c1(4\u03c0R\u00b3\/3)<\/div>\n    <p>The helper derives mass only for a homogeneous full solid\/annular cylinder or solid sphere. Length does not appear in axial J once mass is known, but in density mode it changes mass and therefore J.<\/p>\n    <h3>Exact unit normalization<\/h3>\n    <p>The worksheet calculates in kg\u00b7m\u00b2 and reports exact derived equivalents. In particular, <strong>1 kg\u00b7m\u00b2 = 10\u2079 g\u00b7mm\u00b2<\/strong>; 1 in = 0.0254 m and 1 lbm = 0.45359237 kg exactly. \u201clbm\u00b7ft\u00b2\u201d is used, not the ambiguous label \u201clb\u00b7ft\u00b2\u201d.<\/p>\n    <h3>Offset and composite rotors<\/h3>\n    <p>The parallel-axis theorem is J = Jcm + m d\u22a5\u00b2, where d\u22a5 is the perpendicular distance between parallel axes. It is not a substitute for defining the final common axis. Composite rotors may require signed material\/void components, coordinate transformations, CAD mass properties or direct inertia measurement; this worksheet does not sum components.<\/p>\n  <\/section>\n\n  <section class=\"vbm212-section\">\n    <h2>Independent published check<\/h2>\n    <p>University Physics (UCF\/OpenStax) gives a coaxial system consisting of a 2.0 kg, 0.50 m-radius disk and a 1.0 kg annular cylinder with 0.20\/0.30 m inner\/outer radii; its published total is 0.315 kg\u00b7m\u00b2. Two documented-mass worksheet runs give 0.250 kg\u00b7m\u00b2 and 0.065 kg\u00b7m\u00b2, whose controlled sum reproduces 0.315 kg\u00b7m\u00b2. This checks the formulas; it does not authorize using this single-component worksheet as a general rotor assembly model.<\/p>\n  <\/section>\n\n  <section class=\"vbm212-section\">\n    <h2>Source classification<\/h2>\n    <div class=\"vbm212-tablewrap\"><table><thead><tr><th>Claim<\/th><th>Classification<\/th><th>Inspected source<\/th><\/tr><\/thead><tbody>\n      <tr><td>J = \u222br\u22a5\u00b2dm; disk\/cylinder \u00bdmR\u00b2; sphere \u2156mR\u00b2; axis dependence<\/td><td>General classical mechanics; not an ISO formula<\/td><td>MIT OCW 8.01L lecture 28, rendered page 2<\/td><\/tr>\n      <tr><td>Annular cylinder \u00bdm(Ro\u00b2+Ri\u00b2)<\/td><td>Integrated uniform thick cylindrical shell<\/td><td>University of Illinois Engineering Dynamics Reference<\/td><\/tr>\n      <tr><td>Parallel-axis J = Jcm + md\u22a5\u00b2<\/td><td>General classical mechanics; perpendicular separation between parallel axes<\/td><td>MIT OCW 8.01L lecture 28, rendered page 2<\/td><\/tr>\n      <tr><td>0.315 kg\u00b7m\u00b2 disk-plus-annulus check<\/td><td>Published university textbook example<\/td><td>UCF Pressbooks \/ OpenStax University Physics, section 10.4<\/td><\/tr>\n      <tr><td>inch, pound-mass and lbm\u00b7ft\u00b2 conversion basis<\/td><td>Metrology \/ unit conversion<\/td><td>NIST SP 811 Appendix B.8<\/td><\/tr>\n    <\/tbody><\/table><\/div>\n    <ul class=\"vbm212-source-list\">\n      <li><a href=\"https:\/\/live.ocw.mit.edu\/courses\/8-01l-physics-i-classical-mechanics-fall-2005\/3608221741dd7ce67b6ee2ff650d0e17_lec28.pdf\" rel=\"noopener\" target=\"_blank\">MIT OCW 8.01L Physics I, lecture 28<\/a> \u2014 definition, fixed-axis condition, common-shape formulas, axis dependence and parallel-axis theorem.<\/li>\n      <li><a href=\"https:\/\/dynref.engr.illinois.edu\/rem.html\" rel=\"noopener\" target=\"_blank\">University of Illinois Engineering Dynamics Reference, moments of inertia<\/a> \u2014 thick cylindrical shell integration and axial annular-cylinder formula.<\/li>\n      <li><a href=\"https:\/\/pressbooks.online.ucf.edu\/osuniversityphysics\/chapter\/10-4-moment-of-inertia-and-rotational-kinetic-energy\/\" rel=\"noopener\" target=\"_blank\">UCF\/OpenStax University Physics 10.4<\/a> \u2014 definition, axis dependence and published disk-plus-annular-cylinder example.<\/li>\n      <li><a href=\"https:\/\/www.nist.gov\/pml\/special-publication-811\/nist-guide-si-appendix-b-conversion-factors\/nist-guide-si-appendix-b8\" rel=\"noopener\" target=\"_blank\">NIST SP 811 Appendix B.8<\/a> \u2014 inch, pound-mass, pound-foot-squared and pound-inch-squared conversion basis.<\/li>\n    <\/ul>\n    <p><strong>Accessed:<\/strong> 14 July 2026. The cited MIT page was rendered and visually inspected. No ISO or API acceptance criterion is implemented.<\/p>\n  <\/section>\n\n  <section class=\"vbm212-section\">\n    <h2>Questions this worksheet does not answer<\/h2>\n    <details><summary>Is this the inertia of my complete rotor?<\/summary><p>Only if its actual mass distribution about the stated axis is represented by this one ideal uniform shape. Real rotors commonly require CAD\/FE mass properties, a controlled component sum or direct measurement.<\/p><\/details>\n    <details><summary>Can I use the result for transverse bending or rocking?<\/summary><p>No. The cylinder\/disc result here is about the central longitudinal spin axis. Transverse moments contain different radius and length terms.<\/p><\/details>\n    <details><summary>Why are material presets absent?<\/summary><p>Density depends on the controlled alloy, porosity, processing state and temperature. Enter a value from the actual component specification or measurement record.<\/p><\/details>\n  <\/section>\n\n  <footer class=\"vbm212-footer\">Revision: scientific audit 2026-07-14 \u00b7 English source page \u00b7 Reference calculation only. Preserve the input and source records with the result.<\/footer>\n<\/main>\n\n<script id=\"vbm-c100212-logic\">\n(function(){\n  'use strict';\n  var IN_M=0.0254;\n  var FT_M=0.3048;\n  var LBM_KG=0.45359237;\n  var RE=\/^[+-]?(?:(?:\\d+(?:[\\.,]\\d*)?)|(?:[\\.,]\\d+))(?:[eE][+-]?\\d+)?$\/;\n  function own(o,k){return Object.prototype.hasOwnProperty.call(o,k);}\n  function strictNumber(raw,label,allowZero){\n    var s=String(raw==null?'':raw).trim();\n    if(!s)throw new Error(label+' is required.');\n    if(s.indexOf('.')!==-1&&s.indexOf(',')!==-1)throw new Error(label+' must use either a decimal point or a decimal comma, not both.');\n    if(!RE.test(s))throw new Error(label+' is not a complete number. Thousands separators and unit suffixes are not accepted.');\n    var n=Number(s.replace(',','.'));\n    if(!Number.isFinite(n))throw new Error(label+' must be finite.');\n    if(allowZero?n<0:n<=0)throw new Error(label+(allowZero?' must be zero or positive.':' must be greater than zero.'));\n    return n;\n  }\n  function factor(kind,unit){\n    var maps={length:{mm:1e-3,in:IN_M},mass:{kg:1,lbm:LBM_KG},density:{'kg\/m3':1,'lbm\/in3':LBM_KG\/Math.pow(IN_M,3)}};\n    if(!own(maps,kind)||!own(maps[kind],unit))throw new Error('Unsupported '+kind+' unit.');\n    return maps[kind][unit];\n  }\n  function finitePositive(n,label,allowZero){if(!Number.isFinite(n)||(allowZero?n<0:n<=0))throw new Error(label+' is outside the finite model domain.');}\n  function evaluateSI(x){\n    if(!['solid','annular','sphere'].includes(x.shape))throw new Error('Unsupported ideal shape.');\n    finitePositive(x.D,'D',false);finitePositive(x.m,'m',false);\n    var R=x.D\/2,Ri=0,J;\n    if(x.shape==='annular'){\n      finitePositive(x.d,'d',false);if(!(x.d<x.D))throw new Error('Inner diameter d must be smaller than outer diameter D.');Ri=x.d\/2;\n      J=.5*x.m*(R*R+Ri*Ri);\n    }else if(x.shape==='solid'){J=.5*x.m*R*R;}else{J=.4*x.m*R*R;}\n    var k=Math.sqrt(J\/x.m);\n    [J,k].forEach(function(v){finitePositive(v,'Calculated inertia result',false);});\n    return {shape:x.shape,m:x.m,D:x.D,d:x.shape==='annular'?x.d:0,J:J,k:k,volume:x.volume==null?null:x.volume,rho:x.rho==null?null:x.rho,mode:x.mode};\n  }\n  function normalize(v){\n    if(!v||!['documented','density'].includes(v.mode))throw new Error('Unsupported mass basis.');\n    if(!['solid','annular','sphere'].includes(v.shape))throw new Error('Unsupported ideal shape.');\n    var D=strictNumber(v.D,'Outer diameter D',false)*factor('length',v.DUnit),d=0;\n    if(v.shape==='annular')d=strictNumber(v.d,'Inner diameter d',false)*factor('length',v.dUnit);\n    if(v.shape==='annular'&&!(d<D))throw new Error('Inner diameter d must be smaller than outer diameter D.');\n    var m,volume=null,rho=null,R=D\/2,Ri=d\/2;\n    if(v.mode==='documented')m=strictNumber(v.m,'Documented component mass m',false)*factor('mass',v.mUnit);\n    else{\n      rho=strictNumber(v.rho,'Mass density \u03c1',false)*factor('density',v.rhoUnit);\n      if(v.shape==='sphere')volume=4*Math.PI*Math.pow(R,3)\/3;\n      else{\n        var L=strictNumber(v.L,'Axial length L',false)*factor('length',v.LUnit);\n        volume=Math.PI*(R*R-Ri*Ri)*L;\n      }\n      finitePositive(volume,'Ideal-shape volume',false);m=rho*volume;finitePositive(m,'Derived component mass',false);\n    }\n    return evaluateSI({shape:v.shape,mode:v.mode,m:m,D:D,d:d,volume:volume,rho:rho});\n  }\n  function format(n,d){if(!Number.isFinite(n))return '\u2014';if(n===0)return'0';var a=Math.abs(n);if(a<1e-6||a>=1e9)return n.toExponential(d==null?6:d);return n.toLocaleString('en-US',{maximumFractionDigits:d==null?9:d,useGrouping:false});}\n  function el(id){return document.getElementById(id);}function value(id){return el(id).value;}function setText(id,text){el(id).textContent=text;}\n  function uiInput(){return {shape:value('vbm212-shape'),mode:value('vbm212-mode'),m:value('vbm212-m'),mUnit:value('vbm212-m-unit'),D:value('vbm212-D'),DUnit:value('vbm212-D-unit'),d:value('vbm212-d'),dUnit:value('vbm212-d-unit'),rho:value('vbm212-rho'),rhoUnit:value('vbm212-rho-unit'),L:value('vbm212-L'),LUnit:value('vbm212-L-unit')};}\n  function recordsOK(){\n    [['vbm212-id','Component \/ calculation ID'],['vbm212-geometry-source','Geometry source'],['vbm212-mass-source','Mass or density source'],['vbm212-axis-source','Axis \/ idealization source']].forEach(function(p){if(value(p[0]).trim().length<2)throw new Error(p[1]+' is required.');});\n    ['vbm212-c1','vbm212-c2','vbm212-c3'].forEach(function(id){if(!el(id).checked)throw new Error('Confirm every model assumption before calculating.');});\n  }\n  function render(r){\n    var names={solid:'solid cylinder\/disc',annular:'annular cylinder',sphere:'solid sphere'};\n    setText('vbm212-result-context',names[r.shape]+' \u00b7 '+(r.mode==='documented'?'documented mass':'uniform-density helper')+' \u00b7 '+value('vbm212-id').trim());\n    setText('vbm212-r-J',format(r.J,12)+' kg\u00b7m\u00b2');\n    setText('vbm212-r-J-alt',format(r.J\/(LBM_KG*FT_M*FT_M),12)+' lbm\u00b7ft\u00b2 \u00b7 '+format(r.J*1e9,6)+' g\u00b7mm\u00b2');\n    setText('vbm212-r-m',format(r.m,9)+' kg');setText('vbm212-r-m-alt',format(r.m\/LBM_KG,9)+' lbm');\n    setText('vbm212-r-k',format(r.k*1000,9)+' mm');setText('vbm212-r-k-alt',format(r.k\/IN_M,9)+' in');\n    var vr=document.querySelector('[data-volume-result]');vr.hidden=r.volume==null;if(r.volume!=null)setText('vbm212-r-volume',format(r.volume,12)+' m\u00b3');\n    el('vbm212-results').classList.add('show');\n  }\n  function showError(e){el('vbm212-results').classList.remove('show');var box=el('vbm212-error');box.textContent=e&&e.message?e.message:String(e);box.classList.add('show');box.focus();}\n  function clearError(){el('vbm212-error').classList.remove('show');el('vbm212-error').textContent='';}\n  function invalidate(){clearError();el('vbm212-results').classList.remove('show');}\n  function updateModel(clearConditional){\n    if(clearConditional)['vbm212-m','vbm212-d','vbm212-rho','vbm212-L'].forEach(function(id){el(id).value='';});\n    var shape=value('vbm212-shape'),mode=value('vbm212-mode'),density=mode==='density',annular=shape==='annular',needsLength=density&&shape!=='sphere';\n    document.querySelectorAll('[data-mass]').forEach(function(n){n.hidden=density;});document.querySelectorAll('[data-density]').forEach(function(n){n.hidden=!density;});document.querySelectorAll('[data-annular]').forEach(function(n){n.hidden=!annular;});document.querySelectorAll('[data-length]').forEach(function(n){n.hidden=!needsLength;});\n    var note=(mode==='documented'?'Documented-mass ':'Uniform-density ')+(shape==='solid'?'solid cylinder\/disc':shape==='annular'?'annular cylinder':'solid sphere')+': '+(density?(shape==='sphere'?'enter density and outer diameter; mass is derived from sphere volume.':'enter density, diameters and axial length; mass is derived from ideal volume.'):'enter component mass and diameter'+(annular?'s.':'. Axial length does not enter J once mass is documented.'));\n    setText('vbm212-model-note',note);invalidate();\n  }\n  function reset(){el('vbm212-form').reset();updateModel(false);invalidate();}\n  var form=el('vbm212-form');\n  if(form){\n    form.addEventListener('submit',function(ev){ev.preventDefault();clearError();try{recordsOK();render(normalize(uiInput()));}catch(e){showError(e);}});\n    form.addEventListener('keydown',function(ev){if(ev.key==='Enter'&&ev.target&&ev.target.tagName==='INPUT'&&ev.target.type!=='checkbox'){ev.preventDefault();if(typeof form.requestSubmit==='function')form.requestSubmit();else form.querySelector('button[type=\"submit\"]').click();}});\n    el('vbm212-shape').addEventListener('change',function(){updateModel(true);});el('vbm212-mode').addEventListener('change',function(){updateModel(true);});\n    [['vbm212-m-unit','vbm212-m'],['vbm212-D-unit','vbm212-D'],['vbm212-d-unit','vbm212-d'],['vbm212-rho-unit','vbm212-rho'],['vbm212-L-unit','vbm212-L']].forEach(function(p){el(p[0]).addEventListener('change',function(){el(p[1]).value='';invalidate();});});\n    el('vbm212-reset').addEventListener('click',reset);updateModel(false);\n  }\n  window.VBM_C100212={IN_M:IN_M,FT_M:FT_M,LBM_KG:LBM_KG,strictNumber:strictNumber,factor:factor,evaluateSI:evaluateSI,normalize:normalize};\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Calculate centroidal axial mass moment of inertia for a documented-mass or uniform-density solid cylinder, annular cylinder, or solid sphere with exact units.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100212","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/lt\/wp-json\/wp\/v2\/calculator\/100212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/lt\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/lt\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":2,"href":"https:\/\/vibromera.eu\/lt\/wp-json\/wp\/v2\/calculator\/100212\/revisions"}],"predecessor-version":[{"id":102553,"href":"https:\/\/vibromera.eu\/lt\/wp-json\/wp\/v2\/calculator\/100212\/revisions\/102553"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/lt\/wp-json\/wp\/v2\/media?parent=100212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/lt\/wp-json\/wp\/v2\/categories?post=100212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/lt\/wp-json\/wp\/v2\/tags?post=100212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}