-
Notifications
You must be signed in to change notification settings - Fork 182
Closed
Description
The following example
from firedrake import *
N_x, N_y, N_z = (2, 2, 2)
mesh = UnitCubeMesh(N_x, N_y, N_z)
X = SpatialCoordinate(mesh)
space = FunctionSpace(mesh, "Lagrange", 1)
F = Function(space, name="F")
F.interpolate(exp(X[0]) * exp(X[1]))
F((0.2, 0.3, 0.4))
leads to a failure when run on 4 processes
Traceback (most recent call last):
File "[...]/test.py", line 12, in <module>
Traceback (most recent call last):
File "[...]/test.py", line 12, in <module>
Traceback (most recent call last):
File "[...]/test.py", line 12, in <module>
Traceback (most recent call last):
F((0.2, 0.3, 0.4))
F((0.2, 0.3, 0.4))
File "[...]/build/firedrake/firedrake/src/ufl/ufl/exproperators.py", line 330, in _call
File "[...]/test.py", line 12, in <module>
File "[...]/build/firedrake/firedrake/src/ufl/ufl/exproperators.py", line 330, in _call
F((0.2, 0.3, 0.4))
File "[...]/build/firedrake/firedrake/src/ufl/ufl/exproperators.py", line 330, in _call
return _eval(self, arg, mapping, component)
return _eval(self, arg, mapping, component)
File "[...]/build/firedrake/firedrake/src/ufl/ufl/exproperators.py", line 320, in _eval
File "[...]/build/firedrake/firedrake/src/ufl/ufl/exproperators.py", line 320, in _eval
return _eval(self, arg, mapping, component)
File "[...]/build/firedrake/firedrake/src/ufl/ufl/exproperators.py", line 320, in _eval
return f.evaluate(coord, mapping, component, index_values)
return f.evaluate(coord, mapping, component, index_values)
File "[...]/build/firedrake/firedrake/src/firedrake/firedrake/function.py", line 488, in evaluate
File "[...]/build/firedrake/firedrake/src/firedrake/firedrake/function.py", line 488, in evaluate
return f.evaluate(coord, mapping, component, index_values)
File "[...]/build/firedrake/firedrake/src/firedrake/firedrake/function.py", line 488, in evaluate
return self.at(coord)
File "PETSc/Log.pyx", line 115, in petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func
return self.at(coord)
File "PETSc/Log.pyx", line 115, in petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func
File "PETSc/Log.pyx", line 116, in petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func
File "PETSc/Log.pyx", line 116, in petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func
File "[...]/build/firedrake/firedrake/src/firedrake/firedrake/function.py", line 600, in at
File "[...]/build/firedrake/firedrake/src/firedrake/firedrake/function.py", line 600, in at
return self.at(coord)
raise RuntimeError("Point evaluation gave different results across processes.")
File "PETSc/Log.pyx", line 115, in petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func
raise RuntimeError("Point evaluation gave different results across processes.")
RuntimeError: Point evaluation gave different results across processes.
application called MPI_Abort(PYOP2_COMM_WORLD, 1) - process 3
RuntimeError: Point evaluation gave different results across processes.
application called MPI_Abort(PYOP2_COMM_WORLD, 1) - process 2
File "PETSc/Log.pyx", line 116, in petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func
There is no error if the expression is changed to
F.interpolate(X[0] + X[1])
suggesting that one or more processes is extrapolating outside of its partition.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels