Korinna,
> 1) Maybe I found a wrong assertion in the FETools.
> I have trouble with FETools while working in the debug mode. I cannot
> use the provided FETools::interpolation for the higher order reconstruction,
It might be that we haven't been testing this function enough, so a
bug like this is not unlikely.
> The violated condition was:
> owned_elements.size()==size()
> Additional information:
> The locally owned elements have not been properly initialized!
> This happens for example if this object has been initialized with exactly
> one overlapping IndexSet.
Can you try initializing your ghosted vector with
vec.reinit(locally_owned_index_set, locally_relevant_index_set, mpi_com);
instead of only specifying the ghosted set? Maybe that fixes the exception.
> 2) I have also a much worse problem right now, for which I have not found a
> satisfying solution yet.
> It seems to me that I cannot use the MeshSmooting methods for the
> parallel::distributed::Triangulation. In particular the flag patch_level_1
> causes trouble.
Yes, mesh smoothing in parallel is a problem at the moment. It is
basically not working at all. Sorry. I was hoping to have an
implementation for that soon (we did some progress towards it last
month). See https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_dealii_dealii_pull_1711&d=DwIBaQ&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=4k7iKXbjGC8LfYxVJJXiaYVu6FRWmEjX38S7JmlS9Vw&m=fx5zPVPj5YHLwSgXHBKNn1I9OvTImEnlVgDaDmSH-Z0&s=xMjuyhQn_tZbaM_K32G208xiQJ7EjMmKAmSRfDoy_4Y&e=
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_dealii_dealii_issues_1655&d=DwIBaQ&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=4k7iKXbjGC8LfYxVJJXiaYVu6FRWmEjX38S7JmlS9Vw&m=fx5zPVPj5YHLwSgXHBKNn1I9OvTImEnlVgDaDmSH-Z0&s=HmN6gJQSWE1WxMwrHI5csg3_TaC8JnCXyOa6GAnnxGQ&e= and issues linked in
there.
One workaround for now might be to switch to a shared::Triangulation.
[...]
> So I guess it is not possible right now to only prepare and excecute
> refinement without considering any coarsening flags?
No, I don't think so (without modifying the source code). The flags
are set in prepare_coarsening_and_refinement().
So one hack you could do is the following
class MyTriangulation : public parallel::distributed::Triangulation
{
public:
bool prepare_coarsening_and_refinement() {
// 1. call dealii::Triangulation<dim>::prepare_coarsening_and_refinement();
// 2. remove all coarsening flags
// 3. if any flags changed, return true, else return false
}
};
and use that. Take a look at the implementation in distributed/tria.cc
for inspiration. Note that this will break if you have periodic
boundary conditions.
Let us know if this lets you run with patch_level_1