> A really neat extension would be to make the PointHistory class a part of
> deal.ii. So each cell would have a (pointer to a)  std::vector of
> PointHistory. One would then provide the PointHistory base class with a
> virtual function that describes how to project quadrature point data upon
> coarsening / refinement. The projection matrix is already well defined (as
> mentioned in tut 18). All the built in machinery for mesh adaptivity could
> then be utilised to project quadrature point data between meshes.

You can already do that if you register yourself as a refinement listener of 
the triangulation. You would just have to implement the exact same steps that 
you describe above in the listener.


> The next challenge is reconstructing the std::vector
> quadrature_point_history between refinement steps. This is a non-issue if
> each cell has a std::vector of PointHistory to hold the quadrature point
> data. Thus one could extend it to parallel problems.

I think it isn't quite that easy for parallel computations because not all 
processes in a parallel computation would have the necessary data if the mesh 
is partitioned differently before and after refinement.

That said, I think the way to implement is as follows: call 
prepare_coarsening_and_refinement and then loop over all cells. If a 
non-active cell has all children marked for coarsening, then do the 
projection from the children and store the result in the user_pointer of the 
parent cell. Then call execute_coarsening_and_refinement and in a final step 
loop over all cells and see if any have a non-NULL user_pointer -- these are 
the cells that have been refined, and so you need to interpolate from these 
cells to their children and set the user_pointer of the parent cell to NULL.

Does that make sense?

W.

-------------------------------------------------------------------------
Wolfgang Bangerth                email:            [email protected]
                                 www: http://www.math.tamu.edu/~bangerth/

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to