Sudden/random deviation of poisson eqn results
I have been using a few different Krylov linear solver package such as nspcg,sparsekit and now petsc to solve the linear eqns for my NS solver momentum and poisson eqn. For moving bodies simulation, while solving the poisson eqn, sometimes the result suddenly changes drastically, although the iterations seems to have converged e.g. at the previous time step, everything is fine, but at the next time step, the velocity suddenly explodes from 2-3 to 20-30+.
The strange thing is that this deviation happens at different time step for different linear solver package ie for nspcg, it happens at time=20 but for petsc, it happens at time=40. It seems "random" in this sense. Changing the type of solver such as gmres or bcgs does not change the time of deviation usually.
Does anyone know why this is happening? Is it a characteristic of krylov solver to happen once in a while? It does not happen in the stationary body simulation though. I thought that there may be some bug in my code, but the fact that for different solver package the "explosion" time step is different.
Initialization of the guessed value to zero also changes the explosion time
Moreover, suppose the explosion of value happen at t=50. If I store all my relevent values at t=40 into files and restart my simulation from t=40(instead of t=1) by reading the stored values from the files, the explosion will now not happen at t=50.
Anyone experience these before. Btw, my simulation is a 2D FVM NS code.
Re: Sudden/random deviation of poisson eqn results
I had the same problem few weeks ago while triyng to solve pressure equation with iccg (conjuguate gradient with chloesky preconditionner) and it comes from a bad conditionning of the problem. Simply there's no solution to the linear system you're trying to resolve. So review the matrix, the boundary conditions and make sure that everything is alright.
|All times are GMT -4. The time now is 12:33.|