1 Introduction

Carbon capture and storage (CCS) is considered an attractive emission reduction strategy as it is compatible with current energy infrastructure and much of the required experience already exists. The potential for underground storage (primarily in saline aquifers or depleted oil and gas fields) is significant, and IPCC estimates that CCS could contribute 15–55 % of cumulative mitigation efforts worldwide until 2100 (according to most scenarios) (IPCC 2005). It is hoped that CCS as a technology could provide a temporary bridge between a fossil fuel-based economy and a future economy based mainly on renewable energy. Mitigation of risk is one focus of current research, with leakage being the main concern. Current experience and models suggest that appropriately selected and managed reservoirs will retain a large percentage of injected \(\hbox {CO}_2\) (IPCC 2005). However, the injected volumes in a meaningful emissions reduction scenario would be on an unprecedented scale.

Numerical simulators provide a key tool for better understanding the properties of potential storage sites, assessing sensitivities to unknown parameters, interpreting observed evolution over time, and providing long-term projections of the ultimate fate of injected \(\hbox {CO}_2\). Present-day commercial simulators (CMG 2009; Schlumberger 2010) developed for the oil and gas industry can be adapted to model \(\hbox {CO}_2\) geological storage scenarios, but require prohibitively long computational times when applied to many problems relevant to long-term storage of \(\hbox {CO}_2\), due to the large spatial and temporal scales involved (Nordbotten and Celia 2012). Simulators developed by universities and institutes, such as CODE_BRIGHT (Olivella et al. 1996), DUMUX (Flemisch et al. 2007), TOUGH2 (Pruess 2004), IPARS (Wheeler et al. 2001), and others, also face this problem. This has led to recent efforts in developing fast new tools designed to address the very large scales associated with \(\hbox {CO}_2\) storage modeling, while respecting the relevant physical and chemical aspects of the system.

As part of this ongoing effort, models based on the assumption of vertical equilibrium (VE) have regained attention in the context of \(\hbox {CO}_2\) storage (Nordbotten and Celia 2012). Under this assumption, the injected \(\hbox {CO}_2\) and resident brine are considered to separate quick enough into distinct layers that the process can be considered instantaneous at the time scales relevant for the study of lateral migration. Mathematical models based on this assumption have a long history and were initially investigated for purposes such as oil extraction and water management (Coats et al. 1971; Dietz 1953). The assumption of vertical equilibrium is often applicable given the extreme aspect ratio of a typical reservoir, where the horizontal extent is measured in tens or even hundreds of kilometers whereas the vertical extent is typically no more than a couple of hundred meters. A formal analysis carried out in (Yortsos 1995), expresses the validity of the VE assumption in terms of the geometrical aspect ratio and ratio between horizontal and vertical permeability. The assumption of vertical equilibrium effectively reduces the model from three dimensions (3D) to two dimensions (2D). Together with selective inclusion of physical effects (e.g., hysteresis, capillary fringe, rock heterogeneity), this represents a significant reduction in computational requirements for similar complexity solved with a 3D code.

Multiple comparison studies have shown that results provided by VE modeling compare well with those obtained from full 3D simulations in many scenarios (Class et al. 2009; Ligaarden and Nilsen 2010; Nilsen et al. 2011; Nordbotten et al. 2012). In recent years, VE models for \(\hbox {CO}_2\) storage have been a subject of active research. For simplified cases, analytic solutions have been proposed (Dentz and Tartakovsky 2009; Nordbotten et al. 2005). Numerical solutions can be obtained for more general cases, allowing for the inclusion of, e.g., reservoir heterogeneity in the model. The VE-modeling framework has been extended to include several physical phenomena that affect two-phase flow, such as capillarity (Nordbotten and Dahle 2011), dissolution and convective mixing (Gasda et al. 2011a, b), leakage through caprock (Nordbotten and Celia 2012), and caprock rugosity (Gasda et al. 2013, 2012). In situations with significant vertical flow, such as in the vicinity of an active or leaky well, the assumption of vertical equilibrium is no longer valid and VE models cannot be applied by themselves. However, by combining local analytic solutions with a global numeric model, the effect of multiple leaky wells has also been handled in a VE setting (Gasda et al. 2009).

Whereas most work on VE models for \(\hbox {CO}_2\) storage so far has considered constant \(\hbox {CO}_2\) density, there has also been some work on the inclusion of compressibility effects at the large scale (Vilarrasa et al. 2010) and the wellbore scale (Mijic et al. 2014). Villarasa et al. proposed a method to include variable \(\hbox {CO}_2\) density (and viscosity) in an analytic VE model (Vilarrasa et al. 2010). Under this approach, the density of injected \(\hbox {CO}_2\) is allowed to vary in time, while remaining constant in space. In (Vilarrasa et al. 2013a), a semi-analytical model is proposed for vertical \(\hbox {CO}_2\) injection, in which \(\hbox {CO}_2\) density varies both in space and time. This model addresses the injection phase on an idealized domain, with several additional simplifying assumptions. The model proposed in (Gasda et al. 2009) includes horizontal variations in density, but does not take into account vertical variability. The inclusion of horizontal variations makes it possible to model the significant changes in \(\hbox {CO}_2\) density arising from the large variations in pressure during \(\hbox {CO}_2\) injection, as well as the gradual changes in the hydrostatic pressure field that occur in a large, sloping reservoir. On the other hand, density differences due to pressure and temperature changes in the vertical direction are not included. Although such changes are assumed to be small in most cases, it is not clear whether they could always be neglected.

In this paper, we develop a mathematically consistent model for variable \(\hbox {CO}_2\) density in VE models. We derive the VE equations for two-phase flow with full compressibility and show how the \(\hbox {CO}_2\) density dependence on depth can be separately factored out as scalar functions in the resulting equations. We discuss how these functions can be practically computed or estimated for the purposes of numerical simulation. Moreover, we investigate the range of pressures and temperature gradients that are likely to occur in \(\hbox {CO}_2\) storage sites, and try to identify conditions for which vertical density changes may have significant impacts. Finally, we compare a fully compressible, a semi-compressible (i.e., horizontally compressible), and an incompressible VE model on some simulated test cases designed to demonstrate typical scenarios for \(\hbox {CO}_2\) storage in which density variation could be important.

2 Model Description

2.1 Physical System

We consider a scenario with \(\hbox {CO}_2\) injected into a saline aquifer. The aquifer is confined on top and below by formations of very low permeability. The confining formation on top is called the caprock. While the caprock can have significant local topographical variation, it is still assumed to be reasonably flat on the large scale. The lower confining formation is simply referred to as the bottom.

The pore space of the aquifer is initially filled with brine. This brine is gradually displaced by \(\hbox {CO}_2\) during and after injection. Although pressures and temperatures in the model may vary, the site would normally be chosen for conditions that allows injected \(\hbox {CO}_2\) to remain in a dense phase. In any case, except in very rare circumstances (Bachu 2003), the density of injected \(\hbox {CO}_2\) would be significantly lower than the density of brine, resulting in strong buoyancy forces acting on the injected \(\hbox {CO}_2\) plume. Gravity and viscous forces will drive the \(\hbox {CO}_2\) plume to spread out and move upward where possible. If the aquifer is sloping, this would lead the plume to slowly migrate uphill, constrained by the local shape of the aquifer. Given enough time, this migration can cover a large range in depth and potentially lead to significant density changes within the plume.

2.1.1 VE Assumptions and Upscaling

The aim of a VE model is to represent a 3D aquifer of large horizontal extent on a 2D plane by solving integrated 2D governing equations. The development of the integrated or upscaled model relies on the underlying assumption of vertical equilibrium, i.e., zero flow perpendicular to the aquifer plane, which must hold at the spatial and temporal scales of the system of interest. Vertical equilibrium is established under two related conditions, a large aspect ratio and gravity–capillary equilibrium. Previous work has investigated the validity of these assumptions with regards to the spatial (Yortsos 1995) and temporal (Court et al. 2012) scales appropriate for \(\hbox {CO}_2\) storage. The assumption of vertical equilibrium can be considered a special case of the more general Dupuit assumption, which considers a pressure field that leads to no flow across the confining (top, bottom) boundaries (Bear 1988).

The aspect ratio of the system is related to the horizontal versus vertical extent of the aquifer of interest. Whereas the horizontal extent of the aquifer can be very large (tens to hundreds of kilometers), the thickness is usually limited to a couple of hundred meters or less. We can therefore think of its global shape as a thin and flat sheet, which may be horizontal or inclined. Since the lateral extent of aquifers considered for \(\hbox {CO}_2\) storage is very large compared to the thickness (Nordbotten and Celia 2012), we expect any vertical movement to be negligibly small compared to the lateral flow velocities.

The gravity segregation process also should occur on very short time scales compared to the characteristic time of the analysis in order for vertical equilibrium to hold. Supercritical \(\hbox {CO}_2\) and brine will tend to separate quickly due to buoyancy, with the \(\hbox {CO}_2\) rising upward (van der Meer 1993). Capillary forces will also act on the plume, creating a two-phase transition zone at equilibrium, known as a capillary fringe. If gravity forces are balanced with capillary forces, then the \(\hbox {CO}_2\) phase can be represented as a plume collected at the top of the aquifer, held in place by the caprock (Nordbotten and Celia 2012). In the absence of strong capillarity, an interface can then be defined between the part of the aquifer occupied by brine and the part occupied by \(\hbox {CO}_2\)  referred to as the brine–\(\hbox {CO}_2\) interface.

