Hi all,
I played around with the preconditioners for H(Curl).
If one applies either the local or the multigrid preconditioner with the block=True Flag, it correctly uses the AFW-smoother, but it seems to use all dofs, not just the freedofs.
See the attached file, where we converge to a wrong solution.
Best
Tim
BlockSmoother.ipynb (2.5 KB)
Thank you @joachim for updating the smoother!
Hi Tim,
yes, it’s fixed, and should be in the pip prereleases by now.
It was a surprise for me that the freedofs were missing for most of the smoothing blocks. Only the default smoother for 3D was working properly.
There is a new possibility to define smoothing blocks, it not yet entered the documentation. In case you want to experIment, here are a few examples:
fes.CreateSmoothingBlocks(blocktype=["vertex", "edge","face"])
produces blocks for vertices, edges, and faces.
fes.CreateSmoothingBlocks(blocktype=["vertexedge","face"])
vertexedge associates all edge and vertex-dofs around a vertex to the vertexblock.
best, Joachim