In many cases especially when it comes catalysis (which is what I work in) the effect of solvent comes into effect. I have seen papers that takes into account water as solvent by adding a number of water molecules as a layer in over the 2D system. Is there any better but not so obvious method to do this in Quantum ESPRESSO. Also, is it possible to consider acidic or basic medium?
When working with solvents, you have two options to simulate it: implicit solvation (sometimes called continuum solvation) or explicit solvation.
In the first case, a potential of mean forces is used to approximate the averaged behavior of many highly dynamic solvent molecules. One of the main used model is the COSMO solvation model where the solvent is treated as a continuum with a permittivity $\epsilon$.
In the second case, the molecules representing the solvent are added explicitly to your model (as in the example you used of adding water molecules over a 2D system).
In general, the calculations run faster using implicit solvation.
Back to your question, Quantum ESPRESSO, per se, does not work with solvents. But, there is an external module named ENVIRON. From it's site:
Environ is a computational library aimed at introducing environment effects into atomistic first-principles simulations, in particular for applications in surface science and materials design.
Some of the features of Environ are:
- Electrostatic effects of solvation. nviron allows to model the main electrostatic effects of a liquid solution on a solute, being it an isolated molecule or an incommensurate, linear or planar, system.
- Cavitation and pressure effects. By exploiting the definitions of quantum-volume (Cococcioni 2005) and quantum-surface (Scherlis 2006) of a system in terms of isosurfaces of its electronic density, two complex embedding effects are included in Environ.
- Electrostatic effects due to periodic-boundary conditions. A few of the most common approaches to remove artifacts due to periodic boundary conditions in aperiodic or partially periodic systems have been implemented in the Environ library.
The latest Environ release, version 1.1, is compatible with QE, version 6.4.x and 6.3.x and you can download it from here.