Given the validity of the above assumptions, the vertical dimension can be eliminated by integration and all upscaled variables either represent (weighted) averages across the vertical direction (densities, porosities, saturation), or values at some reference depth (pressure). The resulting, upscaled model is called a VE model.

2.1.2 Other Simplifying Assumptions

The VE framework is capable of modeling various physical effects such as mutual solubility, capillary fringe, hysteretic behavior, and diffuse leakage, among others. However, it should be noted that our primary goal in this paper is to develop a VE formulation that includes variable \(\hbox {CO}_2\) density in a manner fully consistent with the fine scale and to compare the resulting model with simpler approaches. Thus, we wish to isolate the effect of \(\hbox {CO}_2\) density separate from other mechanisms, which facilitates presentation and analysis of the model. In doing so, we disregard a number of physical effects that are nevertheless important for a complete understanding of \(\hbox {CO}_2\) migration. The following are the main simplifications: the top and bottom boundaries of the aquifer are impermeable; the rock matrix and brine phase are incompressible; negligible capillary fringe, viscosity of both fluids is constant; no mutual solubility; zero residual saturations; and thermal equilibrium between fluids and rock matrix at all times.

Notably, \(\hbox {CO}_2\) viscosity is kept constant in the model development and all test examples, even though we are well aware that viscosity changes with temperature and pressure are as important as density changes in real systems. The main purpose of ignoring viscosity variations is to focus on handling of vertical variation of \(\hbox {CO}_2\) density when upscaling the 3D compressible model, a process that has some important implications for the vertical pressure profile and subsequent integration since pressure affects density and vice versa (as discussed in the model derivation in Sect. 2.2). This type of coupling with pressure does not occur with viscosity variation, which is therefore of less interest mathematically. To be consistent, we ignore viscosity variation throughout the subsequent test examples, despite the fact that this may lead to unrealistic combinations of fluid properties.

We emphasize that the simplifications made here can be easily included, along with variable \(\hbox {CO}_2\) density and viscosity, in a more general VE model. Some such models have recently been implemented using the \(\hbox {CO}_2\) module of the open-source MATLAB Reservoir Simulation Toolbox (Lie et al. 2012; MRST 2014; SINTEF ICT 2014), as demonstrated in several recent publications (Andersen et al. 2014; Nilsen et al. 2014a, b, c).

2.1.3 Coordinate System

We define a coordinate system associated with the aquifer, where the \(x\) and \(y\) coordinate axes lie in the aquifer plane aligned with the principal flow direction, and the \(z\) axis is perpendicular to it, directed from the top (caprock) toward the bottom. The shapes of the caprock and bottom surfaces are described, respectively, by the functions \(\zeta _{_{\text {T}}}\) and \(\zeta _{_{\text {B}}}\), which each associate a depth value \((z)\) to each pair of \((x, y)\) values. Likewise, the shape of the brine–\(\hbox {CO}_2\) interface is described by the function \(\zeta _{_{\text {M}}}\). Since we allow the aquifer to be sloped, the axes of our coordinate system form an angle, \(\theta \), with the true horizontal and vertical directions (c.f. Fig. 1). The unity vectors along the axes are written \(\mathbf{e }_x\), \(\mathbf{e }_y\), and \(\mathbf{e }_z\). We write the coordinate tuple \(\mathbf{x }= (x, y, z)\), and its first two components \(\mathbf{x }_{||}= (x, y)\). Moreover, we define the unity vector \(\mathbf{e }_{_{||}}\), which lies in the \((x, y)\) plane and indicates the normalized projection of the true vertical direction onto this plane. As such, the gravity vector, \(\mathbf{g }\), and the thermal gradient vector, \(\mathbf{G }\), both of which are directed true vertically downward, can be written in our coordinate system as follows:

$$\begin{aligned} \begin{aligned} \mathbf{g }&= g_{_{||}}\;\mathbf{e }_{_{||}}+ g_{_\perp }\;\mathbf{e }_z\\ \mathbf{G }&= G_{_{||}}\;\mathbf{e }_{_{||}}+ G_{_\perp }\;\mathbf{e }_z\end{aligned} \end{aligned}$$
(1)

where \(g_{_{||}}= ||\mathbf{g }|| \sin \theta \) , \(g_{_\perp }= ||\mathbf{g }||\cos \theta \), and similar for \(G_{_{||}}\) and \(G_{_\perp }\) with respect to \(\mathbf{G }\). From now on, we will use the word vertical to refer to the direction specified by \(\mathbf{e }_z\), and lateral for directions in the \((x, y)\) plane. As the temperature gradient \(G\) may have both a vertical and lateral component in our inclined coordinate system, temperature at a given point will depend both on depth \(z\) and lateral position \((x, y)\). Given a reference temperature \(T_0\) at some reference point \(\mathbf{x }_0 = (x_0, y_0, z_0)\), the expression for temperature \(T\) at any other point \(\mathbf{x }\) becomes

$$\begin{aligned} T(\mathbf{x })&= T_0 + \mathbf{G }\cdot (\mathbf{x }-\mathbf{x }_0)\nonumber \\&= T_0 + G_{_{||}}\mathbf{e }_{_{||}}\cdot (\mathbf{x }_{||}-{\mathbf{x }_{||}}_0) + G_{_\perp }(z - z_0). \end{aligned}$$
(2)
Fig. 1
figure 1

A vertical section of a part of an aquifer containing a plume of injected \(CO_2\). \(\zeta _{_{\text {T}}}\) and \(\zeta _{_{\text {B}}}\) represent the shape of the top- and bottom-confining layers, while \(\zeta _{_{\text {M}}}\) describes the shape of the brine–\(\hbox {CO}_2\) interface. \(H\) and \(h\) denote the local height of the aquifer and the \(\hbox {CO}_2\) plume, while \(\theta \) is the angle between the \(z\) coordinate axis and the gravity vector \(\mathbf{g }\)

2.2 Derivation of the Full Variable Density Model

In this section, we derive the equations for the vertically averaged model of two-phase flow in porous media, extended to allow for temporal and spatial variations in density. We start by presenting the derivation and general form of the upscaled equations with variable density. Using the general form as a basis, we proceed in the following section by showing what specific forms these equations take when adding the assumptions of a sharp interface and vertically homogeneous rock properties.

For multiphase immiscible flow, the mass balance equation for phase \(\alpha \) (where \(\alpha \) denotes either \(\hbox {CO}_2\) or brine) on the fine scale can be written (Nordbotten and Celia 2012):

$$\begin{aligned} \frac{\partial (\rho _\alpha \phi s_\alpha )}{\partial t} + \nabla (\rho _\alpha \mathbf{u }_\alpha ) = \psi _\alpha . \end{aligned}$$
(3)

In this equation, \(\rho \) represents fluid density \(({\text {ML}}^{-3})\), \(\phi \) the porosity of the medium (–), \(s\) the saturation (–), \(\psi \) the mass source term \(({\text {ML}}^{-3}{\text {T}}^{-1})\), and \(\mathbf u \) the volumetric flux vector (\({\text {LT}}^{-1}\)). We relate \(\mathbf{u }_\alpha \) to phase pressure using Darcy’s law for multiphase flow:

$$\begin{aligned} \mathbf{u }_\alpha = -\lambda _\alpha \mathbf{k }\left( \nabla p_\alpha - \rho _\alpha \mathbf{g }\right) \end{aligned}$$
(4)

Here, \(\mathbf{k }\) is the permeability tensor \(({\text {L}}^2)\), \(p_\alpha \) the phase pressure \(({\text {ML}}^{-1}{\text {T}}^{-2})\), \(\mathbf{g }\) the gravity acceleration vector \(({\text {LT}}^{-2})\), and \(\lambda _\alpha \) the phase mobility \(({\text {M}}^{-1}{\text {LT}})\) defined as the relative permeability of the phase divided by phase viscosity: \(\lambda _\alpha := k_{r, \alpha }(s_\alpha )/\mu _\alpha \).

By integrating the fine-scale equation (3) across the thickness of the aquifer with respect to \(z\), we obtain an upscaled equation whose variables only depend on two spatial variables \((x, y)\) in addition to time \(t\). The equation can be expressed on the following form:

$$\begin{aligned} H\varPhi \frac{\partial }{\partial t}(R_\alpha S_\alpha ) + \nabla _{||}\mathbf{F }_\alpha = \varPsi _\alpha \end{aligned}$$
(5)

The upscaled variables in this equation are \(H\) (aquifer thickness, as a function of \(x\) and \(y\)), \(S\) (saturation), \(\mathbf{F }_\alpha \) (mass flux), \(\varPhi \) (porosity), and \(R_\alpha \) (density). \(\nabla _{||}\) represents the 2D gradient operator in \(x\) and \(y\). While we assume impermeable top and boundaries, the general case would see additional source and sink terms appearing as a result of the integration, corresponding to mass flow across boundaries. Details on the integration have been published in previous literature, and a thorough explanation can be found in (Nordbotten and Celia 2012).

With \(H\) given, the formal definitions of the upscaled variables follow from the upscaled terms of (3):

$$\begin{aligned} H\varPhi&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\phi \,\mathrm {d}z\end{aligned}$$
(6)
$$\begin{aligned} \mathbf{F }_\alpha&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\rho _\alpha \mathbf{u }_{||\alpha }\,\mathrm {d}z\end{aligned}$$
(7)
$$\begin{aligned} H\varPhi S_\alpha&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\phi s_\alpha \,\mathrm {d}z\end{aligned}$$
(8)
$$\begin{aligned} \varPsi _\alpha&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\psi _\alpha \,\mathrm {d}z\end{aligned}$$
(9)
$$\begin{aligned} H\varPhi S_\alpha R_\alpha&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\rho _\alpha \phi s_\alpha \,\mathrm {d}z\end{aligned}$$
(10)

