-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Theory and UG for the SurfaceKinetics
BC
#808
Theory and UG for the SurfaceKinetics
BC
#808
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #808 +/- ##
=======================================
Coverage 99.55% 99.55%
=======================================
Files 61 61
Lines 2705 2711 +6
=======================================
+ Hits 2693 2699 +6
Misses 12 12 ☔ View full report in Codecov by Sentry. |
@RemDelaporteMathurin, I think version this can be used as a starting point. There are two points that I'd like to discuss:
|
I think we also need @ehodille 's review on this one |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a very good starting point. I would specify that the AdsorbedConcentration is only for SurfaceKinetics yes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me!
I'll let @ehodille add his review.
|
||
Modelling hydrogen retention or outgassing might require considering the kinetics of surface processes. | ||
A representative example is the hydrogen uptake from a gas phase, when the energy of incident atoms/molecules is not high enough to | ||
overcome the surface barrier for implantation. The general approach to account for surface kinetics :cite:`Pick1985, Hodille2017, Guterl2019, Schmid2021` consists in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vladimir, do you not want to also mention your papers ? I think you implemented and used this kind of model in you laser desorption papers (but it is up to you).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ehodille, well, I used, yes. However, I intended to mention here the pioneers, whereas my papers on LID were mainly based on your works.
docs/source/theory.rst
Outdated
\dfrac{d c_\mathrm{s}}{d t} = J_\mathrm{bs} - J_\mathrm{sb} + J_\mathrm{vs}~\text{on}~\delta\Omega | ||
|
||
where :math:`J_\mathrm{bs}\,[\mathrm{m}^{-2}\,\mathrm{s}^{-1}]` is the flux of hydrogen atoms from the subsurface (bulk region just beneath the surface) onto the surface, | ||
:math:`J_\mathrm{sb}\,[\mathrm{m}^{-2}\,\mathrm{s}^{-1}]` is the flux of hydrogen atoms from the surface into the subsurface, and :math:`J_\mathrm{vs}\,[\mathrm{m}^{-2}\,\mathrm{s}^{-1}]` is the net flux of hydrogen |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does J_vs contains the desorbing flux and all abstraction fluxes (ELy Rideal recombination etc) ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, yes, but it should be defined by a user. Here is an example from one validation case on how it can be defined:
def J_vs(T, surf_conc, t):
phi_atom = SP * Gamma_atom * (1 - surf_conc / n_surf) # adsorption
phi_exc = Gamma_atom * sigma_exc * surf_conc # abstraction
phi_des = 2 * nu0 * (lambda_des * surf_conc) ** 2 * f.exp(-2 * E_des / F.k_B / T) # desorption
return phi_atom - phi_exc - phi_des
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this could be explicited then? something like
is the net flux of hydrogen atoms from the vacuum onto the surface (eg recombination, dissociation, Eley-Rideal recombination, etc.).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case, should we somehow clarify that the flux comes onto the surface: J_vs = +Dissoc. - Recomb. - Eley-Rideal recomb ...
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe just say J_vs = J_in - J_out where J_in is the sum of all fluxes coming from the vacuum to the surface and J_out from the surface to the vacuum
Or something like that and then give a few examples
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few examples on different processes that can be included?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes just like you had in your previous comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated this part. Let me know what you think.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
@KulaginVladimir I think we can merge this unless @ehodille has something else to add |
Proposed changes
Following #798, this PR adds documentation on the
SurfaceKinetics
BC to Theory and UG sections of docs.To-do:
Types of changes
What types of changes does your code introduce to FESTIM?
Checklist