Source code for festim.exports.derived_quantities.adsorbed_hydrogen
from festim import SurfaceQuantity
import fenics as f
[docs]
class AdsorbedHydrogen(SurfaceQuantity):
"""
Object to compute the value of the adsorbed H concentration,
defined with the ``SurfaceKinetics`` boundary condition on a given surface.
.. warning::
The ``AdsorbedHydrogen`` export can be used only if the ``SurfaceKinetics``
condition is defined on the same surface!
Args:
surface (int): the surface id
Attributes:
surface (int): the surface id
export_unit (str): the unit of the derived quantity in the export file
title (str): the title of the derived quantity
show_units (bool): show the units in the title in the derived quantities file
function (dolfin.function.function.Function): the solution function of the hydrogen adsorbed field
"""
def __init__(self, surface) -> None:
super().__init__(field="adsorbed", surface=surface)
@property
def export_unit(self):
return f"H m-2"
@property
def title(self):
quantity_title = f"Adsorbed H on surface {self.surface}"
if self.show_units:
return quantity_title + f" ({self.export_unit})"
else:
return quantity_title
def compute(self):
return f.assemble(self.function * self.ds(self.surface))