Adaptive discretizations are important in *compressible/incompressible* flow problems since it is often necessary to resolve details on multiple levels allowing large regions of space to be modeled using a reduced number of degrees of freedom (reducing the **computational time**). There are a wide variety of methods for adaptively discretizing space, but *Cartesian* grids have often outperformed them even at high resolutions due to their simple and accurate numerical stencils and their superior parallel performances.

The **Laplace operator** is an essential building block of the *Navier-Stokes* equations, a model that governs fluid flows. In this talk will be presented a *2D finite-difference* approach to solve a Laplacian operator, applying **patches of overlapping grids** where a more fined level is needed, leaving coarser meshes in the rest of the computational domain. These overlapping grids will have generic quadrilateral shapes.

Specifically, the talk will cover the following topics:

- introduction to the
*finite difference methods*, domain partitioning, solution approximation; - overview of different types of meshes to represent in a
*discrete*way the geometry involved in a problem, with a focus on the**octree**data structure, presenting*PABLO*and*PABLitO*. The first one is an external library used to manage each single grid's creation, load balancing and internal communications, while the second one is the Python API of that library written*ad hoc*for the project; - presentation of the algorithm used to communicate data between meshes (being all of them unaware of each other’s existence) using
*MPI***inter-communicators**and clarification of the**monolithic**approach applied building the final matrix for the system to solve, taking into account**diagonal**,**restriction**and**prolongation**blocks; - presentation of some results;
- conclusions, references.

It is important to underline that everything is done under Python as programming framework, using *Cython* for the writing of *PABLitO*, *MPI4Py* for the communications between grids, *PETSc4py* for the assembling and resolution parts of the system of unknowns, *NumPy* for contiguous memory buffer objects.