<commit_before>{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Elemento Spring\n",
    "\n",
    "## Fundamento teórico\n",
    "\n",
    "El elemento *Spring* es un elemento finito unidimensional donde \n",
    "las coordenadas locales y globales coinciden. Cada elemento spring tiene dos \n",
    "nodos como se muestra en la figura siguiete. Sea la rigidez del \n",
    "resorte la denotada por $k$, en este caso la matriz de rigidez del elemento está \n",
    "dada por:\n",
    "\n",
    "\\begin{equation}\n",
    "K_{(e)} = \\begin{bmatrix}\n",
    "k & -k \\\\\n",
    "-k & k \n",
    "\\end{bmatrix}\n",
    "\\end{equation}\n",
    "\n",
    "![](src/spring-element/spring_element.png)\n",
    "\n",
    "Obviamente la matriz de rigidez para un elemento *spring* es de $2\\,x\\,2$, dado que \n",
    "este tiene dos grados de libertada, uno en cada nodo. Consecuentemente para un \n",
    "sistema de elementos *spring* con $n$ nodos, el tamaño de la matriz global de \n",
    "rigidez $K$ será de $n\\,x\\,n$. La matriz global de rigidez se obtiene ensamblando \n",
    "los matrices de rigidez por elemento $K_{(i)}$ para $i=1,2,...,n$, utilizando el método \n",
    "directo de la rigidez.\n",
    "\n",
    "Una vez que la matriz global de rigidez $K$ es obtenida  se tiene un sistema de ecuaciones \n",
    "de la forma:\n",
    "\n",
    "\\begin{equation}\n",
    "[K]\\{U\\} = \\{F\\}\n",
    "\\end{equation}\n",
    "\n",
    "Donde $U$ es el vector global de desplazamientos nodales y $F$ es el vector global de \n",
    "fuerzas nodales.\n",
    "\n",
    "El sistema de ecuaciones resultantes se puede simplificar aplicando las condiciones \n",
    "de frontera o restricciones de desplazamiento, quedando generalmente un sistema \n",
    "de menor dimensión el cuál está determinado y puede resolverse utilizando métodos \n",
    "de álgebra lineal´, quedando una posible solución como:\n",
    "\n",
    "\\begin{equation}\n",
    "\\overline{U} = \\overline{K}^{-1}\\, \\overline{F}\n",
    "\\end{equation}\n",
    "\n",
    "Donde $\\overline{U}, \\overline{K} \\,\\, y \\,\\, \\overline{F}$ corresponden a las variables descritas \n",
    "anteriormente, después de aplicar las condiciones de frontera correspondientes.\n",
    "\n",
    "\n",
    "## Un ejemplo resuelto en NuSA\n",
    "\n",
    "**Ejemplo 1.** Para el ensamble mostrado en la figura siguiente, calcular \n",
    "a) la matriz global de rigidez  b) los desplazamientos de los nodos 3 y 4  c) las fuerzas \n",
    "de reacción en los nodos 1 y 2, y  d) las fuerzas en cada elemento. Una fuerza de 5000 lb \n",
    "es aplicada en el nodo 4 en la dirección $x$, las constantes de rigidez para cada resorte \n",
    "se muestran en la figura. Los nodos 1 y 2 están fijos.\n",
    "\n",
    "![](src/spring-element/example_01.png)\n",
    "\n",
    "Los pasos para solucionar el problema utilizando NuSA se resumen en la siguiente \n",
    "lista:\n",
    "\n",
    "1. Importar las librerías a utilizar\n",
    "2. Definir constantes o datos de entrada \n",
    "1. Crear un modelo del tipo correspondiente\n",
    "1. Crear nodos y elementos\n",
    "1. Agregar los nodos y elementos al modelo\n",
    "1. Indicar las cargas y condiciones de frontera \n",<commit_msg>Actualizando NuSA Theory ...<commit_after>{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Elemento Spring\n",
    "\n",
    "## Fundamento teórico\n",
    "\n",
    "El elemento *Spring* es un elemento finito unidimensional donde \n",
    "las coordenadas locales y globales coinciden. Cada elemento spring tiene dos \n",
    "nodos como se muestra en la figura siguiete. Sea la rigidez del \n",
    "resorte la denotada por $k$, en este caso la matriz de rigidez del elemento está \n",
    "dada por:\n",
    "\n",
    "\\begin{equation}\n",
    "K_{(e)} = \\begin{bmatrix}\n",
    "k & -k \\\\\n",
    "-k & k \n",
    "\\end{bmatrix}\n",
    "\\end{equation}\n",
    "\n",
    "![](/src/spring-element/spring_element.png)\n",
    "\n",
    "Obviamente la matriz de rigidez para un elemento *spring* es de $2\\,x\\,2$, dado que \n",
    "este tiene dos grados de libertada, uno en cada nodo. Consecuentemente para un \n",
    "sistema de elementos *spring* con $n$ nodos, el tamaño de la matriz global de \n",
    "rigidez $K$ será de $n\\,x\\,n$. La matriz global de rigidez se obtiene ensamblando \n",
    "los matrices de rigidez por elemento $K_{(i)}$ para $i=1,2,...,n$, utilizando el método \n",
    "directo de la rigidez.\n",
    "\n",
    "Una vez que la matriz global de rigidez $K$ es obtenida  se tiene un sistema de ecuaciones \n",
    "de la forma:\n",
    "\n",
    "\\begin{equation}\n",
    "[K]\\{U\\} = \\{F\\}\n",
    "\\end{equation}\n",
    "\n",
    "Donde $U$ es el vector global de desplazamientos nodales y $F$ es el vector global de \n",
    "fuerzas nodales.\n",
    "\n",
    "El sistema de ecuaciones resultantes se puede simplificar aplicando las condiciones \n",
    "de frontera o restricciones de desplazamiento, quedando generalmente un sistema \n",
    "de menor dimensión el cuál está determinado y puede resolverse utilizando métodos \n",
    "de álgebra lineal´, quedando una posible solución como:\n",
    "\n",
    "\\begin{equation}\n",
    "\\overline{U} = \\overline{K}^{-1}\\, \\overline{F}\n",
    "\\end{equation}\n",
    "\n",
    "Donde $\\overline{U}, \\overline{K} \\,\\, y \\,\\, \\overline{F}$ corresponden a las variables descritas \n",
    "anteriormente, después de aplicar las condiciones de frontera correspondientes.\n",
    "\n",
    "\n",
    "## Un ejemplo resuelto en NuSA\n",
    "\n",
    "**Ejemplo 1.** Para el ensamble mostrado en la figura siguiente, calcular \n",
    "a) la matriz global de rigidez  b) los desplazamientos de los nodos 3 y 4  c) las fuerzas \n",
    "de reacción en los nodos 1 y 2, y  d) las fuerzas en cada elemento. Una fuerza de 5000 lb \n",
    "es aplicada en el nodo 4 en la dirección $x$, las constantes de rigidez para cada resorte \n",
    "se muestran en la figura. Los nodos 1 y 2 están fijos.\n",
    "\n",
    "![](/\n",
    "src/spring-element/example_01.png)\n",
    "\n",
    "Los pasos para solucionar el problema utilizando NuSA se resumen en la siguiente \n",
    "lista:\n",
    "\n",
    "1. Importar las librerías a utilizar\n",
    "2. Definir constantes o datos de entrada \n",
    "1. Crear un modelo del tipo correspondiente\n",
    "1. Crear nodos y elementos\n",
    "1. Agregar los nodos y elementos al modelo\n",
    "1. Indicar las cargas y condiciones de frontera \n",
{'fraction_non_alphanumeric': 0.15784712799638173, 'fraction_numerical': 0.007538067239559777, 'mean_word_length': 2.720695457094784, 'pattern_counts': {'":': 8, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4875963', 'n_tokens_mistral': 2452, 'n_tokens_neox': 2418, 'n_words': 855}