OGS
ReactionCaOH2.h
Go to the documentation of this file.
1
10#pragma once
11
12#include "materiallib_export.h"
13
14#include "BaseLib/ConfigTree.h"
15#include "Reaction.h"
16#include "Adsorption.h"
17
18namespace ProcessLib
19{
20template<typename>
22}
23
24namespace Adsorption
25{
26
27class ReactionCaOH2 final : public Reaction
28{
29public:
30 explicit ReactionCaOH2(BaseLib::ConfigTree const& conf) :
32 _ode_solver_config{conf.getConfigSubtree("ode_solver_config")}
33 {}
34
35 double getEnthalpy(const double /*p_Ads*/, const double /*T_Ads*/,
36 const double /*M_Ads*/) const override;
37
38 double getReactionRate(const double /*p_Ads*/, const double /*T_Ads*/, const double /*M_Ads*/,
39 const double /*loading*/) const override;
40
42
43 // TODO merge with getReactionRate() above
44 double getReactionRate(double const solid_density);
45
46 void updateParam(double T_solid, double p_gas, double x_react,
47 double rho_s_initial);
48
49private:
50 void calculateQR();
52 double CaHydration();
53
54 static constexpr double nan = std::numeric_limits<double>::quiet_NaN();
55
56 double _rho_s = nan;
57 double _p_gas = nan;
58 double _p_r_g = nan;
59 double _p_eq = 1.0;
60 double _T_eq = nan;
61 double _T_s = nan;
62 double _qR = nan;
63 double _x_react = nan;
64 double _X_D =
65 nan;
66 double _X_H = nan;
67
69
70 template<typename>
72
73public:
74 static MATERIALLIB_EXPORT constexpr double rho_low =
75 1656.0;
76 static MATERIALLIB_EXPORT constexpr double rho_up =
77 2200.0;
78};
79
80} // namespace Adsorption
double _p_eq
equilibrium pressure in bar
double _T_s
solid phase temperature
double _rho_s
solid phase density
static MATERIALLIB_EXPORT constexpr double rho_low
lower density limit
double _T_eq
equilibrium temperature
double _x_react
mass fraction of water in gas phase
double getEnthalpy(const double, const double, const double) const override
double _p_gas
gas phase pressure in unit bar
const BaseLib::ConfigTree _ode_solver_config
double _X_H
mass fraction of hydration in the solid phase
double _qR
rate of solid density change
void updateParam(double T_solid, double p_gas, double x_react, double rho_s_initial)
double _X_D
mass fraction of dehydration (CaO) in the solid phase
static MATERIALLIB_EXPORT constexpr double rho_up
upper density limit
double getReactionRate(const double, const double, const double, const double) const override
double _p_r_g
pressure of H2O on gas phase
static constexpr double nan
ReactionCaOH2(BaseLib::ConfigTree const &conf)
const BaseLib::ConfigTree & getOdeSolverConfig() const
#define MATERIALLIB_EXPORT