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

I tried both of them, and the problem has been figured out. Thank you very much!

Awesome! Do you mind sharing it was the solution was?

Not at all. The solution is changing the log level to INFO then reduce the atol.