diff --git a/include/Helmholtz.h b/include/Helmholtz.h index b99dfbe9..55039bee 100644 --- a/include/Helmholtz.h +++ b/include/Helmholtz.h @@ -99,14 +99,14 @@ public: // ############################################################################# // ############################################################################# -struct Derivatives +struct HelmholtzDerivatives { long double alphar, dalphar_ddelta, dalphar_dtau, d2alphar_ddelta2, d2alphar_dtau2, d2alphar_ddelta_dtau, d3alphar_ddelta3, d3alphar_ddelta_dtau2, d3alphar_ddelta2_dtau, d3alphar_dtau3; void reset(){alphar = 0; dalphar_ddelta = 0; dalphar_dtau = 0; d2alphar_ddelta2 = 0; d2alphar_dtau2 = 0; d2alphar_ddelta_dtau = 0; d3alphar_ddelta3 = 0; d3alphar_ddelta_dtau2 = 0; d3alphar_ddelta2_dtau = 0; d3alphar_dtau3 = 0; } - Derivatives(){reset();}; + HelmholtzDerivatives(){reset();}; }; struct ResidualHelmholtzGeneralizedExponentialElement @@ -269,7 +269,7 @@ public: long double dDelta_dTau2(const long double &tau, const long double &delta) throw(){return 0;}; long double dTau3(const long double &tau, const long double &delta) throw(){return 0;}; - void all(const long double &tau, const long double &delta, Derivatives &derivs) throw(); + void all(const long double &tau, const long double &delta, HelmholtzDerivatives &derivs) throw(); }; struct ResidualHelmholtzNonAnalyticElement @@ -327,7 +327,7 @@ public: long double dDelta_dTau2(const long double &tau, const long double &delta) throw(); long double dTau3(const long double &tau, const long double &delta) throw(); - void all(const long double &tau, const long double &delta, Derivatives &derivs) throw(); + void all(const long double &tau, const long double &delta, HelmholtzDerivatives &derivs) throw(); }; class ResidualHelmholtzSAFTAssociating : public BaseHelmholtzTerm{ @@ -383,18 +383,18 @@ public: void to_json(rapidjson::Value &el, rapidjson::Document &doc); - long double base(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.alphar;}; - long double dDelta(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.dalphar_ddelta;}; - long double dTau(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.dalphar_dtau;}; - long double dDelta2(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.d2alphar_ddelta2;}; - long double dDelta_dTau(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.d2alphar_ddelta_dtau;}; - long double dTau2(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.d2alphar_dtau2;}; - long double dDelta3(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.d3alphar_ddelta3;}; - long double dDelta2_dTau(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.d3alphar_ddelta2_dtau;}; - long double dDelta_dTau2(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.d3alphar_ddelta_dtau2;}; - long double dTau3(const long double &tau, const long double &delta) throw(){Derivatives deriv; all(tau,delta,deriv); return deriv.d3alphar_dtau3;}; + long double base(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.alphar;}; + long double dDelta(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.dalphar_ddelta;}; + long double dTau(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.dalphar_dtau;}; + long double dDelta2(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.d2alphar_ddelta2;}; + long double dDelta_dTau(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.d2alphar_ddelta_dtau;}; + long double dTau2(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.d2alphar_dtau2;}; + long double dDelta3(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.d3alphar_ddelta3;}; + long double dDelta2_dTau(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.d3alphar_ddelta2_dtau;}; + long double dDelta_dTau2(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.d3alphar_ddelta_dtau2;}; + long double dTau3(const long double &tau, const long double &delta) throw(){HelmholtzDerivatives deriv; all(tau,delta,deriv); return deriv.d3alphar_dtau3;}; - void all(const long double &tau, const long double &delta, Derivatives &deriv) throw(); + void all(const long double &tau, const long double &delta, HelmholtzDerivatives &deriv) throw(); }; class ResidualHelmholtzContainer @@ -405,75 +405,24 @@ public: ResidualHelmholtzSAFTAssociating SAFT; ResidualHelmholtzGeneralizedExponential GenExp; - Derivatives all(const long double tau, const long double delta) + HelmholtzDerivatives all(const long double tau, const long double delta) { - Derivatives derivs; // zeros out the elements + HelmholtzDerivatives derivs; // zeros out the elements GenExp.all(tau, delta, derivs); NonAnalytic.all(tau, delta, derivs); SAFT.all(tau, delta, derivs); return derivs; }; - long double base(long double tau, long double delta) - { - Derivatives derivs; // zeros out the elements - GenExp.all(tau, delta, derivs); - return (derivs.alphar + NonAnalytic.base(tau, delta) + SAFT.base(tau,delta)); - }; - long double dDelta(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.dalphar_ddelta + NonAnalytic.dDelta(tau, delta) + SAFT.dDelta(tau,delta)); - }; - long double dTau(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.dalphar_dtau + NonAnalytic.dTau(tau, delta) + SAFT.dTau(tau,delta)); - }; - long double dDelta2(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.d2alphar_ddelta2 + NonAnalytic.dDelta2(tau, delta) + SAFT.dDelta2(tau,delta)); - }; - long double dDelta_dTau(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.d2alphar_ddelta_dtau + NonAnalytic.dDelta_dTau(tau, delta) + SAFT.dDelta_dTau(tau,delta)); - }; - long double dTau2(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.d2alphar_dtau2 + NonAnalytic.dTau2(tau, delta) + SAFT.dTau2(tau,delta)); - }; - - long double dDelta3(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.d3alphar_ddelta3 + NonAnalytic.dDelta3(tau, delta) + SAFT.dDelta3(tau,delta)); - }; - long double dDelta2_dTau(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.d3alphar_ddelta2_dtau + NonAnalytic.dDelta2_dTau(tau, delta) + SAFT.dDelta2_dTau(tau,delta)); - }; - long double dDelta_dTau2(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.d3alphar_ddelta_dtau2 + NonAnalytic.dDelta_dTau2(tau, delta) + SAFT.dDelta_dTau2(tau,delta)); - }; - long double dTau3(long double tau, long double delta) - { - Derivatives derivs; - GenExp.all(tau, delta, derivs); - return (derivs.d3alphar_dtau3 + NonAnalytic.dTau3(tau, delta) + SAFT.dTau3(tau,delta)); - }; + long double base(long double tau, long double delta) { return all(tau,delta).alphar; }; + long double dDelta(long double tau, long double delta) { return all(tau,delta).dalphar_ddelta; }; + long double dTau(long double tau, long double delta) { return all(tau, delta).dalphar_dtau; }; + long double dDelta2(long double tau, long double delta) { return all(tau, delta).d2alphar_ddelta2; }; + long double dDelta_dTau(long double tau, long double delta) { return all(tau, delta).d2alphar_ddelta_dtau; }; + long double dTau2(long double tau, long double delta) { return all(tau, delta).d2alphar_dtau2; }; + long double dDelta3(long double tau, long double delta) { return all(tau, delta).d3alphar_ddelta3; }; + long double dDelta2_dTau(long double tau, long double delta) { return all(tau, delta).d3alphar_ddelta2_dtau; }; + long double dDelta_dTau2(long double tau, long double delta) { return all(tau, delta).d3alphar_ddelta_dtau2; }; + long double dTau3(long double tau, long double delta) { return all(tau, delta).d3alphar_dtau3; }; }; // ############################################################################# diff --git a/src/Helmholtz.cpp b/src/Helmholtz.cpp index fecafffe..278b5a9a 100644 --- a/src/Helmholtz.cpp +++ b/src/Helmholtz.cpp @@ -18,7 +18,7 @@ long double kahanSum(std::vector &x) } bool wayToSort(long double i, long double j) { return std::abs(i) > std::abs(j); } -void ResidualHelmholtzGeneralizedExponential::all(const long double &tau, const long double &delta, Derivatives &derivs) throw() +void ResidualHelmholtzGeneralizedExponential::all(const long double &tau, const long double &delta, HelmholtzDerivatives &derivs) throw() { long double log_tau = log(tau), log_delta = log(delta), ndteu, u, du_ddelta, du_dtau, d2u_ddelta2, d2u_dtau2, d3u_ddelta3, d3u_dtau3, @@ -176,7 +176,7 @@ void ResidualHelmholtzNonAnalytic::to_json(rapidjson::Value &el, rapidjson::Docu el.AddMember("D",_D,doc.GetAllocator()); } -void ResidualHelmholtzNonAnalytic::all(const long double &tau, const long double &delta, Derivatives &derivs) throw() +void ResidualHelmholtzNonAnalytic::all(const long double &tau, const long double &delta, HelmholtzDerivatives &derivs) throw() { if (N==0){return;} for (unsigned int i=0; ivbarn*delta; } -void ResidualHelmholtzSAFTAssociating::all(const long double &tau, const long double &delta, Derivatives &deriv) throw() +void ResidualHelmholtzSAFTAssociating::all(const long double &tau, const long double &delta, HelmholtzDerivatives &deriv) throw() { if (disabled){return;} long double X = this->X(delta, this->Deltabar(tau, delta)); diff --git a/src/main.cxx b/src/main.cxx index bf9f3866..11a42c2c 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -413,11 +413,11 @@ int main() int rr = 0; } #endif - #if 0 + #if 1 { #if ENABLE_CATCH std::vector tags; - tags.push_back("[ancillaries]"); + tags.push_back("[helmholtz]"); run_user_defined_tests(tags); double rr = 0; char c; @@ -503,7 +503,7 @@ int main() shared_ptr Water(new HelmholtzEOSMixtureBackend(names)); Water->set_mole_fractions(std::vector(1,1)); - Derivatives derivs; + HelmholtzDerivatives derivs; time_t t1,t2; long N = 100000; double ss = 0;