Analytical solutions have advantages and disadvantages when compared to numerical methods. They are typically easier to apply than numerical solutions. Moreover, they tend to have fewer degrees of freedom, which may lead to less human error. Furthermore, it is possible to understand underlying relationships between variables by simply examining an analytical solution's mathematical form. The Ideal Gas Law provides a simple example of seeing a relationship by examining an equation; it is clear that the pressure is proportional to temperature and inversely proportional to the volume. Analytical solutions are computationally inexpensive, which means they can be used to explore a large parameter space and in pre-screening studies. On the other hand, analytical solutions often rely on simplifying assumptions and approximations, making them less suitable for some applications. Sometimes, analytical solutions are unknown and are difficult to derive Numerical solutions, which have become popular due to increased computational power in recent decades, also have advantages and disadvantages compared to analytical solutions. Numerical approaches can often relax the assumptions and approximations that some analytical solutions utilize, making them suitable for applications where such simplifications are not warranted. For example, numerical solutions are often able to handle problems with complex geometry, heterogeneity, or coupled physics (e.g., thermo-hydro-mechanical-reservoir simulation). However, this complexity also has its drawbacks. There can be many degrees of freedom and user choices, such as the specification of parameters, decisions about meshing, and application of boundary and initial conditions. More degrees of freedom may lead to more human error. However, the potential for human error can likely be decreased if users learn about the governing equations, numerical methods, and assumptions embedded within numerical simulators. Furthermore, human error may also be reduced by built-in error checking, which will stop a numerical solution from running if incompatible parameters are specified. Finally, numerical error, which can come from roundoff error and truncation error, is always present in numerical solutions.