Hello Winnifried,

> With the old functionality it was possible to check if a refinement of
> the mesh was performed between storage and loading and then interpolate
> the vector onto the refined mesh used for computation.

The new SolutionTransfer workflow performs the transfer of data during the
Triangulation::execute_coarsening_and_refinement() call. The initial
implementation for the parallel::distributed versions of SolutionTransfer
and Triangulation featured this workflow, and I think it was because of
a requirement of early versions of p4est. Unfortunately, the new
SolutionTransfer class can not be used for what you described at the moment.

The main reason for the merge was the following. We did not have a 
serialization
mechanism for the ParticleHandler class in the serial case yet, but already
in the parallel distributed case. Instead of adding another specialized
implementation, we decided that merging it with the previous implementation
would be a reasonable approach, and it would also be more easily 
maintainable
in the future to only handle only one implementation.

However, this choice is not a permanent one. We are considering to redesign 
our
current interface and implementation for the SolutionTransfer functionality.
https://github.com/dealii/dealii/issues/15280

With the most recent versions of p4est (>= 2.0), it should actually now be
possible to separate the data transfer stage from the refinement stage,
which would make the implementation more flexible. So what you describe is
potentially possible in a unified SolutionTransfer manner. I will add a
comment to the above issue to make sure that we follow this design choice.

For now, I would propose to keep the Legacy::SolutionTransfer class 
'un-deprecated'
for the time being until we have the new implementation. I would open up an
issue on github and cast a vote among the main developers.

Alternatively, you can extract the functionality from the old 
SolutionTransfer
class and copy it into your project, provided you follow the licensing terms
of deal.II.


> To clarify: is the loss in functionality due to a lack in time and
> people contributing but it could be fixed if I am willing to write the
> code or is it coming from the problem that locally relevant dof's can
> move to different cores in a distributed situation and thus it can't be
> (reasonably) resolved in a unified manner for 'standard' and
> 'distributed' vectors?

To pick up on my comments above, it was not our intention to remove a 
feature
and the clash with your code was an unwanted result. We believed that the 
effect of the prepare_for_pure_refinement() function could be reproduced
by setting refinement flags on all cells, and then walking through the
general SolutionTransfer process.

To make sure that we retain your use case, may I suggest that you submit
a small test case to our test suite? It should somehow recreate your
scenario while using 
Legacy::SolutionTransfer::prepare_for_pure_refinement().
This way we will be alerted about breaking changes.

In conclusion, a re-haul of SolutionTransfer means a lot of work. I speak
only for myself when I say that I can't find the time to start working on
it. Further, since it is 'just' a redesign, no new functionality would be
added. Thus it's hard to justify spending time and resources on the
redesign if it doesn't help us with any of our projects.

If you would like to help us with the process, we would welcome any 
contribution.
The above mentioned minimal test would be a good start.

Marc

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/dealii/fdb44679-e64e-4675-887a-9132f5a7530fn%40googlegroups.com.

Reply via email to