AU-BCE-EE / tric-fil-mod

A trickling filter model to simulate air treatment, written in Python
GNU General Public License v3.0
0 stars 0 forks source link

Test model by comparison to closed-form simplified solutions #10

Open sashahafner opened 1 year ago

sashahafner commented 1 year ago

We discussed some possible ways to do this using simpler analytical solutions that assume e.g., no mass transfer rate limitation.

sashahafner commented 1 year ago

See slide from the air treatment course.

sashahafner commented 1 year ago

image

sashahafner commented 1 year ago

Current priority

sashahafner commented 1 year ago

See demo 13. Looks good. There is an effect of cell size that is not shown (numerical model has slightly better removal with only 10 layers).

cf54c3a2bf57206b10ae673d12badd529f9e6036

sashahafner commented 1 year ago

Solution I used was

c_g (z) = c_g,i * exp(-kga / v_g * z)
sashahafner commented 1 year ago

Need to sort out partitioning and liquid/gas fractions for checking reaction rate. In that approach we can assume equilibrium everywhere.

sashahafner commented 1 year ago

See demo 14 for comparison to solution with non-instant reaction but a high mass transfer rate (equilibrium everywhere). Looks good.

7f44241863145938155006f0ee0510c99cc36f01

Solution I used was

c_t(z) = c_t,i * exp(-k * por_l / (v_g * Kaw) * z)
c_g = Kaw * ct / (por_g * Kaw _ por_l)
c_l = ct / (por_g * Kaw _ por_l)

Note that c_t = total concentration and is per m3 filter (including volume of gas, water, and media). In contrast c_l and c_g are per m3 solution and gas phase. I made some mistakes in the closed-form solution related to all this at the start. And for comparison, note that cgin and clin need to be at equilibrium for input to the numerical model.

afeilberg commented 1 year ago

Looks good!

Suggestion, maybe optional:

z = np.linspace(0, L, 25) Kga = pred1['Kga'] cg = cgin np.exp(-Kga / v_g z)

So if we run at different pH, we use the same pH for simple solution and model

sashahafner commented 1 year ago

@afeilberg will push a new demo showing how increasing pH gets gas phase profile close to analytical solution.

afeilberg commented 1 year ago

Push does not really work. I have created a local sub-folder under demos called "15_transport_comp_pH" and I can see it in GitHub desktop image

Then I select Push under Repository and "something" happens, but no changes appear in the GitHub web version. Am I missing something...?

sashahafner commented 1 year ago

@afeilberg I just pushed it with 098223dbbcfb2fce5da80d62973e823fe305dbae. But I should have looked here first, because I think you just missed the commit step. To do that you need to add a message in the lower left box, then click "commit". That saves the changes locally. Only after that would you have something to push, which just copies the new commit(s) to the remote GitHub repo online. But now I've done it so you will have to discard your changes and pull the latest version before doing anything else.

afeilberg commented 1 year ago

Got it, yes I forgot the commit step...