OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
ReactionsComponent.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2//
3// Copyright 2026 Caleb Buahin
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
39
40#ifndef OPENSWMM_ENGINE_TRANSPORT_REACTIONS_COMPONENT_HPP
41#define OPENSWMM_ENGINE_TRANSPORT_REACTIONS_COMPONENT_HPP
42
43#include <string>
44#include <vector>
45
46namespace openswmm {
48}
49namespace openswmm::components {
51}
52
53namespace openswmm::transport {
54
58
61const std::vector<std::string>& reactionSectionTags();
62
66void applyReactionSections(SimulationContext& ctx,
67 const components::ComponentConfigSections& config,
68 std::vector<std::string>& errors);
69
75void applyEmbeddedReactionSections(SimulationContext& ctx, bool external_component_registered,
76 std::vector<std::string>& errors);
77
84bool recompileReactionSystem(SimulationContext& ctx, std::vector<std::string>& errors);
85
86} // namespace openswmm::transport
87
88#endif // OPENSWMM_ENGINE_TRANSPORT_REACTIONS_COMPONENT_HPP
Definition ProcessComponentRegistry.cpp:37
Definition ExplicitFvSolver.hpp:53
const std::vector< std::string > & reactionSectionTags()
Borrow the complete fixed set of supported embedded/external reaction section names.
Definition ReactionsComponent.cpp:953
void registerReactionsComponent()
Register native reaction parser/serializer callbacks under the built-in component ID.
Definition ReactionsComponent.cpp:1325
void applyReactionSections(SimulationContext &ctx, const components::ComponentConfigSections &config, std::vector< std::string > &errors)
Parse, validate, compile and register one native multispecies reaction system.
Definition ReactionsComponent.cpp:983
void applyEmbeddedReactionSections(SimulationContext &ctx, bool external_component_registered, std::vector< std::string > &errors)
Apply retained INP reaction sections unless an external component has precedence.
Definition ReactionsComponent.cpp:1294
bool recompileReactionSystem(SimulationContext &ctx, std::vector< std::string > &errors)
Rebuild all compiled reaction expressions and validate scoped availability/profile constraints.
Definition ReactionsComponent.cpp:1363
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
Definition ProcessComponentRegistry.hpp:65