The variable \(\mathbf{u }_{||\alpha }\) in the definition of \(\mathbf{F }_\alpha \) above refers to the lateral components of the fine-scale volumetric flux vector \(\mathbf{u }_\alpha \). Using Leibniz’ rule, it can be shown that for impermeable top and bottom boundaries

$$\begin{aligned} \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\nabla (\rho _\alpha \mathbf{u }_\alpha )\,\mathrm {d}z= \nabla _{||}\int \limits _{\zeta _{_T}}^{\zeta _{_B}}\rho _\alpha \mathbf{u }_{||\alpha }\,\mathrm {d}z\end{aligned}$$

which justifies the use of \(\mathbf{u }_{||\alpha }\) in the equations above (Nordbotten and Celia 2012). By assuming lateral and vertical components of tensor \(\mathbf{k }\) to be independent, \(\mathbf{u }_{||}\) only depends on the lateral component of the pressure gradient \(\nabla _{||}p\). We can combine (7) and (4) to obtain an expression of upscaled flux in terms of pressure:

$$\begin{aligned} \mathbf{F }_\alpha = -\int \limits _{\zeta _{_{\text {T}}}}^{\zeta _{_{\text {B}}}}\rho _\alpha \mathbf{k }_{||}\lambda _\alpha (\nabla _{||}p_\alpha - \rho _\alpha g_{_{||}}\mathbf{e }_{_{||}})\,\mathrm {d}z\end{aligned}$$
(11)

In order to compute integrals (6)–(11), we need knowledge of the involved fine-scale quantities. Some of these (\(\phi \), \(\mathbf{k }_{||}\) and \(\psi _\alpha \)) are considered known inputs, whereas the others (\(s_\alpha \), \(\rho _\alpha \), \(\lambda _\alpha \) and \(\nabla _{||}p_\alpha \)) will be reconstructed from reference quantities based on specific assumptions. Several models exist for the reconstruction of fine-scale saturations \(s_\alpha \) and mobilities \(\lambda _\alpha \) based on the upscaled saturation \(S_\alpha \). The appropriate model to choose depends on the approximations valid for a given scenario. For the present paper we discuss a sharp-interface model, which is valid when capillary pressure effects are negligible in the 3D model. As for \(\rho _\alpha \) and \(\nabla _{||}p\), we must establish how these can be represented in terms of reference values of density and pressure, with the dependence on \(z\) separately identified.

The assumptions of hydrostatic pressure (a consequence of VE) and constant geothermal gradient make it possible to express fine-scale pressure and density directly as functions of depth. This allows us to relate the integrals above with pressure and density values at some chosen reference surface \(\zeta _{_R}\). To simplify notation, we will omit the subscript \(\alpha \) from the presented equations from this point forward, keeping in mind that the form is the same for both phases.

We choose to express fine-scale pressure in terms of its value at the reference surface \(\zeta _{_R}= \zeta _{_R}(\mathbf{x }_{||})\). The vertical (depth) distance from this surface to a point \(\mathbf{x }= (x, y, z)\) is thus \(z-\zeta _{_R}(x, y)\). We then have the following expression for pressure as a function of \(z\):

$$\begin{aligned} p(z) = p_{_R}+ g_{_\perp }\int \limits _{\zeta _{_R}}^{z}\rho (z')\,\mathrm {d}z'. \end{aligned}$$
(12)

Here, \(p_{_R}\) represents the phase pressure at the corresponding point on the reference surface \(\zeta _{_R}\) for a given vertical column. For the numerical examples in this paper, we chose the \(\hbox {CO}_2\)–water interface as reference, i.e., \(\zeta _{_R}= \zeta _{_M}\). This choice has an advantage when using the semi-compressible VE model, as discussed in Sect. 2.4.1. Other choices of reference surface are, however, also valid, with a similar degree of accuracy.

From (12), we see that the vertical pressure profile depends on the corresponding vertical density profile. Since density is a function of pressure and temperature, this profile can be obtained from the corresponding equation of state by function composition:

$$\begin{aligned} \rho (z) = \rho (p(z), T(z)). \end{aligned}$$
(13)

We here encounter a complication that arise when including variable vertical density in the VE framework: vertical pressure and density profiles depend on each other. In order to proceed, we compute the derivative of \(\rho (z)\)

$$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d}z}\rho (z) = \frac{\partial \rho }{\partial p}\frac{\partial p}{\partial z} + \frac{\partial \rho }{\partial T}\frac{\partial T}{\partial z}. \end{aligned}$$
(14)

From (12), we see that \(\frac{\partial }{\partial z}{p} = g_{_\perp }\rho \), and from (2), that \(\frac{\partial }{\partial z}T = G_{_\perp }\). The other partial derivatives are given by the following functions of state:

$$\begin{aligned} \beta = \frac{1}{\rho }\frac{\partial \rho }{\partial p} \quad \quad \quad \gamma = - \frac{1}{\rho }\frac{\partial \rho }{\partial T}. \end{aligned}$$
(15)

\(\beta \) is called the isothermal compressibility coefficient for the given substance, whereas \(\gamma \) is called the isobaric coefficient of thermal expansion. (Note the negative sign in front of \(\gamma \)). Using the above, we can now further develop expression (14) into

$$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d}z}\rho (z) = \rho (\beta g_{_\perp }\rho - \gamma G_{_\perp }) \end{aligned}$$
(16)

We now have \(\rho \) expressed in the form of an ordinary differential equation (ODE) that can be solved numerically. Note that both \(\beta \) and \(\gamma \) are continuous functions of temperature and pressure as long as one does not cross the vapor–liquid boundary.

Having established an equation to obtain \(\rho (z)\) in terms of reference values, we now turn our attention to \(\nabla _{||}p\). As we see from (11), the computation of upscaled mass flux requires knowledge of the fine-scale lateral pressure gradient \(\nabla _{||}p\). In the incompressible setting, this quantity is independent of \(z\) and can simply be moved outside the integral. In the compressible setting, however, the lateral pressure gradient varies with depth and has to remain in the integrand. In order to compute the integral, we therefore seek to obtain an analytical expression of the fine-scale gradient in terms of reference quantities and depth. This approach facilitates analysis and prevents the need of explicitly reconstructing fine-scale pressure at each time-step in order to compute the gradient numerically.

By combining (12) with (2), and writing out the result explicitly in terms of all three spatial coordinates \({(x, y, z) = (\mathbf{x }_{||}, z)}\), we get

$$\begin{aligned} p(\mathbf{x }_{||}, z)&= p_{_R}(\mathbf{x }_{||}) \end{aligned}$$
(17)
$$\begin{aligned}&+ g_{_\perp }\int \limits _{\zeta _{_R}(\mathbf{x }_{||})}^{z}\rho \left( p(\mathbf{x }_{||}, z'), T_0 + G_{_{||}}\mathbf{e }_{_{||}}\cdot (\mathbf{x }_{||}-{\mathbf{x }_{||}}_0) + G_{_\perp }(z'-z_0) \right) \,\mathrm {d}z'. \end{aligned}$$
(18)

We note that the dependence of \(p\) on the spatial coordinates can be fully expressed in terms of \(T\) and the reference quantities \(p_{_R}\) and \(\zeta _{_R}\). Using the chain rule, \(\nabla _{||}p\) can therefore be expressed solely in terms of the lateral gradients of these quantities. By noting that \(\nabla _{||}T = \nabla _{||}(G_{_{||}}\mathbf{e }_{_{||}}\cdot \mathbf{x }_{||}) = G_{_{||}}\mathbf{e }_{_{||}}\), we can write

$$\begin{aligned} \nabla _{||}p = \nu _p\nabla _{||}p_{_R}+ \nu _\zeta \nabla _{||}\zeta _{_R}+ \nu _{_G}G_{_{||}}\mathbf{e }_{_{||}}\end{aligned}$$
(19)

with

$$\begin{aligned} \nu _p&= \frac{\partial p}{\partial p_{_R}}\end{aligned}$$
(20)
$$\begin{aligned} \nu _\zeta&= \frac{\partial p}{\partial \zeta _{_R}} \end{aligned}$$
(21)
$$\begin{aligned} \nu _{_G}&= \frac{\partial p}{\partial T}. \end{aligned}$$
(22)

For each column, the coefficients \(\nu _p, \nu _\zeta \), and \(\nu _{_G}\) are functions of \(z\) only, described by ODEs. We can determine these ODEs by partial differentiation of hydrostatic pressure with respect to \(p\), \(\zeta _{_R}\), and \(T\), respectively. In Appendix 1 we provide details on the calculation and further show that \({\nu _\zeta (z) = -g_{_\perp }\rho _{_R}\nu _p(z)}\), and \({\nu _{_G} = \frac{g}{G}(\rho - \rho _{_R}\nu _p)}\), allowing us to eliminate these functions and express the \(z\)-dependence of \(\nabla _{||}p\) using only the two ODEs for \(\nu _p\) and \(\rho \):

$$\begin{aligned} \nabla _{||}p = \nu _p\left[ \nabla _{||}p_{_R}- \rho _{_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+ g_{_{||}}\mathbf{e }_{_{||}})\right] + \rho g_{_{||}}\mathbf{e }_{_{||}}\end{aligned}$$
(23)

We show the ODE defining \(\nu _p\) to be

