I have a question concerning usage of CG (or CGS) linear solver instead of BiCGStab. BiCGStab is the default one setup in Elmer and I have not changed the default settings. However, I wanted to explore if CG or CGS would be a better solver for my simulation in terms of better convergence:

I am trying to get converged results for following tolerance:

**Linear System Convergence Tolerance < 10^-13**

if possible.

However, with BiCGStab,

**Linear System Residual**diverges when I set the tolerance < 10^-12.

**My problem**:

A cylinder of air with linear (permeability) materials of rectangular and cylindrical shapes at its center. I use the surfaces of the cylinder to set uniform B-flux boundary condition. I am trying to get estimates for B-flux gradients around the materials which are made out of copper and sapphire. There are no other sources: charge density or current density in the problem. It is a magnetostatic problem.

I am using WhitneyAV solver in 3D. I tested the accuracy that can be attained with FEM method implemented by Elmer with a simple problem for which analytical result exists. The agreement is quite good, but I want to improve it further, if possible, by setting lower "Linear System Convergence Tolerance".

Disclaimer: I have very rudimentary knowledge of numerical methods

**Questions:**

1. Would CG or CGS method work for my problem? In the Elmer Solver Manual it says: "The CG method is an ideal solution algorithm for cases where the coefficient matrix A is symmetric and positive definite.", where Ax=b as described in the manual is the matrix reduction of the associated PDE. I may be incorrect about this.

I am not sure if the "A" matrix in this case is symmetric and positive definite. Does the symmetry of A depend just on the PDE itself or PDE + boundary conditions or the discretization process?

2. Is it possible to check properties of matrix "A" in Elmer explicitly by displaying the matrix or by some other indirect measure before one can choose which linear solver to use?

I blindly used CG method once in my simulations and it seems to converge even when I set the tolerance criteria as low as 1E-14.

Please let me know if my question is not clear.

Thank you,

sunil