I am writing a space-time adaptive algorithm (dG in time, cG in space) for 
a blowup problem and have an a posteriori error estimator computed on a 
union grid of up to three different grids. I then need to transfer this 
error estimator to my current triangulation. I can match the cells across 
the grids up to one level just fine using the following code

const std::list<std::pair<typename Triangulation<dim>::cell_iterator, 
typename Triangulation<dim>::cell_iterator>> cell_list = 
GridTools::get_finest_common_cells (triangulation_space, 
union_triangulation);
auto cell_iter = cell_list.begin();

    for (; cell_iter != cell_list.end(); ++cell_iter)
    {
    if (cell_iter->second->has_children () == false)
    {
    refinement_vector(cell_iter->first->active_cell_index()) = 
refinement_union_vector(cell_iter->second->active_cell_index());
    }
    else
    {
    const unsigned int no_of_subcells = cell_iter->second->n_children();

        for (unsigned int subcell = 0; subcell < no_of_subcells; ++subcell)
        {
        refinement_vector(cell_iter->first->active_cell_index()) = 
fmax(refinement_vector(cell_iter->first->active_cell_index()), 
refinement_union_vector(cell_iter->second->child(subcell)->active_cell_index()));
        }
    }
    }

but this only works under the assumption that the current grid differs from 
the union grid by one level which may not necessarily be the case. 
Obviously I could add "n" inner loops to this in order to take care of up 
to n different levels between the triangulations but this makes the code 
more unreadable and is not very "elegant". Does anybody have a better 
suggestion? Thanks!

-- 
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 on the web visit 
https://groups.google.com/d/msgid/dealii/ea3fc64d-7348-4a73-b577-bf5c46d5952en%40googlegroups.com.

Reply via email to