Solucionador 2D de la Ecuación de Laplace usando el Método de Diferencias Finitas (MDF) e iteración de Jacobi.
Project description
⚡ Campo Estático 2D (MDF)
campo-estatico-mdf es una librería Python diseñada para resolver la Ecuación de Laplace ($\nabla^2 V = 0$) en dos dimensiones utilizando el Método de Diferencias Finitas (MDF) con el método iterativo de Jacobi.
Esta herramienta permite simular el potencial eléctrico ($V$) y el campo eléctrico ($\mathbf{E}$) resultante en una región rectangular con condiciones de contorno de Dirichlet (potenciales fijos).
📦 Instalación
Puedes instalar la librería directamente desde PyPI usando pip:
pip install campo-estatico-mdf
Requisitos
Este paquete requiere:
- Python 3.9 o superior
numpy(para las operaciones matriciales)
🚀 Uso Básico (Modo Librería)
La clase principal es LaplaceSolver2D. Aquí tienes un ejemplo de cómo utilizarla para simular una región con una diferencia de potencial.
import numpy as np
from campo_estatico_mdf.solver import LaplaceSolver2D
import matplotlib.pyplot as plt
# 1. Parámetros
N = 50 # Malla 50x50
V_IZQ = 10.0 # Voltaje Izquierdo (10V)
V_DER = 0.0 # Voltaje Derecho (0V)
V_ARR = 0.0 # Voltaje Superior (0V)
V_ABJ = 0.0 # Voltaje Inferior (0V)
TOLERANCIA = 1e-5
# 2. Inicializar y Resolver
solver = LaplaceSolver2D(
N,
v_izquierda=V_IZQ,
v_derecha=V_DER,
v_arriba=V_ARR,
v_abajo=V_ABJ
)
iteraciones = solver.resolver_jacobi(tolerancia=TOLERANCIA)
print(f"Convergencia alcanzada en {iteraciones} iteraciones.")
# 3. Obtener resultados
Potencial_V = solver.V
Ex, Ey = solver.calcular_campo_e()
# 4. Visualización del Potencial
plt.figure(figsize=(8, 6))
plt.title("Potencial Eléctrico V(x, y)")
plt.imshow(Potencial_V, cmap='viridis', origin='lower')
plt.colorbar(label='Potencial (V)')
plt.show()
💻 Aplicación Streamlit (Web App)
El proyecto incluye una interfaz web interactiva (app.py) construida con Streamlit que permite a los usuarios modificar las condiciones de contorno y visualizar los resultados del Potencial ($V$) y el Campo Eléctrico ($\mathbf{E}$) en tiempo real.
Para ejecutar la aplicación web:
- Instala las dependencias adicionales (si aún no lo has hecho):
pip install streamlit matplotlib
- Ejecuta la aplicación desde el directorio que contiene
app.py:streamlit run app.py
⚙️ Características Técnicas
- Método de Diferencias Finitas (MDF) para discretizar la Ecuación de Laplace.
- Método Iterativo de Jacobi para resolver el sistema de ecuaciones.
- Criterio de convergencia basado en la diferencia máxima entre iteraciones sucesivas ($\mathbf{E}$).
- Cálculo del Campo Eléctrico ($\mathbf{E} = -\nabla V$) usando la función
numpy.gradient.
🤝 Contribución
¡Las contribuciones son bienvenidas! Si deseas mejorar el rendimiento (por ejemplo, implementando Gauss-Seidel o SOR) o añadir nuevas características:
- Haz un fork del repositorio.
- Crea una nueva branch (
git checkout -b feature/nueva-caracteristica). - Realiza tus cambios y haz commit (
git commit -am 'feat: Añadir nueva característica'). - Haz push a la branch (
git push origin feature/nueva-caracteristica). - Abre un Pull Request.
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 campo_estatico_mdf_065-0.1.0.tar.gz.
File metadata
- Download URL: campo_estatico_mdf_065-0.1.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1da564c86d5c05bb05306a2c38abe16bc75277849f04485d2ed0ef33b0a4962
|
|
| MD5 |
f487fdd7917a1f5059007c71d114636d
|
|
| BLAKE2b-256 |
49f34e54c22175381c64bc1b44d1f4c6b107939f50601931374c3da610d1ff02
|
File details
Details for the file campo_estatico_mdf_065-0.1.0-py3-none-any.whl.
File metadata
- Download URL: campo_estatico_mdf_065-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.9 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 |
7d9702a638f44724cae798762d8c30f96cc27a5a598b21058beba8a7fe63900e
|
|
| MD5 |
6062740ec7ebe9689096a33f59780d39
|
|
| BLAKE2b-256 |
98305348d10e1d41792f9120080db340328c92414efae4aa5cf41af53a678e01
|