diff --git a/notebooks/analisis_sismico/espectro_respuesta_nch2369_23.ipynb b/notebooks/analisis_sismico/espectro_respuesta_nch2369_23.ipynb new file mode 100644 index 0000000..e895577 --- /dev/null +++ b/notebooks/analisis_sismico/espectro_respuesta_nch2369_23.ipynb @@ -0,0 +1,371 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 25, + "id": "33416d01", + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "import numpy as np\n", + "#import nch2369_23 as ns\n", + "g = 9.81 # m/s2" + ] + }, + { + "cell_type": "markdown", + "id": "9caa8195", + "metadata": {}, + "source": [ + "#### Parámetros de entrada" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "51630f73", + "metadata": {}, + "outputs": [], + "source": [ + "T_H = np.linspace(0, 5, 501)\n", + "cat = \"cat2\"\n", + "suelo = \"C\"\n", + "zona_sismica = 3\n", + "R = 3\n", + "xi = 0.03\n" + ] + }, + { + "cell_type": "markdown", + "id": "1f3bcc6b", + "metadata": {}, + "source": [ + "#### Clasificación de estructuras y equipos según su importancia." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "b6ea7ed4", + "metadata": {}, + "outputs": [], + "source": [ + "def coeficiente_importancia(cat=\"cat3\"):\n", + " cats = { \"cat1\": 0.8, \"cat2\": 1.0, \"cat3\": 1.2, \"cat4\":1.2}\n", + " I = cats[cat]\n", + " return I\n", + "I = coeficiente_importancia(cat)" + ] + }, + { + "cell_type": "markdown", + "id": "8637da71", + "metadata": {}, + "source": [ + "#### Parámetros relativos al tipo de suelo:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "e2ec86ae", + "metadata": {}, + "outputs": [], + "source": [ + "def obtener_parametros(suelo):\n", + " parametros_suelo = {\n", + " \"A\": {\"S\": 0.90, \"T_0\": 0.15, \"p\": 1.85, \"T1\": 0.15},\n", + " \"B\": {\"S\": 1.00, \"T_0\": 0.30, \"p\": 1.60, \"T1\": 0.27},\n", + " \"C\": {\"S\": 1.05, \"T_0\": 0.40, \"p\": 1.50, \"T1\": 0.35},\n", + " \"D\": {\"S\": 1.20, \"T_0\": 0.75, \"p\": 1.00, \"T1\": 0.52},\n", + " \"E\": None # Indica que se requiere espectro de sitio\n", + "}\n", + " if suelo in parametros_suelo:\n", + " return parametros_suelo[suelo]\n", + " else:\n", + " raise ValueError(\"El tipo de suelo no es válido. Debe ser A, B, C, D o E.\")\n", + " \n", + "S = obtener_parametros(suelo)[\"S\"]\n", + "T_0 = obtener_parametros(suelo)[\"T_0\"]\n", + "p = obtener_parametros(suelo)[\"p\"]\n", + "T1 = obtener_parametros(suelo)[\"T1\"]" + ] + }, + { + "cell_type": "markdown", + "id": "534e5f4f", + "metadata": {}, + "source": [ + "#### 5.4. Espectros normativos\n", + "$A_0$ $=$ aceleración efectiva máxima del suelo" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "63281acf", + "metadata": {}, + "outputs": [], + "source": [ + "def aceleracion_efectiva(zona_sismica = 3):\n", + " A0 = {1: 0.2, 2: 0.3, 3: 0.4}\n", + " return A0[zona_sismica]\n", + "\n", + "A_0 = aceleracion_efectiva(zona_sismica)" + ] + }, + { + "cell_type": "markdown", + "id": "505a837a", + "metadata": {}, + "source": [ + "#### 5.4.2. Espectro de Referencia\n", + "Se define el siguiente espectro de referencia para la dirección horizontal y vertical:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "e492497f", + "metadata": {}, + "outputs": [], + "source": [ + "S_aH_TH = np.zeros(len(T_H))\n", + "for i in range(len(T_H)):\n", + " S_aH_TH[i] = 1.4 * S * A_0 * ((1 + 4.5 * (T_H[i] / T_0) ** p) / (1 + (T_H[i] / T_0) ** 3))\n", + " # S_aV_TV = S * A_0 * ((1 + 4.5 * (T_V[i] / T_0) ** p) / (1 + (1.7 * T_V[i] / T_0) ** 3))" + ] + }, + { + "cell_type": "markdown", + "id": "aa98be90", + "metadata": {}, + "source": [ + "#### 5.4.1. Espectro de diseño\n", + "Se definen los siguientes espectros de diseño para las direcciones horizontal y vertical:" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "e8ad5827", + "metadata": {}, + "outputs": [], + "source": [ + "S_a_TH = 0.7 * I * S_aH_TH/R * (0.05/xi)**0.4\n", + "# S_a_TV = 0.7 * I * S_aV_TV/R * (0.05/xi)**0.4" + ] + }, + { + "cell_type": "markdown", + "id": "6c082ea3", + "metadata": {}, + "source": [ + "#### Coeficiente sísmico adoptado:\n", + "$C_{h}=max(S_{a_{T_{H}}})$" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "780455c9", + "metadata": {}, + "outputs": [], + "source": [ + "C_h = max(S_a_TH)" + ] + }, + { + "cell_type": "markdown", + "id": "6e6f7209", + "metadata": {}, + "source": [ + "#### 5.8. Equipos rígidos apoyados en el suelo\n", + "El diseñó sísmico de equipos rígidos apoyados en el suelo considera el siguiente factor $K_p$ y aceleración horizontal:" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "0d696b4f", + "metadata": {}, + "outputs": [], + "source": [ + "K_p = 1.0\n", + "a_k = 1.2 * S * A_0 * I\n" + ] + }, + { + "cell_type": "markdown", + "id": "60f04f92", + "metadata": {}, + "source": [ + "##### 7.2.2. Equipo no modelado salvo para su masa. Coeficiente sísmico uando no se ha realizado un análisis del edificio:\n", + "$C_{p.h}=\\frac{a_{k}R_{1}K_{p}}{gR_{p}}$" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "1dcc6406", + "metadata": {}, + "outputs": [], + "source": [ + "# C_ph = a_k * R_1 * K_p / (g * R_p)" + ] + }, + { + "cell_type": "markdown", + "id": "a63f01dd", + "metadata": {}, + "source": [ + "#### 5.12. Esfuerzo de corte basal mínimo\n", + "##### 5.12.1. Coeficiente sísmico mínimo:" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "b648008b", + "metadata": {}, + "outputs": [], + "source": [ + "C_min = ( 2.75 *I *S *A_0 ) / ( (R+1) ) * (0.05/xi)**0.4" + ] + }, + { + "cell_type": "markdown", + "id": "7e5f30a9", + "metadata": {}, + "source": [ + "#### Coeficiente sísmico máximo:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "b4fd6413", + "metadata": {}, + "outputs": [], + "source": [ + "C_max = max(S_a_TH)" + ] + }, + { + "cell_type": "markdown", + "id": "89a393bb", + "metadata": {}, + "source": [ + "##### Factor de modificación de la respuesta estructural corregido por el requerimiento de corte basal mínimo" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "823494d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+4AAAI2CAYAAADO/tJIAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAfyVJREFUeJzt3Qd4FNX+xvE3hBJ6kd5BmoAU6SKggKByAQuKCoKKXEVFUCzg32tXFK+Iigpywe4VRCzXrggKiCJVQECkQ0CK0qUl+T+/GTckIQlZssnM7n4/zzPu7Oxk9iSsgXfOOb8Tk5SUlCQAAAAAAOBLebxuAAAAAAAAyBjBHQAAAAAAHyO4AwAAAADgYwR3AAAAAAB8jOAOAAAAAICPEdwBAAAAAPAxgjsAAAAAAD5GcAcAAAAAwMcI7gAAAAAA+BjBHQAAAAAAHyO4AwAAAADgYwT3KLRixQoNGjRItWrVUqFChVS0aFG1bdtWL730ko4dO6ZwdvjwYd1zzz2qWLGiChYsqFatWumrr746pWs99thjiomJUcOGDU947dprr3Vey2jbsmVLCL4bAAAAAJBikpKSkrxuBHLP+PHjddttt6lkyZK65pprVKdOHe3Zs0f/+9//9N133+mpp57SnXfeqXB11VVXaerUqRo6dKhq166tV199VT/99JNmzJihc845J8vX2bx5s+rWreuE8OrVq2vZsmWpXp87d67WrFmT6pj9r3TTTTc55y9fvjxk3xMAAACA6EZwjyJvv/22+vbtq27duumdd95R4cKFT3i9dOnS6tKli8LRvHnznB72lDcfDh065PSYly1bVt9//32Wr3XllVdqx44dSkhI0M6dO08I7umZPXu22rVr5/TU33vvvdn6XgAAAAAggKHyUWLbtm265ZZbVL9+fadHOm1oN1dffXXYhnZj31dsbKz++c9/Jh+Li4vTgAEDnB7yTZs2Zek6NvLArjVmzJig3t9ufFgPvf0cAQAAACBU8obsSvC1Z599Vrt379Z///tfFShQQH5z9OhRZ8h+VpQqVUp58px4z2nRokXO0P9ixYqlOt6yZUvncfHixapSpUqm17Ye9sGDB+uGG27QmWeeGVT7p0yZorPPPtsZKg8AAAAAoUJwjxKvv/66E1r92qM+Z84cnXfeeVk6d926demG461bt6pChQonHA8ci4+PP+m1x40bpw0bNujrr79WML744gvt2rVLffr0CerrAAAAAOBkCO5RwIqoWWi1wmnp9VT7QePGjbNc/b18+fLpHv/rr7/SHU1gw+UDr2fGgvf999+vf/3rXypTpoyCHSafL18+XXHFFUF9HQAAAACcDME9CgTmdtesWVN+ZVXuO3funK1r2PJvthxcWlagLvB6Zu677z5nGL4NlQ/G/v379eGHH6pr16467bTTgmw1AAAAAGSO4B4FAmuz2zxsvzpy5Ij++OOPLJ1rveFWhC69IfHprZ9uQ+iNre2ekdWrV+vll192CtKlHFJvod9+buvXr3fmzluwT+uDDz7QwYMHGSYPAAAAIEf4c9w0QqpWrVrOY1aWNAsUsrvsssucNdGLFi3qFFwLVKW3nvFGjRolh9uNGzfqggsucMJ0iRIlNGjQIGc984Bbb71VN954o7OfmJionj176vbbbz/hPW2pNgveWdkyqg7fpEkT/frrr9q7d2+q4z/++GPy6xmxwG/tszXua9SokbzZ19o1bf/hhx9O92vfeustFSlSRD169MjSzxcAAAAAgsE67lHCKqtb1XULomeddVaq1/bt2+f0Ng8bNsx5bsunffnll3r//ffVoEEDtWnTxul1fu6559ShQwdnHfiOHTvqnnvu0fLly52e8tatWzvh3s594403kgvNWSC2Jeh++eUXjR492unZth7qtHPt//zzTy1YsCBL38s555yTPG89JfverB0p13G3ofO2jrsNYf/hhx+Sz7UecrvpYOvW22Zrtds67OkNn7efj93MOP3000+oNG9rvVtPvt3ksAKAAAAAABBqDJWPEhMmTHBCd9u2bXX99dc7AdSG0C9cuFDTpk1zwnAguP/8889O73Lz5s2d59bbbGG/U6dOzvO6des6y6YZC/YBVrXebhBYCA+oVKmSrrnmGv3jH/9wnls4Tq9AXijmuLdq1UqXX365RowYoe3btzsjDV577TVnmPvEiRNTnTtv3jzn5sIDDzygBx980AnvF1988QnXDKzlnt5rZvLkyc7PkWHyAAAAAHIKQ+WjhFVttx5t6xm2Qmo2JPzRRx/VihUrnKHr1qNsbLi49Y5feOGFyV9r56R8bkPHLbwb6123sG492jZU3q5ta6mnfW9bQ/3FF19U4cKFc/T7tF7voUOHOu2y79FGCnz88cdq3759jryfDZMvW7Zstm86AAAAAEBGGCqPVCyUt2vXTr///nvyEmoWyPfs2ZM8PN2Ghn/77bdau3atE5Kt19l63m3YuPVy7969W3nz5k0evt6rVy+nN9x6tW2ddAAAQslGTj300EPO30P2dw0AAJGGHnekYsPkrYc8wOaw29zuQGi3ueAW4u2YnVu9enVnDrvNZe/bt6/T2x4I7TaH3Iauv/nmm06Pvq11bscAIKVXX31VMTExGW4p61P4lRXYtPBoNy5zk/0etqk6Ni0pf/78Kl++vDP1yUKsH/+M7e+S9Fb/OPfcc516JGmtWbPGKXBqy5na19rqHjbly/5OsRvLofLTTz85xVTtJrSNDKtataquuOIK52Z2SvZ3ov29Zu0pVKiQc5PARnT973//y/DaNiXNipfaqiT2NfZ9Ws2YlGxEnBV6te/PisJ26dLFGanmh/YDAPyBOe5IZenSpamCe3rP7R8GNk/d/rH47rvvOvPTbbi8/WMkUNHdCrrZvHabQ25z642d//jjj9PrDiBdVlvDampktDKG34O7heVrr73WGaWUG6w+iU1/spBm4dZGQ9nN0a+//tq5YWq/f/3GCoY+8cQTev7550967ieffOKEzAIFCqhfv37O3zG2dKjVSrnrrrucEGqFVUPhySef1Jw5c5z3s5VTrNjq2LFjnfouduMocFNhw4YNzt9v/fv3d37eVuj0vffec4L5+PHj9c9//jPVda3Qa/fu3dW0aVP961//clYgsZsRmzdvThXs7WaL1YmxPzObsmZTy+zvTqvHEpia5kX7AQA+YkPlAQDwyiuvvGJTtpJ++umnpHD11FNPOd/DunXrTnru/v37s/1+f/zxR1Lx4sWT2rZtm3T48OETXt+yZUuSH/+MmzRpklSgQIET2tehQ4ekBg0aJD9fu3ZtUpEiRZLq1auXFB8ff8L1Vq9enTRmzJjk5w888IBz/R07dpxS++bMmXPCz/HXX3912tqnT59Mv/bYsWNJjRs3Tqpbt26q43v27EkqV65c0iWXXJKUkJCQ4ddfdNFFSSVLlkzauXNn8jH7nu37v/TSSz1rPwDAXxgqDwAIC9ZTaHU1bIqO9cJaYcjzzz/f6bEMsOHqNiR75cqVzlBhG3psxTOHDBmiQ4cOpbqeDdm2VTbKlSvnXM9GE02aNOmE97XzbJlM66G082xUwKBBg5ze38B7Wg+wsdcCQ/xtRYtAe6zo59VXX+2MULLe1QBbptOKf1o7rTfWVu/IytQA61W3aUvWLhsin5a11Y/uvfdeZ1US63XPzKhRo7R//35nRZAKFSqkOwrD/kzTsqkKgVEPxYsX13XXXef0Kp/M2WeffcLPsXbt2s5nwgq0ZiY2NtbpLU87TcKmh1m9mMcee8wZpXbgwAGnNz2tWbNmOQVO7XMaYN+z9bhbcVX7OaRkn+20085yov0AAH9hqDwAwBcsiFodjZQs9AYCzU033aSpU6c6c3mttsauXbucYdMWTGxIcEoW2i3gjxw50gnCNqfYlqq0lSeMBarWrVs717frlSlTRp999pkThG3Kj90gMPHx8c5UIAs1Noy4Xr16TpC3dlggtLB06aWXOnOJ//vf/+qZZ55JLo5m1wywIcwWpGy6UKAmrA31tmKgFtrvvvtu5cuXzxmubPO9rQCoFfXMiIXAwBz3cGI3NmzYuy1ROnz48AxvMNica5uHbYE0GPbnbu9hf+52Q+c///mPc4PHhpIHy/6c7HOSctnTlD9/m2Nvn9mPPvrI+ez07t37hJsr9mdrnxdbUtQ+Izb/3JZItc9JoHaMTR8oWLDgCe9hc9Dt5tCyZcucz2rAGWec4YT6mTNn5mj7AQA+43WXPwAgugWGUae32VDfABsafsstt2R6rcCQ6R49eqQ6fvPNNzvHlyxZ4jwfMGBAUoUKFVINTzZXXnml8z4HDx50nvfr1y8pT5486Q7jT0xMPOlQ+UB7rrrqqhO+/uKLL07Knz9/0po1a1INkS5atGhS+/btM/0+169fn1SoUCHn2rVr1066++67k7755htn2LPfp0PY95s3b96k2267Ld2h8jbE3M7t2bNnlq8f+Dlff/31qY7bMPXTTjvtlNr8xhtvONecOHHiCa/deOONyZ9R+3z06tXLmb6QUqNGjZw/I9sGDx6c9N577zmP9jX2OQs488wzk+rUqZPqz86GvVetWtU5d+rUqamua8fs55XT7QcA+AtD5QEAvvDCCy/oq6++SrVZT2CADX+2JSatF/xkbrnlllTPBw8e7Dx++umnTk+kFeSyomG2b738ga1r165OL6T11tqw5g8++MA5r3nz5ie8h/XWZ5WNFkjJhotb4TLribWe5ZRDpG1IvY0kCBT7TE+1atU0d+5cp4fZfh42tLxjx47Otayn18+sjdbrbIXltm7desLrge/bqqsHK+3P2UY02MiMzH6W6bHh6PYZatOmjVPILS0bkWGfz9dee82Z6mB/noGpEwE2xN1GZdgIAxvxYSMz7NEKCb7zzjtavXq1c97NN9/s9MbbaA+bUmE97PY1gZ9N2ur59pk9WW97KNoPAPAXgjt8xYaa2nC9tJv9gyYwNBRAZLIh6TbXN+V23nnnJb9u4dRCjc3HtXNt/vjatWvTvZYNS0/JlrC0ecY279zW+rah7xYcbTh7ys3mRJvt27c751ngS2+ZsmClrZZv17ZQl17FcBsKbTcNNm3alOk1rXr45MmT9ccff2jGjBlO2+1rrrzyyizN6zb28wjMv06pWbNmTrjMiIU8q1yecrPwl1X33Xefjh07lu5cdxteHqhpECyrsJ+S1RQwNk0iq+x76datmzNH3qZE2BzwtGzKhH0+LWAH5qEHbgQFBIa/W+X/lOzGjLEbL4GbDTb33+bE27D2M88806k8b9MnjNU+CEao2g8A8BeCO3zlP+PH69spU/TH1KnJ24Z333UKRp2swA6AyGa9yxbUbSkxmxv91FNPOUEnZa98RlL2jgcKhPXt2/eEHv7AZmuFh1J6c5hDxebZ27x4+z1pgc16mFetWpWlr12yZIlTC8DmXqf8+ViPbZMmTTJd/s5GB6TcTnajIW2vu/380+t1t+Buf752kyZY6YVUk9VAaqMtrAfabux8/vnnWS7y16tXL2ct9ZTrpge+1oofpmRz7tPeTLACdjYf3QrVWd0Cu1bgc1qnTp0stSHU7QcA+AvF6eA7Ha0ab4rKu0skZfzPRwDRxAKiDS22zXrFrSidhR4LKynZMOSUvdy//fabE4QspFrPug3Dth5i63XMiJ1vITIrATKYYfPG2mDFx9IL2BaarRfcRhYEy6reG+ttDbAK5FZYb8GCBTp69KjTA2zrhFubLbinLV5mvfAWdNOOWkipcePGzg2OlMqXLx9UW63X3dabT69w3D/+8Q8n1FuvtA33zg226oD1Olt4tekGVgAxqwLD2S04pxy1YD8jK06XcmRFYKpHyuKFJu2KA9aGypUrO73jXrQfAOAv9LgDAHzPQnbaUGE9l9ajaFW505svn5L10hsL+NYre9lllznz3NML5TaM3Vh4tjnoVuF8/vz5mfbiBnqss7qklrWhS5cu+vDDD52gHGC9rjZk2gJcYMh4Wjb/Pe28Z2M9tdbL2rRp01Tz5m3I+f/93/85gXHp0qXO9xOYI51ecLd51jY9IKPe60DITDutIVAlPats+oL1ulslfRvenZINE7ef6Q033OD8TNKyoeTPPvusQvn5smlZdqPg3XffzfBmgd0sSstuhthqBTaqImVYthEixpa0S8kq3efNm9cZJZERmwJhPeA2F90+hydbDi4n2g8A8Bd63AEAvmBD3i2UpGVLgpUqVcrpfbQhvdbba/N+rVfRws3TTz99wtesW7dOPXr00AUXXOCEGevZtbnF9rXG5lbbvHBbcm3gwIFOYLG54laUzq5r+8aWb7Micrb8lvVa2/xzG9pt4cgCtBXMC/SuGgvINsfclnaz3s/MPProo06PrIV0G0FgYc5CrN2IsPn8GbFl1KxX1ZaYs+/H5oovXrxYb7zxhtPTbo8ppQzmgfoAgWHaFty/+OILJ0wG2Pvb95Ab7Odl7bWRBynbaaHebmBYGLWfuc3FtpsJNrfehunbz9/Waw+VYcOGOcui2Z+Z/dnb5yUlu8FgrLCc1T1o3769KlWq5NxweOutt5zPrX0OU85Htxso119/vTOFwf6MAku4WdtHjBiRPIz9u+++08MPP+zcyLGlD235wldeecX57Ka3Vn16y8HlRPsBAD7jdVl7IKWOHTokXWUfyxTb4r+XrElvOSYAkb0cnG32ui2PdddddyU1btzYWS6tcOHCzv6LL76Y7rJgv/zyi7PElZ1bsmTJpFtvvTXpr7/+SnXu77//7iwvV6VKlaR8+fIllS9fPqlTp05JL7/8cqrzNmzY4CwLV6ZMGWd5upo1azpfZ21K6ZFHHkmqVKmSs7xWYGm4QHt27NiR7ve+cOHCpK5duyYVKVLEWTbsvPPOS/r+++8z/XlNmzbNWV6uVq1azs8hLi4u6YwzznB+Ptu3bz/h/Ndffz2pRYsWSaVKlXKWurP2LV26NGnfvn1JMTExSTNmzEjatGlT8tatW7ek559/PimnloNLq3///s5rgeXgUvr111+TBg4cmFS9enVn6Tz782zbtq3TvkOHDiWfl9HPOfC+aZfpS8uWV8vsMxjw3//+N6lz585J5cqVc5a0s8+WPf/www/Tve6RI0eSHnzwwaRq1ao5nzH7M3vmmWdSnfPbb78ldenSJal06dLO56tevXpJI0eOPOHzldlycDnVfgCAf8TYf7y+eQAEdDr3XJX79lu9neJYYI679ayltyQTAARYpfmHHnrIGe5eunRpRTvrTbfh1jb02nq07edSq1YtZ0j/vHnznF5em4KQcli89Xa/+uqrzlJqAADAH5jjDgBAhLJ571aQz6YCWJE0GzJtVcptWL4Nk7fK8SlDuw2ztmkGttQcAADwD+a4AwAQofr06ePMqbZicja33eaJ2xxnY8E9MDc/wIrwVatWLVVVegAA4D2COwAAEcoKoNmQ+PSMGzfuhGM2dN563AEAgL8wVB4AEFFz3K10C/PbAQBAJCG4AwAAAADgYwR3AAAAAAB8jDnukhITExUfH6+iRYsqJibG6+ZEtWPHjmX42v79+5OLKgEAAABAOLPpffv27XNq0uTJk3mfOuu4S9q8ebOqVKnidTPw9xCQ3lK667gDAAAAQKTZtGmTKleunOk59LhLTk974AdWrFgxr5sTFY4ePapPPvlEBw8eTHV8zOjR0urV6X7N8OHDnWWKUrLljWrVqpWjbQUAAACAULPRxNaBHMijmaHH/e8fmK1Zu2fPHoJ7LrH1g5s0Sb8f/V5Jj6V4Hi+pdkyMDqbzUb36qqv01tsp++cBAAAAILJyKMXp4IlGjRqpeZMmapMnj45YD3yKLWVoNxXtQ52UlOqcaX+/NvCf//Sg9QAAAACQewju8IQVAXzw0Uc1NzFR3/09ZyOwpSc2xeu2/2hsrDqcc47OPffcXG45AAAAAOQugjs8c9FFFzm97g/GxiqY+RofS1qYkKAHH3kkB1sHAAAAAP5AcTp43uv+j3/8Q99I6pSFr7GAb0G/Q5s29LYDAAAg7CQkJDiFmhEd8ufPf9Kl3rKC4A5/9LovXaqOCQmKyWJv+wx62wEAABBGrCb4tm3btHv3bq+bglxkob1GjRpOgM8OgjvCpted3nYAAACEq0BoL1u2rAoVKuT8OxiRLTExUfHx8dq6dauqVq2arT9zgjvCpted3nYAAACE6/D4QGg/7bTTvG4OclGZMmWc8H7s2DHly5fvlK9DcTr4ptd9dkKC0+ueaW87leQBAAAQZgJz2q2nHdEl/99D5O3mTXYQ3BEWFeapJA8AAIBwx/D46BMToj9zgjt83+tObzsAAACAaEZwh+973eltBwAAABDNCO7wda87ve0AAACA9zZv3qybbrpJtWrVUlxcnMqVK6cuXbpo6dKlXjctKhDc4eted3rbAQAAAG+tX79eTZs21a5du/TGG29o5cqVmjp1qurXr68CBQp43byowHJw8O267qMljY2JUeMGDdSuXTuvmwYAAABEpeeff16FCxfW5MmTlSeP2/dbvXp1/o2ei+hxh+8cOnTIWePwTru7l5SkJcuWOb8Ypk2b5nXTAAAAgKjz559/Ov9G37hxo9dNiVoEd/iKhfPLL788ea3LgC1btqhXr16EdwAAAESEpCTpwAFvNnvvYNx6663OkPiaNWuqRYsWGj58uH755ZeTft3o0aN13333JT8/duyYihcv7jwiOAR3+EZCQoKGDBmipHR+kwSODR061DkPAAAACGcHD0pFiniz2XsH46yzztLatWs1Y8YMpyCddaY1btxY//vf/zL9umXLlqlJkybJz1esWOGMpM2blxnbwSK4wzfef3+WU60yIxbeN23apFmzZuVquwAAAIBoF2srPXXooMcee0zLly9X2bJl9fbbbzuvvfnmm2rZsqXOPPNMdevWTYcPH04O7hbwAxYvXuycg+BxqwO+MGeONGDA1iydu3Vr1s4DAAAA/KpQIWn/fu/eOzsSExOdcF6mTBnn+YUXXqi+ffs6+wMHDtTMmTOdnnmrPn/++eenmis/YsSI7L15lCK4w3NffSV16yYdPVohS+dXqJC18wAAAAC/iomRCheW711zzTXOsm8dO3Z01m63IfOPP/548jRWGxU7YcIEvffeezpy5IgzQtZC/Lp161SnTh3Nnz8/+VoW8OlxPzUMlYen1qyReve20C716NFOlSpVdpaES58dr6L4eJadAAAAAHKDzW//+OOPneWazzjjDN10002qV6+eM+zditW9+uqrTs/6d999pyVLlqhkyZJO0Ldh8nZ+SlbQrmHDhp59L+GMHnd4xqa+XHqpDZmRWrWSpkyJ1SefPOtUj7fwnrJInfvc9sbo+utjVb++lKLOBQAAAIAccPvttztbRmy+e9u2bVWwYEG98MILOnjwoDOE3oK7BfiAAwcOaM+ePapWrVoutTyy0OMOz4wZI/38s2RTY957TypQwIL8pZo6daoqVaqU6tzKlSvr3Xen6qKLLnUC/+WXS3v3etZ0AAAAAH8PpR81apRat27tDI8PDIVP2+NuvfIpgzyCE5OU3tpbUWbv3r3OeoJ2B6hYsWJeNycqbNki1a3rriP56qtS//6pX7cl36x6vBWisznt7dq1cypZ7tolNW0qbdpkxeyk//zHq+8AAAAAyJpDhw45obZGjRqKi4vzujnwyZ99MDmUofLwxL33uqG9dWu7S3fi6xbSzz333BOOn3aa9NZbUvv20sSJUr9+7j4AAAAARCqGyiPXrV/vhm/z7LNSniA/he3a2TIT7v6NN0pHjoS+jQAAAADgFwR35Lqnn7ah8JIt6diy5ald48knpbJlba6M9NJLoW4hAAAAAPgHwR25ascOd4i7ufvuU79OyZLSI4+4+/a4Z09o2gcAAAAAfkNwR66aMEH66y9bD1Lq1Cl717r+eqlePTkF60aNClULAQAAAMBfCO7INbZ+waRJ7v7gwbY2e/aulzevNHLk8aXldu7MfhsBAAAAwG8I7sg1s2ZJa9ZIRYq467CHQs+ebu/9wYNueAcAAACASENwR6555RX3sXdvqXDh0FzTeu3vu8/df/55affu0FwXAAAAAPyC4I5csX+/NGXK8bnpoWS97g0aSHv3SmPHhvbaAAAAAOA1gjtyxSefuMPZa9WS2rQJ7bVtHfgRI9x9C+6HD4f2+gAAAADgJYI7csV777mPvXplvyhdemzOfMWK0u+/S++8E/rrAwAAAIBXCO7Icbb826efuvuXXZYz75E/v3Trre6+FamzCvYAAAAAQmfBggW68sorVbFiRcXFxalWrVrq27evli9fLj964YUXVL16daetrVq10rx58zI9/6WXXlKjRo1UrFgxZ2vTpo0+++yzVOc8+OCDiomJSbXVszWqcxjBHTnuiy+kAwekqlWlZs1y7n1uvFEqWFBavFj67rucex8AAAAg2kyYMMEJv8WLF9e0adO0atUqjR8/Xvv27dPbb78tv5k8ebLuuOMOPfDAA1q4cKEaN26srl27avv27Rl+TeXKlfXEE084Nyjmz5+vjh07qmfPnifcmGjQoIG2bt2avM2ePTvHv5+8Of4OiHqBYfKXXpozw+QDSpWS+va1XyrSyy9LHTrk3HsBAAAA0cKC6U033aSxY8dq0KBBycerVaumTp066Y8//pDfjB49WgMHDtR1113nPB83bpw++eQTTZo0ScOHD0/3a7p3757q+WOPPeb0wv/www9OWA/Imzevypcvr9xEjztyVEKCW5guENxz2j//efxmwa5dOf9+AAAAQHbYyNSMtkOHsn6uTU/NyrmnwnquO3TokCq0p1TKetByyOOPP64iRYpkum3cuDHV1xw5csTpNe/cuXPysTx58jjP586dm6X3TUhI0DvvvKMDBw44Q+ZTWr16tTNdoGbNmurTp88J758T6HFHjvrpJ+nPP6USJUJfTT49NhS/aVNp0SLpjTekoUNz/j0BAACAU1WkSMavXXTR8U4wU7asu1JTemy06cyZx59Xry7t3HniecHWglqxYoV++uknTZ06VaHwzTffaNGiRRo2bFiWzree/iuuuCLTcyxEp7Rz504neJcrVy7VcXu+cuXKTK+1dOlSJ6gfOnTIuSnw/vvvq379+smv23SBV199VXXr1nWGyT/00ENq166dli1bpqJFiyqnENyRoz7/3H08/3wbUpLz72dD8QcOlG6+2R0yP2RIzg7PBwAAACKZzQ83zUJUrMrmjduWVdabXyoHe/TTskC+ePFi7dmzx7lZ0b9/f3377bfJ4f3CCy9MPtcK2VmQtykDU6ZM0YABA3KsXQyVR64E9wsuyL33vPpqqVAh6ZdfpO+/z733BQAAAIK1f3/GW6BWVIDVVcvo3DTFz7V+ffrnBevg31381vucmR49emjIkCFq3bq1E36tgrsVdrNQ++KLL6Y6z3q1L7roIt1///1q27atM+TceqxDNVS+dOnSio2N1e+2VnQK9vxkc9Pz58/vVMu3GxUjR450ito9++yzGZ5fokQJ1alTR7/99ptyEsEdOcbmmAdWXOjaNffet3hx6cor3X0rUgcAAAD4VeHCGW9xcVk/11ZXysq5wWrYsKHzOGvWrHRf/+vvyfUWxq0H2gq5WcG6u+66S2+++aZmzJihV155Jfl8G6puy6dZUK9atarmzJmj2267TR9++GGGQ+UXL16c6ZZ2qLyFbwve06dPTz6WmJjoPE87X/1k7OsOHz6c4ev79+/XmjVrVKFCBeUkhsojx3z1lTuH5swzpUqVcve9bbj8pEnSlCnuuu4lS+bu+wMAAACRwIJuly5ddPPNNzsh1Z5bmLV571Zx/eWXX1aVKlWUlJSUaqi4hXGb823Lr9ma6MaWjrM11S3s2/rnN9xwg3P86NGjTs91KIfK33HHHc4w9+bNm6tly5YaM2aMU2guUGXeWJV8m8MeCPgjRoxwhsLbDYXAMnczZ87UF7a+9d/uvPNOp/q8jSSIj493lpuz3v2rrrpKOYngjhzz9dfuY5cuuf/erVq5NwyWLpXeeku69dbcbwMAAAAQCaw3/JlnntGoUaO0du1aJ3zbcHILsNZ7bsPiW7RokXy+9b7fe++9zr71rJ9p/zCXnPXQbVk1O5b2/Ouvvz6kbe7du7d27NjhDMfftm2bmjRpos8//zxVwTorYme95QF2k6Ffv35O0Tlbr95GEFhoP98Kdv1t8+bNTkjftWuXypQpo3POOccZZWD7OSkmyW6NRLm9e/c6fzBWgCBwNwjZV7u2ZFM9rBKmVcTMbc8/b3f63Erz8+fn/vsDAAAAxiqUr1u3TjVq1HBCb6SZMGGCE47/9a9/Oc/t+7Tv1zz66KPOMHLrjbfzLEzbHHSbbx44v2nTpvr666912mmnKZr+7PcGkUOZ444csXmzG9rz5JHOOcebNthoFatkv2CBzaXxpg0AAABApAvMbzebNm1yhs6nfC3Q4277NmfeetwD5x87dky7d++OyNAeSvS40+OeI2x4et++UvPm7lruXuneXfr4Y+m++6RHHvGuHQAAAIhekd7jjozR4w5fmznTfTz3XG/b0afP8RsJ3KICAAAAEI4I7sgR337rj+Deo4etOSnZFJu5c71tCwAAAACcCoI7Qi4+Xlq92tv57QGFCkmXXuruv/mmt20BAAAAgFNBcEfIzZ7tPjZuLBUv7nVr3Ln2ZvJk6cgRr1sDAAAAAMEhuCPkAkPSzz5bvtCxo1S+vPTHH9IXX3jdGgAAAEQr6oJHn6QQ/ZkT3JFjwb1NG/lCbKy7NJxhuDwAAAByW758+ZzHgwcPet0U5LIjfw/5jbVQkg15Q9QewHHokLRwob+Ce2C4/DPPSB99JO3bJxUt6nWLAAAAEC0stJUoUULbt293nhcqVEgxMTFeNws5LDExUTt27HD+vPPmzV70JrgjpBYskI4elcqWlWrUkG80bSrVqSP9+qv0v/9JV1/tdYsAAAAQTcrb3E0pObwjOuTJk0dVq1bN9o0agjtybH67n24iWlsuv1x67DHp3XcJ7gAAAMhdFtwqVKigsmXL6qj1dCEq5M+f3wnv2UVwR0TPb0/piivc4P7ZZ9LevVKxYl63CAAAANE4bD67850RfShOh6gJ7mee6Q6XP3xY+vhjr1sDAAAAAFlDcEfIxMdLW7faPA7prLPkOzZc3nrdzZQpXrcGAAAAALKG4I6QmT/ffWzQQCpcWL5k89zN55+7w+UBAAAAwO8I7giZn35yH5s3l2/ZcPm6dd3h8lZdHgAAAAD8juCOkPe4+zm4B6rLG6suDwAAAAB+R3BHSCQlhUdwN4F57gyXBwAAABAOCO4IiY0bpZ07pbx5pUaN5GsNGzJcHgAAAED4ILgjpPPbbQ55XJx8LeVw+WnTvG4NAAAAAGSO4I6QCAyTb9FCYeGSS44Plz940OvWAAAAAEDGCO4IiUWL3Ec/rt+enqZNpWrV3ND+5ZdetwYAAAAAMkZwR0gK0wWCuwXicGDD5S++2N1//32vWwMAAAAAGSO4I9u2bZN27JDy5HELv4WLSy91H61A3dGjXrcGAAAAANJHcEe2LV7sPlql9kKFFDbatpXKlJH+/FP67juvWwMAAAAA6SO4I2TBvUkThZXYWKlHD3ef6vIAAAAA/IrgjqgN7imry3/wgZSY6HVrAAAAAOBEBHdEdXDv1EkqWlSKjz++Fj0AAAAA+AnBHdmyf7+0erW737ixwk5cnHTRRe4+w+UBAAAA+BHBHdmydKm7HFyFClK5cgpLgeHytiycfS8AAAAA4CcEd2TLkiXh29seYD3u+fO7Iwd++cXr1gAAAABAagR3ZLvH3Zx5psKWzXE///zjve4AAAAA4CcEdyjag3vK4fLMcwcAAADgNwR3nDKbD75sWWQEd1vPPU8eadEiaf16r1sDAAAAAMcR3HHKbAm1P/+UYmOlM85QWCtTRmrX7via7gAAAADgF74N7i+88IKqV6+uuLg4tWrVSvPmzcvS173zzjuKiYnRxRdfnONtjHaBYfJ16kgFCijsBYbLE9wBAAAA+Ikvg/vkyZN1xx136IEHHtDChQvVuHFjde3aVdu3b8/069avX68777xT7QJdp8hRkTK/PaBnT/dx1ixp506vWwMAAAAAPg7uo0eP1sCBA3Xdddepfv36GjdunAoVKqRJkyZl+DUJCQnq06ePHnroIdWsWTPT6x8+fFh79+5NtSF4kRbcq1d3l7VLTJQ++cTr1gAAAACAT4P7kSNHtGDBAnXu3Dn5WJ48eZznc+fOzfDrHn74YZUtW1YDBgw46XuMHDlSxYsXT96qVKkSsvZHk0gL7iYww4Lh8gAAAAD8wnfBfefOnU7vebly5VIdt+fbtm1L92tmz56tiRMnasKECVl6jxEjRmjPnj3J26ZNm0LS9mhy7Ji0YoW737ChIi64f/GFdPCg160BAAAAAB8G92Dt27dP11xzjRPaS5cunaWvKVCggIoVK5ZqQ3DWrbMpB1LBglKNGooYNlS+WjXpr7+kr77yujUAAAAAIOWVz1j4jo2N1e+//57quD0vX778CeevWbPGKUrXvXv35GOJNknZvrm8ebVq1SqdfvrpudDy6BLoba9b113/PFLExLhF6p57zh0uHyhYBwAAAABe8V3kyp8/v5o1a6bp06enCuL2vE2bNiecX69ePS1dulSLFy9O3nr06KHzzjvP2Wf+es4G93Bfvz2z4fL/+587JQAAAAAAvOS7HndjS8H1799fzZs3V8uWLTVmzBgdOHDAqTJv+vXrp0qVKjlF5myd94ZpJlmXKFHCeUx7HKHzyy+RG9xtNcGSJaVdu6Tvv5fat/e6RQAAAACimS+De+/evbVjxw7df//9TkG6Jk2a6PPPP08uWLdx40an0jy873GvX18RJ29eyWZevP66O1ye4A4AAADASzFJSUlJinK2jrstC2cV5ilUd3L2iSle3AoDSsuXR2Z4nzZNuuwyt/DemjXu3HcAAAAA8CKH0m2NoG3Z4ob22FipVi1FpK5dpbg4t3r+smVetwYAAABANCO445SHyVtoz59fEalwYen88919Gy4PAAAAAF4huCNokVxRPr3q8gR3AAAAAF4iuCNokVxRPqV//MOd275woRVE9Lo1AAAAAKIVwR1Bi+SK8imVLSu1bevuf/SR160BAAAAEK0I7ghatAyVNwyXBwAAAOA1gjuCsmuXtGOHu1+vniJez57u48yZ0p9/et0aAAAAANGI4I5T6m2vWtWtvB7prHJ+w4ZSQoL0ySdetwYAAABANCK4IyjRNEw+ba/7hx963RIAAAAA0YjgjlOqKB/phenSm+f+2WfSoUNetwYAAABAtCG4IyjR2OPerJlUqZJ04IA0fbrXrQEAAAAQbQjuCEo0Bndby53q8gAAAAC8QnBHlu3fL23cGH3BPeU8d1vP3QrVAQAAAEBuIbgjy1atch/LlJFOO01RpUMHqXhxaft26ccfvW4NAAAAgGhCcEeWReMw+YD8+aVu3dx9hssDAAAAyE0Ed2TZr7+6j/XqKSqlnOeelOR1awAAAABEC4I7gg7utWsrKl1wgdvzvnq1tHKl160BAAAAEC0I7gg6uNepo6hUtKjUqZO7z3B5AAAAALmF4I4ssaHh1tMczcHdsCwcAAAAgNxGcEeWbNvmLgeXJ49Us6aiVo8e7rru8+ZJ8fFetwYAAABANCC4I6hh8jVquPO8o1X58lKrVsfXdAcAAACAnEZwR5ZE+/z2lBguDwAAACA3EdyRJdFeUT694P7NN9KePV63BgAAAECkI7gjS+hxP65uXXct+6NHpc8+87o1AAAAACIdwR1ZQkX51Hr2dB8//NDrlgAAAACIdAR3nFRCgvTbb+4+wT31cPlPPpEOH/a6NQAAAAAiGcEdJ7VhgzssvEABqUoVr1vjDy1buhXm9+2TZs70ujUAAAAAIhnBHUEVprN13OH+HALD5akuDwAAACAnEcNwUhSmS18guNt67omJXrcGAAAAQKQiuOOkWAoufR07SkWKSPHx0vz5XrcGAAAAQKQiuOOkqCifPpvzf9FF7j7D5QEAAADkFII7Toqh8ievLk9wBwAAAJBTCO7I1KFDblV5Q3A/0YUXSnnzSitWHL/BAQAAAAChlDekVwtzBw5IsbEnHrdjcXGpz8us2njBgqd27sGDUlJS+ufGxEiFCp3auX/9lXnxtMKFMz73l1/c9ylWLPU1A6He1njPynVPdq5d29ptbF30Y8dCc679fAOV8I8ccZe1C8W59nmwz0WJElKHDtL06dK770pDh2Z8rrFr2rUzG35vNwKCPdd+BpmtJ58/v5QvX/Dn2p+Z/dllxM6z84M91z5j9lkLxbn2M7CfhbHPqv2/EYpzg/n/Ppp/R2R2Lr8jgj+X3xHuPr8jTu1cfke4+/yOCP5cfke4+/yOOLVz+R2hU/4dkdmf3wmSkLRnzx77WCZJ9ph0wnbRRanPL1ToxHMCW4cOqc8tXTrjc5s3T31utWoZn1u/fupz7XlG59p1UrL3yehca19K1v6MzrXvOyX7uWR0btpPVq9emZ+7f//xc/v3z/zc7duPn3vzzZmfu27d8XPvvDPzc5ctO37uAw9kfu68ecfPvfjizM+dMeP4uWPHZn7uxx8fP/eVVzI/d8qU4+fafmbn2rUC7D0yO9faGGBtz+zcUaOOn2s/k8zOtZ9pgP2sMzvX/qwC7M8ws3PtMxBgn43MzrXPVoB95jI71z6zKWV2Lr8j3I3fEen/jrD/TzI7l98R7sbvCHfjd8TxLSV+R7j4HeHid8Rx/I4I998Rbg61PHoyDJUHsqlBA69bAAAAACCSxVh6V5Tbu3evihcvrvj4PSpmY8LTiObhK4MGSW+8Id17r7tF2/CVrA5xa91aWrRIGjtWuvbajM9liJu7zxC3yPkdkdm5/I4I/lx+R7j7/I44tXP5HeHu8zsi+HP5HeHu8zvi1M7ld4RO+XeE5dCKFYtrz570c2i2gvtHH32kYJ1//vkqmPJT4zOB4J6VH1i0ad9emjVLeust6eqrvW6Nfz32mHTffVK3btLHH3vdGgAAAAB+F0wODTq45wncJsiimJgYrV69WjVr1pRfEdwzVrGitHWrNG+e1KKF163xr+XLpYYN3buwO3ZIRYt63SIAAAAAfhZMDj2lOe7btm1TYmJilrZCaUuRI2zY0BsL7eb0071ujb/Vry/VquUOp/niC69bAwAAACCSBB3c+/fvH9Sw9759+9KLHabWrnUfS5aUSpXyujX+ZvNgevZ09z/4wOvWAAAAAIjq4P7KK6+oaBDjgF966SWVLl062LeBD6xZ4z7S2541F1/sPn7ySeaFKQAAAAAgGCwHhwz99pv7aEPAcXJt2khlyki7d0vffut1awAAAABEir8XgTg1d9xxR4YF6eLi4lSrVi317NlTpRhnHZbocQ+OLeXRo4c0caI0bZrUubPXLQIAAACgaA/uixYt0sKFC5WQkKC6des6x3799VfFxsaqXr16evHFFzVs2DDNnj1b9a16F8IKPe7B69XreHB//vnj664CAAAAgCdD5a03vXPnzoqPj9eCBQucbfPmzc667VdddZW2bNmi9u3b6/bbb8/O28Aj9LgHr2NHqUQJ6fffpTlzvG4NAAAAgEgQ9DruKVWqVElfffXVCb3py5cvV5cuXZzgbj3ytr9z5075Feu4n+jIEckWD0hMlOLjpQoVvG5R+Lj2Wum116TBg6XnnvO6NQAAAACich33AHuD7du3n3B8x44dTiNMiRIldMRSIMLKhg1uaC9USCpf3uvWhJfLL3cf33vP/RkCAAAAgKdD5a+//nq9//77zhB522x/wIABuvjvtbHmzZunOnXqZKuR8G5+uw2TtzXKkXVWlM5umNlIhblzvW4NAAAAgKgO7uPHj1enTp105ZVXqlq1as5m+3Zs3LhxzjlWpO4///lPqNqLXJ7fTmG64BUo4FaXN1Onet0aAAAAAFEd3IsUKaIJEyZo165dToV522z/5ZdfVuHChZ1zmjRp4mwI3x53nFp1+UBwZ7g8AAAAAM+Wg0sZ4Bs1ahSKS8En6HHPnq5d7f8LafNm6aefpFatvG4RAAAAgKjpcf/555+VGEQXolWYP3bsWLBvA4/R4549cXFS9+7uPsPlAQAAAORqcG/atKkzHD6r2rRpo40bNwb7NvBQQoK0dq27T4979ofLv/uudOqLLgIAAACIdkEPlbdl3//1r3+pkK0TlgUsBRd+tmxx13HPl0+qUsXr1oSvCy+UrNSDLa23YIHUvLnXLQIAAAAQFcG9ffv2WrVqVVA97gULFgz2beCD+e01akixsV63JnzZx75bN2nKFHe4PMEdAAAAQK4E95kzZ57SGyF8ML89tMPlA8F95EgpJsbrFgEAAACIquXgEJmoKB86F13k9rzbz3TJEq9bAwAAACAcEdxxAnrcQ8fmuFt4N9bzDgAAAADBIrgjw+BOj3toXHGF+/jOO1SXBwAAABA8gjtSsWAZGCpPj3toWIE663lft0766SevWwMAAAAgKoN7YmJiKC4DH9i+Xdq/3y2iZlXlkX0W2nv0ON7rDgAAAAC5HtxLlSqlpk2bql+/fho1apQ+++wzbdq0KRSXRi4L9Lbb+u0FCnjdmshx5ZXu4+TJdqPL69YAAAAAiOjl4NKza9curVixQosWLdJtt93mrN3+yy+/aO/evapfv75mz54dirdBLmB+e87o2lUqUUKKj5fsf4f27b1uEQAAAICo6nGPjY1Vw4YNdc0116hEiRL69NNPtX79em3evFnPPfdcKN4CuYT57TnDRi9ceqm7/9//et0aAAAAAFFdnC7GJkf/rVChQjrrrLNC/RbIQfS45/xw+alTpaNHvW4NAAAAgKgK7vfff7+mTZumNYHuWoQtetxzznnnSWXKSDt3St9843VrAAAAAERVcC9ZsqQ++eQTXX311c5895YtW6p///568skn9dFHH4XiLZBL6HHPOXnzSpdf7u5TXR4AAABAVsUkJdnK3aG1bt06LVu2zNmWL1+uN998U35mRfSKFy+uPXv2qFixYopWu3fbTRh3f+9eqWhRr1sUeWbNcgvT2cfMlt6jcj8AAAAQnfYGkUNDUlU+4OjRo5o5c6bi4uJ09tlnq3v37qG8PHJpmHy5coT2nNK2rVSpkrRli/T551LPnl63CAAAAEBUFae79NJL9e677+qSSy5R69atValSJV144YWhfAvkQnBnmHzOyZNH6t3b3ae6PAAAAIBcD+4bN27Uyy+/rMqVK2v16tW69957deaZZ4byLZAL89spTJc71eX/9z/pwAGvWwMAAAAgqoK7DZE3+fPn15EjR3TLLbdo9uzZoXwL5CB63HNH8+buzZGDByVqNwIAAADI1eB+22236Y8//tBll12mm266SRMnTtROW/sKYYEe99wRE3O81/3tt71uDQAAAICIDO5WKf63QMpLoU+fPipVqpTuuecetW/fXitXrtTUqVND0U7kAnrcc0+fPu6jFajbscPr1gAAAACIuOXgunbtqgYNGmj06NHJx2wd97fffltly5bVkCFDVL16dYULloOT/vpLKlTI3bdBEqed5nWLomPI/IIF0vPPS7fe6nVrAAAAAPg1h55Sj/uSJUuc4fABK1ascCrJf/vtt86a7S1btlR8fPypXBoeWbvWfSxRQipVyuvWRIdrrnEf33jD65YAAAAA8LNTCu52R6BKlSrJz19//XXVrFlTGzZs0ObNm9W4cWM98cQToWwncnF+u83BRs6zee6xsdK8edKqVV63BgAAAEBEBXdb7m3r1q3Jz6dPn67LL79csbGxKlCggEaMGKEvv/wylO1EDmN+e+4rV07q0sXdf/NNr1sDAAAAIKKCe+fOnZPnt1sv+8KFC9UlkECcXtvTtWnTptC1EjmOivLeDpe34B58tQkAAAAA0SDvqXzRfffdp6ZNmzrD4w8dOuQMmz/nnHOSX//9999VpEiRULYTOYwed2/07CkVLSqtXy/NmSOl+N8IAAAAAE69x71SpUr66aefnIJ0F154oaZNm6aYFBOjv/nmG9WpU0fZ8cILLziV6ePi4tSqVSvNs4nAGbD3b968uUqUKKHChQurSZMmeoOKX0Ghx90bVsk/UOeRjywAAACAkC0HdzL9+vVTs2bNnGXhTsXkyZOda4wbN84J7WPGjNG7776rVatWOcvNpTVz5kz9+eefqlevnvLnz6+PP/5Yw4YNc5aos6XrTibal4M7elQqWFBKSJC2bJEqVvS6RdFl+nSbfuJW9LfSEXFxXrcIAAAAQE4LJofmSHDPLgvrLVq00NixY53niYmJznD8wYMHa/jw4Vm6xllnnaVu3brpkUceOem50R7crbe9dm03vB84QFX53GY3TKpVc2+aTJ16vAceAAAAQOTK8XXcc9KRI0e0YMEC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e/jr0UOqVk3asEF66y3phhu8bhEAAAAAXwb3u+66S7t27dLNN9+sI0eOOMfi4uJ0zz33aPjw4aFqI0KMHvfwFxsr3Xqr/T8oPfusNGAAS8MBAAAAkSoky8Ht379fK1asUMGCBVW7dm0VKFBA4SSaloOz+ysFC0qJiZKVIShf3usW4VT9+adUubJ08KD0zTfSeed53SIAAAAAvlsOzsyaNUs33XSThgwZopIlSzqh/Y033tDs2bOze2nkgPXr3dBeuLBUrpzXrUF22HJ+/fu7+9brDgAAACAyZSu4v/fee+ratavT075w4UIdPnzYOW53DB5//PFQtRE5VFGeodXh77bb3MePPpLWrvW6NQAAAAB8F9wfffRRZ732CRMmKF++fMnH27Zt6wR5+A+F6SJLvXpS166STXgZO9br1gAAAADwXXBftWqV2rdvf8JxG6e/e/fu7FwaOYQ13CN3abiJE6V9+7xuDQAAAABfBffy5cvrt0ASTMHmt9esWTM7l0YO+fVX97FOHa9bglCxHnf789y7V3rtNa9bAwAAAMBXwd3WcbeidD/++KNiYmIUHx+vt956S3feeacGDRoUulYiZAjukSdPHmnw4ONF6hISvG4RAAAAAN8sB2dfakXoRo4cqYO2JpXkVJW34P7II48oXETLcnApl4KLj5cqVPC6RQiV/fulqlXdJeLee0+69FKvWwQAAAAgVDk0JOu4HzlyxBkyb+u5169fX0WKFFE4iZbgvnKldMYZkv3x2LBqqspHlvvukx57TGrZUvrhB/58AQAAAD/L1XXcTf78+XXGGWeoRYsWYRfao3WYPKEuMpeGK1BAmjdPmjXL69YAAAAACJVsB/eJEyeqYcOGiouLczbb/89//hOa1iGkmN8e2cqWla67zt1/8kmvWwMAAADAF8H9/vvvd4rTde/eXe+++66z2f7tt9/uvAZ/IbhHvmHD3NEUn34qLV3qdWsAAAAAhELe7HzxSy+9pAkTJuiqq65KPtajRw81atRIgwcP1sMPPxyKNiJECO6Rr1Yt6bLLpKlTpX//m+XhAAAAAEV7j/vRo0fVvHnzE443a9ZMx44dy86lkQMI7tHh7rvdx7ffljZt8ro1AAAAADwN7tdcc43T657Wyy+/rD59+mTn0gixffukrVvd/dq1vW4NclKLFtJ550l272zMGK9bAwAAACC7srUc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irzZXcd96NChOnr0qDpaN5ek6dOn6+6779awYcNC1UYAOCnrcbfwfu650qpVUvv29vvIPQ4AAABEbXC/6667tGvXLt18883OknAmLi5O99xzj0aMGBGqNgJAlthc91mz3OHyNuc9EN5Z5x0AAACK9nXcbf32FStWqGDBgqpdu7YKFCigZcuWqWHDhgoHrOMORBYbJt+5s7tUXPny0tdfW9FMr1sFAAAAnFoOzdYc94AiRYqoRYsWqlatml577TW1bNlSjRs3DsWlASBolSq567o3amRFNN313hct8rpVAAAAwKkJSXD/7rvv1L9/f6fC/L///W9nvvsPP/wQiksDwCmv825z3ps3l3btcue+W5gHAAAAoia421JwTzzxhDM0/vLLL3e69g8fPqwPPvjAOW498ADgpVKl3GHy7drZUCSpa1dp2jSvWwUAAADkQnDv3r276tatq59//lljxoxRfHy8nn/++VO5FADkqOLFpS++kC6+WDp8WLr8cmn8eK9bBQAAAORwcP/ss880YMAAPfTQQ+rWrZtiY2NP5TIAkCsKFpTefdeWsJQSE6WbbpIefljKfmlOAAAAwKfBffbs2dq3b5+aNWumVq1aaezYsdq5c2foWwcAIZI3r9vT/q9/uc8feEC6+Wbp2DGvWwYAAADkQHBv3bq1JkyYoK1bt+rGG2/UO++8o4oVKyoxMVFfffWVE+oBwG9iYtye9rFj3f1x46SePSV+ZQEAACDi13E3q1at0sSJE/XGG29o9+7dOv/88/XRRx8pHLCOOxB9rEhd377SX39Jtnrlxx9LlSt73SoAAABEi725vY67sWJ1o0aN0ubNm/Xf//43VJcFgBxx6aXSzJnusnFLlkitWkkLF3rdKgAAACAHe9zDGT3uQPRav17q1k365RepUCHpnXds5QyvWwUAAIBIt9eLHncACEfVq0vffy+df7508KA75/3JJ6k4DwAAAP8guAOIerbW+yefSDfe6Ab24cOlq692gzwAAADgNYI7AEjKl8+tMv/SS+7ScTZk/pxzpI0bvW4ZAAAAoh3BHQBSuOkmafp0qXRpadEiqXlzadYsr1sFAACAaEZwB4A02reX5s+XmjSRduyQOnaUnnmGee8AAADwBsEdANJRrZo0Z4505ZXSsWPSHXdIvXpJe/Z43TIAAABEG4I7AGTAlod7+21p7Fh3Dvy0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Encontrar el índice donde se alcanza C_max\n", + "idx_max = np.argmax(S_a_TH)\n", + "x_max = T_H[idx_max]\n", + "y_max = S_a_TH[idx_max]\n", + "\n", + "plt.figure(figsize=(12, 6)) \n", + "plt.plot(T_H, S_a_TH, label=r'$S_{aH}$', color='blue')\n", + "plt.axhline(y=C_min, color='b', linestyle='--', label=rf'$C_{{min}} = {C_min:.2f}$')\n", + "\n", + "# Anotación de C_max con subíndice\n", + "plt.scatter(x_max, y_max, color='black', zorder=5)\n", + "plt.annotate(rf'$C_{{max}} = {C_max:.2f}$',\n", + " xy=(x_max, y_max),\n", + " xytext=(x_max, y_max + 0.1 * C_max),\n", + " arrowprops=dict(facecolor='red', shrink=0.05),\n", + " horizontalalignment='center', fontsize=12, color='black')\n", + "plt.xlabel(r'Período $T_H$ [s]')\n", + "plt.ylabel(r'Aceleración espectral $S_{aH}$ [g]')\n", + "plt.title(r'Espectro $S_{aH}$ - NCh 2369:23')\n", + "\n", + "plt.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "f30c2d19", + "metadata": {}, + "source": [ + "#### 5.7 Acción Sísmica Vertical\n", + "$F_v$ $=$ $C_v P$ \n", + "$C_v$ $=$ $1.18 I S A_0/g$" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "7db42988", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "C_v: 0.50\n" + ] + } + ], + "source": [ + "C_v = 1.18 * I * S * A_0\n", + "print(f\"C_v: {C_v:.2f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "25f96cfd", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/analisis_sismico/espectro_respuesta_nch2369_25.ipynb b/notebooks/analisis_sismico/espectro_respuesta_nch2369_25.ipynb new file mode 100644 index 0000000..971b134 --- /dev/null +++ b/notebooks/analisis_sismico/espectro_respuesta_nch2369_25.ipynb @@ -0,0 +1,494 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "33416d01", + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "#import nch2369_23 as ns\n", + "g = 9.81 # m/s2" + ] + }, + { + "cell_type": "markdown", + "id": "9caa8195", + "metadata": {}, + "source": [ + "#### Parámetros de entrada" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "51630f73", + "metadata": {}, + "outputs": [], + "source": [ + "T_H = np.linspace(0, 5, 501)\n", + "cat = \"I\"\n", + "suelo = \"C\"\n", + "zona_sismica = 2\n", + "R = 3\n", + "xi = 0.02\n" + ] + }, + { + "cell_type": "markdown", + "id": "1f3bcc6b", + "metadata": {}, + "source": [ + "#### Clasificación de estructuras y equipos según su importancia." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "b6ea7ed4", + "metadata": {}, + "outputs": [], + "source": [ + "def coeficiente_importancia(cat=\"III\"):\n", + " cats = { \"I\": 0.8, \"II\": 1.0, \"III\": 1.2, \"IV\":1.2}\n", + " I = cats[cat]\n", + " return I\n", + "I = coeficiente_importancia(cat)" + ] + }, + { + "cell_type": "markdown", + "id": "8637da71", + "metadata": {}, + "source": [ + "#### Parámetros relativos al tipo de suelo:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e2ec86ae", + "metadata": {}, + "outputs": [], + "source": [ + "def obtener_parametros(suelo):\n", + " parametros_suelo = {\n", + " \"A\": {\"S\": 0.90, \"r\": 4.50, \"T_0\": 0.15, \"p\": 1.85, \"q\": 3.00, \"T1\": 0.15},\n", + " \"B\": {\"S\": 1.00, \"r\": 4.50, \"T_0\": 0.30, \"p\": 1.60, \"q\": 3.00, \"T1\": 0.27},\n", + " \"C\": {\"S\": 1.05, \"r\": 4.50, \"T_0\": 0.40, \"p\": 1.50, \"q\": 3.00, \"T1\": 0.35},\n", + " \"D\": {\"S\": 1.00, \"r\": 3.50, \"T_0\": 0.60, \"p\": 1.00, \"q\": 2.50, \"T1\": 0.41},\n", + " \"E\": {\"S\": 1.00, \"r\": 3.00, \"T_0\": 1.20, \"p\": 1.00, \"q\": 2.70, \"T1\": 0.79},\n", + " \"F\": None # Indica que se requiere espectro de sitio\n", + "}\n", + " if suelo in parametros_suelo:\n", + " return parametros_suelo[suelo]\n", + " else:\n", + " raise ValueError(\"El tipo de suelo no es válido. Debe ser A, B, C, D o E.\")\n", + " \n", + "S = obtener_parametros(suelo)[\"S\"]\n", + "r = obtener_parametros(suelo)[\"r\"]\n", + "T_0 = obtener_parametros(suelo)[\"T_0\"]\n", + "p = obtener_parametros(suelo)[\"p\"]\n", + "q = obtener_parametros(suelo)[\"q\"]\n", + "T1 = obtener_parametros(suelo)[\"T1\"]" + ] + }, + { + "cell_type": "markdown", + "id": "534e5f4f", + "metadata": {}, + "source": [ + "#### 5.4. Espectros normativos\n", + "$A_0$ $=$ aceleración efectiva máxima del suelo" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "63281acf", + "metadata": {}, + "outputs": [], + "source": [ + "def aceleracion_efectiva(zona_sismica = 3):\n", + " A0 = {1: 0.2, 2: 0.3, 3: 0.4}\n", + " return A0[zona_sismica]\n", + "\n", + "A_0 = aceleracion_efectiva(zona_sismica)\n", + "A_r = 1.4*A_0" + ] + }, + { + "cell_type": "markdown", + "id": "505a837a", + "metadata": {}, + "source": [ + "#### 5.4.2. Espectro de Referencia\n", + "Se define el siguiente espectro de referencia para la dirección horizontal y vertical:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e492497f", + "metadata": {}, + "outputs": [], + "source": [ + "S_aH_TH = np.zeros(len(T_H))\n", + "for i in range(len(T_H)):\n", + " S_aH_TH[i] = A_r * S * ((1 + r * (T_H[i] / T_0) ** p) / (1 + (T_H[i] / T_0) ** q))" + ] + }, + { + "cell_type": "markdown", + "id": "aa98be90", + "metadata": {}, + "source": [ + "#### 5.4.1. Espectro de diseño\n", + "Se definen los siguientes espectros de diseño para las direcciones horizontal y vertical:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e8ad5827", + "metadata": {}, + "outputs": [], + "source": [ + "C_r = 0.16 * R\n", + "T_s = 1.0\n", + "if R == 1: \n", + " R_star = 1\n", + "elif R!= 1 and T_s >= C_r * T_s:\n", + " R_star = R\n", + "elif R!= 1 and T_s < C_r * T_s:\n", + " R_star = 1.5+(R+1.5)*T_s/(C_r*T1)\n", + "\n", + "S_a_TH = I * S_aH_TH/R_star * (0.05/xi)**0.4\n", + "# S_a_TV = 0.7 * I * S_aV_TV/R * (0.05/xi)**0.4" + ] + }, + { + "cell_type": "markdown", + "id": "6e6f7209", + "metadata": {}, + "source": [ + "#### 5.8. Equipos rígidos apoyados en el suelo\n", + "El diseñó sísmico de equipos rígidos apoyados en el suelo considera el siguiente factor $K_p$ y aceleración horizontal:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "0d696b4f", + "metadata": {}, + "outputs": [], + "source": [ + "K_p_rig = 1.0\n", + "a_k_rig = 1.2 * S * A_0 * I" + ] + }, + { + "cell_type": "markdown", + "id": "60f04f92", + "metadata": {}, + "source": [ + "##### 7.2.2. Equipo no modelado salvo para su masa. Coeficiente sísmico uando no se ha realizado un análisis del edificio:\n", + "$C_{p.h}=\\frac{a_{k}R_{1}K_{p}}{gR_{p}}$" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1dcc6406", + "metadata": {}, + "outputs": [], + "source": [ + "# C_ph = a_k * R_1 * K_p / (g * R_p)" + ] + }, + { + "cell_type": "markdown", + "id": "a63f01dd", + "metadata": {}, + "source": [ + "#### 5.12. Esfuerzo de corte basal mínimo\n", + "##### 5.12.1. Coeficiente sísmico mínimo:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "b648008b", + "metadata": {}, + "outputs": [], + "source": [ + "C_min = 0.25 *I *A_r *S" + ] + }, + { + "cell_type": "markdown", + "id": "7e5f30a9", + "metadata": {}, + "source": [ + "#### Coeficiente sísmico máximo:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "b4fd6413", + "metadata": {}, + "outputs": [], + "source": [ + "C_max = ( 2.75 *I *A_r *S ) / ( (R+1) ) * (0.05/xi)**0.4" + ] + }, + { + "cell_type": "markdown", + "id": "09d23816", + "metadata": {}, + "source": [ + "#### Coeficiente sísmico adoptado:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "a6b69a8f", + "metadata": {}, + "outputs": [], + "source": [ + "C_h = max(C_min, min(C_max, max(S_a_TH)))\n", + "\n", + "S_a_TH_plot = np.maximum(np.minimum(S_a_TH, C_h), C_min)" + ] + }, + { + "cell_type": "markdown", + "id": "89a393bb", + "metadata": {}, + "source": [ + "##### Factor de modificación de la respuesta estructural corregido por el requerimiento de corte basal mínimo" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "823494d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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gOAO7rdu3SqtWrVK8XjBggXl+PHjmTk1Mmnv3r1y5MgRs9+gQQNWL4CjPProo579iRMnSmJioqX9AQAAAII6uC9VqpRnHXVvOt++SpUqmTk1Msk9au8O7gEn0Wu2devWnpuIP/74o9VdAgAAAII3uO/bt68MHDhQli5dakaGY2JizNJVQ4cOlX79+gWul/AbwT2cTpfF8x69BwAAAJBF69w/+eSTJl22bdu2puiVpujnypXLBPcDBgzIzKmRSQT3cLoOHTqYDKCdO3fKzz//LBs2bJA6depY3S0AAAAg+EbudbR++PDhcvToUfOH959//imHDh2SMWPGBK6HyFRwnz9/frnsssus7g7gt4iICJMZ5DZhwgRL+wMAAAAE9Tr3KjIyUmrVqiVNmzaVfPnyBeKUyAStML57926zX69ePQkPD8jbDGS73r17S6FChcz+hx9+aApFAgAAAAhAWv7gwYPT3ZaRNmts2rTJs09KPpxMM08eeughee655yQ+Pl5effVVeeWVV6zuFgAAAOD84N57LrcvLL1mnYULF3r2GzVqZGlfgMx65JFHTEB/9uxZmTp1qpkKVKRIEau7BQAAADg7uJ8/f37W9AQBoQUOv/nmG8+c5ZtuusnqLgGZUqJECenTp49MnjxZ4uLizL/PPPOM1d0CAAAAbCXTk7F///136dGjh1x11VUSHR1tHvvggw/MWvfIfkuWLPHMS77uuuukePHiVncJyLQhQ4aYm1Vq0qRJJsgHAAAAEKDgfvbs2dK+fXvJnTu3rFq1Ss6dO2cej42Nleeffz4zp0YGffLJJ579u+66y9K+AIFSuXJl6datm9k/cuSIzJgxw+ouAQAAAMET3I8dO1amTJki06ZNk5w5c3oeb9GihQn2kb0uXLggn332mdmPioqSzp07W90lIGCeeOIJz/7LL79sCuwBAAAACEBwv3XrVmnVqlWKxwsWLCjHjx/PzKmRAfPmzZNDhw6Z/Q4dOphK40CwuOKKK+Tmm282+7rU46effmp1lwAAAIDgCO5LlSol27dvT/G4zrevUqVKZk6NDGjWrJnJotDMie7du1vdHSDgnnzySc/+iy++aApIAgAAAMhkcN+3b18ZOHCgLF261Cx9FxMTIx999JEMHTpU+vXrF7heIl0KFSok9913n8yaNUs6depkdXeAgGvZsqW5eaU2btwoc+bM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woVWdwsAAAAhiuAeADKoSZMmMmrUKLOfmJgod911lxw+fNjqbgEAACAEEdwDQCYMGzZM2rRpY/ajo6PlnnvuYXk8AAAAZDuCewDIBE3L1/R89/J4c+bMkVdffdXqbgEAACDEENwDQCaVKVNGPvjgA8/xE088YYrsAQAAANmF4B4AAqB9+/YmqFcXLlyQrl27yvHjx63uFgAAAEIEwT0ABMiYMWOkefPmZv/vv/+W++67j/n3AAAAyBYE9wAQIDlz5pRPPvlEChcubI5nz54tkyZNsrpbAAAACAEE9wAQQBUrVpSZM2d6jocOHSq///67pX0CAABA8CO4B4AA69Spkzz55JNmPyEhQe644w7Zt2+f1d0CAABAECO4B4Asmn/ftm1bs79//365/fbbJT4+3upuAQAAIEgR3ANAFsiRI4eZf1+uXDlzvHjxYpOiDwAAAGQFgnsAyCLFixc3RfUiIyPN8WuvvSYff/yx1d0CAABAECK4B4As1LRpU3n99dc9x3379pW1a9da2icAAAAEH4J7AMhiGtD37t3b7J8+fVo6duwoBw8etLpbAAAACCIE9wCQxcLCwmTy5MnSpEkTc7x792657bbb5Pz581Z3DQAAAEGC4B4AskHu3Lnl66+/ljJlypjjRYsWSf/+/cXlclndNQAAAAQBgnsAyCYa2GuAHxUVZY6nT59uiuwBAAAAmUVwDwDZSFPzNah3Gzx4sMydO9fSPgEAAMD5CO4BIJvdddddMmzYMLOfmJgoXbt2la1bt1rdLQAAADgYwT0AWGDs2LGmar46fvy43HTTTVTQBwAAQIYR3AOABcLDw+XDDz+UevXqmeOdO3dKp06d5MyZM1Z3DQAAAA5EcA8AFsmfP7989913UrZsWXP8559/yt13321S9QEAAAB/ENwDgIXKlSsnc+bMkXz58pnj2bNnyxNPPGF1twAAAOAwBPcAYDFNzf/8888lIiLCHL/88svy5ptvWt0tAAAAOAjBPQDYwA033JAkoB8wYIB8++23lvYJAAAAzkFwDwA2cf/998uTTz6ZZIm833//3epuAQAAwAEI7gHARp577jnp3r272T979qx06NBB1q1bZ3W3AAAAYHME9wBgsyXyZsyYIe3btzfHsbGxJmV/165dVncNAAAANkZwDwA2ExkZaarmN2vWzBzv27fPBPsHDx60umsAAACw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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Encontrar el índice donde se alcanza C_max\n", + "idx_max = np.argmax(S_a_TH)\n", + "x_max = T_H[idx_max]\n", + "y_max = S_a_TH[idx_max]\n", + "\n", + "plt.figure(figsize=(12, 6)) \n", + "plt.plot(T_H, S_a_TH_plot, label=r'$S_{aH}$', color='black', linewidth=2)\n", + "plt.axhline(y=C_min, color='r', linestyle='--', label=rf'$C_{{min}} = {C_min:.2f}$')\n", + "plt.axhline(y=C_max, color='b', linestyle='--', label=rf'$C_{{max}} = {C_max:.2f}$')\n", + "plt.grid(visible=True, which='major', linestyle='-', linewidth=0.5, color='gray', alpha=0.3)\n", + "\n", + "# Anotación de C_max con subíndice\n", + "#plt.scatter(x_max, y_max, color='black', zorder=5)\n", + "#plt.annotate(rf'$C_{{max}} = {C_max:.2f}$',\n", + "# xy=(x_max, y_max),\n", + "# xytext=(x_max, y_max + 0.1 * C_h),\n", + "# arrowprops=dict(facecolor='red', shrink=0.05),\n", + "# horizontalalignment='center', fontsize=12, color='black')\n", + "plt.xlabel(r'Período $T_H$ [s]')\n", + "plt.ylabel(r'Aceleración espectral $S_{aH}$ [g]')\n", + "plt.title(r'Espectro $S_{aH}$ - NCh 2369:25')\n", + "\n", + "plt.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "f30c2d19", + "metadata": {}, + "source": [ + "#### 5.7 Acción Sísmica Vertical\n", + "$F_v$ $=$ $C_v P$ \n", + "$C_v$ $=$ $1.18 I S A_0/g$" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "7db42988", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "C_v: 0.30\n" + ] + } + ], + "source": [ + "C_v = 1.18 * I * S * A_0\n", + "print(f\"C_v: {C_v:.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "80e51388", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Parámetros de Diseño Sísmico según NCh 2369:23
ParámetroValorDescripción
I0.80Coeficiente de importancia Categoría I.
A_00.30Aceleración Efectiva Máxima. Zona Sísmica 2.
A_r0.42Aceleración máxima de referencia.
S1.05Parámetro relativo al suelo. Suelo tipo C.
T_00.40Parámetro relativo al suelo. Suelo tipo C.
p1.50Parámetro relativo al suelo. Suelo tipo C.
q3.00Parámetro relativo al suelo. Suelo tipo C.
r4.50Parámetro relativo al suelo. Suelo tipo C.
T_10.35Parámetro relativo al suelo. Suelo tipo C.
C_h0.35Coeficiente sísmico horizontal.
C_v0.30Coeficiente sísmico vertical.
\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Definición de datos técnicos (Ejemplo: Parámetros de Diseño)\n", + "data = {\n", + " \"Parámetro\": [\"I\", \"A_0\", \"A_r\",\"S\",\"T_0\",\"p\",\"q\",\"r\",\"T_1\",\"C_h\",\"C_v\"],\n", + " \"Valor\": [I, A_0, A_r, S,T_0,p,q,r,T1,C_h,C_v],\n", + " \"Descripción\": [f\"Coeficiente de importancia Categoría {cat}.\", f\"Aceleración Efectiva Máxima. Zona Sísmica {zona_sismica}.\", \"Aceleración máxima de referencia.\", f\"Parámetro relativo al suelo. Suelo tipo {suelo}.\", f\"Parámetro relativo al suelo. Suelo tipo {suelo}.\", f\"Parámetro relativo al suelo. Suelo tipo {suelo}.\", f\"Parámetro relativo al suelo. Suelo tipo {suelo}.\", f\"Parámetro relativo al suelo. Suelo tipo {suelo}.\", f\"Parámetro relativo al suelo. Suelo tipo {suelo}.\", \"Coeficiente sísmico horizontal.\", \"Coeficiente sísmico vertical.\"],\n", + " }\n", + "\n", + "# Creación del DataFrame\n", + "df = pd.DataFrame(data)\n", + "df_styled = df.style.hide(axis=\"index\").format({\"Valor\": \"{:.2f}\"}).set_caption(\"Parámetros de Diseño Sísmico según NCh 2369:23\")\n", + "\n", + "# Visualización optimizada para copia directa\n", + "display(df_styled)\n", + "# Opción para exportar a LaTeX (formato académico/técnico tradicional)\n", + "#print(df.to_latex(escape=False))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3a309e10", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/acero/effective_length.py b/src/acero/effective_length.py new file mode 100644 index 0000000..dde1f1a --- /dev/null +++ b/src/acero/effective_length.py @@ -0,0 +1,28 @@ +# /// script +# requires-python = ">=3.13" +# dependencies = [ +# "marimo>=0.19.0", +# "pyzmq", +# "sectionproperties", +# ] +# /// + +import marimo + +__generated_with = "0.19.2" +app = marimo.App() + + +@app.cell +def _(): + import sectionproperties as sp + return + + +@app.cell +def _(): + return + + +if __name__ == "__main__": + app.run() diff --git a/src/fnd/modulo_resistente_zapata_rectangular.py b/src/fnd/modulo_resistente_zapata_rectangular.py new file mode 100644 index 0000000..725ed00 --- /dev/null +++ b/src/fnd/modulo_resistente_zapata_rectangular.py @@ -0,0 +1,15 @@ +def modulo_resistente_zapata_rectangular(b_x, b_y, h): + """ + Calcula el módulo resistente de una zapata rectangular. + + Parámetros: + b_x (float): Ancho de la zapata en la dirección x (en metros). + b_y (float): Ancho de la zapata en la dirección y (en metros). + h (float): Altura de la zapata (en metros). + + Retorna: + tuple: Módulo resistente en la dirección x y en la dirección y (en m^3). + """ + W_x = (b_x * b_y**2) / 6 + W_y = (b_y * b_x**2) / 6 + return W_x, W_y \ No newline at end of file diff --git a/src/sismica/nch2369_25.py b/src/sismica/nch2369_25.py new file mode 100644 index 0000000..f8f0b8c --- /dev/null +++ b/src/sismica/nch2369_25.py @@ -0,0 +1,30 @@ + +def coef_importancia(categoria:str): + """ + Devuelve el coeficiente de importancia de una categoría de ocupación. + """ + + importancia={ + "I": 0.8, + "II": 1.0, + "III": 1.2, + "IV": 1.2, + } + + return importancia[categoria] + +def acel_efectiva(zona:int): + """ + Devuelve la aceleración efectiva de una zona. + """ + if x not in [1,2,3]: + raise ValueError("Zona sísmica debe ser 1, 2 o 3") + + aceleracion={ + 1: 0.2, + 2: 0.3, + 3: 0.4 + } + + return aceleracion[zona],1.4*aceleracion[zona] +