On Sunday, 2 August 2015, Charles Cook <[email protected]> wrote:

> ‘bjacobi’ is by far the best performing for me… Any recommendations on
> where I should go from there if it is being removed?
>
>
>
>
It hasn't been removed. The interface has changed. If you don't set a
preconditioner, with PETSc you get by default block Jacobi, with ILU on the
blocks. If you use the PETSc options, you can control the preconditioner on
the blocks, i.e. change to something other than ILU.

Garth



> Thank you,
>
>
>
> Charles
>
>
>
> *From:* Garth N. Wells [mailto:[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>]
> *Sent:* Sunday, August 2, 2015 2:12 AM
> *To:* Charles Cook <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>>
> *Cc:* [email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>
> *Subject:* Re: [FEniCS-support] bjacobi preconditioner not found after
> installing 1.6?
>
>
>
>
>
> On 2 August 2015 at 00:00, Charles Cook <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>
> Hello,
>
>
>
> I’ve been working on installing the fenics project onto an HPC and thought
> this would also be a good time to upgrade to 1.6.  After installing 1.6
> with hashdist the preconditioner I had been using appears to no longer be
> available, bjacobi.
>
>
>
>
>
> 'bjacobi' doesn't define a preconditoner. If you don't select a
> preconditioner, by default with PETSc you'll get  block Jacobi, with the
> PETSc default solver for each process block.
>
>
>
> If you want to be sure of what you're getting, add
>
>
>
>     PETScOptions::set("pc_type", "bjacobi");
>
>
>
> before creating the solver.
>
>
>
> Garth
>
>
>
>
>
> I assume I am missing a dependency in PETSc?
>
>
>
> I am using a local profile, mostly to get around a server being offline:
>
>
>
> extends:
>
> - file: linux.yaml
>
>
>
> packages:
>
>   m4:
>
>   launcher:
>
>   cmake:
>
>   python:
>
>     link: shared
>
>   mpi:
>
>     use: mpich
>
>   blas:
>
>     use: openblas
>
>   lapack:
>
>     use: openblas
>
>   hypre:
>
>     with_openblas: true
>
>     without_check: true
>
>   petsc:
>
>     build_with: |
>
>       openblas, parmetis, scotch, suitesparse, superlu_dist, hypre
>
>     download: |
>
>       mumps, scalapack, blacs, ml, hypre, superlu, superlu_dista
>
>     coptflags: -O2
>
>     link: shared
>
>     debug: false
>
>   swig:
>
>   boost:
>
>     toolset: gcc
>
>     build_with: python
>
>   ipython:
>
>   matplotlib:
>
>   ffc:
>
>   fiat:
>
>   instant:
>
>   ufl:
>
>   uflacs:
>
>   slepc:
>
>     url: http://fenicsproject.org/pub/software/contrib/slepc-3.5.2.tar.gz
>
>   dolfin:
>
>     build_with: |
>
>       openblas, hdf5, parmetis, petsc, petsc4py, suitesparse, scotch,
> slepc, slepc4py, vtk, zlib
>
>   mpi4py:
>
>   mshr:
>
>
>
>
>
> Looking into the source:
> https://bitbucket.org/fenics-project/dolfin/src/d50bf5ab9bb7c282b68c5d3c265be2660fedde19/dolfin/la/PETScPreconditioner.cpp?at=master
>
>
>
> It looks like the preconditioner should be there by default, though it is
> missing from the descriptions
>
>
>
> *// Mapping from preconditioner string to PETSc*
>
> *const* std*::*map*<*std*::*string, *const* PCType*>* PETScPreconditioner
> *::*_methods
>
> *=* { {"default",          ""},
>
>     {"ilu",              PCILU},
>
>     {"icc",              PCICC},
>
>     {"jacobi",           PCJACOBI},
>
> *    {**"bjacobi"**,          PCBJACOBI},*
>
>     {"sor",              PCSOR},
>
>     {"additive_schwarz", PCASM},
>
>     {"petsc_amg",        PCGAMG},
>
> *#if PETSC_HAVE_HYPRE*
>
>     {"hypre_amg",        PCHYPRE},
>
>     {"hypre_euclid",     PCHYPRE},
>
>     {"hypre_parasails",  PCHYPRE},
>
> *#endif*
>
> *#if PETSC_HAVE_ML*
>
>     {"amg",              PCML},
>
>     {"ml_amg",           PCML},
>
> *#elif PETSC_HAVE_HYPRE*
>
>     {"amg",              PCHYPRE},
>
> *#endif*
>
>     {"none",             PCNONE} };
>
>
>
>
>
> *// Mapping from preconditioner string to description string*
>
> *const* std*::*map*<*std*::*string, std*::*string*>*
>
> PETScPreconditioner*::*_methods_descr
>
> *=* { {"default",          "default preconditioner"},
>
>     {"ilu",              "Incomplete LU factorization"},
>
>     {"icc",              "Incomplete Cholesky factorization"},
>
>     {"sor",              "Successive over-relaxation"},
>
>     {"petsc_amg",        "PETSc algebraic multigrid"},
>
> *#if PETSC_HAVE_HYPRE*
>
>     {"amg",              "Algebraic multigrid"},
>
>     {"hypre_amg",        "Hypre algebraic multigrid (BoomerAMG)"},
>
>     {"hypre_euclid",     "Hypre parallel incomplete LU factorization"},
>
>     {"hypre_parasails",  "Hypre parallel sparse approximate inverse"},
>
> *#endif*
>
> *#if PETSC_HAVE_ML*
>
>     {"ml_amg",           "ML algebraic multigrid"},
>
> *#endif*
>
>     {"none",             "No preconditioner"} };
>
>
>
> Any suggestions would be appreciated.
>
>
>
> As an aside, thanks again for this project!  I’m looking to defend soon
> and this project has been critical to my research.
>
>
>
> Thank you,
>
>
>
> Charles
>
>
> _______________________________________________
> fenics-support mailing list
> [email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>
> http://fenicsproject.org/mailman/listinfo/fenics-support
>
>
>


-- 
Garth N. Wells
Department of Engineering, University of Cambridge
http://www.eng.cam.ac.uk/~gnw20
_______________________________________________
fenics-support mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics-support

Reply via email to