Skip to content
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

Merged

Conversation

KulaginVladimir
Copy link
Collaborator

@KulaginVladimir KulaginVladimir commented Jul 11, 2024

Proposed changes

Following #798, this PR adds documentation on the SurfaceKinetics BC to Theory and UG sections of docs.

To-do:

  • Theory section
  • UG section

Types of changes

What types of changes does your code introduce to FESTIM?

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code refactoring
  • Documentation Update (if none of the other choices apply)
  • New tests

Checklist

  • Black formatted
  • Unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)

@KulaginVladimir KulaginVladimir added this to the v1.3 milestone Jul 11, 2024
@KulaginVladimir KulaginVladimir linked an issue Jul 11, 2024 that may be closed by this pull request
Copy link

codecov bot commented Jul 11, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.55%. Comparing base (02f79ad) to head (71a7551).
Report is 114 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

@KulaginVladimir KulaginVladimir marked this pull request as ready for review July 11, 2024 18:45
@KulaginVladimir
Copy link
Collaborator Author

KulaginVladimir commented Jul 11, 2024

@RemDelaporteMathurin, I think version this can be used as a starting point.

There are two points that I'd like to discuss:

  1. Theory section: what do you think of it? Shall we extend it?
  2. Shall we note in UG that AdsorbedHydrogen was designed specifically for SurfaceKinetics?

@RemDelaporteMathurin
Copy link
Collaborator

I think we also need @ehodille 's review on this one

Copy link
Collaborator

@RemDelaporteMathurin RemDelaporteMathurin left a 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.

docs/source/theory.rst Outdated Show resolved Hide resolved
docs/source/theory.rst Outdated Show resolved Hide resolved
docs/source/theory.rst Outdated Show resolved Hide resolved
docs/source/theory.rst Outdated Show resolved Hide resolved
docs/source/theory.rst Outdated Show resolved Hide resolved
docs/source/userguide/boundary_conditions.rst Outdated Show resolved Hide resolved
docs/source/userguide/boundary_conditions.rst Outdated Show resolved Hide resolved
Copy link
Collaborator

@RemDelaporteMathurin RemDelaporteMathurin left a 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
Copy link
Contributor

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).

Copy link
Collaborator Author

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.

\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
Copy link
Contributor

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) ?

Copy link
Collaborator Author

@KulaginVladimir KulaginVladimir Jul 22, 2024

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

Copy link
Collaborator

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.).

Copy link
Collaborator Author

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 ...?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably

Copy link
Collaborator

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

Copy link
Collaborator Author

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?

Copy link
Collaborator

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

Copy link
Collaborator Author

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.

Copy link
Collaborator

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 KulaginVladimir mentioned this pull request Jul 23, 2024
6 tasks
@RemDelaporteMathurin
Copy link
Collaborator

@KulaginVladimir I think we can merge this unless @ehodille has something else to add

@RemDelaporteMathurin RemDelaporteMathurin merged commit b884fdf into festim-dev:main Jul 26, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Theory background for SurfaceKinetics
3 participants