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.

 

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/d50bf5ab9bb7c282b68c5d3c265b
e2660fedde19/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]
http://fenicsproject.org/mailman/listinfo/fenics-support

Reply via email to