LinCoS - parallel, complex linear solver

Images of LinCoS

  • Preconditioned, iterative solver designed for complex linear systems arising from Helmholtz and Maxwell equations
  • Directly solves complex systems - no need for equivalent, real-formulated systems
  • Custom internal data structures optimized for efficient computation of complex equations
  • Thread-safe serial and parallel versions - parallel version optimized for MPI-based, distributed computational systems (clusters)


LinCoS is a high-performance, parallel iterative solver intended for the solution of large linear systems of algebraic equations with complex coefficients.

LinCoS was developed for the solution of linear systems arising from the discretization of Helmholtz and Maxwell equations.  Special internal data structures have been implemented to efficiently process computations of complex numbers.  These special data structures are twice as fast on basic operations in comparison with standard data structures implemented on the class "complex <double>" from C++.

LinCoS is available in both serial and parallel versions, but has been optimized for distributed computational systems (clusters) employing an MPI-based architecture to provide highly-efficient and exceptionally scalability.

Serial Solver

The serial solver includes the following:

  • Preconditioners: ILU0 and ILUT
  • Iterative methods: BiCGStab, TFQMR, CG
  • Glinco: optional GUI utility

Parallel Solver

The parallel solver includes all components of the serial solver plus the following:

  • Partitioners: Simple, external METIS
  • Parallel Preconditioners: Diagonal, One-Level Overlap
  • Parallel versions of iterative methods: BiCGStab, TFQMR, CG

Learn More