We develop a discretisation and solution technique for elliptic problems whose solutions may present strong variations, singularities, boundary layers and oscillations in localised regions. We start with a coarse finite element discretisation with a mesh size H, and we superpose to it local patches of finite elements with finer mesh size h << H to capture local behaviours of the solution. The two meshes (coarse and patch) are not necessarily compatible. The algorithm used to compute the finite element solution on the coarse mesh and patch falls in the class of subspace correction methods [50, 48]. This technique has been introduced in [23]. Similarly to mesh adaptation methods, the location of the fine patches is identified by an a posteriori error estimator. Unlike mesh adaptation, no re-meshing is involved. We discuss the implementation and illustrate the method on an industrial problem. Moreover we generalise the algorithm to several patches which leads to further applications in multi-scale problems.