{"id":23885469,"url":"https://github.com/adnksharp/fem-springs","last_synced_at":"2026-04-16T17:44:09.778Z","repository":{"id":270620334,"uuid":"910929612","full_name":"adnksharp/fem-springs","owner":"adnksharp","description":"Cálculo de deformaciones y reacciones de elementos tipo resorte mediante el método de elemento finito","archived":false,"fork":false,"pushed_at":"2025-01-05T07:52:19.000Z","size":113,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"base","last_synced_at":"2025-02-23T02:44:06.811Z","etag":null,"topics":["fem","finite-element-methods","gui-application","mef","pyside6","python","python3","qt-widgets","scilab-scripts","spring","spring-fem"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adnksharp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-01T20:22:21.000Z","updated_at":"2025-01-05T07:52:22.000Z","dependencies_parsed_at":"2025-01-01T22:24:09.139Z","dependency_job_id":"566e77ed-e08a-4ab1-a661-3e183df3463d","html_url":"https://github.com/adnksharp/fem-springs","commit_stats":null,"previous_names":["adnksharp/fem-springs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/adnksharp/fem-springs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnksharp%2Ffem-springs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnksharp%2Ffem-springs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnksharp%2Ffem-springs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnksharp%2Ffem-springs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adnksharp","download_url":"https://codeload.github.com/adnksharp/fem-springs/tar.gz/refs/heads/base","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnksharp%2Ffem-springs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265863793,"owners_count":23840888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fem","finite-element-methods","gui-application","mef","pyside6","python","python3","qt-widgets","scilab-scripts","spring","spring-fem"],"created_at":"2025-01-04T04:49:50.705Z","updated_at":"2026-04-16T17:44:04.759Z","avatar_url":"https://github.com/adnksharp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Displacements and reactions in springs elements with FEM\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/Qcqf36i.png\" width=150/\u003e\n\u003c/p\u003e\n\nCálculo de deformaciones y reacciones de elementos tipo resorte mediante el método de elemento finito\n\nEste método implica considerar la relación del módulo elastico, las reacciones y las deformaciones de los resortes en base a la siguiente ecuación:\n\n```math\n\\left\\{\n\t\\begin{array}{rcl}\n\t\tR_{n1} \\\\ R_{n2}\n\t\\end{array}\n\\right\\} \n= \nk_n\n\\begin{bmatrix}\n\t1 \u0026 -1 \\\\ -1 \u0026 1\n\\end{bmatrix}\n\\left\\{\n\t\\begin{array}{rcl}\n\t\tU_{n1} \\\\ U_{n2}\n\t\\end{array}\n\\right\\} \n```\n\ncon el fin de construir una matriz global `[K]` que almacene todos los valores de $k$\n\n```math\n[K] [U] = [R]\n```\n\n## Script de Scilab\n\nEl código [springs](springs.sce) permite obtener la matriz global $k$ así como las reacciones y las deformaciónes para cada elemento. Al ejecutar el script dentro de scilab es necesario llenar los datos que este pide:\n\n1. El número de resortes del sistema.\n2. La cantidad de nodos que conforman el sistema.\n3. La cantidad de fuerzas que interactuan con el sistema\n4. Cada una de las fuerzas aplicadas al sistema,\n5. y el nodo en el que se aplica.\n6. Si los módulos elasticos son iguales para todo el sistema.\n\t- Al responder `no` el  script pedirá los módulos de cada resorte.\n\t- De no ser así el sistema pedirá unicamente un solo valor de $k$.\n7. Los nodos a los que se conecta cada resorte.\n8. Las nodos que se encuentran empotrados.\n\n\n\n\u003cdetails\u003e\n\u003csummary\u003e Ejemplo \u003c/summary\u003e\n## Ejemplo\n\n![](https://i.imgur.com/XQX9pfM.png)\n\nTomando como ejemplo la siguiente imagen, tenemos un sistema de:\n- 4 resortes\n- 5 nodos\n- 1 fuerza en el nodo 3\n- 4 módulos elasticos\n- Los nodos 1, 4 y 5 como condiciones de frontera.\n- Resortes:\n\n|No.| Nodo A | Nodo B |\n|:--|:--|:--|\n| 1 | 1 | 2 |\n| 2 | 2 | 3 |\n| 3 | 3 | 4 |\n| 4 | 3 | 5 |\n\nSuponiendo los siguientes valores:\n- Fuerza: 16 N\n- Resortes:\n\n|No.| k |\n|:--|:--|\n| 1 |  2 |\n| 2 |  7 |\n| 3 | 12 |\n| 4 |  1 |\n \n**El sistema arroja los siguientes resultados**:\n\n```shell\n  \"K\"\n   2.  -2.   0.    0.    0.\n  -2.   9.  -7.    0.    0.\n   0.  -7.   20.  -12.  -1.\n   0.   0.  -12.   12.   0.\n   0.   0.  -1.    0.    1.\n  \"U\"\n   0.\n   0.8549618\n   1.0992366\n   0.\n   0.\n  \"R\"\n  -1.7099237\n   0.\n   16.000000\n  -13.190840\n  -1.0992366\n```\n\ndonde $U$ son los desplazamientos y $R$ las reacciones en cada nodo.\n\u003c/details\u003e\n\n# Interfaz de Python\n\n![](https://i.imgur.com/iHRarJf.png)\n\nLa interfaz grafica permite obtener los mismos datos usando numpy\n\n## Librerías necesarias\n\n- sys, json\n- notify-py\n- pyperclip\n- PySide6\n- numpy\n\n```bash\npip install -r requirements.txt\n```\n\n## Características\n- Adaptable a la cantidad de resortes y fuerzas del sistema a analizar.\n- Muestra los resultados en ventanas separadas.\n- Permite copiar los datos al portapapeles.\n\n#### En proceso\n\n\u003e [!TIP]\n\u003e - Agregar unidades","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadnksharp%2Ffem-springs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadnksharp%2Ffem-springs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadnksharp%2Ffem-springs/lists"}