HI Barry, Nope, I’m not doing any grid sequencing. Clearly that makes a lot of sense, to solve on a spatially coarse mesh for the field variables, interpolate onto the finer mesh, and then solve again. I’m not entirely clear on the practical implementation
-gideon > On Aug 27, 2015, at 10:02 PM, Barry Smith <[email protected]> wrote: > > > Gideon, > > Are you using grid sequencing? Simply solve on a coarse grid, interpolate > u1 and u2 to a once refined version of the grid and use that plus the mu lam > as initial guess for the next level. Repeat to as fine a grid as you want. > You can use DMRefine() and DMGetInterpolation() to get the interpolation > needed to interpolate from the coarse to finer mesh. > > Then and only then you can use multigrid (with or without fieldsplit) to > solve the linear problems for finer meshes. Once you have the grid sequencing > working we can help you with this. > > Barry > >> On Aug 27, 2015, at 7:00 PM, Gideon Simpson <[email protected]> wrote: >> >> I’m working on a problem which, morally, can be posed as a system of coupled >> semi linear elliptic PDEs together with unknown nonlinear eigenvalue >> parameters, loosely, of the form >> >> -\Delta u_1 + f(u_1, u_2) = lam * u1 - mu * du2/dx >> -\Delta u_2 + g(u_1, u_2) = lam * u2 + mu * du1/dx >> >> Currently, I have it set up with a DMComposite with two sub da’s, one for >> the parameters (lam, mu), and one for the vector field (u_1, u_2) on the >> mesh. I have had success in solving this as a fully coupled system with >> SNES + sparse direct solvers (MUMPS, SuperLU). >> >> Lately, I am finding that, when the mesh resolution gets fine enough (i.e. >> 10^6-10^8 lattice points), my SNES gets stuck with the function norm = >> O(10^{-4}), eventually returning reason -6 (failed line search). >> >> Perhaps there is another way around the above problem, but one thing I was >> thinking of trying would be to get away from direct solvers, and I was >> hoping to use field split for this. However, it’s a bit beyond what I’ve >> seen examples for because it has 2 types of variables: scalar parameters >> which appear globally in the system and vector valued field variables. Any >> suggestions on how to get started? >> >> -gideon >> >
