Poisson.JacobiPoisson#

class Poisson.JacobiPoisson(decomposition=None, communicator=None, **kwargs)[source]#

Bases: object

Unified Jacobi solver for sequential and distributed execution.

Parameters:
decompositionDecompositionStrategy, optional

Domain decomposition strategy. Required for multi-rank execution.

communicatorCommunicatorStrategy, optional

Halo exchange communicator. Defaults to NumpyHaloExchange().

**kwargs

Solver configuration: N, omega, use_numba, max_iter, tolerance, etc.

compute_l2_error()[source]#

Compute L2 error against analytical solution (parallel).

Each rank computes its local contribution, then MPI reduces. Result stored in self.results.final_error on rank 0.

Returns:
float or None

L2 error on rank 0, None on other ranks

mlflow_end(log_time_series: bool = True)[source]#

End MLflow run and log metrics (rank 0 only).

mlflow_log_artifact(filepath: str)[source]#

Log an artifact to MLflow (rank 0 only).

mlflow_start(experiment_name: str, run_name: str = None, parent_run_name: str = None)[source]#

Start MLflow run and log parameters (rank 0 only).

save_hdf5(path)[source]#

Save config and results to HDF5 (rank 0 only).

solve()[source]#

Run Jacobi iteration to solve the Poisson equation.

warmup(warmup_size=10)[source]#

Warmup kernel (trigger Numba JIT).

Examples using Poisson.JacobiPoisson#

Communication Method Benchmark

Communication Method Benchmark

Poisson Scaling Experiment

Poisson Scaling Experiment