Hi Lawrence, has the multigrid-automation branch been deleted on the server, and if so, which branch should I use instead? I get the following error when I try to pull that branch: eikemueller@Eikes-MBP $ git branch master * multigrid-automation multigrid-parallel eikemueller@Eikes-MBP $ git pull Your configuration specifies to merge with the ref 'multigrid-automation' from the remote, but no such ref was fetched. The 2d multigrid now seems to work, but in the 3d case I get the error message shown below Thanks, Eike ==================================== ERRORS ==================================== _____________ ERROR at setup of test_pressuresolve_lowest_order[3] _____________ finite_elements = (FiniteElement('Raviart-Thomas', Domain(Cell('triangle', 2), label=None, data=None), 1, quad_scheme=None), FiniteEleme...one), FiniteElement('Discontinuous Lagrange', Domain(Cell('interval', 1), label=None, data=None), 0, quad_scheme=None)) mesh_hierarchy = <firedrake.mg.mesh.ExtrudedMeshHierarchy object at 0x10cac98d0> @pytest.fixture def W2_horiz_hierarchy(finite_elements,mesh_hierarchy): '''Horizontal velocity space hierarchy. Build pressure space :math:`W_2^{h}=HDiv(U_1\otimes V_1)` hierarchy. :arg finite_elements: Horizontal and vertical finite element :arg mesh: Underlying extruded mesh ''' U1, U2, V0, V1 = finite_elements # Three dimensional elements W2_elt = HDiv(OuterProductElement(U1,V1)) if (mesh_hierarchy != None):
W2_horiz_hierarchy = FunctionSpaceHierarchy(mesh_hierarchy,W2_elt)
fixtures.py:243: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <firedrake.mg.functionspace.FunctionSpaceHierarchy object at 0x10cc28950> mesh_hierarchy = <firedrake.mg.mesh.ExtrudedMeshHierarchy object at 0x10cac98d0> family = HDiv(OuterProductElement(*[FiniteElement('Raviart-Thomas', Domain(Cell('triang...ductCell(*[Cell('triangle', 2), Cell('interval', 1)]), label=None, data=None))) degree = None, name = None, vfamily = None, vdegree = None def __init__(self, mesh_hierarchy, family, degree=None, name=None, vfamily=None, vdegree=None): """ :arg mesh_hierarchy: a :class:`~.MeshHierarchy` to build the function spaces on. :arg family: the function space family :arg degree: the degree of the function space See :class:`~.FunctionSpace` for more details on the form of the remaining parameters. """ fses = [functionspace.FunctionSpace(m, family, degree=degree, name=name, vfamily=vfamily, vdegree=vdegree) for m in mesh_hierarchy] self.dim = 1
super(FunctionSpaceHierarchy, self).__init__(mesh_hierarchy, fses)
../../../firedrake/firedrake/mg/functionspace.py:269: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <firedrake.mg.functionspace.FunctionSpaceHierarchy object at 0x10cc28950> mesh_hierarchy = <firedrake.mg.mesh.ExtrudedMeshHierarchy object at 0x10cac98d0> fses = [<firedrake.functionspace.FunctionSpace object at 0x10cc289d0>, <firedrake.functionspace.FunctionSpace object at 0x10c...rake.functionspace.FunctionSpace object at 0x10cc28b50>, <firedrake.functionspace.FunctionSpace object at 0x10cc28bd0>] def __init__(self, mesh_hierarchy, fses): """ Build a hierarchy of function spaces :arg mesh_hierarchy: a :class:`~.MeshHierarchy` on which to build the function spaces. :arg fses: an iterable of :class:`~.FunctionSpace`\s. """ self._mesh_hierarchy = mesh_hierarchy self._hierarchy = tuple(fses) self._map_cache = {} self._cell_sets = tuple(op2.LocalSet(m.cell_set) for m in self._mesh_hierarchy) self._ufl_element = self[0].ufl_element() self._restriction_weights = None element = self.ufl_element() family = element.family() degree = element.degree() self._P0 = ((family == "OuterProductElement" and
(element._A.family() == "Discontinuous Lagrange" and
element._B.family() == "Discontinuous Lagrange" and degree == (0, 0))) or (family == "Discontinuous Lagrange" and degree == 0)) E AttributeError: _A ../../../firedrake/firedrake/mg/functionspace.py:40: AttributeError -- 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 8 Dec 2014, at 14:44, Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk> wrote:
On 7 Dec 2014, at 19:11, Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk> wrote:
On 7 Dec 2014, at 17:49, Eike Mueller <e.mueller@bath.ac.uk> wrote:
Dear firedrakers,
do the hierarchical meshes and function spaces currently only work in 2+1 dimension and not for 1+1? If I run the code below it works for dimension=3, but if I replace this by dimension=2 it crashes with
[0]PETSC ERROR: DMPlexGetCellRefiner_Internal() line 6777 in /Users/eikemueller/PostDocBath/EllipticSolvers/petsc/src/dm/impls/plex/plexrefine.c Unknown dimension 1 for cell refiner -------------------------------------------------------------------------- MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD with errorcode 62.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. You may or may not see output from other processes, depending on exactly when Open MPI kills them. --------------------------------------------------------------------------
I want to work in dimension=2+1, but having dimension=1+1 would be useful for testing.
There are two parts of this that won't work:
1. DMPlex doesn't know how to refine intervals: that's the error above.
I think this is easy to add, so can have a go.
2. I haven't added the necessary numbering magic and so forth for the generated interval mesh hierarchies.
If 1. is done, I think this should not be too difficult to add, but might take a little while.
I did this this morning. The multigrid-automation branch (which will hopefully merge soon) adds support for grid transfers on refined intervals (and DG0 on extruded intervals). You'll need (until it's merged upstream) the mapdes/petsc branch dmplex-1d-refinement if you want to try things.
I would be inclined to wait a bit until things are merged and settled down :).
Lawrence _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake