26#ifndef OLB_APPS_FLORIAN_ADSORPTION3D_PHOSPHATEREACTION_H_
27#define OLB_APPS_FLORIAN_ADSORPTION3D_PHOSPHATEREACTION_H_
54 template <
typename V,
typename COUPLING>
56 coupling.template setParameter<Isotherm::LinearIsotherm::ISO_KONST_A>(isoKonstA);
57 coupling.template setParameter<Isotherm::LinearIsotherm::ISO_KONST_B>(isoKonstB);
61 template <
typename V,
typename COUPLING>
63 auto isoKonstA = coupling.template getParameter<Isotherm::LinearIsotherm::ISO_KONST_A>();
64 return isoKonstA[0] * c;
67 template <
typename V,
typename PARAMETERS>
69 V isoKonstA = params.template get<ISO_KONST_A>();
73 template <
typename V,
typename COUPLING>
74 static void print(std::ostream& clout, COUPLING& coupling) {
75 auto isoKonstA = coupling.template getParameter<Isotherm::LinearIsotherm::ISO_KONST_A>();
76 auto isoKonstB = coupling.template getParameter<Isotherm::LinearIsotherm::ISO_KONST_B>();
77 clout <<
"----------------- Isotherm information -----------------" << std::endl;
78 clout <<
"Isotherm exponent n = " << isoKonstB << std::endl;
79 clout <<
"Isotherm factor K = " << isoKonstA << std::endl;
80 clout <<
"-------------------------------------------------------------" << std::endl;
93 template <
typename V,
typename COUPLING>
95 coupling.template setParameter<Isotherm::LangmuirIsotherm::ISO_KONST_A>(isoKonstA);
96 coupling.template setParameter<Isotherm::LangmuirIsotherm::ISO_KONST_B>(isoKonstB);
100 template <
typename V,
typename COUPLING>
102 auto isoKonstA = coupling.template getParameter<Isotherm::LangmuirIsotherm::ISO_KONST_A>();
103 auto isoKonstB = coupling.template getParameter<Isotherm::LangmuirIsotherm::ISO_KONST_B>();
104 return V(isoKonstA[0]) * V(isoKonstB[0]) * c / ( 1 + V(isoKonstB[0]) * c );
107 template <
typename V,
typename PARAMETERS>
109 V isoKonstA = params.template get<ISO_KONST_A>();
110 V isoKonstB = params.template get<ISO_KONST_B>();
111 return isoKonstA * isoKonstB * c / ( 1 + isoKonstB * c );
114 template <
typename V,
typename COUPLING>
115 static void print(std::ostream& clout, COUPLING& coupling) {
116 auto isoKonstA = coupling.template getParameter<Isotherm::LangmuirIsotherm::ISO_KONST_A>();
117 auto isoKonstB = coupling.template getParameter<Isotherm::LangmuirIsotherm::ISO_KONST_B>();
118 clout <<
"----------------- Isotherm information -----------------" << std::endl;
119 clout <<
"Isotherm exponent n = " << isoKonstB << std::endl;
120 clout <<
"Isotherm factor K = " << isoKonstA << std::endl;
121 clout <<
"-------------------------------------------------------------" << std::endl;
134 template <
typename V,
typename PARAMETERS>
136 V isoKonstA = params.template get<ISO_KONST_A>();
137 V isoKonstB = params.template get<ISO_KONST_B>();
138 return isoKonstA * std::pow(c, isoKonstB);
Top level namespace for all of OpenLB.
V getLoading(V c, PARAMETERS ¶ms) any_platform
static void print(std::ostream &clout, COUPLING &coupling)
static void setParameters(V isoKonstA, V isoKonstB, COUPLING &coupling) any_platform
V getLoading(V c, PARAMETERS ¶ms) any_platform
static V getLoadingFromCoupling(V c, COUPLING &coupling) any_platform
static void setParameters(V isoKonstA, V isoKonstB, COUPLING &coupling) any_platform
V getLoading(V c, PARAMETERS ¶ms) any_platform
static void print(std::ostream &clout, COUPLING &coupling)
static V getLoadingFromCoupling(V c, COUPLING &coupling) any_platform
Base of a field whose size is defined by [C_0,C_1,C_2]^T * [1,D,Q].