28 template<
class equationOfState>
31 const equationOfState& st,
44 template<
class equationOfState>
48 const eConstThermo<equationOfState>& ct
51 equationOfState(name, ct),
57 template<
class equationOfState>
68 template<
class equationOfState>
81 template<
class equationOfState>
91 template<
class equationOfState>
97 return cp(T)*T + Hf_*this->W();
101 template<
class equationOfState>
111 template<
class equationOfState>
114 return Hf_*this->W();
118 template<
class equationOfState>
131 template<
class equationOfState>
137 scalar molr1 = this->nMoles();
139 equationOfState::operator+=(ct);
141 molr1 /= this->nMoles();
142 scalar molr2 = ct.nMoles()/this->nMoles();
144 Cv_ = molr1*Cv_ + molr2*ct.Cv_;
145 Hf_ = molr1*Hf_ + molr2*ct.Hf_;
149 template<
class equationOfState>
150 inline void Foam::eConstThermo<equationOfState>::operator-=
155 scalar molr1 = this->nMoles();
157 equationOfState::operator-=(ct);
159 molr1 /= this->nMoles();
160 scalar molr2 = ct.nMoles()/this->nMoles();
162 Cv_ = molr1*Cv_ - molr2*ct.Cv_;
163 Hf_ = molr1*Hf_ - molr2*ct.Hf_;
169 template<
class equationOfState>
178 static_cast<const equationOfState&>(ct1)
179 + static_cast<const equationOfState&>(ct2)
185 ct1.nMoles()/eofs.nMoles()*ct1.Cv_
186 + ct2.nMoles()/eofs.nMoles()*ct2.Cv_,
187 ct1.nMoles()/eofs.nMoles()*ct1.Hf_
188 + ct2.nMoles()/eofs.nMoles()*ct2.Hf_
193 template<
class equationOfState>
202 static_cast<const equationOfState&>(ct1)
203 - static_cast<const equationOfState&>(ct2)
209 ct1.nMoles()/eofs.nMoles()*ct1.Cv_
210 - ct2.nMoles()/eofs.nMoles()*ct2.Cv_,
211 ct1.nMoles()/eofs.nMoles()*ct1.Hf_
212 - ct2.nMoles()/eofs.nMoles()*ct2.Hf_
217 template<
class equationOfState>
226 s*
static_cast<const equationOfState&
>(ct),
233 template<
class equationOfState>