On Fri, Feb 28, 2014 at 2:14 PM, Xiangdong <[email protected]> wrote: > > On Fri, Feb 28, 2014 at 5:11 PM, Matthew Knepley <[email protected]>wrote: > >> On Fri, Feb 28, 2014 at 2:10 PM, Xiangdong <[email protected]> wrote: >> >>> >>> >>> >>> On Fri, Feb 28, 2014 at 4:48 PM, Barry Smith <[email protected]> wrote: >>> >>>> >>>> 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 >>>> >>> >>> If I want to use multigrid as a preconditioner, I have to call >>> KspSetComputeOperators. Is this true? >>> >> >> No, you can always do everything by hand, but that call simplifies the >> job. >> > > Does "by hand" mean providing the routines for assembling the matrix at > different level/size manually? >
It means providing the matrices directly, or using the Galerkin process. There is a manual section on it. Matt > Xiangdong > > >> >> Matt >> >> >>> Thank you. >>> >>> Xiangdong >>> >>> >>> >>> >>>> >>>> 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 >>>> > >>>> >>>> >>> >> >> >> -- >> 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 >> > > -- 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
