Skip to content

[BUG] Implicit Species in Discontinuous #1084

@tez-orr123

Description

@tez-orr123

Describe the bug
When running a discontinuous problem with an implicit species, I run into an issue where the trapped species has no solution attribute.

To Reproduce

import festim as F
import numpy as np

tungsten = F.Material(
    D_0=1,
    E_D=0, 
    K_S_0=1,
    E_K_S=0,
)

# Subdomains
W_volume = F.VolumeSubdomain1D(id=6, borders=[0, 1], material=tungsten)

# Problem
my_model = F.HydrogenTransportProblemDiscontinuous()
my_model.mesh = F.Mesh1D(np.linspace(0, 1, 100))

my_model.subdomains =  [
    W_volume,
]

Deuterium = F.Species("D", subdomains=my_model.volume_subdomains)
trapped_T = F.Species("T_trapped", mobile=False, subdomains=my_model.volume_subdomains)

empty_traps = F.ImplicitSpecies(n=1, others=[trapped_T], name='implicit_species')

my_model.species = [trapped_T, Deuterium]

my_model.reactions = [
    F.Reaction(
        reactant=[empty_traps, Deuterium],
        product=[],
        k_0=1,
        E_k=0,
        volume=W_volume,
    ),
]

my_model.temperature = 300

my_model.settings = F.Settings(
    transient=False,
    atol=1e-8,
    rtol=1e-10,
)

my_model.initialise()

Produces:

Traceback (most recent call last):
  File "/home/tezorr/festim-fellowship/my_monoblock_case/mwe_2.py", line 47, in <module>
    my_model.initialise()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/home/tezorr/miniconda3/envs/festim-fellowship/lib/python3.14/site-packages/festim/hydrogen_transport_problem.py", line 1174, in initialise
    self.create_subdomain_formulation(subdomain)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/home/tezorr/miniconda3/envs/festim-fellowship/lib/python3.14/site-packages/festim/hydrogen_transport_problem.py", line 1442, in create_subdomain_formulation
    reaction.reaction_term(self.temperature_fenics, reactant_concentrations=reactant_concentrations)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tezorr/miniconda3/envs/festim-fellowship/lib/python3.14/site-packages/festim/reaction.py", line 177, in reaction_term
    reactant_concentrations[i] = reactant.concentration
                                 ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tezorr/miniconda3/envs/festim-fellowship/lib/python3.14/site-packages/festim/species.py", line 171, in concentration
    raise ValueError(
    ...<2 lines>...
    )
ValueError: Cannot compute concentration of implicit_species because T_trapped has no solution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfenicsxIssue that is related to the fenicsx support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions