Skip to content

Add a competitive exchange model to MCT #271

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

AntoniaBerger
Copy link
Collaborator

@AntoniaBerger AntoniaBerger commented Aug 15, 2024

TODO

  • Implement "Langumir" exchange model
    • Explicit formulation for multi component, multi channel
    • Add Interface
    • Add Test
  • Add documentation

Discussion about the model can be found in the Forum

@schmoelder schmoelder changed the title Add a competive exchange model to MCT Add a competitive exchange model to MCT Aug 23, 2024
@jbreue16 jbreue16 mentioned this pull request Nov 20, 2024
11 tasks
@schmoelder
Copy link
Contributor

schmoelder commented Nov 20, 2024

Something we should conceptually consider for extraction is that the solution of individual components is not necessarily restricted by a "global" capacity since there is no surface that is being covered. Rather, each component has some individual saturation concentration that cannot be exceeded. It's not really competitive in that sense though. Hope that makes sense.

Is this possible in the current implementation?

Edit: Also commented in the forum, since we have all of the equations there.

@AntoniaBerger AntoniaBerger force-pushed the feature/langumir_exchange branch from c38a49b to b0412f6 Compare November 20, 2024 13:56
@AntoniaBerger AntoniaBerger force-pushed the feature/langumir_exchange branch 4 times, most recently from 4861254 to 0b78734 Compare August 15, 2025 07:56
@AntoniaBerger
Copy link
Collaborator Author

This pull request introduces support for multiple exchange models in the Multichannel Transport (MCT) model, including a new Langmuir-type exchange model with saturation kinetics. The documentation is updated to describe the new exchange model options, their mathematical formulations, and configuration parameters. Additionally, the codebase is extended to allow selection and instantiation of exchange models via a new factory method.

Exchange Model Support

  • Added support for selecting the exchange model type via the new EXCHANGE_TYPE parameter, allowing users to choose between LINEAR_EX (default) and LANGMUIR_EX for inter-channel transport.
  • Implemented a new Langmuir Exchange model (LangumirExchange.cpp), registered in the exchange model factory, and updated the build configuration to include it. [1] [2]

Model Configuration and Parameters

  • Introduced the optional SATURATION_MATRIX parameter, which defines maximum saturation levels for Langmuir-type exchange kinetics and describes its effects on model behavior.

Documentation and Mathematical Formulation

  • Updated the documentation to distinguish between the linear and Langmuir exchange models, including mathematical expressions and explanations of their physical meaning and volume scaling. [1] [2]
  • Changed the overall documentation structure for the Multichannel Transport model.

API and Factory Changes

  • Added a new method to the IConfigHelper interface to create exchange model instances by name, supporting extensibility for future exchange models.
  • Included the exchange model factory in the MultiChannelTransportModel implementation to facilitate dynamic model selection.


The MCT model equations are given for all channels :math:`l \in \{1, \dots, N_k\}` and components :math:`i \in \{1, \dots, N_c\}` by
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you remove channel and component definitions on purpose here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it is added in the list of variables below.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I thought since these are indices, it was supposed to come first?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not that I know... But possible.

@AntoniaBerger AntoniaBerger force-pushed the feature/langumir_exchange branch 2 times, most recently from 3b45ed5 to bb9ed51 Compare August 18, 2025 07:56
- Adds new module file
- Regirster this module in CMakeLists and ExchangeModelFactory
- Benchmark Tests with Langmuir binding in LRM
- Documentation where where the usage of different exchange models is
explained
@AntoniaBerger AntoniaBerger force-pushed the feature/langumir_exchange branch from bb9ed51 to e4a393c Compare August 18, 2025 08:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

4 participants