Problems on SurfaceReactionBC

Hi all, I’m trying to use the SurfaceReactionBC in FESTIM v2.0 but the exported files are all zero. I’m confused with it.

Here is the minimal script:

import festim as F

Alumina = F.HydrogenTransportProblem()
import numpy as np

Deuterium = F.Species("D")
Alumina.species = [Deuterium]

Alumina.mesh = F.Mesh1D(np.linspace(0, 1e-3, 100))

from festim import SurfaceSubdomain1D

Alumina_upstream = SurfaceSubdomain1D(id=1,x=0)
Alumina_downstream = SurfaceSubdomain1D(id=2,x=1e-3)

from festim import VolumeSubdomain1D

Al2O3 = F.Material(
    D_0=1e-10,
    E_D=0.5,
    K_S_0=1e20,
    E_K_S=0.5
)

Alumina_volume = VolumeSubdomain1D(
    id=1,
    material=Al2O3,
    borders=[0, 1e-3]
)

subdomains = [
    Alumina_upstream,
    Alumina_downstream,
    Alumina_volume
]

Alumina.subdomains = subdomains

Alumina.surface_to_volume = {
    Alumina_upstream: Alumina_volume,
}

from festim import SurfaceReactionBC

boundary_condition = SurfaceReactionBC(
    reactant=[Deuterium, Deuterium],
    gas_pressure=1e5,
    k_r0=1e-13,
    E_kr=0.1,
    k_d0=1,
    E_kd=0,
    subdomain=Alumina_upstream
)

Alumina.boundary_conditions = [boundary_condition]

Alumina.temperature = 823

Alumina.settings = F.Settings(
    atol=1e10,
    rtol=1e-10,
    final_time=1e3,
)

Alumina.settings.stepsize = F.Stepsize(1)

import os

folder = "Alumina"

os.makedirs(folder, exist_ok=True)

flux_in = F.SurfaceFlux(
    field=Deuterium,
    surface=Alumina_upstream,
    filename=folder + "/flux_in.csv",
)

flux_out = F.SurfaceFlux(
    field=Deuterium,
    surface=Alumina_downstream,
    filename=folder + "/flux_out.csv",
)

Alumina.exports = [flux_in, flux_out]

Alumina.initialise()
Alumina.run()

The exact version I use is FESTIM 2.0b2.

Can anyone help with this problem? Thank you very much for your efforts in advance!

@xinshen have you tried:

  • changing the log level to INFO to have more information? See this tutorial. If you see that each timestep solves in 0 iteration that means your absolute tolerance atol is too high.
  • upgrading to the latest FESTIM release conda install -c conda-forge festim