I am solving the equation $$ \frac{\partial \phi}{\partial t} = \frac{\partial}{\partial x} \left( D \frac{\partial \phi}{\partial x} + v\phi \right) $$ using finite differences. I want to include Robin boundaries, that is, boundaries that are closed to both advection and diffusion. I read this excellent question on it:
However, the actual solution to the problem is not given there. Robin boundary conditions on the left edge of the domain should read $$ \Big(D \frac{\partial \phi}{\partial x} + v\phi \Big)|_{x=0} = j_\mathrm{robin} = 0 $$ I have tried discretizing this as $$ D \frac{\phi_2-\phi_0}{\Delta x} + v\phi_1 = j_\mathrm{robin} $$ With a fictious cell with index 0 outside of the domain.
I can reorder this to get $$ \phi_2 - (j_\mathrm{robin} - v \phi_1) \frac{2 \Delta x}{D} = \phi_0 $$ The discretized equation for the left cell - with the usual 2nd order central scheme for the diffusion term and a central scheme for the advective scheme - reads
$$ \frac{\phi_1^{(t+1)}-\phi_1^{(t)}}{\Delta t} = \frac{D}{\Delta x^2} \Big(\phi_0 - 2 \phi_1 + \phi_2 \Big) + \frac{v}{2\Delta x}(\phi_2 - \phi_0) $$ I have omitted the upper indizes for the terms on the right hand side - I use an higher-order explicit scheme. We can eliminate the values for the index 0, yielding
$$ \frac{\phi_1^{(t+1)}-\phi_1^{(t)}}{\Delta t} = \frac{2D}{\Delta x^2} (\phi_2 - \phi_1) + (j_\mathrm{robin} - v\phi_1)(\frac{v}{D}-\frac{2}{\Delta x}) $$
I have tried this, basically with a Gaussian traveling into the domain boundary, and while there is a notable difference between this and the Neumann boundary (that would not be closed to advection) I nevertheless lose all mass. My question is basically whether or not this is the right approach to begin with. Thank you!