{"id":512,"date":"2026-08-28T17:14:45","date_gmt":"2026-08-28T15:14:45","guid":{"rendered":"https:\/\/secic.fcyt.umss.edu.bo\/?page_id=512"},"modified":"2026-08-28T17:17:00","modified_gmt":"2026-08-28T15:17:00","slug":"schmertmann","status":"publish","type":"page","link":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/schmertmann\/","title":{"rendered":"Schmertmann"},"content":{"rendered":"<style>\r\n    .secic-schmertmann { font-family: 'Inter', 'Segoe UI', sans-serif; max-width: 1250px; margin: 0 auto; color: #1e293b; background: #f8fafc; border-radius: 12px; border: 1px solid #cbd5e1; box-shadow: 0 10px 25px rgba(0,0,0,0.05); overflow: hidden; }\r\n    .sh-header { background: #0b3c5d; color: white; padding: 25px 30px; text-align: center; border-bottom: 4px solid #2563eb; }\r\n    .sh-header h2 { margin: 0; font-size: 26px; font-weight: 900; text-transform: uppercase; letter-spacing: -0.5px; }\r\n    .sh-header p { margin: 8px 0 0 0; color: #cbd5e1; font-size: 14.5px; }\r\n    \r\n    \/* Cuadr\u00edcula base para PC *\/\r\n    .sh-body { display: grid; grid-template-columns: 420px 1fr; gap: 0; }\r\n    \r\n    .sh-sidebar { background: white; padding: 25px; border-right: 1px solid #e2e8f0; max-height: 800px; overflow-y: auto; }\r\n    .sh-group { margin-bottom: 25px; }\r\n    .sh-group label.title { display: block; font-size: 13px; font-weight: 900; color: #0f172a; text-transform: uppercase; margin-bottom: 12px; border-bottom: 2px solid #e2e8f0; padding-bottom: 5px; }\r\n    .sh-input-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 10px; }\r\n    .sh-input { position: relative; }\r\n    .sh-input span.label { font-size: 11px; font-weight: 700; color: #64748b; margin-bottom: 4px; display: block; }\r\n    .sh-input input { width: 100%; box-sizing: border-box; padding: 8px; border: 2px solid #cbd5e1; border-radius: 6px; font-size: 14px; font-weight: 600; }\r\n    .sh-input input:focus { border-color: #2563eb; outline: none; }\r\n    .sh-input .unit { position: absolute; right: 10px; bottom: 8px; font-size: 11px; color: #94a3b8; font-weight: bold; pointer-events: none; }\r\n\r\n    \/* Estilos del Constructor de Estratos *\/\r\n    .strata-builder { border: 1px solid #cbd5e1; border-radius: 8px; overflow: hidden; margin-bottom: 10px; }\r\n    .strata-header { display: grid; grid-template-columns: 2fr 2fr 2fr 30px; background: #1e293b; color: white; font-size: 11px; font-weight: bold; text-align: center; }\r\n    .strata-header div { padding: 8px 4px; }\r\n    .strata-list { display: flex; flex-direction: column; }\r\n    .strata-row { display: grid; grid-template-columns: 2fr 2fr 2fr 30px; border-bottom: 1px solid #e2e8f0; background: white; }\r\n    .strata-row:last-child { border-bottom: none; }\r\n    .strata-row input { width: 100%; border: none; padding: 8px 4px; text-align: center; font-size: 13px; font-weight: 600; color: #0f172a; outline: none; background: transparent; }\r\n    .strata-row input:focus { background: #eff6ff; }\r\n    .btn-del-layer { background: #fee2e2; color: #ef4444; border: none; cursor: pointer; font-weight: bold; font-size: 16px; transition: 0.2s; }\r\n    .btn-del-layer:hover { background: #ef4444; color: white; }\r\n    .btn-add-layer { width: 100%; background: #f1f5f9; color: #2563eb; border: 2px dashed #cbd5e1; padding: 8px; font-weight: bold; border-radius: 6px; cursor: pointer; transition: 0.2s; font-size: 13px; }\r\n    .btn-add-layer:hover { border-color: #2563eb; background: #eff6ff; }\r\n\r\n    .sh-main { padding: 30px; display: flex; flex-direction: column; gap: 20px; }\r\n    \r\n    .sh-canvas-container { background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 15px; display: flex; justify-content: center; align-items: center; background-image: radial-gradient(#e2e8f0 1px, transparent 1px); background-size: 20px 20px; height: 380px; position: relative; overflow-x: auto;}\r\n    canvas { max-width: 100%; height: 100%; }\r\n\r\n    .sh-memoria { background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 25px; box-shadow: 0 4px 6px rgba(0,0,0,0.02); overflow-x: auto; }\r\n    .sh-memoria h3 { margin: 0 0 15px 0; font-size: 18px; color: #0f172a; border-bottom: 2px solid #2563eb; padding-bottom: 8px; display: inline-block; text-transform: uppercase; }\r\n    \r\n    .paso-calc { margin-bottom: 20px; }\r\n    .paso-title { font-size: 13px; font-weight: 800; color: #2563eb; text-transform: uppercase; margin-bottom: 10px; }\r\n    \r\n    .math-block { font-family: 'Cambria Math', 'Times New Roman', serif; font-size: 16px; color: #1e293b; background: #f8fafc; padding: 15px; border-radius: 8px; border-left: 4px solid #94a3b8; display: flex; flex-direction: column; gap: 8px; }\r\n    .math-line { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }\r\n    .math-var { font-style: italic; color: #0f172a; font-weight: bold; }\r\n    .math-sub { font-size: 0.7em; vertical-align: sub; font-weight: normal; }\r\n    .math-val { color: #dc2626; font-weight: bold; }\r\n    .math-res { color: #059669; font-weight: bold; }\r\n    .frac { display: inline-flex; flex-direction: column; align-items: center; vertical-align: middle; margin: 0 6px; }\r\n    .frac-top { border-bottom: 1px solid #1e293b; padding: 0 4px; font-size: 0.85em; }\r\n    .frac-bot { padding: 0 4px; font-size: 0.85em; }\r\n\r\n    .tabla-estratos { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 10px; border-radius: 8px; overflow: hidden; box-shadow: 0 0 0 1px #e2e8f0; }\r\n    .tabla-estratos th { background: #0f172a; color: white; padding: 10px 8px; text-align: center; }\r\n    .tabla-estratos td { padding: 8px; text-align: center; border-bottom: 1px solid #e2e8f0; font-family: monospace; font-size: 13.5px; }\r\n    .tabla-estratos tr:nth-child(even) { background-color: #f8fafc; }\r\n    .tabla-estratos tr:last-child td { border-bottom: none; font-weight: bold; background: #eff6ff; }\r\n\r\n    \/* =========================================\r\n       MEDIA QUERY: AJUSTE PARA CELULARES\r\n       ========================================= *\/\r\n    @media (max-width: 768px) {\r\n        .sh-body {\r\n            grid-template-columns: 1fr; \/* Pone una columna debajo de otra *\/\r\n        }\r\n        .sh-sidebar {\r\n            border-right: none;\r\n            border-bottom: 1px solid #e2e8f0;\r\n            max-height: none; \/* Evita el doble scroll en el celular *\/\r\n        }\r\n        .sh-main {\r\n            padding: 15px; \r\n        }\r\n        .sh-canvas-container {\r\n             height: 300px; \r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div class=\"secic-schmertmann\">\r\n    <div class=\"sh-header\">\r\n        <h2>Simulador Avanzado de Asentamientos<\/h2>\r\n        <p>An\u00e1lisis de Schmertmann Multi-Estrato con c\u00e1lculo de esfuerzos efectivos iniciales (\u03c3'vo).<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"sh-body\">\r\n        <div class=\"sh-sidebar\">\r\n            <div class=\"sh-group\">\r\n                <label class=\"title\">1. Geometr\u00eda y Carga<\/label>\r\n                <div class=\"sh-input-row\">\r\n                    <div class=\"sh-input\"><span class=\"label\">Base (B)<\/span><input type=\"number\" id=\"s-B\" value=\"4.0\" step=\"0.1\"><span class=\"unit\">m<\/span><\/div>\r\n                    <div class=\"sh-input\"><span class=\"label\">Largo (L)<\/span><input type=\"number\" id=\"s-L\" value=\"4.0\" step=\"0.1\"><span class=\"unit\">m<\/span><\/div>\r\n                <\/div>\r\n                <div class=\"sh-input-row\">\r\n                    <div class=\"sh-input\"><span class=\"label\">Profundidad (Df)<\/span><input type=\"number\" id=\"s-Df\" value=\"3.0\" step=\"0.1\"><span class=\"unit\">m<\/span><\/div>\r\n                    <div class=\"sh-input\"><span class=\"label\">Presi\u00f3n (q_bruta)<\/span><input type=\"number\" id=\"s-q\" value=\"311.7\" step=\"1\"><span class=\"unit\">kPa<\/span><\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"sh-group\">\r\n                <label class=\"title\">2. Niveles Fre\u00e1ticos e Hidr\u00e1ulica<\/label>\r\n                <div class=\"sh-input-row\">\r\n                    <div class=\"sh-input\"><span class=\"label\">N.F. Inicial (NF\u2080)<\/span><input type=\"number\" id=\"s-nfo\" value=\"2.0\" step=\"0.1\"><span class=\"unit\">m<\/span><\/div>\r\n                    <div class=\"sh-input\"><span class=\"label\">N.F. Final (NF_f)<\/span><input type=\"number\" id=\"s-nff\" value=\"3.0\" step=\"0.1\"><span class=\"unit\">m<\/span><\/div>\r\n                <\/div>\r\n                <div class=\"sh-input-row\">\r\n                    <div class=\"sh-input\"><span class=\"label\">\u03b3_Agua<\/span><input type=\"number\" id=\"s-gw\" value=\"9.8\" step=\"0.1\"><span class=\"unit\">kN\/m\u00b3<\/span><\/div>\r\n                    <div class=\"sh-input\"><span class=\"label\">Tiempo (t)<\/span><input type=\"number\" id=\"s-t\" value=\"10\" step=\"1\"><span class=\"unit\">a\u00f1os<\/span><\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"sh-group\">\r\n                <label class=\"title\">3. Perfil Estratigr\u00e1fico (Z=0 hacia abajo)<\/label>\r\n                <div class=\"strata-builder\">\r\n                    <div class=\"strata-header\">\r\n                        <div>Espesor (m)<\/div><div>\u03b3 (kN\/m\u00b3)<\/div><div>E (MPa)<\/div><div><\/div>\r\n                    <\/div>\r\n                    <div class=\"strata-list\" id=\"lista-estratos\">\r\n                        <!-- Generado por JS -->\r\n                    <\/div>\r\n                <\/div>\r\n                <button class=\"btn-add-layer\" onclick=\"window.agregarEstratoSchm()\">+ A\u00f1adir Estrato<\/button>\r\n            <\/div>\r\n            \r\n            <button onclick=\"window.calcularSchm()\" style=\"width:100%; padding:12px; background:#2563eb; color:white; border:none; border-radius:6px; font-weight:bold; cursor:pointer;\">Forzar Rec\u00e1lculo<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"sh-main\">\r\n            <div class=\"sh-canvas-container\">\r\n                <canvas id=\"cvsSchm\" width=\"750\" height=\"380\"><\/canvas>\r\n            <\/div>\r\n            \r\n            <div class=\"sh-memoria\">\r\n                <h3>Memoria Anal\u00edtica (Multi-Estrato)<\/h3>\r\n                <div id=\"memoria-schm\">Generando c\u00e1lculo...<\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\n    (function() {\r\n        \/\/ Variables globales blindadas\r\n        window.capasSchm = [\r\n            { h: 2.0, gamma: 16, E: 22 },\r\n            { h: 1.0, gamma: 19, E: 22 },\r\n            { h: 1.0, gamma: 24, E: 22 },\r\n            { h: 1.0, gamma: 24, E: 40 },\r\n            { h: 2.0, gamma: 24, E: 60 },\r\n            { h: 2.0, gamma: 24, E: 15 },\r\n            { h: 2.0, gamma: 24, E: 10 }\r\n        ];\r\n\r\n        window.renderizarEstratosSchm = function() {\r\n            const list = document.getElementById('lista-estratos');\r\n            if(!list) return;\r\n            list.innerHTML = '';\r\n            window.capasSchm.forEach((capa, idx) => {\r\n                list.innerHTML += `\r\n                    <div class=\"strata-row\">\r\n                        <input type=\"number\" step=\"0.1\" value=\"${capa.h}\" oninput=\"window.updateCapaSchm(${idx}, 'h', this.value)\">\r\n                        <input type=\"number\" step=\"0.1\" value=\"${capa.gamma}\" oninput=\"window.updateCapaSchm(${idx}, 'gamma', this.value)\">\r\n                        <input type=\"number\" step=\"0.1\" value=\"${capa.E}\" oninput=\"window.updateCapaSchm(${idx}, 'E', this.value)\">\r\n                        <button class=\"btn-del-layer\" onclick=\"window.borrarEstratoSchm(${idx})\">\u00d7<\/button>\r\n                    <\/div>\r\n                `;\r\n            });\r\n        };\r\n\r\n        window.updateCapaSchm = function(idx, prop, val) { \r\n            window.capasSchm[idx][prop] = parseFloat(val) || 0; \r\n            window.calcularSchm(); \r\n        };\r\n        \r\n        window.agregarEstratoSchm = function() { \r\n            window.capasSchm.push({ h: 1.0, gamma: 18, E: 15 }); \r\n            window.renderizarEstratosSchm(); \r\n            window.calcularSchm(); \r\n        };\r\n        \r\n        window.borrarEstratoSchm = function(idx) { \r\n            if(window.capasSchm.length > 1) { \r\n                window.capasSchm.splice(idx, 1); \r\n                window.renderizarEstratosSchm(); \r\n                window.calcularSchm(); \r\n            } \r\n        };\r\n\r\n        window.getEsfuerzoEfectivoInicial = function(profundidad, NFo, gw) {\r\n            let esfuerzoTotal = 0;\r\n            let z_actual = 0;\r\n            for (let capa of window.capasSchm) {\r\n                if (z_actual >= profundidad) break;\r\n                let dz = Math.min(capa.h, profundidad - z_actual);\r\n                esfuerzoTotal += dz * capa.gamma;\r\n                z_actual += dz;\r\n            }\r\n            if (z_actual < profundidad) {\r\n                let lastGamma = window.capasSchm.length > 0 ? window.capasSchm[window.capasSchm.length-1].gamma : 18;\r\n                esfuerzoTotal += (profundidad - z_actual) * lastGamma;\r\n            }\r\n            let presionPoros = profundidad > NFo ? (profundidad - NFo) * gw : 0;\r\n            return esfuerzoTotal - presionPoros;\r\n        };\r\n\r\n        window.getModuloE = function(profundidad_media) {\r\n            let z_actual = 0;\r\n            for (let capa of window.capasSchm) {\r\n                z_actual += capa.h;\r\n                if (profundidad_media <= z_actual) return capa.E;\r\n            }\r\n            return window.capasSchm.length > 0 ? window.capasSchm[window.capasSchm.length-1].E : 10;\r\n        };\r\n\r\n        window.calcularSchm = function() {\r\n            const mem = document.getElementById(\"memoria-schm\");\r\n            if(!mem) return;\r\n            \r\n            const B_val = parseFloat(document.getElementById(\"s-B\").value) || 0.1;\r\n            const L_val = parseFloat(document.getElementById(\"s-L\").value) || 0.1;\r\n            const B = Math.min(B_val, L_val);\r\n            const L = Math.max(B_val, L_val);\r\n            \r\n            const Df = parseFloat(document.getElementById(\"s-Df\").value) || 0;\r\n            const q_bruta = parseFloat(document.getElementById(\"s-q\").value) || 0;\r\n            const NFo = parseFloat(document.getElementById(\"s-nfo\").value) || 0;\r\n            const NFf = parseFloat(document.getElementById(\"s-nff\").value) || 0;\r\n            const gw = parseFloat(document.getElementById(\"s-gw\").value) || 9.81;\r\n            const t = parseFloat(document.getElementById(\"s-t\").value) || 0.1;\r\n\r\n            const LB = L \/ B;\r\n\r\n            const sigma_vo = window.getEsfuerzoEfectivoInicial(Df, NFo, gw); \r\n            const mu_f = Df > NFf ? (Df - NFf) * gw : 0;\r\n            const q_n = q_bruta - sigma_vo - mu_f;\r\n\r\n            if (q_n <= 0) {\r\n                mem.innerHTML = `<div style=\"padding:15px; background:#fee2e2; color:#dc2626; border-radius:8px; text-align:center;\"><strong>La carga neta (qn) es \u2264 0. No hay asentamiento.<\/strong><\/div>`;\r\n                window.dibujarSchm(B, Df, 0, 0, 0, 0, NFo);\r\n                return;\r\n            }\r\n\r\n            let f_Z1 = 0.5 + 0.0555 * (LB - 1); if(f_Z1 > 1) f_Z1 = 1.0;\r\n            let f_Z2 = 2.0 + 0.222 * (LB - 1); if(f_Z2 > 4) f_Z2 = 4.0;\r\n            let Iz0 = 0.1 + 0.0111 * (LB - 1); if(Iz0 > 0.2) Iz0 = 0.2;\r\n\r\n            const Z1 = B * f_Z1;\r\n            const Z2 = B * f_Z2;\r\n            const prof_pico = Df + Z1;\r\n            const sigma_vp = window.getEsfuerzoEfectivoInicial(prof_pico, NFo, gw);\r\n            const I13p = 0.5 + 0.1 * Math.sqrt(q_n \/ sigma_vp);\r\n\r\n            let C1 = 1 - 0.5 * (sigma_vo \/ q_n); if(C1 < 0.5) C1 = 0.5;\r\n            const C2 = 1 + 0.2 * Math.log10(t \/ 0.1);\r\n            let C3 = 1.03 - 0.03 * LB; if(C3 < 0.73) C3 = 0.73;\r\n\r\n            let limitesZ_array = [Df, prof_pico, Df + Z2]; \r\n            let z_acum = 0;\r\n            for (let c of window.capasSchm) {\r\n                z_acum += c.h;\r\n                if (z_acum > Df && z_acum < Df + Z2) limitesZ_array.push(z_acum);\r\n            }\r\n            \r\n            let limitesUnicos = [...new Set(limitesZ_array.map(v => Number(v.toFixed(3))))];\r\n            limitesUnicos.sort((a, b) => a - b);\r\n            \r\n            let S_total = 0;\r\n            let filasTabla = \"\";\r\n\r\n            for (let i = 1; i < limitesUnicos.length; i++) {\r\n                let z_top = limitesUnicos[i-1];\r\n                let z_bot = limitesUnicos[i];\r\n                let dz = z_bot - z_top;\r\n                \r\n                if (dz <= 0) continue;\r\n\r\n                let z_mid = (z_top + z_bot) \/ 2;\r\n                let z_relativa = z_mid - Df;\r\n\r\n                let Iz_mid = 0;\r\n                if (z_relativa <= Z1) {\r\n                    Iz_mid = Iz0 + (z_relativa \/ Z1) * (I13p - Iz0);\r\n                } else {\r\n                    Iz_mid = I13p * (1 - (z_relativa - Z1) \/ (Z2 - Z1));\r\n                }\r\n\r\n                let E_MPa = window.getModuloE(z_mid);\r\n                let factor = (Iz_mid * dz) \/ E_MPa;\r\n                S_total += C1 * C2 * C3 * q_n * factor;\r\n\r\n                filasTabla += `<tr>\r\n                    <td>${(z_top-Df).toFixed(2)} a ${(z_bot-Df).toFixed(2)}<\/td>\r\n                    <td>${dz.toFixed(2)}<\/td>\r\n                    <td>${Iz_mid.toFixed(4)}<\/td>\r\n                    <td>${E_MPa.toFixed(1)}<\/td>\r\n                    <td>${factor.toFixed(5)}<\/td>\r\n                <\/tr>`;\r\n            }\r\n\r\n            let cte = C1 * C2 * C3 * q_n;\r\n\r\n            mem.innerHTML = `\r\n                <div class=\"paso-calc\">\r\n                    <div class=\"paso-title\">1. Esfuerzos Efectivos Iniciales (In Situ)<\/div>\r\n                    <div class=\"math-block\">\r\n                        <div class=\"math-line\"><i>Integrando \u03b3 por capa y restando presi\u00f3n de poros (NF\u2080 = ${NFo}m)<\/i><\/div>\r\n                        <div class=\"math-line\"><span class=\"math-var\">q'<span class=\"math-sub\">o<\/span><\/span> (en z = Df) = <span class=\"math-res\">${sigma_vo.toFixed(2)} kPa<\/span><\/div>\r\n                        <div class=\"math-line\"><span class=\"math-var\">q<span class=\"math-sub\">n<\/span><\/span> = q_bruta - q'<span class=\"math-sub\">o<\/span> - \u03bc_f = <span class=\"math-val\">${q_bruta}<\/span> - <span class=\"math-val\">${sigma_vo.toFixed(2)}<\/span> - <span class=\"math-val\">${mu_f.toFixed(2)}<\/span> = <span class=\"math-res\">${q_n.toFixed(2)} kPa<\/span><\/div>\r\n                        <div class=\"math-line\"><span class=\"math-var\">\u03c3'<span class=\"math-sub\">vp<\/span><\/span> (en z = Df + Z\u2081) = <span class=\"math-res\">${sigma_vp.toFixed(2)} kPa<\/span><\/div>\r\n                        <div class=\"math-line\"><span class=\"math-var\">I<span class=\"math-sub\">13p<\/span><\/span> = 0.5 + 0.1\u221a(q<span class=\"math-sub\">n<\/span> \/ \u03c3'<span class=\"math-sub\">vp<\/span>) = <span class=\"math-res\">${I13p.toFixed(4)}<\/span><\/div>\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"paso-calc\">\r\n                    <div class=\"paso-title\">2. Integraci\u00f3n Exacta por Sub-Estratos<\/div>\r\n                    <table class=\"tabla-estratos\">\r\n                        <thead><tr><th>Prof. Relativa (m)<\/th><th>\u2206z (m)<\/th><th>Iz (medio)<\/th><th>E (MPa)<\/th><th>Iz\u00b7\u2206z \/ E<\/th><\/tr><\/thead>\r\n                        <tbody>\r\n                            ${filasTabla}\r\n                            <tr><td colspan=\"4\" style=\"text-align:right;\">Sumatoria:<\/td><td>${(S_total\/cte).toFixed(5)} m\/MPa<\/td><\/tr>\r\n                        <\/tbody>\r\n                    <\/table>\r\n                <\/div>\r\n\r\n                <div class=\"math-block\" style=\"background:#eff6ff; border-color:#2563eb;\">\r\n                    <div class=\"math-line\"><span class=\"math-var\">S<\/span> = C\u2081 \u00b7 C\u2082 \u00b7 C\u2083 \u00b7 q<span class=\"math-sub\">n<\/span> \u00b7 \u03a3(Iz\u00b7\u2206z \/ E)<\/div>\r\n                    <div class=\"math-line\"><span class=\"math-var\">S<\/span> = ${C1.toFixed(3)} \u00b7 ${C2.toFixed(3)} \u00b7 ${C3.toFixed(3)} \u00b7 ${q_n.toFixed(2)} \u00b7 ${(S_total\/cte).toFixed(5)} = <span class=\"math-res\" style=\"font-size:1.5em; color:#1d4ed8;\">${S_total.toFixed(2)} mm<\/span><\/div>\r\n                <\/div>\r\n            `;\r\n\r\n            window.dibujarSchm(B, Df, Z1, Z2, Iz0, I13p, NFo);\r\n        };\r\n\r\n        window.dibujarSchm = function(B, Df, Z1, Z2, Iz0, I13p, NFo) {\r\n            const cvs = document.getElementById(\"cvsSchm\");\r\n            if(!cvs) return;\r\n            const ctx = cvs.getContext(\"2d\");\r\n            ctx.clearRect(0, 0, cvs.width, cvs.height);\r\n\r\n            const prof_total = Df + Math.max(Z2, 2) + 1;\r\n            const sY = cvs.height \/ prof_total;\r\n            const sX = (cvs.width * 0.2) \/ Math.max(B, 1);\r\n            const cx = cvs.width * 0.25;\r\n\r\n            \/\/ Estratos F\u00edsicos\r\n            let z_acum = 0;\r\n            ctx.lineWidth = 1; ctx.strokeStyle = \"#cbd5e1\";\r\n            for(let c of window.capasSchm) {\r\n                z_acum += c.h;\r\n                ctx.beginPath(); ctx.moveTo(10, z_acum*sY); ctx.lineTo(cvs.width-10, z_acum*sY); ctx.stroke();\r\n                ctx.fillStyle = \"#64748b\"; ctx.font = \"10px Arial\";\r\n                ctx.fillText(`E=${c.E} MPa`, cvs.width - 70, z_acum*sY - 5);\r\n            }\r\n\r\n            \/\/ Terreno y Zapata\r\n            ctx.beginPath(); ctx.moveTo(10, 0); ctx.lineTo(cvs.width-10, 0); ctx.lineWidth=3; ctx.strokeStyle=\"#475569\"; ctx.stroke();\r\n            ctx.fillStyle = \"#cbd5e1\"; \r\n            ctx.fillRect(cx - (B*sX)\/2, Df*sY - 15, B*sX, 15); \r\n            ctx.fillRect(cx - (B*sX*0.2)\/2, 0, B*sX*0.2, Df*sY); \r\n            ctx.strokeRect(cx - (B*sX)\/2, Df*sY - 15, B*sX, 15);\r\n            ctx.strokeRect(cx - (B*sX*0.2)\/2, 0, B*sX*0.2, Df*sY);\r\n\r\n            \/\/ N.F.\r\n            ctx.beginPath(); ctx.moveTo(cx - 80, NFo*sY); ctx.lineTo(cx - 50, NFo*sY); ctx.strokeStyle=\"#0284c7\"; ctx.lineWidth=2; ctx.stroke();\r\n            ctx.fillStyle = \"#0284c7\"; ctx.fillText(\"\u25bc N.F.\", cx - 110, NFo*sY + 4);\r\n\r\n            if(I13p === 0) return;\r\n\r\n            \/\/ Diagrama Iz\r\n            const eje_iz = cx + (B*sX)\/2 + 60;\r\n            const esc_iz = 250;\r\n            ctx.beginPath(); ctx.moveTo(eje_iz, Df*sY); ctx.lineTo(eje_iz, (Df+Z2)*sY); ctx.strokeStyle=\"#94a3b8\"; ctx.setLineDash([4,4]); ctx.stroke(); ctx.setLineDash([]);\r\n            \r\n            ctx.beginPath();\r\n            ctx.moveTo(eje_iz, Df*sY);\r\n            ctx.lineTo(eje_iz + Iz0*esc_iz, Df*sY);\r\n            ctx.lineTo(eje_iz + I13p*esc_iz, (Df+Z1)*sY);\r\n            ctx.lineTo(eje_iz, (Df+Z2)*sY);\r\n            ctx.fillStyle=\"rgba(37,99,235,0.15)\"; ctx.fill();\r\n            ctx.strokeStyle=\"#2563eb\"; ctx.lineWidth=2; ctx.stroke();\r\n        };\r\n\r\n        function arrancar() {\r\n            if(document.getElementById('lista-estratos')) {\r\n                window.renderizarEstratosSchm();\r\n                \r\n                const inputsGenerales = document.querySelectorAll('.sh-sidebar .sh-input input');\r\n                inputsGenerales.forEach(input => {\r\n                    input.addEventListener('input', window.calcularSchm);\r\n                });\r\n\r\n                window.calcularSchm();\r\n            } else {\r\n                setTimeout(arrancar, 100);\r\n            }\r\n        }\r\n        arrancar();\r\n    })();\r\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-512","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/wp-json\/wp\/v2\/pages\/512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/wp-json\/wp\/v2\/comments?post=512"}],"version-history":[{"count":2,"href":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/wp-json\/wp\/v2\/pages\/512\/revisions"}],"predecessor-version":[{"id":516,"href":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/wp-json\/wp\/v2\/pages\/512\/revisions\/516"}],"wp:attachment":[{"href":"https:\/\/secic.fcyt.umss.edu.bo\/index.php\/wp-json\/wp\/v2\/media?parent=512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}