Referencia de la API

Esta sección documenta la clase principal del paquete, campo_estatico_mdf.LaplaceSolver2D, que implementa la solución numérica de la ecuación de Laplace 2D con MDF y métodos iterativos (Jacobi / Gauss–Seidel).

LaplaceSolver2D

class campo_estatico_mdf.LaplaceSolver2D(N: int, bc: Dict[str, float], epsilon: float = 1e-05, max_iter: int = 50000, method: str = 'jacobi', Lx: float = 1.0, Ly: float = 1.0, seed: int | None = None)[fuente]

Bases: object

Resuelve la ecuación de Laplace en 2D con MDF (stencil de 5 puntos) y condiciones de borde Dirichlet. Ofrece Jacobi y Gauss-Seidel, y calcula E = -∇V.

Parámetros

Nint

Tamaño del mallado (N×N). N >= 3 recomendado.

bcdict

Voltajes de contorno. Claves: “left”,”right”,”top”,”bottom”.

epsilonfloat

Tolerancia de convergencia (max|ΔV| < epsilon).

max_iterint

Máximo de iteraciones.

methodstr

«jacobi» o «gauss_seidel». También se acepta «gauss-seidel» (se normaliza internamente).

Lx, Lyfloat

Dimensiones físicas del dominio (para dx, dy).

seedint | None

Semilla opcional para reproducibilidad si se añade ruido inicial.

solve() Tuple[ndarray, int, float][fuente]

Ejecuta el solver seleccionado.

Devuelve:

  • V (np.ndarray) – Potencial convergido (N×N).

  • n_iter (int) – Número de iteraciones realizadas.

  • err_final (float) – Error máximo en la última iteración.

compute_e_field(V: ndarray | None = None) Tuple[ndarray, ndarray][fuente]

Calcula el campo eléctrico E = -∇V. Por convención: Ex = -∂V/∂x, Ey = -∂V/∂y

Usa numpy.gradient con espaciamientos dx, dy.

reset() None[fuente]

Reinicia la malla a 0 y reimpone contornos.

solution() ndarray[fuente]

Devuelve la última solución V.

convergence_info() Tuple[int | None, list[float]][fuente]

Devuelve (n_iter, historial_errores).