Hi David and Lawrence,

I must be doing something wrong or maybe I'm simply using the wrong branch for my multigrid work. It was all working fine on my laptop, but I need to rebuilt PETSc as I want hypre as well (I hadn't included the --download-hypre flag before, but I really want to compare the performance of my Helmholzt solver to the split-preconditioner with AMG for the pressure system).

To update my PETSc I proceeded as follows:

1. Added mapdes => https://bitbucket.org/mapdes/petsc.git to my remotes in /petsc

2. Fetched the mapdes master branch (and doing 'git branch -v' I seem to be on the correct commit: 
eikemueller@eikes-mbp $ git  branch -v
* master 862c682 Git branch management tools absolutely suck!
  next   b1faa89 [ahead 1375, behind 1685] Merge branch 'knepley/fix-mat-missing-diagonal' into next

3. Applied Lawrence's DMPlex patch:

diff --git a/src/dm/impls/plex/plexrefine.c b/src/dm/impls/plex/plexrefine.c
index cafe490..bee9dfe 100644
--- a/src/dm/impls/plex/plexrefine.c
+++ b/src/dm/impls/plex/plexrefine.c
@@ -6166,6 +6166,12 @@ static PetscErrorCode CellRefinerCreateLabels(CellRefiner
       ierr = DMLabelGetStratumIS(label, values[val], &pointIS);CHKERRQ(ierr);
       ierr = ISGetLocalSize(pointIS, &numPoints);CHKERRQ(ierr);
       ierr = ISGetIndices(pointIS, &points);CHKERRQ(ierr);
+      /* Ensure refined label is created with same number of strata as
+       * original (even if no entries here). */
+      if (!numPoints) {
+        ierr = DMLabelSetValue(labelNew, 0, values[val]);CHKERRQ(ierr);
+        ierr = DMLabelClearValue(labelNew, 0, values[val]);CHKERRQ(ierr);
+      }
       for (n = 0; n < numPoints; ++n) {
         const PetscInt p = points[n];
         switch (refiner) {

4. configured and built PETSc as before, all works fine

5. Rebuilt petsc4py (https://em459@bitbucket.org/mapdes/petsc4py.git, branch moar-plex), PyOP2 (branch local-par_loop) and firedrake (branch multigrid-parallel, ran ./scripts/firedrake-clean before rebuilding with 'python setup.py build_ext --inplace').

If I then run my Helmholtz solver I get the following error message:

Traceback (most recent call last):
  File "driver.py", line 339, in <module>
    main(parameter_filename)
  File "driver.py", line 127, in main
    mesh_hierarchy = MeshHierarchy(coarse_mesh,param_grid['nlevel'])
  File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/multigrid.py", line 37, in __init__
    fpoint_ises.append(dm.createCoarsePointIS())
AttributeError: 'petsc4py.PETSc.DMPlex' object has no attribute 'createCoarsePointIS'

So this looks like a hierarchical grid issue, and maybe I'm using the wrong branch?
It works on ARCHER, but there I'm using an older version of PETSc from the original PETSc repository.

Thanks a lot,

Eike

--

Dr Eike Hermann Mueller
Research Associate (PostDoc)

Department of Mathematical Sciences
University of Bath
Bath BA2 7AY, United Kingdom

+44 1225 38 5803
e.mueller@bath.ac.uk
http://people.bath.ac.uk/em459/

On 17 Oct 2014, at 15:26, David Ham <David.Ham@imperial.ac.uk> wrote:

Dear Firedrakers,

Some of you have recently had problems with installing PETSc recently. There is now a fix for this, and also new install URLs for PETSc and petsc4py which will hopefully reduce the number of ongoing PETSc install issues that people have.

The short version is that the instructions for installing PETSc and petsc4py on our websites have been updated, so if you are installing or upgrading PETSc you should follow the new instructions:
http://www.firedrakeproject.org/obtaining_pyop2.html#petsc

The ever so slightly longer version is that we now point to our own fork of PETSc rather than the upstream master. We will update our forks as  necessary and only after checking that the version we update to appears to work. This should hopefully reduce the number of random breakages users encounter in PETSc.

Cheers,

David

--
Dr David Ham
Departments of Mathematics and Computing
Imperial College London

http://www.imperial.ac.uk/people/david.ham
_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake