Which kind of algorithm can be used to solve electrochemical system problems? #1811
Replies: 4 comments 4 replies
-
Hi @WenRui-Lv666 To get started, use FickianDiffusion for the mass transfer and reaction, then use the Like I said, it's complicated. We have explained the process in several papers, such as the one by @ma-sadeghi in JES, so hopefully this is enough to get you started. Come back and ask further questions on this thread if you need. |
Beta Was this translation helpful? Give feedback.
-
Dear all,
Hi! Based on what we discussed in the email last time, I have done some programming work, but there are still some problems.
1. Now I can solve the butler-volmer equation and get the kinetic constant k. But which type of source terms should I choose to solve the FickianDiffusion? I once wanted to use butler_volmer_voltage, but generic_source_term has no attribute butler_volmer_voltage.
2. Could you give me an example about using the Nernst-Planck? Since nothing is displayed on the webpage.
3. Is the source code of the algorithm open to public? If it open to public, where can I access it?
…-----原始邮件-----
发件人:jgostick ***@***.***>
发送时间:2020-12-16 05:28:32 (星期三)
收件人: PMEAL/OpenPNM ***@***.***>
抄送: WenRui-Lv666 ***@***.***>, Mention ***@***.***>
主题: Re: [PMEAL/OpenPNM] Which kind of algorithm can be used to solve electrochemical system problems? (#1811)
Hi @WenRui-Lv666
I would suggest starting without using the Nernst-Planck, since this is a bit complex. In fact the simulation of electrodes is a bit complex. We have plans to make a pre-set algorithm for doing polarization simulations, but have not taken any steps towards that yet. So, you'll have to do it manually.
To get started, use FickianDiffusion for the mass transfer and reaction, then use the rate in each pore where a reaction occurs as a rate boundary conditions in the OhmicConduction for the ion transport (converting between moles and coulombs of course). This process is iterative. You start by 'guessing' a voltage in the electrode phase, which lets you calculate the activation overpotential in each pore. (You can usually safely assume that that solid phase voltage loss is negligible). Using the over-potential you can solve the butler-volmer equation, to find the kinetic constant k for the reaction (r = k * C). This k value is then put into the FickianDiffusion algorithm as a source term. After solving the FickianDiffusion you then use the rate of consumption as a boundary condition in the OhmicConduction, which solves for the voltage in each pore required to deliver ions at the specified rate. You can then check this voltage against the one you assume to find the overpotential for use in the butler-volmer equation, and update your guess accordingly, either up or down.
Like I said, it's complicated. We have explained the process in several papers, such as the one by @ma-sadeghi in JES, so hopefully this is enough to get you started. Come back and ask further questions on this thread if you need.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Beta Was this translation helpful? Give feedback.
-
Dear all:
Thanks for your suggestions, I have updated the version and successfully added butler_volmer_voltage to OhmicConduction and added butler_volmer_conc to FickianDiffusion. Since my research object is redox flow battery, there are still some problems at present:
1. FickianDiffusion does not include advective terms. So, I plan to use AdvectionDiffusion for mass transfer. Since source term already present in given pores, cannot also assign boundary conditions, what should I do to set the concentration boundary condition?(the concentration of vanadium at the inlet was held constant at Cin, while no-flux condition was applied to the rest of the boundaries.)
2. When I solved mass transfer and put pore.concentration as initial condition into the OhmicConduction, the solver does not converge.
Should I use the BV_c.rate in butler_volmer_conc as rate boundary condition to solve OhmicConduction?
(converting between moles and coulombs)
…-----原始邮件-----
发件人:"Amin Sadeghi" ***@***.***>
发送时间:2021-06-18 00:30:19 (星期五)
收件人: PMEAL/OpenPNM ***@***.***>
抄送: WenRui-Lv666 ***@***.***>, Mention ***@***.***>
主题: Re: [PMEAL/OpenPNM] Which kind of algorithm can be used to solve electrochemical system problems? (#1811)
Which version are you using? I can see in our dev branch that openpnm.models.physics.source_terms indeed has butler_volmer_voltage:
https://github.com/PMEAL/OpenPNM/blob/6ab87fdb596639c303e914782030aac265c08625/openpnm/models/physics/source_terms.py#L1030-L1038
Also, note that since Butler-Volmer appears in both your mass transfer and your charge transfer, you need to add butler_volmer_voltage to your charge transfer algorithm (ex. OhmicConduction) and add butler_volmer_conc to your mass transfer algorithm (ex. FickianDiffusion). These two models are identical in nature with two subtle differences:
in the former, the main variable X is pore.voltage, while in the latter it is pore.concentration, and
the units are C/s and mol/s, respectively.
I'm not very much familiar with the NernstPlanck algorithm, @mkaguer knows more.
The source code is available and is on our dev branch under openpnm.algorithms.NernstPlanck* family.
PS. I just checked our latest version on pip and conda, and it seems that you do have everything I mentioned above in those as well. So, maybe you should just update your openpnm using conda update openpnm.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Beta Was this translation helpful? Give feedback.
-
Thank you for your suggestions. I am about to finish building the model, but there are still some parameters that I don’t know how to choose:
1. There are many calculation modes for the reaction rate, and I am not sure which one should be used.
2. The boundary of the electrolyte voltage at the membrane interface is φm, but I am not sure whether to use φm or use the overpotential at the membrane interfaceas the boundary value in Ohmic-Conduction.
My code has been attached to the email, I would be appreciate if you can give me some suggestions.
https://gist.github.com/ma-sadeghi/13274e14780cc1ad9f9ec66c245710a3
|
Beta Was this translation helpful? Give feedback.
-
I am currently learning to use OpenPNM for my research on vanadium redox flow batteries and would like to setup a model similar to the one described in:
And I am very excited to see some researchers doing similar research. Just the following issue talk about (#1331)
In this issue I found rikvg using the algorithm called
ChargeConservationNernstPlanck
, but I did not find this algorithm inopenpnm
.I was wondering which algorithm is used in the paper by Prof. Gostick et al.? Or what kind of algorithm can be used to solve electrochemical system problems like this?
Thank you in advance!
Kind regards,
Lv
Beta Was this translation helpful? Give feedback.
All reactions