[petsc-users] What is the difference between these two approaches?

(Rebecca) Xuefei YUAN xy2102 at columbia.edu
Mon Feb 8 15:13:53 CST 2010

Dear all,

I do have an PDE-constrained optimization problem:

F1(phi(x,y),c) = L(phi(x,y)) + rho(s1(x,y),s2(x,y)) = 0 (1)
F2(phi(x,y),c) = int_{domain}(c*rho(s1(x,y),s2(x,y)) - 1.0)dxdy = 0 (2)

where phi(x,y) is defined at each grid point and c is a scalar  
parameter that satisfying the equation (2).

I have two pieces of codes to solve them by different approaches.

The first approach is to use DMComposite() to manage unknowns and  
solve F1&F2 at the same time, and it calls DMMGSolve() once.

The second approach is to solve F1 with a guess c for some number(i.e.  
1) times of nonlinear and linear iteration, and then update c from F2.  
Solve F1 again with updated c till some conditions satisfied, for  

if (cres<1e-10){CONTINUE=PETSC_FALSE;} // update on c
if (functionNorm<1e-10){CONTINUE=PETSC_FALSE;}//residual function norm
if (reason>0){CONTINUE=PETSC_FALSE;}//snes_converged_reason
if (totalNumberOfNonlinearIterations>50){CONTINUE=PETSC_FALSE;}

In this approach, DMMGSolve() was called more than once.

Although these two approaches convergence, the results are quite different.

My understanding is that
a) approach one updates c in each linear iteration, but approach two updates c
only after several (i.e. 1) nonlinear iterations.

ierr = DMMGSolve(dmmg);CHKERRQ(ierr);
parameters->c = parameters->integration/area;

b) the results from two approaches should be the same or very close to  
each other but due to some reasons, they are not.

c) three different examples are tested by these two approaches, two  
are good, but one is bad. The bad one is different from the other two  
because the solution has large gradient at some points.

d) the shortcoming of approach one is PETSc has not ready for assemble  
a Jacobian for object DMComposite, so the second approach is able to  
write an analytic Jacobian.

Any thoughts about how to debug or compare these two approaches is  

Thanks a ton!


(Rebecca) Xuefei YUAN
Department of Applied Physics and Applied Mathematics
Columbia University

More information about the petsc-users mailing list