Faults are geological entities with thicknesses several orders of magnitude smaller than the grid blocks typically used to discretize reservoir and/or over-under-burden geological formations. Introducing faults in a complex Reservoir and/or Geomechanical mesh therefore poses significant meshing difficulties. In our work, we introduce faults in the mesh without meshing them explicitly, by using the extended finite element method (X-FEM) in which the nodes whose support intersects the fault are enriched. For the Geomechanics the fault is treated as an internal displacement discontinuity which allows slipping to occur using a Mohr-Coulomb type criterion. For the Reservoir the fault is either an internal fluid flow conduit which allows fluid flow in the fault as well as to enter/leave the fault or a barrier to flow (sealing fault). In the X-FEM, the framework of partition of unity is used to enrich the nodes. The faults are represented by enriching the displacement approximation with a discontinuous (Heaviside) function. For internal fluid flow conduits, the approximation for the fluid pressure uses continuous functions that admit a discontinuity in their normal derivative across the fault. For sealing/impermeable faults a discontinuous (Heaviside) function is used to model pressure discontinuities across the fault. The procedure has been implemented in both 2D and 3D for both structured and unstructured meshes. Examples that demonstrate the versatility and accuracy of the procedure(s) are presented. Also, the influence of rate of loading on activation of faults is demonstrated.