There should be no null space from the Cahn-Hilliard equation. Is there some black-box preconditioner that does not relay on LU factorization at some point? I know that black-box approaches are mostly not efficient, but I would have something I can work with.
Thomas Am 12.06.2012 14:31, schrieb Jed Brown: > A known null space doesn't really "fix" LU for a singular problem [1]. > You need a preconditioner that is *stable*. Also, it sounds like you > may have additional vectors in the null space coming from the > Cahn-Hilliard variables. > > [1] One could create a new matrix with space for Lagrange multipliers > enforcing the null space and perform the factorization there. But > doing this automatically isn't implemented in the library so you'd > have to write it. > > On Tue, Jun 12, 2012 at 1:32 AM, Thomas Witkowski > <thomas.witkowski at tu-dresden.de > <mailto:thomas.witkowski at tu-dresden.de>> wrote: > > I've some trouble to setup the nullspace for my equation > correctly. It is an implicit coupled Navier-Stokes / Cahn-Hilliard > equation (for two phase flow simulation) in 2D. To simulate an > "infinite" domain, the upper and lower boundaries are periodic for > all 5 components. The pressure and the two variables from the > Cahn-Hilliard equation are null-flux (Neumann) on the other two > boundaries, the velocity is set to 0 (Dirichlet) on them. I would > expect to have a non-empty nullspace. When using richardson/lu, I > see the following behavior: > > 1 KSP preconditioned resid norm 3.130958085604e+04 true resid > norm 1.339173230263e-11 ||r(i)||/||b|| 2.249831332702e-16 > 2 KSP preconditioned resid norm 5.987054624984e+04 true resid > norm 8.900173028027e-12 ||r(i)||/||b|| 1.495242564025e-16 > 3 KSP preconditioned resid norm 8.159870664335e+04 true resid > norm 7.429941832854e-12 ||r(i)||/||b|| 1.248241493927e-16 > 4 KSP preconditioned resid norm 7.087492912608e+04 true resid > norm 7.066574102540e-12 ||r(i)||/||b|| 1.187195164260e-16 > 5 KSP preconditioned resid norm 1.075156685382e+05 true resid > norm 6.963290776604e-12 ||r(i)||/||b|| 1.169843408895e-16 > 6 KSP preconditioned resid norm 9.260088828115e+04 true resid > norm 6.996993371924e-12 ||r(i)||/||b|| 1.175505496012e-16 > > So, in principle the system is solvable, but the preconditioned > norm is wrong. I created a nullspace basis that is 1 on all > pressure unknowns and 0 on all of the other four components. I can > easily verify that this vector is at least an element of the > nullspace, as the norm of the vector resulting from MatMult with > the assembled matrix and the nullspace basis vector is in the > order of 1e-16. I set the nullspace to the system matrix, and > rerun with richardson/lu: > > 0 KSP preconditioned resid norm 6.025198436485e+09 true resid > norm 5.952327229149e+04 ||r(i)||/||b|| 1.000000000000e+00 > 1 KSP preconditioned resid norm 3.436455497312e+09 true resid > norm 9.795164213312e-09 ||r(i)||/||b|| 1.645602440226e-13 > 2 KSP preconditioned resid norm 3.365625775916e+09 true resid > norm 7.488946142386e-09 ||r(i)||/||b|| 1.258154307396e-13 > 3 KSP preconditioned resid norm 2.543011385543e+09 true resid > norm 5.719959416026e-09 ||r(i)||/||b|| 9.609618550566e-14 > 4 KSP preconditioned resid norm 4.406639844892e+08 true resid > norm 6.417414971975e-09 ||r(i)||/||b|| 1.078135446007e-13 > 5 KSP preconditioned resid norm 2.741735667402e+09 true resid > norm 5.646995693759e-09 ||r(i)||/||b|| 9.487038390809e-14 > 6 KSP preconditioned resid norm 2.427193596206e+09 true resid > norm 1.327430895972e-08 ||r(i)||/||b|| 2.230104033043e-13 > 7 KSP preconditioned resid norm 1.603502416252e+09 true resid > norm 1.338139212677e-08 ||r(i)||/||b|| 2.248094167478e-13 > 8 KSP preconditioned resid norm 1.646847388237e+09 true resid > norm 1.287770565938e-08 ||r(i)||/||b|| 2.163474077218e-13 > 9 KSP preconditioned resid norm 2.136833312630e+09 true resid > norm 1.261183165000e-08 ||r(i)||/||b|| 2.118806840498e-13 > 10 KSP preconditioned resid norm 1.405267823532e+09 true resid > norm 2.499790590170e-08 ||r(i)||/||b|| 4.199686095765e-13 > > The system at all is not solvable anymore. What could be the > problem? Some technical issue I forgot about? Or my be the > nullspace be wrong? Thanks for any hint! > > Thomas > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120612/ef5b4bde/attachment-0001.html>
