Beryllium co-deposition TDS#
This validation case is a thermo-desorption spectrum measurement perfomed by Baldwin et al. [17].
\(1 \ \mathrm{\mu m}\) thick co-deposited \(\mathrm{Be}\)-(0.1)\(\mathrm{D}\) layers were produced on 1mm radii tungsten spheres at ~\(330 \ \mathrm{K}\) via a magnetron sputtering technique under a mixed atmosphere of Ar and D at a pressure of \(0.8 \ \mathrm{Pa}\).
The TDS measurement was then performed with a heating ramp of \(0.3 \ \mathrm{K \ s^{-1}}\).
To reproduce this experiment, 2 intrinsic traps are used to emulate trapping by \(\mathrm{Be}\). The model was run with three different types of boundary conditions: Siervertās law, recombination flux and custom dynamically computed surface concentration (DSC) recombination flux proposed by Baldwin et al. [17]. Following the approach of Baldwin et al. [17], the exposure phase is not explicitly modelled. Instead, initial values are given to the trapped concentrations.
FESTIM Code#
Show code cell content
import festim as F
import fenics as f
import sympy as sp
import numpy as np
import matplotlib.pyplot as plt
implantation_temp = 300 # K
resting_time = 306
ramp = 0.3 # K/s
tds_time = (1000 - 300) / ramp
pressure = 1.33e-6 # Pa
T_D2 = 300
class RecombinationFluxDSC(F.RecombinationFlux):
"""Custom dynamically computed surface concentration (DSC) recombination flux according to Baldwin Eq 5"""
def __init__(self, Kr_0, E_Kr, order, surfaces, delta, gamma, eta) -> None:
super().__init__(Kr_0, E_Kr, order, surfaces)
self.delta = delta
self.gamma = gamma
self.eta = eta
def create_form(self, T, solute):
Kr_0_expr = f.Expression(sp.printing.ccode(self.Kr_0), t=0, degree=1)
E_Kr_expr = f.Expression(sp.printing.ccode(self.E_Kr), t=0, degree=1)
Kr = (
self.delta
* Kr_0_expr
* f.exp(-self.gamma * E_Kr_expr / F.k_B / T)
* f.exp(self.eta * solute)
)
self.form = -Kr * solute**self.order
self.sub_expressions = [Kr_0_expr, E_Kr_expr]
def run_tds(bc_type: str):
model = F.Simulation()
vertices = np.concatenate(
[
np.linspace(0, 30e-9, num=100),
np.linspace(30e-9, 1e-6, num=500),
]
)
model.mesh = F.MeshFromVertices(vertices)
beryllium = F.Material(
id=1, D_0=8e-9, E_D=0.364, S_0=2.3e22, E_S=0.174
) # m2/s # eV
model.materials = beryllium
model.T = F.Temperature(
value=sp.Piecewise(
(implantation_temp, F.t < resting_time),
(implantation_temp + ramp * (F.t - resting_time), True),
)
)
be_atom_density = 1.85e6 / 9.0122 * 6.022e23 # atom/m3
pi = 3.14
M_D2 = 6.68e-27 # kg/H molecular mass of D2
flux_from_residual_pressure = F.FluxBC(
surfaces=1, value=pressure / ((2 * pi**F.k_B * M_D2 * T_D2) ** 0.5), field=0
)
if bc_type == "Recombination flux":
model.boundary_conditions = [
flux_from_residual_pressure,
F.RecombinationFlux(Kr_0=3.4e-29, E_Kr=0.28, order=2, surfaces=1),
]
trap_1_density = 0.109 * be_atom_density
trap_2_density = 3.4e-2 * be_atom_density
E_p1 = 0.75
E_p2 = 0.93
elif bc_type == "Sieverts":
model.boundary_conditions = [
F.SievertsBC(
surfaces=1, S_0=beryllium.S_0, E_S=beryllium.E_S, pressure=pressure
)
]
trap_1_density = 0.11 * be_atom_density
trap_2_density = 0.04 * be_atom_density
E_p1 = 0.805
E_p2 = 1.070
elif bc_type == "DSC":
model.boundary_conditions = [
flux_from_residual_pressure,
RecombinationFluxDSC(
Kr_0=3.4e-29,
E_Kr=0.28,
order=2,
surfaces=1,
delta=0.1,
gamma=0.357,
eta=9.1e-25,
),
]
trap_1_density = 0.109 * be_atom_density
trap_2_density = 0.04 * be_atom_density
E_p1 = 0.798
E_p2 = 0.978
else:
raise ValueError("unknown bc_type")
trap_1 = F.Trap(
k_0=4e12 / be_atom_density,
E_k=beryllium.E_D,
p_0=4e12,
E_p=E_p1,
density=trap_1_density,
materials=beryllium,
)
trap_2 = F.Trap(
k_0=4e12 / be_atom_density,
E_k=beryllium.E_D,
p_0=4e12,
E_p=E_p2,
density=trap_2_density,
materials=beryllium,
)
model.traps = [trap_1, trap_2]
model.initial_conditions = [
F.InitialCondition(field=1, value=0.7 * trap_1_density),
F.InitialCondition(field=2, value=0.3 * trap_2_density),
]
model.dt = F.Stepsize(
initial_value=0.5,
stepsize_change_ratio=1.1,
t_stop=resting_time - 20,
stepsize_stop_max=20,
dt_min=1e-05,
)
model.settings = F.Settings(
absolute_tolerance=1e10,
relative_tolerance=1e-09,
final_time=tds_time + resting_time,
)
list_of_derived_quantities = [
F.TotalVolume("solute", volume=1),
F.TotalVolume("retention", volume=1),
F.TotalVolume("1", volume=1),
F.TotalVolume("2", volume=1),
F.AverageVolume("T", volume=1),
F.HydrogenFlux(surface=1),
F.HydrogenFlux(surface=2),
]
derived_quantities = F.DerivedQuantities(
list_of_derived_quantities,
)
model.exports = [derived_quantities]
model.initialise()
model.run()
return derived_quantities
derived_quantities_map = {}
bc_types = ["Sieverts", "Recombination flux", "DSC"]
for bc_type in bc_types:
derived_quantities_map[bc_type] = run_tds(bc_type)
/home/docs/checkouts/readthedocs.org/user_builds/festim-vv-report/conda/v1.1/lib/python3.11/site-packages/festim/stepsize.py:54: DeprecationWarning: stepsize_stop_max and t_stop attributes will be deprecated in a future release, please use max_stepsize instead
warnings.warn(
Calling FFC just-in-time (JIT) compiler, this may take some time.
Defining initial values
Defining variational problem
Defining source terms
Defining boundary conditions
Time stepping...
Calling FFC just-in-time (JIT) compiler, this may take some time.
Calling FFC just-in-time (JIT) compiler, this may take some time.
Calling FFC just-in-time (JIT) compiler, this may take some time.
0.0 % 5.0e-01 s Elapsed time so far: 2.7 s
Calling FFC just-in-time (JIT) compiler, this may take some time.
Calling FFC just-in-time (JIT) compiler, this may take some time.
0.0 % 1.1e+00 s Elapsed time so far: 4.0 s
0.1 % 1.7e+00 s Elapsed time so far: 4.0 s
0.1 % 2.3e+00 s Elapsed time so far: 4.0 s
0.1 % 3.1e+00 s Elapsed time so far: 4.1 s
0.1 % 3.9e+00 s Elapsed time so far: 4.1 s
0.2 % 4.7e+00 s Elapsed time so far: 4.1 s
0.2 % 5.7e+00 s Elapsed time so far: 4.2 s
0.3 % 6.8e+00 s Elapsed time so far: 4.2 s
0.3 % 8.0e+00 s Elapsed time so far: 4.2 s
0.3 % 9.3e+00 s Elapsed time so far: 4.2 s
0.4 % 1.1e+01 s Elapsed time so far: 4.3 s
0.5 % 1.2e+01 s Elapsed time so far: 4.3 s
0.5 % 1.4e+01 s Elapsed time so far: 4.3 s
0.6 % 1.6e+01 s Elapsed time so far: 4.3 s
0.7 % 1.8e+01 s Elapsed time so far: 4.4 s
0.8 % 2.0e+01 s Elapsed time so far: 4.4 s
0.9 % 2.3e+01 s Elapsed time so far: 4.4 s
1.0 % 2.6e+01 s Elapsed time so far: 4.5 s
1.1 % 2.9e+01 s Elapsed time so far: 4.5 s
1.2 % 3.2e+01 s Elapsed time so far: 4.5 s
1.4 % 3.6e+01 s Elapsed time so far: 4.5 s
1.5 % 4.0e+01 s Elapsed time so far: 4.6 s
1.7 % 4.4e+01 s Elapsed time so far: 4.6 s
1.9 % 4.9e+01 s Elapsed time so far: 4.6 s
2.1 % 5.5e+01 s Elapsed time so far: 4.6 s
2.3 % 6.1e+01 s Elapsed time so far: 4.7 s
2.5 % 6.7e+01 s Elapsed time so far: 4.7 s
2.8 % 7.4e+01 s Elapsed time so far: 4.7 s
3.1 % 8.2e+01 s Elapsed time so far: 4.7 s
3.5 % 9.1e+01 s Elapsed time so far: 4.7 s
3.8 % 1.0e+02 s Elapsed time so far: 4.8 s
4.2 % 1.1e+02 s Elapsed time so far: 4.8 s
4.7 % 1.2e+02 s Elapsed time so far: 4.8 s
5.1 % 1.4e+02 s Elapsed time so far: 4.8 s
5.7 % 1.5e+02 s Elapsed time so far: 4.9 s
6.2 % 1.7e+02 s Elapsed time so far: 4.9 s
6.9 % 1.8e+02 s Elapsed time so far: 4.9 s
7.6 % 2.0e+02 s Elapsed time so far: 4.9 s
8.4 % 2.2e+02 s Elapsed time so far: 4.9 s
9.2 % 2.4e+02 s Elapsed time so far: 5.0 s
10.2 % 2.7e+02 s Elapsed time so far: 5.0 s
11.2 % 3.0e+02 s Elapsed time so far: 5.0 s
12.0 % 3.2e+02 s Elapsed time so far: 5.0 s
12.7 % 3.4e+02 s Elapsed time so far: 5.1 s
13.5 % 3.6e+02 s Elapsed time so far: 5.1 s
14.2 % 3.8e+02 s Elapsed time so far: 5.1 s
15.0 % 4.0e+02 s Elapsed time so far: 5.2 s
15.8 % 4.2e+02 s Elapsed time so far: 5.2 s
16.5 % 4.4e+02 s Elapsed time so far: 5.2 s
17.3 % 4.6e+02 s Elapsed time so far: 5.2 s
18.0 % 4.8e+02 s Elapsed time so far: 5.3 s
18.8 % 5.0e+02 s Elapsed time so far: 5.3 s
19.6 % 5.2e+02 s Elapsed time so far: 5.3 s
20.3 % 5.4e+02 s Elapsed time so far: 5.4 s
21.1 % 5.6e+02 s Elapsed time so far: 5.4 s
21.8 % 5.8e+02 s Elapsed time so far: 5.4 s
22.6 % 6.0e+02 s Elapsed time so far: 5.4 s
23.4 % 6.2e+02 s Elapsed time so far: 5.5 s
24.1 % 6.4e+02 s Elapsed time so far: 5.5 s
24.9 % 6.6e+02 s Elapsed time so far: 5.5 s
25.6 % 6.8e+02 s Elapsed time so far: 5.5 s
26.4 % 7.0e+02 s Elapsed time so far: 5.6 s
27.1 % 7.2e+02 s Elapsed time so far: 5.6 s
27.9 % 7.4e+02 s Elapsed time so far: 5.6 s
28.6 % 7.6e+02 s Elapsed time so far: 5.7 s
29.4 % 7.8e+02 s Elapsed time so far: 5.7 s
30.2 % 8.0e+02 s Elapsed time so far: 5.7 s
30.9 % 8.2e+02 s Elapsed time so far: 5.7 s
31.7 % 8.4e+02 s Elapsed time so far: 5.8 s
32.4 % 8.6e+02 s Elapsed time so far: 5.8 s
33.2 % 8.8e+02 s Elapsed time so far: 5.8 s
34.0 % 9.0e+02 s Elapsed time so far: 5.9 s
34.7 % 9.2e+02 s Elapsed time so far: 5.9 s
35.5 % 9.4e+02 s Elapsed time so far: 5.9 s
36.2 % 9.6e+02 s Elapsed time so far: 5.9 s
37.0 % 9.8e+02 s Elapsed time so far: 6.0 s
37.7 % 1.0e+03 s Elapsed time so far: 6.0 s
38.5 % 1.0e+03 s Elapsed time so far: 6.0 s
39.3 % 1.0e+03 s Elapsed time so far: 6.0 s
40.0 % 1.1e+03 s Elapsed time so far: 6.1 s
40.8 % 1.1e+03 s Elapsed time so far: 6.1 s
41.5 % 1.1e+03 s Elapsed time so far: 6.1 s
42.3 % 1.1e+03 s Elapsed time so far: 6.2 s
43.0 % 1.1e+03 s Elapsed time so far: 6.2 s
43.8 % 1.2e+03 s Elapsed time so far: 6.2 s
44.6 % 1.2e+03 s Elapsed time so far: 6.2 s
45.3 % 1.2e+03 s Elapsed time so far: 6.3 s
46.1 % 1.2e+03 s Elapsed time so far: 6.3 s
46.8 % 1.2e+03 s Elapsed time so far: 6.3 s
47.6 % 1.3e+03 s Elapsed time so far: 6.4 s
48.4 % 1.3e+03 s Elapsed time so far: 6.4 s
49.1 % 1.3e+03 s Elapsed time so far: 6.4 s
49.9 % 1.3e+03 s Elapsed time so far: 6.5 s
50.6 % 1.3e+03 s Elapsed time so far: 6.5 s
51.4 % 1.4e+03 s Elapsed time so far: 6.5 s
52.1 % 1.4e+03 s Elapsed time so far: 6.5 s
52.9 % 1.4e+03 s Elapsed time so far: 6.6 s
53.7 % 1.4e+03 s Elapsed time so far: 6.6 s
54.4 % 1.4e+03 s Elapsed time so far: 6.6 s
55.2 % 1.5e+03 s Elapsed time so far: 6.7 s
55.9 % 1.5e+03 s Elapsed time so far: 6.7 s
56.7 % 1.5e+03 s Elapsed time so far: 6.7 s
57.5 % 1.5e+03 s Elapsed time so far: 6.7 s
58.2 % 1.5e+03 s Elapsed time so far: 6.8 s
59.0 % 1.6e+03 s Elapsed time so far: 6.8 s
59.7 % 1.6e+03 s Elapsed time so far: 6.8 s
60.5 % 1.6e+03 s Elapsed time so far: 6.9 s
61.2 % 1.6e+03 s Elapsed time so far: 6.9 s
62.0 % 1.6e+03 s Elapsed time so far: 6.9 s
62.8 % 1.7e+03 s Elapsed time so far: 6.9 s
63.5 % 1.7e+03 s Elapsed time so far: 7.0 s
64.3 % 1.7e+03 s Elapsed time so far: 7.0 s
65.0 % 1.7e+03 s Elapsed time so far: 7.0 s
65.8 % 1.7e+03 s Elapsed time so far: 7.0 s
66.5 % 1.8e+03 s Elapsed time so far: 7.1 s
67.3 % 1.8e+03 s Elapsed time so far: 7.1 s
68.1 % 1.8e+03 s Elapsed time so far: 7.1 s
68.8 % 1.8e+03 s Elapsed time so far: 7.2 s
69.6 % 1.8e+03 s Elapsed time so far: 7.2 s
70.3 % 1.9e+03 s Elapsed time so far: 7.2 s
71.1 % 1.9e+03 s Elapsed time so far: 7.2 s
71.8 % 1.9e+03 s Elapsed time so far: 7.3 s
72.6 % 1.9e+03 s Elapsed time so far: 7.3 s
73.4 % 1.9e+03 s Elapsed time so far: 7.3 s
74.1 % 2.0e+03 s Elapsed time so far: 7.3 s
74.9 % 2.0e+03 s Elapsed time so far: 7.4 s
75.6 % 2.0e+03 s Elapsed time so far: 7.4 s
76.4 % 2.0e+03 s Elapsed time so far: 7.4 s
77.2 % 2.0e+03 s Elapsed time so far: 7.4 s
77.9 % 2.1e+03 s Elapsed time so far: 7.4 s
78.7 % 2.1e+03 s Elapsed time so far: 7.5 s
79.4 % 2.1e+03 s Elapsed time so far: 7.5 s
80.2 % 2.1e+03 s Elapsed time so far: 7.5 s
80.9 % 2.1e+03 s Elapsed time so far: 7.5 s
81.7 % 2.2e+03 s Elapsed time so far: 7.6 s
82.5 % 2.2e+03 s Elapsed time so far: 7.6 s
83.2 % 2.2e+03 s Elapsed time so far: 7.6 s
84.0 % 2.2e+03 s Elapsed time so far: 7.6 s
84.7 % 2.2e+03 s Elapsed time so far: 7.6 s
85.5 % 2.3e+03 s Elapsed time so far: 7.7 s
86.2 % 2.3e+03 s Elapsed time so far: 7.7 s
87.0 % 2.3e+03 s Elapsed time so far: 7.7 s
87.8 % 2.3e+03 s Elapsed time so far: 7.7 s
88.5 % 2.3e+03 s Elapsed time so far: 7.8 s
89.3 % 2.4e+03 s Elapsed time so far: 7.8 s
90.0 % 2.4e+03 s Elapsed time so far: 7.8 s
90.8 % 2.4e+03 s Elapsed time so far: 7.8 s
91.5 % 2.4e+03 s Elapsed time so far: 7.8 s
92.3 % 2.4e+03 s Elapsed time so far: 7.8 s
93.1 % 2.5e+03 s Elapsed time so far: 7.9 s
93.8 % 2.5e+03 s Elapsed time so far: 7.9 s
94.6 % 2.5e+03 s Elapsed time so far: 7.9 s
95.3 % 2.5e+03 s Elapsed time so far: 7.9 s
96.1 % 2.5e+03 s Elapsed time so far: 7.9 s
96.8 % 2.6e+03 s Elapsed time so far: 8.0 s
97.6 % 2.6e+03 s Elapsed time so far: 8.0 s
98.4 % 2.6e+03 s Elapsed time so far: 8.0 s
99.1 % 2.6e+03 s Elapsed time so far: 8.0 s
99.9 % 2.6e+03 s Elapsed time so far: 8.0 s
100.0 % 2.6e+03 s Elapsed time so far: 8.0 s
/home/docs/checkouts/readthedocs.org/user_builds/festim-vv-report/conda/v1.1/lib/python3.11/site-packages/festim/stepsize.py:54: DeprecationWarning: stepsize_stop_max and t_stop attributes will be deprecated in a future release, please use max_stepsize instead
warnings.warn(
Defining initial values
Defining variational problem
Defining source terms
Defining boundary conditions
Time stepping...
Calling FFC just-in-time (JIT) compiler, this may take some time.
Calling FFC just-in-time (JIT) compiler, this may take some time.
0.0 % 5.0e-01 s Elapsed time so far: 1.8 s
0.0 % 1.1e+00 s Elapsed time so far: 1.8 s
0.1 % 1.7e+00 s Elapsed time so far: 1.8 s
0.1 % 2.3e+00 s Elapsed time so far: 1.9 s
0.1 % 3.1e+00 s Elapsed time so far: 1.9 s
0.1 % 3.9e+00 s Elapsed time so far: 1.9 s
0.2 % 4.7e+00 s Elapsed time so far: 2.0 s
0.2 % 5.7e+00 s Elapsed time so far: 2.0 s
0.3 % 6.8e+00 s Elapsed time so far: 2.0 s
0.3 % 8.0e+00 s Elapsed time so far: 2.0 s
0.3 % 9.3e+00 s Elapsed time so far: 2.0 s
0.4 % 1.1e+01 s Elapsed time so far: 2.1 s
0.5 % 1.2e+01 s Elapsed time so far: 2.1 s
0.5 % 1.4e+01 s Elapsed time so far: 2.1 s
0.6 % 1.6e+01 s Elapsed time so far: 2.1 s
0.7 % 1.8e+01 s Elapsed time so far: 2.2 s
0.8 % 2.0e+01 s Elapsed time so far: 2.2 s
0.9 % 2.3e+01 s Elapsed time so far: 2.2 s
1.0 % 2.6e+01 s Elapsed time so far: 2.2 s
1.1 % 2.9e+01 s Elapsed time so far: 2.2 s
1.2 % 3.2e+01 s Elapsed time so far: 2.2 s
1.4 % 3.6e+01 s Elapsed time so far: 2.3 s
1.5 % 4.0e+01 s Elapsed time so far: 2.3 s
1.7 % 4.4e+01 s Elapsed time so far: 2.3 s
1.9 % 4.9e+01 s Elapsed time so far: 2.3 s
2.1 % 5.5e+01 s Elapsed time so far: 2.3 s
2.3 % 6.1e+01 s Elapsed time so far: 2.4 s
2.5 % 6.7e+01 s Elapsed time so far: 2.4 s
2.8 % 7.4e+01 s Elapsed time so far: 2.4 s
3.1 % 8.2e+01 s Elapsed time so far: 2.4 s
3.5 % 9.1e+01 s Elapsed time so far: 2.4 s
3.8 % 1.0e+02 s Elapsed time so far: 2.4 s
4.2 % 1.1e+02 s Elapsed time so far: 2.5 s
4.7 % 1.2e+02 s Elapsed time so far: 2.5 s
5.1 % 1.4e+02 s Elapsed time so far: 2.5 s
5.7 % 1.5e+02 s Elapsed time so far: 2.5 s
6.2 % 1.7e+02 s Elapsed time so far: 2.5 s
6.9 % 1.8e+02 s Elapsed time so far: 2.6 s
7.6 % 2.0e+02 s Elapsed time so far: 2.6 s
8.4 % 2.2e+02 s Elapsed time so far: 2.6 s
9.2 % 2.4e+02 s Elapsed time so far: 2.6 s
10.2 % 2.7e+02 s Elapsed time so far: 2.6 s
11.2 % 3.0e+02 s Elapsed time so far: 2.6 s
12.0 % 3.2e+02 s Elapsed time so far: 2.7 s
12.7 % 3.4e+02 s Elapsed time so far: 2.7 s
13.5 % 3.6e+02 s Elapsed time so far: 2.7 s
14.2 % 3.8e+02 s Elapsed time so far: 2.8 s
15.0 % 4.0e+02 s Elapsed time so far: 2.8 s
15.8 % 4.2e+02 s Elapsed time so far: 2.8 s
16.5 % 4.4e+02 s Elapsed time so far: 2.8 s
17.3 % 4.6e+02 s Elapsed time so far: 2.9 s
18.0 % 4.8e+02 s Elapsed time so far: 2.9 s
18.8 % 5.0e+02 s Elapsed time so far: 2.9 s
19.6 % 5.2e+02 s Elapsed time so far: 2.9 s
20.3 % 5.4e+02 s Elapsed time so far: 3.0 s
21.1 % 5.6e+02 s Elapsed time so far: 3.0 s
21.8 % 5.8e+02 s Elapsed time so far: 3.0 s
22.6 % 6.0e+02 s Elapsed time so far: 3.1 s
23.4 % 6.2e+02 s Elapsed time so far: 3.1 s
24.1 % 6.4e+02 s Elapsed time so far: 3.1 s
24.9 % 6.6e+02 s Elapsed time so far: 3.1 s
25.6 % 6.8e+02 s Elapsed time so far: 3.2 s
26.4 % 7.0e+02 s Elapsed time so far: 3.2 s
27.1 % 7.2e+02 s Elapsed time so far: 3.2 s
27.9 % 7.4e+02 s Elapsed time so far: 3.2 s
28.6 % 7.6e+02 s Elapsed time so far: 3.3 s
29.4 % 7.8e+02 s Elapsed time so far: 3.3 s
30.2 % 8.0e+02 s Elapsed time so far: 3.3 s
30.9 % 8.2e+02 s Elapsed time so far: 3.4 s
31.7 % 8.4e+02 s Elapsed time so far: 3.4 s
32.4 % 8.6e+02 s Elapsed time so far: 3.4 s
33.2 % 8.8e+02 s Elapsed time so far: 3.4 s
34.0 % 9.0e+02 s Elapsed time so far: 3.5 s
34.7 % 9.2e+02 s Elapsed time so far: 3.5 s
35.5 % 9.4e+02 s Elapsed time so far: 3.5 s
36.2 % 9.6e+02 s Elapsed time so far: 3.6 s
37.0 % 9.8e+02 s Elapsed time so far: 3.6 s
37.7 % 1.0e+03 s Elapsed time so far: 3.6 s
38.5 % 1.0e+03 s Elapsed time so far: 3.6 s
39.3 % 1.0e+03 s Elapsed time so far: 3.7 s
40.0 % 1.1e+03 s Elapsed time so far: 3.7 s
40.8 % 1.1e+03 s Elapsed time so far: 3.7 s
41.5 % 1.1e+03 s Elapsed time so far: 3.7 s
42.3 % 1.1e+03 s Elapsed time so far: 3.8 s
43.0 % 1.1e+03 s Elapsed time so far: 3.8 s
43.8 % 1.2e+03 s Elapsed time so far: 3.8 s
44.6 % 1.2e+03 s Elapsed time so far: 3.9 s
45.3 % 1.2e+03 s Elapsed time so far: 3.9 s
46.1 % 1.2e+03 s Elapsed time so far: 3.9 s
46.8 % 1.2e+03 s Elapsed time so far: 3.9 s
47.6 % 1.3e+03 s Elapsed time so far: 4.0 s
48.4 % 1.3e+03 s Elapsed time so far: 4.0 s
49.1 % 1.3e+03 s Elapsed time so far: 4.0 s
49.9 % 1.3e+03 s Elapsed time so far: 4.0 s
50.6 % 1.3e+03 s Elapsed time so far: 4.1 s
51.4 % 1.4e+03 s Elapsed time so far: 4.1 s
52.1 % 1.4e+03 s Elapsed time so far: 4.1 s
52.9 % 1.4e+03 s Elapsed time so far: 4.2 s
53.7 % 1.4e+03 s Elapsed time so far: 4.2 s
54.4 % 1.4e+03 s Elapsed time so far: 4.2 s
55.2 % 1.5e+03 s Elapsed time so far: 4.2 s
55.9 % 1.5e+03 s Elapsed time so far: 4.3 s
56.7 % 1.5e+03 s Elapsed time so far: 4.3 s
57.5 % 1.5e+03 s Elapsed time so far: 4.3 s
58.2 % 1.5e+03 s Elapsed time so far: 4.4 s
59.0 % 1.6e+03 s Elapsed time so far: 4.4 s
59.7 % 1.6e+03 s Elapsed time so far: 4.4 s
60.5 % 1.6e+03 s Elapsed time so far: 4.4 s
61.2 % 1.6e+03 s Elapsed time so far: 4.5 s
62.0 % 1.6e+03 s Elapsed time so far: 4.5 s
62.8 % 1.7e+03 s Elapsed time so far: 4.5 s
63.5 % 1.7e+03 s Elapsed time so far: 4.5 s
64.3 % 1.7e+03 s Elapsed time so far: 4.6 s
65.0 % 1.7e+03 s Elapsed time so far: 4.6 s
65.8 % 1.7e+03 s Elapsed time so far: 4.6 s
66.5 % 1.8e+03 s Elapsed time so far: 4.7 s
67.3 % 1.8e+03 s Elapsed time so far: 4.7 s
68.1 % 1.8e+03 s Elapsed time so far: 4.7 s
68.8 % 1.8e+03 s Elapsed time so far: 4.7 s
69.6 % 1.8e+03 s Elapsed time so far: 4.8 s
70.3 % 1.9e+03 s Elapsed time so far: 4.8 s
71.1 % 1.9e+03 s Elapsed time so far: 4.8 s
71.8 % 1.9e+03 s Elapsed time so far: 4.8 s
72.6 % 1.9e+03 s Elapsed time so far: 4.9 s
73.4 % 1.9e+03 s Elapsed time so far: 4.9 s
74.1 % 2.0e+03 s Elapsed time so far: 4.9 s
74.9 % 2.0e+03 s Elapsed time so far: 5.0 s
75.6 % 2.0e+03 s Elapsed time so far: 5.0 s
76.4 % 2.0e+03 s Elapsed time so far: 5.0 s
77.2 % 2.0e+03 s Elapsed time so far: 5.0 s
77.9 % 2.1e+03 s Elapsed time so far: 5.1 s
78.7 % 2.1e+03 s Elapsed time so far: 5.1 s
79.4 % 2.1e+03 s Elapsed time so far: 5.1 s
80.2 % 2.1e+03 s Elapsed time so far: 5.1 s
80.9 % 2.1e+03 s Elapsed time so far: 5.2 s
81.7 % 2.2e+03 s Elapsed time so far: 5.2 s
82.5 % 2.2e+03 s Elapsed time so far: 5.2 s
83.2 % 2.2e+03 s Elapsed time so far: 5.2 s
84.0 % 2.2e+03 s Elapsed time so far: 5.3 s
84.7 % 2.2e+03 s Elapsed time so far: 5.3 s
85.5 % 2.3e+03 s Elapsed time so far: 5.3 s
86.2 % 2.3e+03 s Elapsed time so far: 5.4 s
87.0 % 2.3e+03 s Elapsed time so far: 5.4 s
87.8 % 2.3e+03 s Elapsed time so far: 5.4 s
88.5 % 2.3e+03 s Elapsed time so far: 5.4 s
89.3 % 2.4e+03 s Elapsed time so far: 5.5 s
90.0 % 2.4e+03 s Elapsed time so far: 5.5 s
90.8 % 2.4e+03 s Elapsed time so far: 5.5 s
91.5 % 2.4e+03 s Elapsed time so far: 5.6 s
92.3 % 2.4e+03 s Elapsed time so far: 5.6 s
93.1 % 2.5e+03 s Elapsed time so far: 5.6 s
93.8 % 2.5e+03 s Elapsed time so far: 5.6 s
94.6 % 2.5e+03 s Elapsed time so far: 5.7 s
95.3 % 2.5e+03 s Elapsed time so far: 5.7 s
96.1 % 2.5e+03 s Elapsed time so far: 5.7 s
96.8 % 2.6e+03 s Elapsed time so far: 5.7 s
97.6 % 2.6e+03 s Elapsed time so far: 5.8 s
98.4 % 2.6e+03 s Elapsed time so far: 5.8 s
99.1 % 2.6e+03 s Elapsed time so far: 5.8 s
99.9 % 2.6e+03 s Elapsed time so far: 5.9 s
100.0 % 2.6e+03 s Elapsed time so far: 5.9 s
Defining initial values
Defining variational problem
Defining source terms
Defining boundary conditions
Time stepping...
Calling FFC just-in-time (JIT) compiler, this may take some time.
/home/docs/checkouts/readthedocs.org/user_builds/festim-vv-report/conda/v1.1/lib/python3.11/site-packages/festim/stepsize.py:54: DeprecationWarning: stepsize_stop_max and t_stop attributes will be deprecated in a future release, please use max_stepsize instead
warnings.warn(
Calling FFC just-in-time (JIT) compiler, this may take some time.
0.0 % 5.0e-01 s Elapsed time so far: 1.8 s
0.0 % 1.1e+00 s Elapsed time so far: 1.8 s
0.1 % 1.7e+00 s Elapsed time so far: 1.9 s
0.1 % 2.3e+00 s Elapsed time so far: 1.9 s
0.1 % 3.1e+00 s Elapsed time so far: 1.9 s
0.1 % 3.9e+00 s Elapsed time so far: 2.0 s
0.2 % 4.7e+00 s Elapsed time so far: 2.0 s
0.2 % 5.7e+00 s Elapsed time so far: 2.0 s
0.3 % 6.8e+00 s Elapsed time so far: 2.0 s
0.3 % 8.0e+00 s Elapsed time so far: 2.1 s
0.3 % 9.3e+00 s Elapsed time so far: 2.1 s
0.4 % 1.1e+01 s Elapsed time so far: 2.1 s
0.5 % 1.2e+01 s Elapsed time so far: 2.1 s
0.5 % 1.4e+01 s Elapsed time so far: 2.2 s
0.6 % 1.6e+01 s Elapsed time so far: 2.2 s
0.7 % 1.8e+01 s Elapsed time so far: 2.2 s
0.8 % 2.0e+01 s Elapsed time so far: 2.2 s
0.9 % 2.3e+01 s Elapsed time so far: 2.3 s
1.0 % 2.6e+01 s Elapsed time so far: 2.3 s
1.1 % 2.9e+01 s Elapsed time so far: 2.3 s
1.2 % 3.2e+01 s Elapsed time so far: 2.4 s
1.4 % 3.6e+01 s Elapsed time so far: 2.4 s
1.5 % 4.0e+01 s Elapsed time so far: 2.4 s
1.7 % 4.4e+01 s Elapsed time so far: 2.4 s
1.9 % 4.9e+01 s Elapsed time so far: 2.4 s
2.1 % 5.5e+01 s Elapsed time so far: 2.5 s
2.3 % 6.1e+01 s Elapsed time so far: 2.5 s
2.5 % 6.7e+01 s Elapsed time so far: 2.5 s
2.8 % 7.4e+01 s Elapsed time so far: 2.5 s
3.1 % 8.2e+01 s Elapsed time so far: 2.6 s
3.5 % 9.1e+01 s Elapsed time so far: 2.6 s
3.8 % 1.0e+02 s Elapsed time so far: 2.6 s
4.2 % 1.1e+02 s Elapsed time so far: 2.6 s
4.7 % 1.2e+02 s Elapsed time so far: 2.6 s
5.1 % 1.4e+02 s Elapsed time so far: 2.7 s
5.7 % 1.5e+02 s Elapsed time so far: 2.7 s
6.2 % 1.7e+02 s Elapsed time so far: 2.7 s
6.9 % 1.8e+02 s Elapsed time so far: 2.7 s
7.6 % 2.0e+02 s Elapsed time so far: 2.7 s
8.4 % 2.2e+02 s Elapsed time so far: 2.7 s
9.2 % 2.4e+02 s Elapsed time so far: 2.8 s
10.2 % 2.7e+02 s Elapsed time so far: 2.8 s
11.2 % 3.0e+02 s Elapsed time so far: 2.8 s
12.0 % 3.2e+02 s Elapsed time so far: 2.8 s
12.7 % 3.4e+02 s Elapsed time so far: 2.9 s
13.5 % 3.6e+02 s Elapsed time so far: 2.9 s
14.2 % 3.8e+02 s Elapsed time so far: 2.9 s
15.0 % 4.0e+02 s Elapsed time so far: 2.9 s
15.8 % 4.2e+02 s Elapsed time so far: 3.0 s
16.5 % 4.4e+02 s Elapsed time so far: 3.0 s
17.3 % 4.6e+02 s Elapsed time so far: 3.0 s
18.0 % 4.8e+02 s Elapsed time so far: 3.0 s
18.8 % 5.0e+02 s Elapsed time so far: 3.1 s
19.6 % 5.2e+02 s Elapsed time so far: 3.1 s
20.3 % 5.4e+02 s Elapsed time so far: 3.1 s
21.1 % 5.6e+02 s Elapsed time so far: 3.2 s
21.8 % 5.8e+02 s Elapsed time so far: 3.2 s
22.6 % 6.0e+02 s Elapsed time so far: 3.2 s
23.4 % 6.2e+02 s Elapsed time so far: 3.2 s
24.1 % 6.4e+02 s Elapsed time so far: 3.3 s
24.9 % 6.6e+02 s Elapsed time so far: 3.3 s
25.6 % 6.8e+02 s Elapsed time so far: 3.3 s
26.4 % 7.0e+02 s Elapsed time so far: 3.3 s
27.1 % 7.2e+02 s Elapsed time so far: 3.4 s
27.9 % 7.4e+02 s Elapsed time so far: 3.4 s
28.6 % 7.6e+02 s Elapsed time so far: 3.4 s
29.4 % 7.8e+02 s Elapsed time so far: 3.5 s
30.2 % 8.0e+02 s Elapsed time so far: 3.5 s
30.9 % 8.2e+02 s Elapsed time so far: 3.5 s
31.7 % 8.4e+02 s Elapsed time so far: 3.5 s
32.4 % 8.6e+02 s Elapsed time so far: 3.6 s
33.2 % 8.8e+02 s Elapsed time so far: 3.6 s
34.0 % 9.0e+02 s Elapsed time so far: 3.6 s
34.7 % 9.2e+02 s Elapsed time so far: 3.6 s
35.5 % 9.4e+02 s Elapsed time so far: 3.7 s
36.2 % 9.6e+02 s Elapsed time so far: 3.7 s
37.0 % 9.8e+02 s Elapsed time so far: 3.7 s
37.7 % 1.0e+03 s Elapsed time so far: 3.8 s
38.5 % 1.0e+03 s Elapsed time so far: 3.8 s
39.3 % 1.0e+03 s Elapsed time so far: 3.8 s
40.0 % 1.1e+03 s Elapsed time so far: 3.8 s
40.8 % 1.1e+03 s Elapsed time so far: 3.9 s
41.5 % 1.1e+03 s Elapsed time so far: 3.9 s
42.3 % 1.1e+03 s Elapsed time so far: 3.9 s
43.0 % 1.1e+03 s Elapsed time so far: 3.9 s
43.8 % 1.2e+03 s Elapsed time so far: 4.0 s
44.6 % 1.2e+03 s Elapsed time so far: 4.0 s
45.3 % 1.2e+03 s Elapsed time so far: 4.0 s
46.1 % 1.2e+03 s Elapsed time so far: 4.0 s
46.8 % 1.2e+03 s Elapsed time so far: 4.1 s
47.6 % 1.3e+03 s Elapsed time so far: 4.1 s
48.4 % 1.3e+03 s Elapsed time so far: 4.1 s
49.1 % 1.3e+03 s Elapsed time so far: 4.2 s
49.9 % 1.3e+03 s Elapsed time so far: 4.2 s
50.6 % 1.3e+03 s Elapsed time so far: 4.2 s
51.4 % 1.4e+03 s Elapsed time so far: 4.2 s
52.1 % 1.4e+03 s Elapsed time so far: 4.3 s
52.9 % 1.4e+03 s Elapsed time so far: 4.3 s
53.7 % 1.4e+03 s Elapsed time so far: 4.3 s
54.4 % 1.4e+03 s Elapsed time so far: 4.4 s
55.2 % 1.5e+03 s Elapsed time so far: 4.4 s
55.9 % 1.5e+03 s Elapsed time so far: 4.4 s
56.7 % 1.5e+03 s Elapsed time so far: 4.4 s
57.5 % 1.5e+03 s Elapsed time so far: 4.5 s
58.2 % 1.5e+03 s Elapsed time so far: 4.5 s
59.0 % 1.6e+03 s Elapsed time so far: 4.5 s
59.7 % 1.6e+03 s Elapsed time so far: 4.5 s
60.5 % 1.6e+03 s Elapsed time so far: 4.6 s
61.2 % 1.6e+03 s Elapsed time so far: 4.6 s
62.0 % 1.6e+03 s Elapsed time so far: 4.6 s
62.8 % 1.7e+03 s Elapsed time so far: 4.7 s
63.5 % 1.7e+03 s Elapsed time so far: 4.7 s
64.3 % 1.7e+03 s Elapsed time so far: 4.7 s
65.0 % 1.7e+03 s Elapsed time so far: 4.7 s
65.8 % 1.7e+03 s Elapsed time so far: 4.8 s
66.5 % 1.8e+03 s Elapsed time so far: 4.8 s
67.3 % 1.8e+03 s Elapsed time so far: 4.8 s
68.1 % 1.8e+03 s Elapsed time so far: 4.8 s
68.8 % 1.8e+03 s Elapsed time so far: 4.9 s
69.6 % 1.8e+03 s Elapsed time so far: 4.9 s
70.3 % 1.9e+03 s Elapsed time so far: 4.9 s
71.1 % 1.9e+03 s Elapsed time so far: 5.0 s
71.8 % 1.9e+03 s Elapsed time so far: 5.0 s
72.6 % 1.9e+03 s Elapsed time so far: 5.0 s
73.4 % 1.9e+03 s Elapsed time so far: 5.0 s
74.1 % 2.0e+03 s Elapsed time so far: 5.1 s
74.9 % 2.0e+03 s Elapsed time so far: 5.1 s
75.6 % 2.0e+03 s Elapsed time so far: 5.1 s
76.4 % 2.0e+03 s Elapsed time so far: 5.1 s
77.2 % 2.0e+03 s Elapsed time so far: 5.2 s
77.9 % 2.1e+03 s Elapsed time so far: 5.2 s
78.7 % 2.1e+03 s Elapsed time so far: 5.2 s
79.4 % 2.1e+03 s Elapsed time so far: 5.2 s
80.2 % 2.1e+03 s Elapsed time so far: 5.3 s
80.9 % 2.1e+03 s Elapsed time so far: 5.3 s
81.7 % 2.2e+03 s Elapsed time so far: 5.3 s
82.5 % 2.2e+03 s Elapsed time so far: 5.4 s
83.2 % 2.2e+03 s Elapsed time so far: 5.4 s
84.0 % 2.2e+03 s Elapsed time so far: 5.4 s
84.7 % 2.2e+03 s Elapsed time so far: 5.4 s
85.5 % 2.3e+03 s Elapsed time so far: 5.5 s
86.2 % 2.3e+03 s Elapsed time so far: 5.5 s
87.0 % 2.3e+03 s Elapsed time so far: 5.5 s
87.8 % 2.3e+03 s Elapsed time so far: 5.6 s
88.5 % 2.3e+03 s Elapsed time so far: 5.6 s
89.3 % 2.4e+03 s Elapsed time so far: 5.6 s
90.0 % 2.4e+03 s Elapsed time so far: 5.6 s
90.8 % 2.4e+03 s Elapsed time so far: 5.7 s
91.5 % 2.4e+03 s Elapsed time so far: 5.7 s
92.3 % 2.4e+03 s Elapsed time so far: 5.7 s
93.1 % 2.5e+03 s Elapsed time so far: 5.7 s
93.8 % 2.5e+03 s Elapsed time so far: 5.8 s
94.6 % 2.5e+03 s Elapsed time so far: 5.8 s
95.3 % 2.5e+03 s Elapsed time so far: 5.8 s
96.1 % 2.5e+03 s Elapsed time so far: 5.9 s
96.8 % 2.6e+03 s Elapsed time so far: 5.9 s
97.6 % 2.6e+03 s Elapsed time so far: 5.9 s
98.4 % 2.6e+03 s Elapsed time so far: 5.9 s
99.1 % 2.6e+03 s Elapsed time so far: 6.0 s
99.9 % 2.6e+03 s Elapsed time so far: 6.0 s
100.0 % 2.6e+03 s Elapsed time so far: 6.0 s
Comparison with experimental data#
The results produced by FESTIM are in good agreement with the experimental data. The grey areas represent the contribution of each trap to the global TDS spectrum. The first spectrum is the recombination flux model.
Show code cell source
def plot_tds(
derived_quantities: F.DerivedQuantities, trap_contribution=False, label="FESTIM"
):
t = derived_quantities.t
flux_left = derived_quantities.filter(fields="solute", surfaces=1).data
flux_right = derived_quantities.filter(fields="solute", surfaces=2).data
flux_total = -np.array(flux_left) - np.array(flux_right)
trap_1 = derived_quantities.filter(fields="1").data
trap_2 = derived_quantities.filter(fields="2").data
T = derived_quantities.filter(fields="T").data
indexes = np.where(np.array(t) > resting_time)
t = np.array(t)[indexes]
T = np.array(T)[indexes]
flux_total = np.array(flux_total)[indexes]
trap_1 = np.array(trap_1)[indexes]
trap_2 = np.array(trap_2)[indexes]
plt.plot(t, flux_total, linewidth=3, label=label)
if trap_contribution:
contribution_trap_1 = -np.diff(trap_1) / np.diff(t)
contribution_trap_2 = -np.diff(trap_2) / np.diff(t)
plt.plot(t[1:], contribution_trap_1, linestyle="--", color="grey", alpha=0.5)
plt.plot(t[1:], contribution_trap_2, linestyle="--", color="grey", alpha=0.5)
plt.fill_between(t[1:], 0, contribution_trap_1, facecolor="grey", alpha=0.1)
plt.fill_between(t[1:], 0, contribution_trap_2, facecolor="grey", alpha=0.1)
def plot_experiment():
exp_data = np.genfromtxt("ref_baldwin.csv", delimiter=",")
plt.scatter(exp_data[:, 0], exp_data[:, 1], alpha=0.6, label="experiment")
derived_quantities = derived_quantities_map["Recombination flux"]
plot_tds(derived_quantities, trap_contribution=True)
plot_experiment()
plt.xlim(left=resting_time)
plt.ylim(bottom=0)
plt.grid(alpha=0.3)
plt.ylabel(r"Desorption flux (m$^{-2}$ s$^{-1}$)")
plt.xlabel(r"Time (s)")
plt.gca().spines[["right", "top"]].set_visible(False)
plt.legend()
# comparison models
plt.figure()
for bc_type in bc_types:
derived_quantities = derived_quantities_map[bc_type]
plot_tds(derived_quantities, trap_contribution=False, label=bc_type)
plot_experiment()
plt.xlim(left=resting_time)
plt.ylim(bottom=0)
plt.grid(alpha=0.3)
plt.ylabel(r"Desorption flux (m$^{-2}$ s$^{-1}$)")
plt.xlabel(r"Time (s)")
plt.gca().spines[["right", "top"]].set_visible(False)
plt.legend()
plt.show() # hides legend object from output