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.

Thanks a lot,

Eike

from firedrake import *

dimension = 2

D = 0.1
nlayers=4
nlevel = 4

if (dimension == 2):
    ncells=3
    host_mesh = CircleManifoldMesh(ncells)
else:
    refcount = 0
    host_mesh = UnitIcosahedralSphereMesh(refcount)

host_mesh_hierarchy = MeshHierarchy(host_mesh,nlevel)

mesh_hierarchy = ExtrudedMeshHierarchy(host_mesh_hierarchy,
                                       layers=nlayers,
                                       extrusion_type='radial',
                                       layer_height=D/nlayers)

if (dimension == 2):
    U2 = FiniteElement('DG',interval,1)
    V1 = FiniteElement('DG',interval,1)
else:
    U2 = FiniteElement('DG',triangle,0)
    V1 = FiniteElement('DG',interval,0)

W3_elt = OuterProductElement(U2,V1)

W3 = FunctionSpaceHierarchy(mesh_hierarchy,W3_elt)

f = FunctionHierarchy(W3)

f[-1].interpolate(Expression('x[0]*x[1]'))

print norm(f[-1])

--

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/