Hi Mark
If you study the linear system output carefully (and know what's built inside the code
![Wink ;-)](./images/smilies/icon_e_wink.gif)
) you see that there are three calls for BiCGstabl. The 1st one already solves the system requiring 375 iterations, the 2nd one just ensures that the system really has converged (and could be omitted by setting "Nonlinear System Max Iterations = 1"). Then there is a third call which is a result of the "Calculate Stresses = True" flag. This is a postprocessing step where components of the stress field are computed from the solution. It needs a separate matrix structure and preconditioning so best you see it in the line
Code: Select all
OptimizeBandwidth: Computing matrix structure for: calculate stresses...done.
For this equation one could basically have a different set of "Linear System" parameters. In the current implementation there is no such freedom and the same preconditioner + linear solver are used. Now what is fishy is that for this "simple" equation already after 1st linear system iteration there's divergence as seen in lines:
Code: Select all
CRS_IncompleteLU: ILU(3) (Real), Factorization ready at (s): 0.86
: 1 NaN NaN
I fear there may be a bug somewhere that related to using the same linear system solver for solving different equation. Something in the initialization or size definitions, for example. Unfortunately a quick inspection to the code didn't reveal anything like that...
-Peter