$$\begin{aligned} {\left\{ \begin{array}{ll} \frac{\mathrm {d}}{\mathrm {d}z}\nu _p = (g_{_\perp }\rho \beta )\nu _p\\ \nu _p(\zeta _{_R}) = 1. \end{array}\right. } \end{aligned}$$
(24)

We now have all we need to compute the upscaled flux. Combining (11) and (23), reorganizing terms and moving the \(z\)-independent part outside the integral, we get

$$\begin{aligned} \mathbf{F }&= -\left( \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\nu _p\rho \lambda \mathbf{k }_{||}\,\mathrm {d}z\right) \left( \nabla _{||}p_{_R}- \rho _{_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+ g_{_{||}}\mathbf{e }_{_{||}})\right) \nonumber \\&= -H\mathbf{N }\tilde{\mathbf{R }}\varvec{\varLambda }\mathbf{K }\left( \nabla _{||}p_{_R}-\rho _{_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+ g_{_{||}}\mathbf{e }_{_{||}})\right) \end{aligned}$$
(25)

with the following definitions of upscaled variables:

$$\begin{aligned} H\mathbf{K }&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\mathbf{k }_{||}\,\mathrm {d}z\end{aligned}$$
(26)
$$\begin{aligned} H\varvec{\varLambda }\mathbf{K }&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\lambda \mathbf{k }_{||}\,\mathrm {d}z\end{aligned}$$
(27)
$$\begin{aligned} H\tilde{\mathbf{R }}\varvec{\varLambda }\mathbf{K }&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\rho \lambda \mathbf{k }_{||}\,\mathrm {d}z\end{aligned}$$
(28)
$$\begin{aligned} H\mathbf{N }\tilde{\mathbf{R }}\varvec{\varLambda }\mathbf{K }&:= \int \limits _{\zeta _{_T}}^{\zeta _{_B}}\nu _p\rho \lambda \mathbf{k }_{||}\,\mathrm {d}z \end{aligned}$$
(29)

Previously in (10), we defined \(R\) as a vertical average of the fine-scale density, weighted by porosity. In (28) above, a different density-related quantity \(\tilde{\mathbf{R }}\) is defined, which represents the vertical average of density, weighted by permeability. As such, \(\tilde{\mathbf{R }}\) is a tensor value, and not easily interpretable as a quantity separate from the context in which it figures—as an inherent component of the upscaled mass flux. For this reason, we choose to interpret the upscaled mass flux as a basic quantity in itself and will not formally factor it into a density and a volumetric flux part. (Moreover, the upscaled volumetric flux from such a factorization will not generally be equal to the upscaled volumetric flux directly obtained from vertical integration).

2.2.1 Complete Upscaled Equation Set

Using previous definitions, the final set of upscaled equations for each phase becomes

$$\begin{aligned}&H\varPhi \frac{\partial }{\partial t}(R S) + \nabla _{||}\cdot \mathbf{F }= \varPsi \end{aligned}$$
(30)
$$\begin{aligned}&\mathbf{F }= -H\mathbf{N }\tilde{\mathbf{R }}\varvec{\varLambda }\mathbf{K }\left( \nabla _{||}p_{_R}-\rho _{_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+ g_{_{||}}\mathbf{e }_{_{||}})\right) . \end{aligned}$$
(31)

The equation system can be solved for upscaled saturation, \(S_\alpha \), and reference pressure, \(p_{_R}\), for each phase. Each phase can be modeled either as compressible or incompressible. For the incompressible phase, the equations reduce to those of incompressible two-phase VE flow, c.f. Sect. 2.4.2.

In our inclined coordinate system, the expression for the gravity potential \(V\) can be established in a similar manner as for temperature in (2), namely

$$\begin{aligned} V(\mathbf{x })&= V_0 - \mathbf{g }\cdot (\mathbf{x }-\mathbf{x }_0)\nonumber \\&= V_0 - g_{_{||}}\mathbf{e }_{_{||}}\cdot (\mathbf{x }_{||}-{\mathbf{x }_{||}}_0) - g_{_\perp }(z - z_0) \end{aligned}$$
(32)

On the chosen reference surface, we have \(z = \zeta _{_R}(\mathbf{x }_{||})\), so the gravity potential \(V_R(\mathbf{x }_{||})\) and its lateral gradient \(\nabla _{||}V_R(\mathbf{x }_{||})\) are written

$$\begin{aligned} V_R(\mathbf{x }_{||})&= V_0 - g_{_{||}}\mathbf{e }_{_{||}}\cdot (\mathbf{x }_{||}-{\mathbf{x }_{||}}_0) - g_{_\perp }(\zeta _{_R}(\mathbf{x }_{||}) - z_0) \end{aligned}$$
(33)
$$\begin{aligned} \nabla _{||}V_R(\mathbf{x }_{||})&= -g_{_{||}}\mathbf{e }_{_{||}}- g_{_\perp }\nabla _{||}\zeta _{_R}(\mathbf{x }_{||}). \end{aligned}$$
(34)

We recognize \(\nabla _{||}V_R\) inside the parenthesis of the upscaled flux expression (31). We further note that in (31), the upscaled flux \(\mathbf{F }\) becomes zero when the pressure gradient equals the negative gravity potential gradient, as one would expect.

Although the upscaled quantities \(\mathbf{N }, \tilde{\mathbf{R }}, \varvec{\varLambda }\), and \(\mathbf{K }\) can be defined as separate quantities according to Eqs. (26)–(29) above, for practical simulation only their product is needed, and we would not need to compute them separately. Moreover, their interpretation as separate quantities is less natural than for their fine-scale counterparts; they are linked by their dependence on the same fine-scale variables. For instance, changes in fine-scale \(\mathbf{k }_{||}\) lead to changes not only in \(\mathbf{K }\), but in \(\varvec{\varLambda }\), \(\tilde{\mathbf{R }}\), and \(\mathbf{N }\) as well.

2.3 Homogeneous, Sharp-Interface System

To simplify the definition of several upscaled variables and facilitate further analysis of the equations, we assume vertically homogeneous rock properties and a sharp \(\hbox {CO}_2\)–water interface. A sharp interface means that the saturation of phase \(\alpha \) is always at endpoint saturation inside its region, and at residual saturation outside. Since we do not take residual saturation into account, the \(\hbox {CO}_2\) saturation therefore equals one inside the plume and zero outside. Note that residual saturations could easily be added if needed. As a consequence, the mobility of phase \(\alpha \) will be \(\mu _\alpha ^{-1}\) inside the region it occupies and zero outside. Vertically homogeneous rock properties allow us to move porosity and permeability outside the integrals. The upscaled expressions for \(\hbox {CO}_2\) and for brine are similar, but with integrals taken over different intervals (corresponding to the height of the respective phase domain). While we present the expressions for the \(\hbox {CO}_2\) phase below, the corresponding expressions for the brine phase can be obtained by substituting \(h\) with \(H-h\) and changing the bounds of the integral to be from \(\zeta _{\text {M}}\) to \(\zeta _{\text {B}}\).

For the \(\hbox {CO}_2\) phase, the new significantly simpler expressions for the previously defined upscaled variables are listed in Table 1, using the following short-hand for integrals:

$$\begin{aligned} {\fancyscript{J}}_1&= \frac{1}{h}\int \limits _{\zeta _{_{\text {T}}}}^{\zeta _{_{\text {M}}}}\rho \,\mathrm {d}z\end{aligned}$$
(35)
$$\begin{aligned} {\fancyscript{J}}_2&= \frac{1}{h}\int \limits _{\zeta _{_{\text {T}}}}^{\zeta _{_{\text {M}}}}\rho \nu _{p}\,\mathrm {d}z. \end{aligned}$$
(36)
Table 1 Upscaled variables for the homogeneous, sharp-interface system

Since the \(\hbox {CO}_2\) mobility is zero outside the zone it occupies, we only need to integrate across the plume height, i.e., from \(\zeta _{_{\text {T}}}\) to \(\zeta _{_{\text {M}}}\). Note that several previously defined tensorial quantities (\(\tilde{\mathbf{R }}, \mathbf{N }, \varvec{\varLambda }\)) can be now be represented as simple scalar values.

The simplified equations for the \(\hbox {CO}_2\) phase can be written out directly in terms of the \(\fancyscript{J}_i\):

$$\begin{aligned}&\phi \frac{\partial }{\partial t}(h{\fancyscript{J}}_1) + \nabla _{||}\cdot \mathbf{F }= H\psi \end{aligned}$$
(37)
$$\begin{aligned}&\mathbf{F }= -\frac{h}{\mu }{\fancyscript{J}}_2\mathbf{k }_{||}\left( \nabla _{||}p_{_R} - \rho _{_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+ g_{_{||}}\mathbf{e }_{_{||}})\right) . \end{aligned}$$
(38)

By choosing \(\zeta _{_R}=\zeta _{_{\text {M}}}\), the equations of the two phases are described using a common reference pressure \(p_{_R}\), and the combined system can be solved in terms of \(p_{_R}\) and \(h\).

2.4 Special Cases

2.4.1 Special Case 1: Semi-compressible Model

It can often be reasonable to ignore vertical density changes while still allowing lateral variation. We refer to such a model as semi-compressible. Our equations reduce to a version of this model when we remove the effects of depth from the upscaled variables. For the sharp-interface model above, this means that both integrals \({\fancyscript{J}}_1\) and \({\fancyscript{J}}_2\) reduce to \(\rho _{_R}\), and equation (37) and (38) become

$$\begin{aligned}&\phi \frac{\partial }{\partial t}(\rho _{_R}h) + \nabla _{||}\cdot \mathbf{F }= H\psi \end{aligned}$$
(39)
$$\begin{aligned}&\mathbf{F }= -\rho _{_R}\frac{h}{\mu }\mathbf{k }_{||}\left( \nabla _{||}p_{_R}- \rho _{_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+g_{_{||}}\mathbf{e }_{_{||}}) \right) . \end{aligned}$$
(40)

These equations describe a semi-compressible, sharp-interface system where \(\rho (\mathbf{x }) := \rho _{_R}(x,y)\). However, as these equations stand above, they are not entirely consistent with the implied fine-scale flux. In fact, the assumption of constant vertical density inevitably leads to non-physical distortions in the hydrostatic pressure field. To demonstrate this, we consider the reconstruction of the fine-scale hydrostatic pressure field under the assumption of constant vertical density (for simplicity, we consider a zero dip angle):

$$\begin{aligned} p(z) = p_{_R}+ \rho _{_R}g(z - \zeta _{_R}) \end{aligned}$$

The lateral gradient at \(z\) then becomes

$$\begin{aligned} \nabla _{||}p(z) = \nabla _{||}p_{_R}- \rho _{_R}g \nabla _{||}\zeta _{_R}+ \nabla _{||}\rho _{_R}g (z-\zeta _{_R}). \end{aligned}$$
(41)

We see that the fine-scale lateral pressure gradient includes a term that depends linearly on \(z\). This vertical variation in the pressure field is non-physical and introduced by our assumption that density is free to vary in two spatial dimensions but not in the third.

We can obtain a new corrected expression for the upscaled mass flux using (41) as the expression of fine-scale pressure gradient and doing the vertical integration. We obtain

$$\begin{aligned} \mathbf{F }^* = -\rho _{_R}\frac{h}{\mu }\mathbf{k }_{||}\left( \nabla _{||}p_{_R}- \rho _{_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+g_{_{||}}\mathbf{e }_{_{||}}) + C^*\nabla _{||}\rho _{_R}\right) , \end{aligned}$$
(42)

where

$$\begin{aligned} C^* = \frac{1}{2h}g_{_\perp }((\zeta _{_M}-\zeta _{_R})^2-(\zeta _{_{\text {T}}} - \zeta _{_R})^2). \end{aligned}$$
(43)

The mass flux expression in (42) is thus equal to the one in (40) with the additional term \(C^*\nabla _{||}\rho _{_R}\). This ‘corrective’ term is necessary to keep the coarse-scale mass-flux consistent with the fine scale one. For certain choices of \(\zeta _{_R}\), the expression of \(C^*\) becomes simpler. For instance, for \(\zeta _{_R}= \zeta _{_M}\), we get \({C^* = -\frac{1}{2}hg_{_\perp }}\). If on the other hand \(\zeta _{_R}\) is taken to be \(\frac{1}{2}(\zeta _{_M}+ \zeta _{_{\text {T}}})\), then \(C^*\) becomes zero.

It should also be noted that the term linear in \(z\) in (41) means that for situations where there is lateral variation in density, a set of horizontal, parallel isobars at the fine-scale cannot be obtained. One consequence for VE simulation is that after complete equilibrium has been achieved in a model (system at rest), the \(\hbox {CO}_2\)–water interface will not be completely flat unless the reference surface \(\zeta _{_R}\) itself is. This problem manifests itself whether one uses (40) or (42) to compute upscaled flux, but is more pronounced for (40). Using the \(\hbox {CO}_2\)–water interface as reference surface \(\zeta _{_R}\) shifts the problem away from this interface, which will then be flat for systems in equilibrium.

2.4.2 Special Case 2: Incompressible Model

By considering \(\rho \) to be constant in time and space, the equations of (39)–(40) can be divided by density, and the system is reduced to the well-known equations for a sharp-interface, incompressible system, with the right hand side now representing a volumetric source term.

$$\begin{aligned}&\phi \frac{\partial }{\partial t} h + \nabla _{||}U = H\psi \end{aligned}$$
(44)
$$\begin{aligned}&U = -\frac{h}{\mu }\mathbf{k }_{||}\left( \nabla _{||}p_{_R}- \rho _{_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+ g_{_{||}}\mathbf{e }_{_{||}})\right) \end{aligned}$$
(45)

2.5 Computation of \(\rho \) and \(\nu _p\)

The computation of the integrals \({\fancyscript{J}}_1\) and \({\fancyscript{J}}_2\) involves evaluation of \(\rho \) and \(\nu _p\) for given values of reference pressure, reference surface position, and depth. These values will generally vary from time-step to time-step in a simulation and have to be computed for each cell of the discretized grid. However, these functions are not defined by explicit formulas, but indirectly as solutions to ODEs.

There are several ways to obtain actual function values for the purposes of running a numerical simulation. The most obvious approach would be to compute the function values directly as needed using an ODE solver. This is however a computationally expensive solution, since these functions need to be evaluated in every grid-point at every time-step. Moreover, as they figure in the integrands of \({\fancyscript{J}}_1\) and \({\fancyscript{J}}_2\), the ODE solver needs to provide the function values across the whole integration interval, not just at the end points. On the other hand, it should be mentioned that the computation of \(\rho \) and \(\nu _p\) by integration of ODEs is trivially parallelizable, allowing for efficient implementation on modern computing hardware.

Another option would be to precompute the integrals for a wide range of pressures, reference surface positions, and depths. The results could be stored in lookup tables from which specific values could be extracted or interpolated as needed during simulation. This approach requires much less computation than solving the relevant ODE directly every time. In order to provide adequate accuracy, the lookup tables would however have to be large, as they need to be sufficiently densely sampled in three independent variables (two, if reference surface is fixed).

A third option is to approximate the functions during runtime using a Taylor expansion centered on the known value of the function (i.e., at the reference surface). This approach only requires knowledge of the function derivatives around \(\zeta _{_R}\). These can be computed formally for all three functions, in terms of derivatives of the function of state (\(\beta \), \(\gamma \), and higher derivatives of these). A second-order Taylor development of \(\rho \) and \(\nu _p\) is written on the general form:

$$\begin{aligned} f(z) = f(\zeta _{_R}) + f'(\zeta _{_R})(z-\zeta _{_R}) + \frac{1}{2}f''(\zeta _{_R})(z-\zeta _{_R})^2 + (z-\zeta _{_R})^2\epsilon (z-\zeta _{_R}), \end{aligned}$$
(46)

where \(\epsilon \rightarrow 0\) as \(z\rightarrow \zeta _{_R}\). The formal expressions of values and derivatives for \(\rho \) and \(\nu _p\) are provided in Appendix 2. For the sharp-interface, vertically homogeneous model, a convenient feature of the Taylor expansion approach is that the numerical integration is no longer needed to compute the involved integrals, as the integrals themselves are easily approximated by the Taylor developments.

One limitation of this approach, however, is that it requires the involved functions to have continuous derivatives, which means it cannot be used for approximations that involves crossing the liquid–vapor boundary. Also, in regions close to the critical point, the approximation will only be reasonably accurate in a very limited depth range around \(\zeta _{_R}\). This issue will be closely investigated in the following section.

3 Applicability

Vertical changes in \(\hbox {CO}_2\) density within the aquifer are determined by changes in pressure and temperature, both increasing with depth. These changes exert opposite effects on \(\hbox {CO}_2\) density, which may therefore increase, decrease, or remain roughly constant with depth. As seen in the previous section, the full inclusion of variable density adds significant complexity to the VE model. Depending on reservoir conditions and required accuracy, this additional complexity might not be needed. In this section, we examine a wide range of scenarios defined by constant temperature gradients and hydrostatic pressure. In each case, we examine the behavior of the \(\hbox {CO}_2\) density profile and mass flux and determine what vertical correction (in terms of Taylor development) would be appropriate.

3.1 The Depth–Temperature Gradient Diagram

To analyze the \(\hbox {CO}_2\) density changes at different depths and for temperature gradients, we use a 2D diagram whose horizontal axis corresponds to the temperature gradient, and vertical axis to depth. We refer to this diagram as the depth versus temperature gradient diagram (DTG diagram). Assuming hydrostatic pressure and constant water density, the region spanned by such a diagram can be seen as a nonlinear transformation of the pressure/temperature plane commonly used for the \(\hbox {CO}_2\) phase diagram (Fig. 2b). A vertical line in this diagram corresponds to the locus of pressure/temperature values encountered when moving from the surface downward. The vertical axis of the diagram has been inverted to reflect this idea.

Fig. 2
figure 2

Left A DTG diagram corresponding to a surface temperature of \(4\,^{\circ }\hbox {C}\) at a sea floor depth of 100 m. The \(\hbox {CO}_2\) phase transition lines and critical point are indicated. Right relevant part of the usual \(\hbox {CO}_2\) phase diagram, with the domain covered by the DTG diagram indicated by the gray triangular area. The lowermost point of the triangle corresponds to the sea floor bottom

We will use this format to examine vertical differences in \(\hbox {CO}_2\) density and mass flux observed for specified \(\hbox {CO}_2\) plume thickness. We construct an example diagram for an off-shore aquifer where we assume a constant water density of 1,000\(\hbox { kg/m}^3\), a sea depth of 100 m, and a sea floor temperature of \(4\,^{\circ }\hbox {C}\). We let the geothermal gradient vary from \(15\,\hbox {K/km}\) to \(60\,\hbox {K/km}\).

Values for \(\hbox {CO}_2\) density are here interpolated from a regularly sampled table based on the equation of state proposed by (Span and Wagner 1996). The table contains 2000 \(\times \) 2000 values, with pressure ranging from 0.1 to 15 MPa and temperature from 270 to \(350\,\hbox {K}\).

3.2 Vertical Differences in Density

We here examine the vertical variation in density for a \(\hbox {CO}_2\) plume of a given thickness \(h\), trapped under a confining formation, for varying depths and geothermal gradient values. We consider the relative difference between vertically averaged density \(R\) (cf. Table 1) and reference density \(\rho _{_R}\), using \(\zeta _{_{\text {M}}}\) as the reference surface. The relative density difference then has the following expression:

$$\begin{aligned} \frac{R - \rho _{_R}}{\rho _{_R}} = \frac{1}{\rho _{_R}}{\fancyscript{J}}_1(h) - 1. \end{aligned}$$
(47)

The left column diagrams of Fig. 3a and b present the relative \(\hbox {CO}_2\) density difference as contour plots on the DTG diagram (liquid–vapor boundary and supercritical region have been indicated for reference), for two different plume thicknesses. Positive values indicate that vertically averaged densities are higher than the reference, suggesting decreasing density with depth. The white region around the liquid–vapor boundary line indicates conditions where gas–liquid phase transition is encountered within the height of the plume. With the possibility of partial \(\hbox {CO}_2\) evaporation/condensation, this region requires more care in the numerical reconstruction of the vertical density profile and is thus omitted here.

For the 20-m thick plume in (a), only a small egg-shaped region around the critical point, most of which in the supercritical region, shows a difference of more than 1 % for averaged density. For the 100-m thick plume in (b), the regions where correction is needed have significantly expanded, covering most of the supercritical region and parts of the gas and liquid regions as well.

The plots on the right indicate zones where different orders of Taylor development are needed to approximate the variation in \(\hbox {CO}_2\) density in order to keep relative density error below a given tolerance threshold, which we here have set to 1 %. In the red region around the critical point, not even a second-order correction is sufficient to approximate density within the tolerance. In the white region, where a crossing of the liquid–vapor boundary will occur within the height of the plume, a Taylor approximation would not work at all. To construct these diagrams, the Taylor approximated values have been compared with values for density obtained through numerical integration of the corresponding ODE, using the MATLAB ode23 solver.

As previous work has pointed out (Bachu 2003), \(\hbox {CO}_2\) density profiles tend to remain constant or slightly increase with depth as long as the temperature gradient is high enough to avoid conditions where the liquid–vapor boundary is crossed moving downward. It might therefore seem surprising that the diagrams in Fig. 3 indicate large areas where \(\hbox {CO}_2\) density at the bottom is lower than at the top. This can be explained by the fact that the corresponding density curves presented in (Bachu 2003) involve hydrostatic pressure based on the density of the surrounding brine, whereas the hydrostatic pressure inside a \(\hbox {CO}_2\) plume is based on the density of the \(\hbox {CO}_2\) itself, significantly lower than that of brine. Figure 4 shows a sample of some reconstructed density profiles under different conditions. It is possible that, in (likely) rare cases, this vertical density difference may cause gravitational instabilities within the plume. We have however not further investigated this possibility in the present work.

Fig. 3
figure 3

Relative difference between vertically averaged and bottom (reference) \(\hbox {CO}_2\) density for plume heights of a 20 m and b 100 m, superposed on the DTG diagram, with the vertical axis indicating the depth of \(\zeta _{_{\text {M}}}\). Plots on the left display the density differences; plots on the right the corresponding zones of approximation for a selected tolerance of 1 %. In the dark blue regions, density differences are already smaller than this tolerance. In light blue regions, a first-order Taylor development is required to represent the variation in density within the tolerance. In yellow regions, a second-order development is required. In red regions, the second-order development is insufficient. The white region along the liquid–vapor boundary indicates the zone where the liquid–vapor boundary is located within the plume

Fig. 4
figure 4

Vertical \(\hbox {CO}_2\) density profiles within a 100-m thick plume, for interface depth of 400 m (top) and 850 m (bottom), and with different temperature gradients. (Sea floor temperature considered to be \(4\,^{\circ }\hbox {C}\), at a depth of 100 m). In most situations, density decreases with depth within the plume

3.3 Vertical Differences in Mass Flux

We will now study the influence of vertical density variations on \(\hbox {CO}_2\) mass flux. With the sharp-interface assumption, we see from (45) that the expression for vertically integrated \(\hbox {CO}_2\) mass flux in the incompressible case is

$$\begin{aligned} F_{{\text {incomp}}} = -\rho _{c,_R}\frac{h}{\mu _c}\mathbf{k }_{||}\left( \nabla _{||}p_{_R}- \rho _{c,_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+ g_{_{||}}\mathbf{e }_{_{||}})\right) . \end{aligned}$$
(48)

Similarly, from (38) we see that the corresponding expression in the fully compressible case is

$$\begin{aligned} F_{{\text {comp}}}&= -{\fancyscript{J}}_2(h)\frac{h}{\mu _c}\mathbf{k }_{||}\left( \nabla _{||}p_{_R}- \rho _{c,_R}(g_{_\perp }\nabla _{||}\zeta _{_R}+g_{_{||}}\mathbf{e }_{_{||}})\right) \nonumber \\&= \frac{{\fancyscript{J}}_2(h)}{\rho _{c,_R}} F_{{\text {incomp}}}. \end{aligned}$$
(49)

The relative difference in magnitude is therefore

$$\begin{aligned} \frac{||F_{{\text {comp}}}-F_{{\text {incomp}}}||}{||F_{{\text {incomp}}}||} = \frac{1}{\rho _{_R}}{\fancyscript{J}}_2(h) - 1. \end{aligned}$$
(50)

Figure 5 shows the resulting relative errors and approximation regions on the DTG diagram. Perhaps the most striking feature here is that the size and shape of the contour regions differ significantly from those in Fig. 3. A large part of the gas phase region has a 1 % or greater difference in mass flux, even while Fig. 3 shows that there is almost no corresponding difference in density. On the other hand, much of the supercritical region has a greater than 1 % difference in density, but not in mass flux.

Fig. 5
figure 5

Left Relative differences in vertically integrated \(\hbox {CO}_2\) mass flux magnitude between the fully compressible and the incompressible model, for a plume height of a 20 m and b 100 m, assuming a horizontal flow plane. Negative values signify lower mass flux in the compressible model. Right plot of the corresponding zones of approximation, for a selected tolerance of 1 %. The coloring of zones has the same meaning as in Fig. 4

It may seem surprising to find a noticeable difference in mass flux magnitude even at conditions where the density profile remains virtually constant in depth. However, at the fine scale, the mass flux is a product of a volumetric flux and a density. The density varies with depth according to ODE (16), which is governed by two terms that tend to cancel out (involving the coefficients of isothermal compressibility and of isobaric thermal expansion). On the other hand, the variation of the volumetric flux is scaled by the \(\nu _p\) function, defined by ODE (24), involves the isobaric compressibility coefficient only. The function \(\nu _p\) describes how, for a given depth, local pressure reacts to changes in reference pressure. At any given depth temperature is constant, and \(\nu _p\) thus describes a change in pressure that is not counteracted by first-order thermal effects. As such, even under conditions where density remains fairly constant in depth, the changes in volumetric flux can in some cases lead to noticeable differences in mass flux under the fully compressible model.

4 Simulated Test Cases

To assess the impact of variable density, we ran numerical simulations on three simple scenarios based on the sharp-interface model. In each scenario, we compared the incompressible, the semi-compressible, and the fully compressible VE model for the \(\hbox {CO}_2\) phase (brine density assumed constant).

The simulator code we implemented employs a fully implicit numerical scheme using automatic differentiation (Neidinger 2010), within the framework of the MATLAB Reservoir Simulation Toolbox (Lie et al. 2010). Automatic differentiation is based on the idea that all simulation variables, as well as all quantities derived thereof, are represented by numeric types that also contain complete information about their partial derivatives with respect to each simulation variable. Any computation involving these types propagates and updates the derivative information using standard derivative rules. Since the system Jacobians are obtained directly as a side effect of computing the expressions themselves, automatic differentiation allows for rapid and easy implementation of fully implicit model prototypes using a standard Newton-Raphson approach.

Values for \(\hbox {CO}_2\) density are obtained using interpolation of sampled tables computed according to the equation of state proposed in (Span and Wagner 1996). The reference surface is set to the brine–\(\hbox {CO}_2\) interface \(\zeta _{\text {M}}\). For the fully compressible model, \(\rho \) and \(\nu _p\) are approximated using a second-order Taylor expansion from this reference surface. Although the accuracy of this approach degrades when approaching the critical point, we conclude that the results are accurate enough for the purpose of comparing the models in the scenarios investigated. This is supported by good comparisons with full 3D simulations (presented only for Scenario 1).

In order to obtain close-to-critical conditions for \(\hbox {CO}_2\), all our scenarios consider relatively high values for the thermal gradient. For low thermal gradients, the depths corresponding to critical temperature and critical pressure, respectively, would be farther apart, and vertical variation in \(\hbox {CO}_2\) density would be less important.

4.1 Scenario 1: \(\hbox {CO}_2\) Injection into Horizontal Aquifer

In this scenario, we model injection of \(\hbox {CO}_2\) into a horizontal aquifer with impermeable, flat caprock. We consider the case of injection along a horizontal well located at the bottom of the aquifer, aligned with the y-direction. Since we have symmetry along this direction, we model only an x–z slice of the domain, and by vertical integration the simulation is essentially reduced to a single dimension. The lateral extent of the resulting one-dimensional model is 80 km, which we discretize as a single row of cells with hydrostatic pressure boundary conditions at the two ends. The injection well is located in the center of this domain, 40 km from either boundary. Actual examples of horizontal wells for injection of \(\hbox {CO}_2\) are the In Salah Gas Project in Algeria and the Weyburn Field in Canada (IPCC 2005).

The modeled aquifer is 150 m thick and located at a depth of 750 m, with a constant rock porosity of 0.2 and permeability of 400 mD, roughly comparable to, e.g., parts of the Carrizo-Wilcox aquifer (Hesse et al. 2008). We assume initial pressure to be hydrostatic, with a constant brine density of 1,050\(\hbox { kg/m}^3\). Temperature is given by a surface temperature of \(279.15\,\hbox {K}\) (\(6\,^{\circ }\hbox {C}\)) and a geothermal temperature gradient of \(40\,\hbox {K/km}\).

We consider an injection at a rate of 3.33 megatons of \(\hbox {CO}_2\) per year per unit (kilometer) of injection well for 19 years, followed by a 51-year migration period (total simulation time of 60 years). A separate simulation is run for each of the three density models. Since the effects of vertical density variations increase with plume height, we aim to obtain a plume that does not spread out too quickly. Therefore, we choose viscosity values for \(\hbox {CO}_2\) and brine that give a ratio close to 1 (\(5.3\times 10^{-2}\) and \(5.4\times 10^{-2}\)cP, respectively). For the incompressible model, \(\hbox {CO}_2\) density is set to \(315.5\hbox { kg/m}^3\), which corresponds to density at fluid-static pressure and thermal equilibrium. Although this choice will be inaccurate in the presence of overpressure during injection, it is the better choice for describing \(\hbox {CO}_2\) density in the post-injection phase.

In Fig. 6 below, we present the simulation outcomes at the end of the injection (year 19), the first year after injection has ended (year 20), and the end of the simulation (year 60). Each column presents, for a particular year, the plots for interface depth, \(\hbox {CO}_2\) pressure, density, and mass flux across the extent of the simulation domain. The depth plot has its second axis inverted for a more intuitive representation of the plume shape.

Fig. 6
figure 6

Graphs representing \(\hbox {CO}_2\) depth profile, pressure, density, and mass flux for selected years in Scenario 1. Graphs in blue (marked with circles) represent results from using the incompressible \(\hbox {CO}_2\) model, the green graphs (stars) represent the semi-compressible model, and red graphs (triangles) the fully compressible model. For pressure and density, solid lines represent values at the \(\hbox {CO}_2\)–water interface, and dashed lines represent values at the top of the aquifer. Note that for the density plots, only the fully compressible model has separate lines for top and interface values, as the other models assume constant vertical density

In the figure we note differences between the incompressible and compressible models both in terms of interface position, pressure, density, and mass flux. Given that all three plumes contain the same amount of mass, we note that the plume of incompressible \(\hbox {CO}_2\) has lower density and hence a larger volume than the others. During injection, the overpressure in the incompressible model is significantly higher than for the other models, due to the larger volume of displaced fluid. After injection, the pressure drops instantly in the incompressible case, but only gradually in the compressible cases, where continuously expanding plumes push on the surrounding brine and drive flow toward the boundaries.

Comparing the two compressible models, we find interface depths, pressures, and mass fluxes to be very similar. On the other hand, there are marked differences in terms of \(\hbox {CO}_2\) density. Whereas the density at the interface in the fully compressible model is relatively close to, but slightly less than, that of the semi-compressible model, the density at the top is significantly higher. Despite this difference it should be noted that, when integrated across height, the total \(\hbox {CO}_2\) masses in the two models for a given vertical column do not significantly differ. This can also be inferred from the respective depth plots, keeping in mind that the total plume masses are the same.

Figure 7 relates to the fully compressible model only. The left plot traces out the pressure and temperature values at the \(\hbox {CO}_2\)–water interface for year 19, 20, and 60 in the \(\hbox {CO}_2\) phase diagram. The point where the three curves meet corresponds to the condition at the domain boundaries, whereas the opposite endpoints represent the deepest points of the respective plume interfaces. We note that the interface conditions at all times remain fully within the supercritical zone, with boundary conditions fixed relatively close to the critical point. The right plot shows the same part of the \(\hbox {CO}_2\) phase diagram, this time with a color map representing zones of approximation similarly to the lower right plot of Fig. 3b (but using the phase diagram rather than the DTG diagram). Comparing the left and right plots of Fig. 7, we see that conditions at the plume interface enter the red approximation zone, meaning that a second-order Taylor development is insufficient to compute average density within 1 % of the exact value for a 100-m tall plume. As such, our simulation result (which is based on Taylor approximation) is not exact within this tolerance. If higher precision is needed, the use of finely sampled tables or direct integration would be necessary. On the other hand, we note that although we purposefully designed the scenario to present conditions with high-density variations, the difference in the simulation results for the semi-compressible and the fully compressible model remains small.

Fig. 7
figure 7

Left Conditions at the \(\hbox {CO}_2\)–water interface for the fully compressible model in Scenario 1, plotted on the \(\hbox {CO}_2\) phase diagram. The cyan curve (squares) represents year 19, the magenta curve (triangles) year 20, and the black curve (stars) year 60. For reference, the contour lines on the left plot represent isovalues for \(\hbox {CO}_2\) density (in \(\hbox {kg/m}^3\)). Right Zones of approximation, defined in the same way as those for vertically averaged density in Fig. 3, computed for a plume height of 100 m and a tolerance of 1 %

In order to assess the accuracy of using the VE assumption in this scenario, we compare the simulation outcome using the fully compressible VE model with that of a full 3D simulation. Similar to the VE simulations, the 3D simulation uses a fully implicit, finite-volume numerical scheme solved using automatic differentiation and Newton-Raphson. A uniform spatial resolution is used, with 100 cells along the x-axis and 90 along the y-axis. We use linear relative permeabilities to limit differences caused by the vertical discretization. As a sharp interface is assumed, we use zero capillary pressure. The comparison is presented in Fig. 8, where we see a good correspondence between the resulting depth profiles. Similar correspondences were also seen for pressure and density (not shown here).

Fig. 8
figure 8

Comparing the depth profile from a simulation using the compressible VE model with that obtained from a full 3D simulation. The red curves (triangles) represent the VE model and the black curves (stars) the full 3D model

4.2 Scenario 2: Gravity-Driven Flow of \(\hbox {CO}_2\) Along a Sloping Aquifer

We now consider gravity-driven flow of a \(\hbox {CO}_2\) plume as it migrates upward along a gently sloping, open aquifer. The aquifer caprock is assumed flat, with a constant upward slope of one-half degree toward the right. We simulate flow along a 160 km stretch of this slope, the bottom of which is located at a depth of 1,397 m, and the top reaches the surface at 0 m. As in the previous scenario, we consider a situation symmetrical along the y-axis, and therefore model our domain in one dimension as a single row of cells. Rock porosity is 0.1, permeability 200 mD, and the aquifer has a constant thickness of 200 m. The geothermal gradient is \(45\,\hbox {K/km}\), with a surface temperature of \(9\,^{\circ }\hbox {C}\), and brine density is set to 1,100 \(\hbox { kg/m}^3\). Under these conditions, \(\hbox {CO}_2\) will transition from supercritical to gas phase somewhere in the middle of the simulated domain, passing close to but avoiding the critical point. We impose hydrostatic pressure boundary conditions at the two end points, no flow conditions everywhere else, and set fluid viscosities to \(5.36\times 10^{-2}\) cP for \(\hbox {CO}_2\) and \(6.5\times 10^{-1}\) cP for brine. We simulate the gravity-driven flow of a \(\hbox {CO}_2\) plume of 30 megaton per kilometer in the y-direction, initially positioned at a depth of 877 m, as it slowly migrates upward for a total simulation time of 400 years, using 10-year timesteps. The initial plume has the shape of an inverted triangle with a base of 7.6 km and an maximal height of 164 m for the fully compressible model. Initial pressure at the \(\hbox {CO}_2\)–brine interface is hydrostatic, and the plume is in vertical equilibrium. For the incompressible model, \(\hbox {CO}_2\) density is set to 433 kg/m3, which corresponds to the density at the \(\hbox {CO}_2\)–brine interface for the lower most point of the initial plume (according to the fully compressible model).

Figure 9 presents the simulation outcomes for years 40 and 400. We observe that although our simulation parameters were chosen to highlight density variation (as seen on the density plot for year 40), the semi-compressible and the fully compressible model have virtually identical plume profiles, pressures, and mass fluxes. On the other hand, we note an appreciable difference in the advancement of the plume between the compressible and incompressible models toward the end of the simulation period, where the compressible plumes have advanced about fifteen kilometers further than the incompressible one. The compressible plumes also end up being more voluminous than the incompressible one, due to the considerable decrease in \(\hbox {CO}_2\) density as the plume is moving upward. We also notice differences between the incompressible and compressible models in terms of mass flux, which is overally higher for the compressible model at year 40. On the other hand, at year 400, the compressible plume has a lower mass flux than the incompressible one toward the deep (left) side of the model, whereas the situation is reversed toward the shallow end. Since we do not include capillary or dissolution trapping in our model, and since no \(\hbox {CO}_2\) has left the domain during simulation, the total mass of each plume remains identical.

Fig. 9
figure 9

Graphs representing \(\hbox {CO}_2\) depth profile, pressure, density, and mass flux for year 40 and 400 in Scenario 2. Graphs in blue (circles) represent results from using the incompressible \(\hbox {CO}_2\) model, the green graphs (stars) represent the semi-compressible model, and red graphs (triangles) the fully compressible model. For pressure and density, whole lines represent values at the \(\hbox {CO}_2\)–water interface, and dashed lines represent values at the top of the aquifer. Note that for the density plots, only the fully compressible model has separate lines for top and interface values, as the other models assume constant vertical density. Also note that only the local plume region has been plotted for each year, not the entire 160 km domain

Figure 10 presents the conditions on the \(\hbox {CO}_2\)–water interface of the fully compressible \(\hbox {CO}_2\) plume, similarly to Fig. 7 for the previous scenario. On the left plot, we can see how these conditions gradually change from supercritical to gas phase for \(\hbox {CO}_2\) as we move along the interface from the deep to the shallow end of the simulated aquifer domain. Comparing the left and right plots of the figure, we note that the interface conditions barely avoid the white region in the right plot. Passing through the white region would signify the crossing of the liquid–vapor boundary for a plume height of 100 m or more, thus implying the need of a more advanced model.

Fig. 10
figure 10

Left Conditions at the \(\hbox {CO}_2\)–water interface for the fully compressible model in Scenario 2, plotted on the \(\hbox {CO}_2\) phase diagram. The cyan curve (squares) represents year 40 and the magenta curve (triangles) year 400. For reference, the contour lines on the left plot represent isovalues for \(\hbox {CO}_2\) density (in \(\hbox {kg/m}^3\)). Right Zones of approximation, defined in the same way as those for vertically averaged density in Fig. 3, computed for a plume height of 100 m and a tolerance of 1 %

4.3 Scenario 3: \(\hbox {CO}_2\) Injection into Structural Trap, at Conditions Close to Critical Point

In the last example, we study the injection and accumulation of \(\hbox {CO}_2\) into a large dome. We here aim to obtain a plume of significant thickness and study it as it settles toward equilibrium. This time, we consider a bell-shaped domain of 10 \(\times \) 10 km, measuring 160 m from top to bottom in the z direction. The apex is located at a depth of 700 m, and the spill point at 860 m. For the first 25 years, \(\hbox {CO}_2\) is injected at a rate of 4 megatons per year (injection point located at the apex). Thereafter, we continue the simulation for another 175 years in order for the plume to settle within the confines of the dome. The injection rate of \(\hbox {CO}_2\) has been chosen so that that no \(\hbox {CO}_2\) spills out of the dome during the injection period for any of the models. The permeability is 1.1 Darcy, and the porosity 0.2. Brine density is 1,100 \(\hbox { kg/m}^3\), and the temperature gradient is \(40^{\circ }/\hbox {km}\), with a surface temperature of \(6\,^{\circ }\hbox {C}\). Water and \(\hbox {CO}_2\) viscosities are \(6.5\times 10^{-1}\) and \(5.36\times 10^{-2}\) cP, respectively. As we expect the dome to fill up about half way, the \(\hbox {CO}_2\) density for the incompressible model was chosen based on conditions at a depth of 775.4 m, close to the midpoint between apex and spill point depths, yielding a value of 503.4 \(6\hbox { kg/m}^3\). (If the apex had instead been chosen as reference, the density would have been significantly lower, at \(330\hbox { kg/m}^3\)). In order to reduce the influence of the constant-pressure boundary conditions, we extend the domain horizontally 10 km in each direction. The total extent of the simulated domain thus becomes 30 km \(\times \) 30 km, discretized as a regular grid with 75 \(\times \) 75 cells.

The simulation results for year 25, 26, and 200 are shown in Fig. 11. During the injection period, the injection pressure pushes \(\hbox {CO}_2\) downward and to the sides. After injection ends, the pressure drops and the injected \(\hbox {CO}_2\) slowly levels out toward an equilibrium state with a horizontal \(\hbox {CO}_2\)–brine interface. We note that the direction of the mass flux switches immediately in the incompressible case, whereas it changes only gradually for the compressible models.

Fig. 11
figure 11

Graphs representing \(\hbox {CO}_2\) depth profile, pressure, density, and mass flux for selected years in Scenario 3. Graphs in blue (circles) represent results from using the incompressible \(\hbox {CO}_2\) model, the green graphs (stars) represent the semi-compressible model, and red graphs (triangles) the fully compressible model. For pressure and density, whole lines represent values at the \(\hbox {CO}_2\)–water interface, and dashed lines represent values at the top of the aquifer. Note that for the density plots, only the fully compressible model has separate lines for top and interface values, as the other models assume constant vertical density. Note that only a cross-section of the local area around the dome is plotted

At the last year of the simulation, equilibrium has almost been obtained, with a flat interface and negligible mass flux. The final interface positions for all three models closely match at this point. We also note fairly small pressure differences between the three models. The fully compressible model exhibits an intra-plume vertical density difference of 18.5 % (the top being heavier than the bottom). Note that this is an overestimation due to the use of Taylor expansion in a regime where the error term is large—the \(\hbox {CO}_2\) density at caprock level obtained directly from the equation of state would yield a density difference closer to 15 %. In any case, the slightly different interface positions and densities help explain why all three plumes, all containing the same mass of \(\hbox {CO}_2\), end up with almost identical thickness. Interface conditions remain firmly within the supercritical region and in relative proximity to the critical point at all times.

5 Summary and Conclusions

Models based on the assumption of vertical equilibrium have regained interest in recent years because of their potential for fast and accurate simulation of large-scale long-term \(\hbox {CO}_2\) storage scenarios. The work presented in this paper is part of ongoing efforts to develop and adapt such models for more complex problems. To this end, we present a novel and mathematically consistent way of handling \(\hbox {CO}_2\) density variations within the VE framework. The model formulation captures vertical variation in density through the definition and subsequent integration of two ordinary differential equations. We have also studied the impact of variable vertical density for a range of conditions and examined its influence in three specific scenarios. We have also made some additional observations, including the decreasing density with depth within the \(\hbox {CO}_2\) plume, the interdependence of the upscaled quantities on the same set of fine-scale variables, and the need for a correction term in the semi-compressible model to remain consistent with the implied fine-scale flux.

While the presented model introduces a complete treatment of variable \(\hbox {CO}_2\) density within a VE framework, it should be noted that we have made a number of simplifying assumptions in order to facilitate the model formulation and isolate the impact of \(\hbox {CO}_2\) density variations. A more complete model would include physical effects such as capillarity, residual saturations, leakage of brine through caprock, and mixing of phases. As mentioned in the introduction, these effects have been modeled within the VE setting in previous work, and therefore may be included along with the vertical density model described herein for a more complete model. Moreover, whereas thermal equilibrium is assumed at all times, this would not be the case in the vicinity of the injection point. For instance, as discussed in (Vilarrasa et al. 2013b), the injection of liquid \(\hbox {CO}_2\) would lead to smaller displaced volumes close to the well, resulting in lower induced overpressure overall.

The handling of vertical density changes in the vertical integration is not straightforward. Even if we approximate the involved differential equations using Taylor expansions, the inclusion of full vertical density variations involves computational overhead and introduces complexity to the simulation code. Although we have seen from the two previous sections that the model may predict considerable density differences between top and bottom of the plume, the impact on the actual mass movement is generally limited, and the much simpler semi-compressible model seems to produce very similar results in all scenarios tested so far. The scenarios presented in the previous section were tuned to model conditions where density changes would be important, but despite these choices, the differences in plume shape, pressures, and fluxes remain small. This remained the case when we later tried to re-run the scenarios while allowing for variable viscosity. However, it is possible that the large differences in vertical density might in itself be interesting for some applications, such as interpretation of seismic or microgravimetric measurements for monitoring purposes.

A couple of observations may provide some intuition on the reason mass flux changes so little with depth even in the fully compressible model. First, increases in pressure and temperature have opposite effects on \(\hbox {CO}_2\) density, and these effects are similar in magnitude. As we have seen, in almost all cases, the temperature effect is strongest, causing \(\hbox {CO}_2\) to expand slightly with depth within the plume. On the other hand, the change in pressure gradient with depth, described by \(\nu _p\), is not directly influenced by the temperature gradient. As a consequence, the model predicts the Darcy volumetric flux to increase slightly with depth. Multiplied by a density that decreases slightly with depth, the combined impact of depth on the resulting mass flux tends to be small.

The effect of variable density becomes progressively stronger as one approaches the critical point. However, at the same time the accuracy of the Taylor approximation deteriorates, and \(\rho \) and \(\nu _p\) would eventually need to be computed in a different way. Moreover, when the crossing of the liquid–vapor boundary occurs within the interior of the plume, a more careful approach coupled with a thermal model would be required.

The results of this study have several implications for the role of variable \(\hbox {CO}_2\) density in realistic storage projects. First, a complete model is now available that allows for either full- or semi-compressibility of \(\hbox {CO}_2\), which before was either approximated as a constant value or in some other approximate way. Second, a systematic approach is proposed to identify conditions where the full compressibility model is needed to satisfy the required accuracy. In doing so, we may conclude that the vast majority of long-term, large-scale storage systems require only a semi-compressible model, which substantially reduces the complexity of the computational implementation and execution. It remains the subject of future work to determine if the full model is needed more often in coupled systems in which a more accurate vertical description of density and pressure are required. In general, this work gives the needed flexibility to move between models of different complexity as the specific \(\hbox {CO}_2\) storage problem dictates.