Thread Previous • Date Previous • Date Next • Thread Next |
Anders Logg wrote:
On Fri, Feb 12, 2010 at 12:02:53PM +0100, Patrick Riesen wrote:Anders Logg wrote:On Fri, Feb 12, 2010 at 11:36:33AM +0100, Patrick Riesen wrote:Anders Logg wrote:On Fri, Feb 12, 2010 at 10:42:14AM +0100, Patrick Riesen wrote:Anders Logg wrote:On Fri, Feb 12, 2010 at 10:25:52AM +0100, Patrick Riesen wrote:hi all of you, in dolfin0.9.6 i'm having a hard time with the following problem: i'm solving for a variable viscosity, depending on the power x of the strain-rate tensor's 2nd invariant. the invariant i compute in a separate form, and then i compute the power by iterating through all the dofs, extracting/reinserting the values in the vector of the function inside the code. this was all fine for dolfin < 0.9.6 but now i think i have a problem with choosing the right function space for the viscosity coefficient in my nonlinear problem, since for those i used before (Quadrature, DG) i have serious problem which i do not understand (they all worked before dolfin0.9.6) my problem is a mixed problem with space definitions: #-------------------------------------- velocity = VectorElement("CG" , geom, 2) pressure = FiniteElement("CG" , geom, 1) ME = MixedElement(velocity, pressure) # viscosity element visc = FiniteElement("DG", geom, 2) # placeholder variable viscosity eta = Coefficient(qe) #--------------------------------------- using this has worked well before, but i don't follow why it shouldn't work in dolfin0.9.6/ffc0.9. Or else somebody can propose me another approach. regards, patrickIs the problem the quadrature element for eta? What is the problem exactly?yes i think so, in dolfin0.8 i had a quadrature-element for eta, which was perfect, then basis-functions on quadrature elements were not supported anymore, and i changed it to a DG element the same order like velocity. that worked as well in dolfin0.9.2-0.9.5 but now this gives me a few negative values occuring in eta, when i solve for the invariant.Quadrature elements should still be supported. Try to isolate the problem to a small and simple test case and submit it as a bug report for FFC through Launchpad.ok, i'll try first something else: how can i tell ffc to use specific quadrature options, i.e. i want to make the terms involving eta and velocity to be computed on the same points and degree.If there is a quadrature element in the form (for eta), then FFC should automatically choose the number of quadrature points to be the same as for eta. Compile with the option -d (for debugging) and see what FFC says about quadrature degree.ok, it says Found quadrature element(s) with the following degree(s): [3] Selecting quadrature degree based on quadrature element: 3 quadrature_degree: auto --> 3 which is fine, i choose 1 order higher for the quadrature element than the velocity element. i now got the code now running again with the quadrature element, but the convergence of the newton solver is linear or less. i'm sure that my nonlinear function F and the jacobian J and how i compute the variable viscosity are correct, do you have a guess what of dolfin/ffc could affect this?I have no idea.
ops, i found something:if i use the optimization flag -O in ffc, i get what i want: quadratic convergence.
if i dont use it, the convergence is poor, i.e. ~linear
-- Anders
Thread Previous • Date Previous • Date Next • Thread Next |