Hy all,
sorry for the lag since our last posts...

We have good news!
You remember we are working on a Navier-Stokes solver and we encountered some problems with AMR dealing with 3D tet meshes .
Once we understood (thanks for the help!)  problems related with the lid driven cavity  (hanging nodes  + discontinuos  boundary  conditions)  we moved to  3D  tet  meshes  of real  vessels.
In this case, we noticed spurious large velocity vectors arising randomly from AMR refined regions, which eventually caused the solution to blow up.
We thought that this may be caused by the fact that level one condition was broken, but, analyzing the mesh more accurately, we found that level one condition was always satisfied.
Instead, it looks like the problem is level one condition at nodes.

The problem can be fixed uncommenting (see code below) the call to the function
bool MeshRefinement::limit_level_mismatch_at_node(const int max_level_mismatch) at line 519 of bool MeshRefinement::refine_elements(const bool maintain_level_one = true).
00512   while (!satisfied)
00513     {
00514       const bool refinement_satisfied =
00515         this->make_refinement_compatible(maintain_level_one);
00517       const bool smoothing_satisfied = 
00518         !this->eliminate_unrefined_patches();// &&

00519 // !this->limit_level_mismatch_at_node(1);
00521       satisfied = (refinement_satisfied &&
00522                    smoothing_satisfied);
00523     }

We think that with Hex this function may have a little impact on the solution but with Tet it is really important. In fact, with level one compatibility on elements, elements may have a two level node mismatch with neighbors sharing just an edge (not a whole face). For Hexes the problem is limited to "diagonal" neighbors, while for Tets probably level mismatch is more frequent, since many tets in general share the same edge. Whatever it is, enforcing level one on nodes solved the problem of spurious velocity vectors.
Do you have any idea on what's going on?

Thanks again