On Feb 28, 2014, at 3:27 PM, Xiangdong <[email protected]> wrote: > > > > On Fri, Feb 28, 2014 at 4:21 PM, Matthew Knepley <[email protected]> wrote: > On Fri, Feb 28, 2014 at 1:16 PM, Xiangdong <[email protected]> wrote: > If I assembly the matrix with MatSetValuesStencil and use KspSetOpreators for > Ksp, do I need to call KspSetDM first? > > No > > What is the key difference or advantage of using KspSetComputeOperators > against KspSetOperators? > > With the later, you have to manage creating and preallocating the matrix. > > If I use DMCreateMatrix and MatSetValuesStencil, I do not need to preallocate > the matrix.
Correct. The SetComputeOperators and KSPSetDM is useful if you wish to use multigrid on system since PCMG will call your compute operators function on each level for you automatically. See src/ksp/ksp/examples/tutorials/ ex25.c ex28.c ex29.c ex31.c ex32.c ex34.c ex45.c ex50.c If you are just solving the one system and not using multigrid then there is no particular advantage in SetComputeOperators and KSPSetDM Barry > > Xiangdong > > > > > Matt > > Thanks you. > > Xiangdong > > > On Tue, Feb 25, 2014 at 4:24 PM, Jed Brown <[email protected]> wrote: > Xiangdong <[email protected]> writes: > > I am not clear about this. In this example, where is the format declaration > > (e.g.,mpiaij) of Mat jac? Why is this mat jac always distributed in > > a compatible way as the DM vectors? > > src/ksp/ksp/examples/tutorials/ex25.c calls KSPSetDM and sets functions > to assemble the matrices and right hand side. Those objects are created > internally (you can use -dm_mat_type sbaij if you like) and the user > doesn't have to see them. > > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener >
