Check that you're applying the Dirichlet boundary conditions correctly, i.e. using
void apply(GenericMatrix& A, GenericVector& b, const GenericVector& x) const; which is for applying bcs within Newton iterations. Garth Patrick Riesen wrote: > Hi > > so i corrected my form-file for the new representation of L = F and a = > (F')u. However the solving still repeats and does not converge, the > problem remains. > > i don't know if it has to with L being expected as a nonlinear form but > my L = F is actually linear in u? > > it is linear in u because i put the nonlinear part ( the computation of > the variable viscosity ) in another form file, so in the main form file > (hence in L) i only have something like > > eta*dot(D(v),D(u)) (D() is the symmetric part of grad(u)) > > and eta = trace(mult(D(u),D(u))^(exponent) i get from somewhere else. > > patrick > > > > > Anders Logg wrote: >> Yes, the bilinear form should be the linearized nonlinear form (not >> minus). >> >> Note that with UFL, it's now possible to just write down the nonlinear >> form >> >> (v, F(u)) = 0 for all v >> >> and then let UFL compute the linearization. >> >> >> >> ------------------------------------------------------------------------ >> >> __> ouuuuu, this might be the lucky guess, i wasn't aware of that... >> >> Ostien, Jakob T wrote: >>> In a totally blind guess, I believe that for a nonlinear problem, the linear >>> form used to require a minus sign (DOLFIN 0.8), but now (DOLFIN 0.9+) the >>> minus sign is built into NewtonSolver. You might want to check that first. >>> >>> Jake >>> >>> >>> On 5/1/09 3:09 AM, "Patrick Riesen" <[email protected]> wrote: >>> >>>> hello! >>>> >>>> i want to update my powerlaw solver from dolfin 0.8 to dolfin 0.9.2. >>>> the solver class is derived from the NonlinearProblem class and i >>>> followed the CahnHillard-demo to do something similar for updating from >>>> 0.8 to 0.9.2. >>>> >>>> However I have a problem which i do not understand: >>>> >>>> If i hand the created forms to VariationalProblem and let it solve, all >>>> works fine and in the second iteration the newton solver converges (if i >>>> initialize a newtonian problem just for checking). >>>> >>>> if i do >>>> >>>> newtonsolver.solve(*this,uu->vector()); >>>> >>>> the problem gets solved as well, i.e. all bcs and my own void F and void >>>> J get called but it does not converge, it's like the problem gets solved >>>> over and over again and the solution is added, because in the end i get >>>> a solution but it's the number of iterations \times velocity. >>>> >>>> i tried all kinds of things (with/without pointers, no cast/cast, >>>> different classes for problem/solve ...) but i don't get it, i miss >>>> something. >>>> >>>> maybe somebody has a hint or does see my error and can help me turn on >>>> the light? >>>> >>>> many thanks in advance >>>> >>>> patrick >>>> >>>> >>>> below is a code snippet of the main part: >>>> /----------------------------------------------------------------------------- >>>> -- >>>> _uu = new Function(*_V); >>>> Function* __uu = dynamic_cast<Function*>(_uu); >>>> >>>> // create the forms >>>> a_powstokes = new PowerlawStokesBilinearForm(*_V,*_V); >>>> PowerlawStokesBilinearForm* _a_powstokes = >>>> dynamic_cast<PowerlawStokesBilinearForm*>(a_powstokes); >>>> _a_powstokes->w0 = *__uu; >>>> _a_powstokes->eta1 = eta; >>>> _a_powstokes->eta2 = d_eta; >>>> >>>> >>>> L_powstokes = new PowerlawStokesLinearForm(*_V); >>>> PowerlawStokesLinearForm* _L_powstokes = >>>> dynamic_cast<PowerlawStokesLinearForm*>(L_powstokes); >>>> _L_powstokes->w0 = *__uu; >>>> _L_powstokes->eta1 = eta; >>>> _L_powstokes->f = f; >>>> >>>> // VariationalProblem pde(*a_powstokes, *L_powstokes, bcs, true); >>>> // pde.solve(fluid.velocity(),fluid.pressure()); >>>> >>>> newtonsolver.solve(*this,__uu->vector()); >>>> _______________________________________________ >>>> DOLFIN-dev mailing list >>>> [email protected] >>>> http://www.fenics.org/mailman/listinfo/dolfin-dev >>>> >> _______________________________________________ >> DOLFIN-dev mailing list >> [email protected] >> http://www.fenics.org/mailman/listinfo/dolfin-dev > > _____________________________________________ >> DOLFIN-dev mailing list >> [email protected] >> http://www.fenics.org/mailman/listinfo/dolfin-dev > > _______________________________________________ > DOLFIN-dev mailing list > [email protected] > http://www.fenics.org/mailman/listinfo/dolfin-dev _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
