# Chemical advection of a fluid in a porous media

I am trying to solve an equation for chemical advection of a fluid in a porous media with this equation:

\begin{align} \frac{\partial (\phi(x,t) C(x,t))}{\partial t} = - \nabla . (\vec{q(\phi, t, x)} C(x,t)) \end{align}

with $$\phi$$ beeing the porosity, C the concentration of an element, and $$\vec{q}$$ the fluid flux.

I have another system of equations to compute $$\phi$$ and $$\vec{q}$$ at the next time step, so I only have 1 unknown for this equation: C.

What I first did was to simplify the system that way:

\begin{align} \frac{\partial C}{\partial t} = - \frac{\vec{q}}{\phi} \nabla ( C) \end{align}

Which is a quasi-linear advection equation and easy to solve. The thing is that I would like to solve this using the conservative form without simplifying my system because mass conservation is important.

I would like to use a WENO scheme for the spatial discretization and a SSP Runge-kutta method for the time because I have sharp gradients in composition. I've already did it with the classical Burgers' equation, but I don't know what to do with $$\phi$$ in the time derivative.

Here are my 2 ideas:

either developing the time derivative that way:

\begin{align} \frac{\partial (\phi(x,t) C(x,t))}{\partial t} = \phi(x,t) \frac{\partial C(x,t)}{\partial t} + C(x,t) \frac{\partial \phi(x,t)}{\partial t} \end{align}

where I can approximate the second term because I know the value of $$\phi$$ at the next timestep. My gut feeling tells me this is a bad idea.

My second idea is to make a change of variable:

\begin{align} \phi C = \tilde{C} \end{align}

knowing that the flux is equal to this, with $$\vec{v}$$ the velocity of the fluid: $$\vec{q} = \vec{v} \times \phi$$

My equation then would becomes:

\begin{align} \frac{\partial (\tilde{C}(x,t))}{\partial t} = - \nabla . (\vec{v} \tilde{C}) \end{align}

That I should know how to solve. Then I could retrieve $$C$$ by dividing $$\tilde{C}$$ by $$\phi$$ at the next timestep.

Would that works? Or do you have other suggestions?

• The second approach is the right way to go. Commented Jan 28, 2022 at 16:18
• Thanks @DavidKetcheson that's the confirmation I was looking for :) Commented Jan 28, 2022 at 16:35