> On Jul 14, 2016, at 12:21 PM, domenico lahaye <[email protected]> 
> wrote:
> 
> Dear PETSc team, 
> 
> 1) I am looking into ks/examples/tutorials/ex42.c

   This example is really written as only a one level solver, making it work 
with geometric multigrid is not clean

> I am still new to the DMDA structure
>     and likely not giving it as much time as it deserves. However, I do not 
> see immediately 
>     what function is responsible for calling PCMGSetSmoother and 
> PCMGSetResidual. 
> 
>      I tried to call PCMGGetCoarseSolve(pc, &kcpc) and subsequently 
>      KSPGetOperators (kspc, ... ) to check how the coarse grid operator is 
> defined 
>      after calling DMCoarsenHierarchy, but that failed. 
> 
>      I am solving Helmholtz with shifted Laplace, and managed to exploit DMDA 
> to perform 
>      a multigrid solve on the preconditioner. In a next stage I want to 
> implement the deflation 
>      using DMDA as well. 

  You should look at ex25.c in the same directory. Here 

  ierr = KSPSetDM(ksp,da);CHKERRQ(ierr);
  ierr = KSPSetComputeRHS(ksp,ComputeRHS,&user);CHKERRQ(ierr);
  ierr = KSPSetComputeOperators(ksp,ComputeMatrix,&user);CHKERRQ(ierr);

make it straight forward to work with multigrid. The KSP object can mange the 
hierarchy of grids since it is provided with the DM
and the ComputeRHS and ComputeMatrix provide a way for the multigrid 
preconditioner to automatically generate the needed matrix on each level 
without you having to manage it yourself. For example the rule in the makefile

runex25:
        -@${MPIEXEC} -n 1 ./ex25 -pc_type mg -ksp_type fgmres -da_refine 2 
-ksp_monitor_short -mg_levels_ksp_monitor_short -mg_levels_ksp_norm_type 
unpreconditioned -ksp_view -pc_mg_type full  > ex25_1.tmp 2>&1;       \
           if (${DIFF} output/ex25_1.out ex25_1.tmp) then true; \
           else printf "${PWD}\nPossible problem with ex25_1, diffs 
above\n=========================================\n"; fi; \
           ${RM} -f ex25_1.tmp

shows how to run with two levels. etc.


> 
> 2) On http://www.mcs.anl.gov/petsc/documentation/referencing.html I see 
> 
> @Misc{petsc-web-page,
>             author = {Satish Balay and Shrirang Abhyankar and Mark~F. Adams 
> and Jed Brown and Peter Brune
>                       and Kris Buschelman and Lisandro Dalcin and Victor 
> Eijkhout and William~D. Gropp
>                       and Dinesh Kaushik and Matthew~G. Knepley
>                       and Lois Curfman McInnes and Karl Rupp and Barry~F. 
> Smith
>                       and Stefano Zampini and Hong Zhang and Hong Zhang},
>             title =  {{PETS}c {W}eb page},
>             url =    {http://www.mcs.anl.gov/petsc},
>             howpublished = {\url{http://www.mcs.anl.gov/petsc}},
>             year = {2016}
>           }
> 
> 
> 
> Is the last author mentioned twice intentionally? 
> 
> 3) On 
> http://www.mcs.anl.gov/petsc/publications/petscapps-bib.html#OpenFOAM%202.2.1 
> I see 
> 
> @misc{OpenFOAM
> ,
> 
> 
> title =       "OpenFOAM",
> 
> howpublished  =       "\url{http://www.openfoam.com}";,
> 
> url   =       {http://www.openfoam.com},
> 
> note  =       "OpenFOAM is a free, open source CFD software package. It 
> allows PETSc linear algebra and solvers to be used underneath.",
> 
> key   =       "OpenFOAM 2.2.1"
> 
> }
> 
> 
> Do you have more information on the use of PETSc within OpenFoam? 
> 
> 4) @matt in response to a question he raised in Vienna
> 
> MIPSE is a BEM solver. Details are on: 
> http://www.g2elab.grenoble-inp.fr/plateforms/mipse-modeling-of-interconnected-power-systems-632862.kjsp?RH=G2ELAB_R-MAGE
> 
> Cheers, Domenico Lahaye. 
> 

Reply via email to