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
-
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.
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file psutm_simulator_kacruzv011-1.0.0.tar.gz.
File metadata
- Download URL: psutm_simulator_kacruzv011-1.0.0.tar.gz
- Upload date:
- Size: 37.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d9dd162520b10bea258f14089de7e0d02a69e764ea5c42ac468af5c8e672b54
|
|
| MD5 |
a8bcf245862b596e0b0fb7376b140b4a
|
|
| BLAKE2b-256 |
c4fca8fca307c94583f0b717fd71f47a115e0d4a651ea689d8755bbc1fb83920
|
File details
Details for the file psutm_simulator_kacruzv011-1.0.0-py3-none-any.whl.
File metadata
- Download URL: psutm_simulator_kacruzv011-1.0.0-py3-none-any.whl
- Upload date:
- Size: 40.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f351dbcc74a97e17964c516b70578b9448226000a4e6e165d3f925fcbfd8348
|
|
| MD5 |
47ba5a6bded6df4e190c8d53127d131f
|
|
| BLAKE2b-256 |
3966968db154fa1aa8dd1060ea44461418f95b003dec4d9dd5fc0d6406266127
|