Skip to content

BUG: Cross-mesh interpolation from an H(div) space on a manifold #5053

@pbrubeck

Description

@pbrubeck

Describe the bug
We are getting a segfault. However it is unclear to me if we can safely implement this operation, as degrees the of freedom mean different things on each side of a facet (the edge normals are not necesarily aligned on a manifold mesh).

Steps to Reproduce
Steps to reproduce the behavior:

from firedrake import *
m0 = UnitIcosahedralSphereMesh(0)
m1 = UnitIcosahedralSphereMesh(1)
m0.init_cell_orientations(SpatialCoordinate(m0))
m1.init_cell_orientations(SpatialCoordinate(m1))

V0 = FunctionSpace(m0, "RT", 1)
V1 = FunctionSpace(m1, "RT", 1)
u0 = Function(V0)

assemble(interpolate(u0, V1))

On main/release this will throw another error telling you that the VertexOnlyMesh does not have cell_orientations, this is fixed by replacing target_mesh -> source_mesh in

co = source_mesh.cell_orientations()

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions