Skip to main content

Una librería Python y aplicación Django para la simulación interactiva de ensayos mecánicos de materiales.

Project description

⚙️ Pedagogical Simulator of a Universal Testing Machine

Un simulador web educativo, desarrollado en Django, para la caracterización mecánica de materiales mediante ensayos virtuales de tensión, compresión y torsión.

Autores: Kevin Cruz, [Nombre del Profesor]

⚖️ Licencia y Descargo de Responsabilidad

Este proyecto se distribuye bajo los términos de la Licencia Pública General de GNU v3 (GPLv3). Para más detalles, consulta el archivo LICENSE.

Disclaimer

  1. Naturaleza de los Datos: Este es un simulador con fines estrictamente educativos. Los datos de las curvas de ensayo son sintéticos y generados por modelos matemáticos. NO deben ser utilizados para diseño de ingeniería en el mundo real.

  2. Fuente de las Propiedades: Las propiedades de entrada para los modelos han sido extraídas de las fichas técnicas públicas de MatWeb.com. Agradecemos a MatWeb por este invaluable recurso. Este proyecto no está afiliado ni respaldado por MatWeb

🧪 Software de Simulación de Materiales

Este proyecto es un software web desarrollado en Django que permite realizar simulaciones mecánicas de materiales a partir de datos almacenados en una base de datos.
El usuario puede seleccionar un material y el tipo de simulación que desea ejecutar; el sistema genera las gráficas y resultados con base en los datos registrados.

🚧 Estado actual: Versión inicial funcional (v0.1).
En esta versión se implementa la estructura base del proyecto Django, con una app principal (core_lab) encargada de gestionar materiales y simulaciones.
Próximamente se integrarán modelos físicos, módulos de cálculo numérico y generación de reportes automáticos.


🧰 Tecnologías utilizadas

Herramienta Descripción
Python 3.10+ Lenguaje base del proyecto.
Django 5.x Framework principal para el backend y gestión web.
SQLite3 Base de datos por defecto (puede migrarse a PostgreSQL o MySQL).
Matplotlib Generación de gráficas de resultados de simulación.
Pandas / NumPy Procesamiento y análisis de datos de los materiales.
HTML / CSS (Django templates) Renderizado de interfaz web básica.
JupyterLab (opcional) Entorno auxiliar para pruebas de simulación.

🏗️ Estructura del proyecto

Software_Materiales/ │── manage.py │── db.sqlite3 │── README.md │ ├── core_lab/ # App principal │ ├── migrations/ # Migraciones de la base de datos │ ├── static/ # Archivos estáticos (CSS, JS, imágenes) │ ├── templates/ # Vistas HTML renderizadas │ │ └── core_lab/ │ │ ├── index.html # Página principal │ │ ├── material_list.html │ │ └── simulation_result.html │ ├── admin.py # Configuración del panel administrativo │ ├── apps.py # Registro de la app en Django │ ├── models.py # Modelos de Material y Simulación │ ├── views.py # Lógica de vistas │ ├── urls.py # Enrutamiento interno de la app │ └── tests.py # Pruebas unitarias │ ├── Software_Materiales/ # Configuración global del proyecto │ ├── settings.py # Configuración principal │ ├── urls.py # Enrutamiento global │ ├── asgi.py / wsgi.py # Configuración para despliegue │ └── init.py │ └── venv/ (opcional) # Entorno virtual


⚙️ Modelos principales

Material

Representa las propiedades básicas de cada material registrado.

python class Material(models.Model): nombre = models.CharField(max_length=100) densidad = models.FloatField() elasticidad = models.FloatField() resistencia_traccion = models.FloatField()

def __str__(self):
    return self.nombre

Simulacion

Asocia un material con un tipo de prueba mecánica (por ejemplo: tracción, compresión, dureza).

class Simulacion(models.Model): material = models.ForeignKey(Material, on_delete=models.CASCADE) tipo = models.CharField(max_length=100) fecha = models.DateTimeField(auto_now_add=True) resultado = models.JSONField(default=dict)

🧮 Flujo de funcionamiento

Inicio del servidor Django Se ejecuta el servidor local y se accede a la interfaz web.

Selección del material y tipo de simulación El usuario elige entre los materiales registrados y el tipo de prueba a realizar.

Ejecución de la simulación (En esta versión inicial se generan datos base o simulados). En versiones futuras, se conectará a módulos de cálculo físico o de elementos finitos.

Visualización de resultados Se generan y muestran gráficas interactivas de tensión-deformación u otras curvas relevantes.

Almacenamiento y descarga de resultados Los resultados se guardan en la base de datos y podrán exportarse a PDF o CSV.

🚀 Cómo ejecutar el proyecto 1️⃣ Clonar el repositorio

git clone https://github.com/tuusuario/Software_Materiales.git cd Software_Materiales

2️⃣ Crear entorno virtual

python -m venv venv source venv/bin/activate # En Linux / macOS venv\Scripts\activate # En Windows

3️⃣ Instalar dependencias

pip install -r requirements.txt

4️⃣ Aplicar migraciones

python manage.py makemigrations python manage.py migrate

5️⃣Ejecutar el servidor local

python manage.py runserver

Luego, abre tu navegador en: 👉 http://127.0.0.1:8000/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psutm_simulator_kacruzv011-4.0.2.tar.gz (5.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

psutm_simulator_kacruzv011-4.0.2-py3-none-any.whl (5.4 MB view details)

Uploaded Python 3

File details

Details for the file psutm_simulator_kacruzv011-4.0.2.tar.gz.

File metadata

File hashes

Hashes for psutm_simulator_kacruzv011-4.0.2.tar.gz
Algorithm Hash digest
SHA256 277eafa565c442a10413dc7b09cb259b86a31858a0c5d9008bc579025b1e8f51
MD5 68906029d49a74da3fd53b165eb9557f
BLAKE2b-256 e63816dfeeacfddb3398a4ceab43c33e721ee033b310b94884190b1ec1c1fd2f

See more details on using hashes here.

File details

Details for the file psutm_simulator_kacruzv011-4.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for psutm_simulator_kacruzv011-4.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b3b6a26d029626bf0187a446d5cd5ebc2514fe86307ce0ed9d9e8d77e025aabc
MD5 ef7e4e6101eab4030c36a2bce5ba43f5
BLAKE2b-256 e5d30f5b80f55df99ca5c10725e3055f5bf2fcf01748586981f07e998f46592d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page