Debian dolfinx package missing functionality

It seems that Debian dolfinx package is missing some functionality.

For example, the following code

import dolfinx
from mpi4py import MPI
mesh = dolfinx.UnitSquareMesh(MPI.COMM_WORLD, 8, 8,
dolfinx.cpp.mesh.CellType.quadrilateral)
V = dolfinx.FunctionSpace(mesh, ("CG", 2))
uex = dolfinx.Function(V)
uex.interpolate(lambda x: 1 + x[0]**2 + 2 * x[1]**2)
dolfinx.cpp.la.scatter_forward(uex.x)

raises error

AttributeError: module 'dolfinx.cpp.la' has no attribute 'scatter_forward'

I’ve submitted the bug report to Debian bug tracking system.

The Debian packages are not updated weekly, and does not capture all new features in dolfinx. We are in the making of a tag-release, which will include this function. Then, hopefully @dparsons is kind enough to update the Debian build.

1 Like

Thanks for the clarification. I got confused because my system’s dolfinx and dockerized version from FEniCS-X tutorial showed the same version.

You can check your version with

dpkg -l *dolfinx* | cat

The packages are just the latest snapshot at the time of packaging. The relevant git commit is not recorded in the internal version used in code.

1 Like

Incidently, if you’re using Debian to track dolfinx development, check the versions in the experimental archive also.

2 Likes

Yep, switching to experimental did the trick. I’m a bit surprised that such a new feature is used so extensively in the dolfin-x tutorial.

1 Like

It means the developers are excited to present the new functionality :grinning:

The dolfin-x tutorial relies on being on par with the master branch of dolfinx, as there is no other way of maintaining this for me (that doesn’t require huge workloads at arbitrary time intervals). When we get a tag release, I’ll start with stable releases of the tutorial.

2 Likes

Not a problem. Especially since the docker image is updated quite frequently. Thanks for the great tutorial!

On the subject of scatter_forward(), could someone give some detail on its function and usage? I’ve been looking for some documentation but as it seems to be a new addition I haven’t been able to find much information yet.

I may be wrong but I think it scatters PETSc’s vectors. Check out their manual on distributed vectors.

1 Like

Its a faster way to scatter data from the process owning the degree of freedom to those sharing the dof. @IgorBaratta can add some figures showing this

3 Likes