solvers package
Submodules
solvers.linear_solvers module
Linear solvers for geophysical inversion.
- class solvers.linear_solvers.CGLSSolver(max_iterations=200, tolerance=1e-08, use_gpu=False, parallel=False, n_jobs=-1, damping=0.0, verbose=False)[source]
Bases:
LinearSolverCGLS (Conjugate Gradient Least Squares) solver.
- class solvers.linear_solvers.IterativeRefinement(max_iterations=5, tolerance=1e-10, use_double_precision=True)[source]
Bases:
objectIterative refinement to improve accuracy of a solution to a linear system.
- class solvers.linear_solvers.LSQRSolver(max_iterations=200, tolerance=1e-08, use_gpu=False, parallel=False, n_jobs=-1, damping=0.0, verbose=False)[source]
Bases:
LinearSolverLSQR solver for least squares problems.
- class solvers.linear_solvers.LinearSolver(method='cgls', max_iterations=200, tolerance=1e-08, use_gpu=False, parallel=False, n_jobs=-1, damping=0.0, verbose=False)[source]
Bases:
objectBase class for linear system solvers.
- class solvers.linear_solvers.RRLSQRSolver(max_iterations=200, tolerance=1e-08, use_gpu=False, parallel=False, n_jobs=-1, damping=0.1, verbose=False)[source]
Bases:
LinearSolverRegularized LSQR solver.
- class solvers.linear_solvers.RRLSSolver(max_iterations=200, tolerance=1e-08, use_gpu=False, parallel=False, n_jobs=-1, damping=0.0, verbose=False)[source]
Bases:
LinearSolverRange-Restricted Least Squares solver.
- class solvers.linear_solvers.TikhonvRegularization(regularization_matrix=None, alpha=1.0, regularization_type='identity')[source]
Bases:
objectTikhonov regularization for ill-posed problems.
- solvers.linear_solvers.direct_solver(A, b, method='lu', **kwargs)[source]
Solve a linear system using direct methods.
- Parameters:
A – System matrix
b – Right-hand side vector
method – Direct solver method (‘lu’, ‘qr’, ‘svd’, ‘cholesky’)
**kwargs – Additional parameters for specific methods
- Returns:
Solution vector
- solvers.linear_solvers.generalized_solver(A, b, method='cgls', x=None, maxiter=200, tol=1e-08, verbose=False, damp=0.0, use_gpu=False, parallel=False, n_jobs=-1)[source]
Generalized solver for Ax = b with optional GPU acceleration and parallelism.
Parameters:
- Aarray_like or sparse matrix
The system matrix (Jacobian or forward operator).
- barray_like
Right-hand side vector.
- methodstr, optional
Solver method: ‘lsqr’, ‘rrlsqr’, ‘cgls’, or ‘rrls’. Default is ‘cgls’.
- xarray_like, optional
Initial guess for the solution. If None, zeros are used.
- maxiterint, optional
Maximum number of iterations.
- tolfloat, optional
Convergence tolerance.
- verbosebool, optional
Print progress information every 10 iterations.
- dampfloat, optional
Damping factor (Tikhonov regularization).
- use_gpubool, optional
Use GPU acceleration with CuPy (if available).
- parallelbool, optional
Use parallel CPU computations.
- n_jobsint, optional
Number of parallel jobs (if parallel is True).
Returns:
- xarray_like
The computed solution vector.
- solvers.linear_solvers.get_optimal_solver(A, b, estimate_condition=True, time_limit=None, memory_limit=None)[source]
Automatically select the optimal solver for a given linear system.
- Parameters:
A – System matrix
b – Right-hand side vector
estimate_condition – Whether to estimate condition number
time_limit – Maximum allowed solution time (seconds)
memory_limit – Maximum allowed memory usage (bytes)
- Returns:
Tuple of (solver_object, solver_info)
solvers.solver module
- solvers.solver.generalized_solver(A, b, method='cgls', x=None, maxiter=2000, tol=1e-08, verbose=False, damp=0.0, use_gpu=False, parallel=False, n_jobs=-1)[source]
Generalized solver for Ax = b with optional GPU acceleration and parallelism.
- Parameters:
A (array_like or sparse matrix) – The system matrix (Jacobian or forward operator).
b (array_like) – Right-hand side vector.
method (str, optional) – Solver method: ‘lsqr’, ‘rrlsqr’, ‘cgls’, or ‘rrls’. Default is ‘cgls’.
x (array_like, optional) – Initial guess for the solution. If None, zeros are used.
maxiter (int, optional) – Maximum number of iterations.
tol (float, optional) – Convergence tolerance.
verbose (bool, optional) – Print progress information every 10 iterations.
damp (float, optional) – Damping factor (Tikhonov regularization).
use_gpu (bool, optional) – Use GPU acceleration with CuPy (if available).
parallel (bool, optional) – Use parallel CPU computations.
n_jobs (int, optional) – Number of parallel jobs (if parallel is True).
- Returns:
x – The computed solution vector.
- Return type:
array_like