-
Notifications
You must be signed in to change notification settings - Fork 37
Add multiple reactions in particles #453
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
Conversation
The new suggested user interface for cross phase reactions will be similar to the interface for bulk reactions:
Up to discussion is still, how we want to continue with parameters like And for reactions located only in the pore (liquid) phase I purpose:
To use the same reaction modul for different phases, I gave up the _liquid / _solid description. |
90d36ca
to
58d2336
Compare
9af4e1a
to
a11c948
Compare
Should we have a different field in the LRM, ie Also, do we want the names to start with |
I agree, it is the most precise name.
I switched it to |
0cdfa20
to
e579e7d
Compare
ad0254f
to
87f491a
Compare
delete old interface delete old interface grm delete old interface delete old interface from lrmp delete old interface cstr and mct Change bulk reaction to liquid reaction in interface update reaction interface index
7591f4c
to
9ae9247
Compare
2386902
to
0d6c8c4
Compare
This will PR will be continued in #491 |
This pull request introduces improvements to the reaction modeling infrastructure in the codebase, primarily by integrating a new
ReactionSystem
abstraction that supports multiple reaction types (liquid, solid, cross-phase) and refactoring the configuration and residual calculation logic to use this new system. The changes also update various model classes to utilize the new reaction interface and extend support for cross-phase reactions.Reaction system integration and refactoring:
ReactionSystem
abstraction toGeneralRateModel
,LumpedRateModelWithPores
, andLumpedRateModelWithoutPores
, replacing direct use of_dynReactionBulk
and related vectors, and providing helper methods for reaction offsets and management. (src/libcadet/model/GeneralRateModel.hpp
[1]src/libcadet/model/LumpedRateModelWithPores.hpp
[2]src/libcadet/model/LumpedRateModelWithoutPores.hpp
[3]LumpedRateModelWithoutPores
to support multiple reaction types (liquid
,solid
,cross_phase
) using the newReactionSystem
, and updated workspace management accordingly. (src/libcadet/model/LumpedRateModelWithoutPores.cpp
[1] [2] [3]src/libcadet/model/LumpedRateModelWithoutPores.cpp
[1] [2]API and interface updates:
residualLiquidAdd
andanalyticJacobianLiquidAdd
to the more generalresidualFluxAdd
andanalyticJacobianAdd
in several model implementations, reflecting the new interface. (src/libcadet/model/GeneralRateModel2D.cpp
[1]src/libcadet/model/GeneralRateModelDG.cpp
[2] [3]src/libcadet/model/LumpedRateModelWithPoresDG.cpp
[4] [5]src/libcadet/model/LumpedRateModelWithPoresDG2D.cpp
[6]Support for cross-phase reactions:
MassActionLawReactionCrossPhase
as a new reaction type, with corresponding registration in the factory and inclusion in the build system. (src/libcadet/CMakeLists.txt
[1]src/libcadet/ReactionModelFactory.cpp
[2] [3]Include and dependency updates:
ReactionSystem
in model header files to support the new abstraction. (src/libcadet/model/GeneralRateModel.hpp
[1]src/libcadet/model/LumpedRateModelWithPores.hpp
[2]src/libcadet/model/LumpedRateModelWithoutPores.hpp
[3]