From 2269552a7b47096ef43e3636e0a74049bf7d2d47 Mon Sep 17 00:00:00 2001 From: KulaginVladimir Date: Thu, 11 Jul 2024 21:07:08 +0300 Subject: [PATCH] added UG for surface kinetics --- docs/source/theory.rst | 2 +- docs/source/userguide/boundary_conditions.rst | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/docs/source/theory.rst b/docs/source/theory.rst index 55b39909c..b075f322b 100644 --- a/docs/source/theory.rst +++ b/docs/source/theory.rst @@ -287,7 +287,7 @@ Evolution of hydrogen surface concentration is determined by the atomic flux bal :width: 800 :alt: Idealised potential energy diagram for hydrogen near a surface of an endothermic metal. Energy levels are measured from the :math:`\mathrm{H}_2` state - Potential energy diagram for hydrogen near a surface of an endothermic metal. Energy levels are measured from the :math:`\mathrm{H}_2` state + Idealised potential energy diagram for hydrogen near a surface of an endothermic metal. Energy levels are measured from the :math:`\mathrm{H}_2` state The governing equation for surface species is: diff --git a/docs/source/userguide/boundary_conditions.rst b/docs/source/userguide/boundary_conditions.rst index c1cf4b3ab..fa2719263 100644 --- a/docs/source/userguide/boundary_conditions.rst +++ b/docs/source/userguide/boundary_conditions.rst @@ -105,6 +105,31 @@ Where :math:`Kd` is the dissociation coefficient, :math:`P` is the partial press my_bc = DissociationFlux(surfaces=2, Kd_0=2, E_Kd=0.1, P=1e05) +Kinetic surface model (1D) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Surface kinetic model can be included to account for the evolution of adsorbed hydrogen on a surface with the :class:`festim.SurfaceKinetics` class. +Refer to the :ref:`theory` section for more details. + +.. testcode:: BCs + + from festim import t + import fenics as f + + def k_bs(T, surf_conc, t): + return 1e13*f.exp(-0.2/k_b/T) + + def k_sb(T, surf_conc, t): + return 1e13*f.exp(-1.0/k_b/T) + + def J_vs(T, surf_conc, t): + + J_des = 2e13*surf_conc**2*f.exp(-1.2/k_b/T) + J_ads = 1e17*(1-surf_conc/1e17)**2*f.conditional(t<10, 1, 0) + + return J_ads - J_des + + my_bc = SurfaceKinetics(k_bs=k_bs, k_sb=k_sb, lambda_IS=1.1e-10, n_surf=1e17, n_IS=6.3e28, J_vs=J_vs, surfaces=3, initial_condition=0, t=t) Sievert's law of solubility ^^^^^^^^^^^^^^^^^^^^^^^^^^^