Discretization error

One thought I had was trying to figure out what discretization I really need when making models. The discretization error in the GRM for ncol relates to column dispersion and I think the npar related to pore diffusion.

I was wondering how to calculate what this error related to discretization is. If I know my axial dispersion is about 1e-7 and I want to keep my numerical error below 1e-9 what discretization do I need? Same for npar.

This would also be good general information to have.

For highly non-linear systems this is not trivial to answer. Column length and flow rate will also play a role.

I figure it would be a function of the flow rate and the column length or the bead radius but it would be nice to have an upper bound that discretization error <= f(length, flow_rate, ncol, col_porosity) etc

In the end, the error depends on all parameters including the inlet concentration profile.
It even depends on the norm in which it is measured.

From a priori convergence analysis, one often obtains estimates like

\lVert c - c_{h}\rVert \leq C h^k, \label{eq:error-apriori} \tag{E}

where c is the true solution of the model, c_h is the numerical approximation, h is a discretization parameter (i.e., the finite volume cell size, finite element size, finite difference step size), k is the order of convergence, and C > 0 is some constant.

As mentioned before, the constant C and the order k depend on the norm \lVert \cdot \rVert (e.g., L_2, L_\infty) in general. It is also important where the error is measured (e.g., only at the outlet, over the full column length, including particles, only at the end time etc.).

It’s even more complicated: The constant C and the order k depend on the solution c itself. The maximal order is typically only reached for smooth solutions c.

Long story short: We don’t know C and can only compute it for a specific problem (i.e., specific set of parameters with that specific inlet profile). Without knowing C, it is impossible to determine h such that the error is lower than a given tolerance (using a priori estimates of this type).

How to compute k and C for some specific problem: We require an analytical solution (or a very precise reference solution). We then compute an error plot by evaluating \eqref{eq:error-apriori} for many values of h that get smaller and smaller (e.g., h = 10^{-i}, i = 1,2, \dots). This way, we make sure to reach the asymptotic regime, where the error is proportional to h^k. The constants k and C are then estimated from the plot (using only datapoints from the asymptotic regime) by regression.

Error estimates that are more precise than \eqref{eq:error-apriori} are often given by a posteriori error estimators. However, these may also contain constants, which are difficult to compute and you have to solve the problem at least once.