I'm working with the OpenFOAM C++ Computational Continuum Mechanics library (it can deal with fluid-solid interaction, MHD flows...) which uses arbitrary unstructured meshes. This was driven by the idea of using the advantage of fast generation (automatic usually) of unstructured meshes to simulate problems in complex geometries. However, recently I've encountered another approach: octree adaptive carthesian meshes with cell cutting, where the agressive mesh refinement is used to describe a complex geometry. From the standpoint of the numerics, Carthesian meshes are much more accurate, so my question is: has anyone experience in using/implementing one or both of these approaches?  How do they compare agains each other? I'm developing codes for two phase fluid flow and I noticed e.g. that the reconstruction of the field gradients can be easily made more accurate on Carthesian meshes, while unstructured mesh requires linear regression for abrupt changes in the field... 
finite volume method: unstructured mesh vs octree adaptation + cell cutting
numerics;mesh generation;fluid dynamics
I think all the more modern FEM libraries (e.g. deal.II, libmesh, ...) use the octree-based scheme (or, to be more precise: oct-forests, with one tree starting from each cell of an unstructured coarse mesh). There are many advantages to this, primarily because you know the hierarchy of mesh cells. This implies that you can easily do coarsening, geometric multigrid, etc, all of which is incredibly difficult if you start with just a fine unstructured mesh. Furthermore, partitioning becomes an almost trivial problem. The downside of the approach is that if you have a complicated geometry, previously you only needed to describe it to the mesh generator whereas now you also have to describe it to the FEM code because you need the geometry when refining a cell that's located on the boundary.All else being equal, I think that the octree-based approach is far more flexible and useful than using one ginormous unstructured mesh.