The ICCG solver operates similarly to the JCG solver with the following exceptions:
The ICCG solver is more robust than the JCG solver for matrices that are not well-conditioned. Performance varies with matrix conditioning, but in general ICCG performance compares to that of the JCG solver.
The ICCG solver uses a more sophisticated preconditioner than the JCG solver. Therefore, the ICCG solver requires approximately twice as much memory as the JCG solver.
The ICCG solver is typically used for thermal analyses and electromagnetic analyses involving unsymmetric matrices and is available only for static analyses, full harmonic analyses (HROPT,FULL), or full transient analyses (TRNOPT,FULL). (You specify the analysis type using the ANTYPE command.) Can be used for structural, thermal, and multiphysics applications, and for symmetric, unsymmetric, real, complex, definite, and indefinite matrices. The ICCG solver requires more memory than the JCG solver, but is more robust than the JCG solver for ill-conditioned matrices.
This solver can only be run in shared-memory parallel mode. If it is run in DMP mode, this solver disables distributed-memory parallelism at the onset of the solution, and shared-memory parallelism is used instead.
This solver does not support use of the GPU accelerator capability.
The ICCG solver useful in solving large sparse systems of equations.
Table 9.1: ICCG Shared Memory Solver Selection Guide
Solver | Typical Applications | Memory Use | Disk (I/O) Use | Advantages | Disadvantages |
ICCG Solver (iterative solver) | More sophisticated preconditioner than JCG. Best for more difficult problems where JCG fails, such as thermal analyses that involve unsymmetric matrices. | 1.5 GB/MDOF | 0.5 GB/MDOF | Typically has faster performance and minimal memory requirements | Not as efficient as the PCG solver and does not support distributed parallel processing |