From ee6d6ecadc2cd0233b35fcd0558417d2162c684d Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 6 Sep 2014 15:47:46 +0200 Subject: [PATCH] Excess is now header-only Signed-off-by: Ian Bell --- src/Backends/Helmholtz/ExcessHEFunction.cpp | 158 -------------------- src/Backends/Helmholtz/ExcessHEFunction.h | 129 ++++++++++++++-- 2 files changed, 119 insertions(+), 168 deletions(-) delete mode 100644 src/Backends/Helmholtz/ExcessHEFunction.cpp diff --git a/src/Backends/Helmholtz/ExcessHEFunction.cpp b/src/Backends/Helmholtz/ExcessHEFunction.cpp deleted file mode 100644 index c21a4f74..00000000 --- a/src/Backends/Helmholtz/ExcessHEFunction.cpp +++ /dev/null @@ -1,158 +0,0 @@ -#include - -#include "ReducingFunctions.h" -#include "ExcessHEFunction.h" - -namespace CoolProp{ - -double ExcessTerm::alphar(double tau, double delta, const std::vector &x) -{ - double summer = 0; - for (unsigned int i = 0; i < N-1; i++) - { - for (unsigned int j = i + 1; j < N; j++) - { - summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->alphar(tau,delta); - } - } - return summer; -} -double ExcessTerm::dalphar_dTau(double tau, double delta, const std::vector &x) -{ - double summer = 0; - for (unsigned int i = 0; i < N-1; i++) - { - for (unsigned int j = i + 1; j < N; j++) - { - summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->dalphar_dTau(tau,delta); - } - } - return summer; -} -double ExcessTerm::dalphar_dDelta(double tau, double delta, const std::vector &x) -{ - double summer = 0; - for (unsigned int i = 0; i < N-1; i++) - { - for (unsigned int j = i + 1; j < N; j++) - { - summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->dalphar_dDelta(tau,delta); - } - } - return summer; -} -double ExcessTerm::d2alphar_dDelta2(double tau, double delta, const std::vector &x) -{ - double summer = 0; - for (unsigned int i = 0; i < N-1; i++) - { - for (unsigned int j = i + 1; j < N; j++) - { - summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->d2alphar_dDelta2(tau,delta); - } - } - return summer; -} -double ExcessTerm::d2alphar_dTau2(double tau, double delta, const std::vector &x) -{ - double summer = 0; - for (unsigned int i = 0; i < N-1; i++) - { - for (unsigned int j = i + 1; j < N; j++) - { - summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->d2alphar_dTau2(tau,delta); - } - } - return summer; -} -double ExcessTerm::d2alphar_dDelta_dTau(double tau, double delta, const std::vector &x) -{ - double summer = 0; - for (unsigned int i = 0; i < N-1; i++) - { - for (unsigned int j = i + 1; j < N; j++) - { - summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->d2alphar_dDelta_dTau(tau,delta); - } - } - return summer; -} -double ExcessTerm::dalphar_dxi(double tau, double delta, const std::vector &x, unsigned int i) -{ - double summer = 0; - for (unsigned int k = 0; k < N; k++) - { - if (i != k) - { - summer += x[k]*F[i][k]*DepartureFunctionMatrix[i][k]->alphar(tau,delta); - } - } - return summer; -} -double ExcessTerm::d2alphardxidxj(double tau, double delta, const std::vector &x, unsigned int i, unsigned int j) -{ - if (i != j) - { - return F[i][j]*DepartureFunctionMatrix[i][j]->alphar(tau,delta); - } - else - { - return 0; - } -} -double ExcessTerm::d2alphar_dxi_dTau(double tau, double delta, const std::vector &x, unsigned int i) -{ - double summer = 0; - for (unsigned int k = 0; k < N; k++) - { - if (i != k) - { - summer += x[k]*F[i][k]*DepartureFunctionMatrix[i][k]->dalphar_dTau(tau,delta); - } - } - return summer; -} -double ExcessTerm::d2alphar_dxi_dDelta(double tau, double delta, const std::vector &x, unsigned int i) -{ - double summer = 0; - for (unsigned int k = 0; k < N; k++) - { - if (i != k) - { - summer += x[k]*F[i][k]*DepartureFunctionMatrix[i][k]->dalphar_dDelta(tau,delta); - } - } - return summer; -} - -GERG2008DepartureFunction::GERG2008DepartureFunction(const std::vector &n,const std::vector &d,const std::vector &t, - const std::vector &eta,const std::vector &epsilon,const std::vector &beta, - const std::vector &gamma, unsigned int Npower) -{ - /// Break up into power and gaussian terms - { - std::vector _n(n.begin(), n.begin()+Npower); - std::vector _d(d.begin(), d.begin()+Npower); - std::vector _t(t.begin(), t.begin()+Npower); - std::vector _l(Npower, 0.0); - phi.add_Power(_n, _d, _t, _l); - } - if (n.size() == Npower) - { - using_gaussian = false; - } - else - { - using_gaussian = true; - std::vector _n(n.begin()+Npower, n.end()); - std::vector _d(d.begin()+Npower, d.end()); - std::vector _t(t.begin()+Npower, t.end()); - std::vector _eta(eta.begin()+Npower, eta.end()); - std::vector _epsilon(epsilon.begin()+Npower, epsilon.end()); - std::vector _beta(beta.begin()+Npower, beta.end()); - std::vector _gamma(gamma.begin()+Npower, gamma.end()); - phi.add_GERG2008Gaussian(_n, _d, _t, _eta, _epsilon, _beta, _gamma); - } -} - -} /* namespace CoolProp */ diff --git a/src/Backends/Helmholtz/ExcessHEFunction.h b/src/Backends/Helmholtz/ExcessHEFunction.h index d448d370..538fee73 100644 --- a/src/Backends/Helmholtz/ExcessHEFunction.h +++ b/src/Backends/Helmholtz/ExcessHEFunction.h @@ -114,16 +114,125 @@ public: } }; - double alphar(double tau, double delta, const std::vector &x); - double dalphar_dDelta(double tau, double delta, const std::vector &x); - double d2alphar_dDelta2(double tau, double delta, const std::vector &x); - double d2alphar_dDelta_dTau(double tau, double delta, const std::vector &x); - double dalphar_dTau(double tau, double delta, const std::vector &x); - double d2alphar_dTau2(double tau, double delta, const std::vector &x); - double dalphar_dxi(double tau, double delta, const std::vector &x, unsigned int i); - double d2alphardxidxj(double tau, double delta, const std::vector &x, unsigned int i, unsigned int j); - double d2alphar_dxi_dTau(double tau, double delta, const std::vector &x, unsigned int i); - double d2alphar_dxi_dDelta(double tau, double delta, const std::vector &x, unsigned int i); + double alphar(double tau, double delta, const std::vector &x) + { + double summer = 0; + for (unsigned int i = 0; i < N-1; i++) + { + for (unsigned int j = i + 1; j < N; j++) + { + summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->alphar(tau,delta); + } + } + return summer; + } + double dalphar_dDelta(double tau, double delta, const std::vector &x) + { + double summer = 0; + for (unsigned int i = 0; i < N-1; i++) + { + for (unsigned int j = i + 1; j < N; j++) + { + summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->dalphar_dDelta(tau,delta); + } + } + return summer; + } + double d2alphar_dDelta2(double tau, double delta, const std::vector &x) + { + double summer = 0; + for (unsigned int i = 0; i < N-1; i++) + { + for (unsigned int j = i + 1; j < N; j++) + { + summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->d2alphar_dDelta2(tau,delta); + } + } + return summer; + }; + double d2alphar_dDelta_dTau(double tau, double delta, const std::vector &x) + { + double summer = 0; + for (unsigned int i = 0; i < N-1; i++) + { + for (unsigned int j = i + 1; j < N; j++) + { + summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->d2alphar_dDelta_dTau(tau,delta); + } + } + return summer; + } + double dalphar_dTau(double tau, double delta, const std::vector &x) + { + double summer = 0; + for (unsigned int i = 0; i < N-1; i++) + { + for (unsigned int j = i + 1; j < N; j++) + { + summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->dalphar_dTau(tau,delta); + } + } + return summer; + }; + double d2alphar_dTau2(double tau, double delta, const std::vector &x) + { + double summer = 0; + for (unsigned int i = 0; i < N-1; i++) + { + for (unsigned int j = i + 1; j < N; j++) + { + summer += x[i]*x[j]*F[i][j]*DepartureFunctionMatrix[i][j]->d2alphar_dTau2(tau,delta); + } + } + return summer; + }; + double dalphar_dxi(double tau, double delta, const std::vector &x, unsigned int i) + { + double summer = 0; + for (unsigned int k = 0; k < N; k++) + { + if (i != k) + { + summer += x[k]*F[i][k]*DepartureFunctionMatrix[i][k]->alphar(tau,delta); + } + } + return summer; + }; + double d2alphardxidxj(double tau, double delta, const std::vector &x, unsigned int i, unsigned int j) + { + if (i != j) + { + return F[i][j]*DepartureFunctionMatrix[i][j]->alphar(tau,delta); + } + else + { + return 0; + } + }; + double d2alphar_dxi_dTau(double tau, double delta, const std::vector &x, unsigned int i) + { + double summer = 0; + for (unsigned int k = 0; k < N; k++) + { + if (i != k) + { + summer += x[k]*F[i][k]*DepartureFunctionMatrix[i][k]->dalphar_dTau(tau,delta); + } + } + return summer; + }; + double d2alphar_dxi_dDelta(double tau, double delta, const std::vector &x, unsigned int i) + { + double summer = 0; + for (unsigned int k = 0; k < N; k++) + { + if (i != k) + { + summer += x[k]*F[i][k]*DepartureFunctionMatrix[i][k]->dalphar_dDelta(tau,delta); + } + } + return summer; + }; }; } /* namespace CoolProp */