Commit Graph

602 Commits

Author SHA1 Message Date
Ian Bell
317e37504c Disable cppformat for VxWorks 2016-09-29 22:03:45 -06:00
Ian Bell
ac8e6df11d Add ability to use Peng-Robinson in REFPROP; closes #1233 2016-09-15 21:01:36 -06:00
Jorrit Wronski
3f3a63f8be Minor compatibility fix for cppformat 2016-09-11 19:41:42 +02:00
Ian Bell
9b129ce950 First cut at adding ODE integrators; closes #1220 2016-09-01 13:24:14 -06:00
Ian Bell
bbcbbf1384 Update cppformat; see #1065 2016-08-28 00:33:00 -06:00
Ian Bell
0dcc97210b Avoid crazy number of calls to set_temperature if possible. 2016-08-27 22:39:05 -06:00
Ian Bell
8f0aa03650 Updates to solvers to store the number of iterations and allow for damped methods; see #985 2016-08-23 20:55:31 -06:00
Ian Bell
6d6c96ef0c Repair the non-cached calculations 2016-08-21 18:54:36 -06:00
Ian Bell
3e9ca1fbf4 Remove non-c types from CoolPropLib.[cpp/h]
@JonWel - watch out for the use of C++ types in C header
2016-08-21 12:45:35 -06:00
Ian Bell
57584a7254 Merge VTPR (#1195)
* Added first working version of VTPR;

* Get VTPR building hopefully

* Remove more constant iterators

* Make VTPR accessible through factory

* One last const iterator

* Fix a_alpha bug and make sqrt(2) into sqrt(2.0)

* Added analytic first derivative for VTPR

* Fix another set of sqrt(2) -> sqrt(2.0)

* Add some info on the derivatives for VTPR

Looks less hopeless than I had feared

* gE/RT needs to be multiplied by RT; closes #1161

* Added first working version of VTPR;

* Get VTPR building hopefully

* Remove more constant iterators

* Make VTPR accessible through factory

* One last const iterator

* Fix a_alpha bug and make sqrt(2) into sqrt(2.0)

* Added analytic first derivative for VTPR

* Fix another set of sqrt(2) -> sqrt(2.0)

* Add some info on the derivatives for VTPR

Looks less hopeless than I had feared

* gE/RT needs to be multiplied by RT; closes #1161

* Add VTPR code from @JonWel (#1194)

* 1rst draft to implement a simple volume translation to cubics

* A bit more of VT

* Derivatives for volume translation

* Better cm initialisation

* Solves the cubic equation with volume translation

* Correct the volume translation analytic development
Looks good now

* Update VTPR to be able to use volume translation

* Unprotect cm_term
This allows it to be used from the VTPR backend

* Update CoolPropLib.def

* Better derrivative of PI_12

The expression is simpler this way

* Solves #1176
Thanks @ibell

* Change the way the volume translation parrameter is set

* Start the bm derivatives for VTPR

* Correct one derivative

* Small bug

* Better bm derivatives for VTPR

* Add am and bm component derivatives for VTPR
@ibell I did not check yet the component derivatives of this commit, bu I checked the other ones with your code.
I'll have to addapt your code to also check these ones.

I separate the `am_term` and `bm_term` as the `am_bm_term` function was called twice. This reduce the call to the am_term part as this part ends up being called only once, and this helped writing the component derivatives.

The tau derivative is done numerically untill we find time to develop the analytical one.

The `am_bm_term` function started with a `set_temperature()`. I did not checked yet why this is needed and put this set temperature at the beginning of each of the `am_term` component derivatives.

I'll try to addapt the checking code tomorow.

* tab to spaces

* Re-writing of cubic coefficients
Introducing 3 intermediary varriables that simplify the cubic's coefficient with the volume translation.

* 1rst draft to implement a simple volume translation to cubics

* A bit more of VT

* Derivatives for volume translation

* Better cm initialisation

* Solves the cubic equation with volume translation

* Correct the volume translation analytic development
Looks good now

* Update VTPR to be able to use volume translation

* Unprotect cm_term
This allows it to be used from the VTPR backend

* Update CoolPropLib.def

* Better derrivative of PI_12

The expression is simpler this way

* Solves #1176
Thanks @ibell

* Change the way the volume translation parrameter is set

* Start the bm derivatives for VTPR

* Correct one derivative

* Small bug

* Better bm derivatives for VTPR

* Add am and bm component derivatives for VTPR
@ibell I did not check yet the component derivatives of this commit, bu I checked the other ones with your code.
I'll have to addapt your code to also check these ones.

I separate the `am_term` and `bm_term` as the `am_bm_term` function was called twice. This reduce the call to the am_term part as this part ends up being called only once, and this helped writing the component derivatives.

The tau derivative is done numerically untill we find time to develop the analytical one.

The `am_bm_term` function started with a `set_temperature()`. I did not checked yet why this is needed and put this set temperature at the beginning of each of the `am_term` component derivatives.

I'll try to addapt the checking code tomorow.

* tab to spaces

* Re-writing of cubic coefficients
Introducing 3 intermediary varriables that simplify the cubic's coefficient with the volume translation.
2016-08-21 12:34:55 -06:00
Ian Bell
e7fc3eb096 Add 4th order solver (Householder method) with three analytic derivatives ; closes #1185 2016-08-12 18:49:21 -06:00
Ian Bell
95a3cc8892 Add function to generate rapidjson instance from JSON string; closes #1182 2016-08-11 21:54:24 -06:00
Ian Bell
046b5b1037 REFPROP can impose phase and call TPRHO; see #1175 2016-08-07 15:39:29 -06:00
Ian Bell
9bd37e7d64 Add InChI keys and string, SMILES, etc; closes #1069
See also #115
2016-07-27 19:42:31 -06:00
JonWel
75da119182 Export set_config_string, closes #1160 (#1163) 2016-07-19 08:08:38 -06:00
Jorrit Wronski
458ee9469e Added a check for the inputs to calc_Tfreeze, solves #1137 2016-07-17 01:21:41 +02:00
Ian Bell
e2a16a300b Implemented excess properties in C++; see #1071 2016-07-12 19:31:35 -06:00
Ian Bell
ccc4568cbd Re-implement fundamental derivative of gas dynamics; closes #1145 2016-07-09 17:13:44 -06:00
Ian Bell
f5e4e3faea Add viscosity for the xylenes; closes #1068 2016-07-04 00:09:03 -06:00
JonWel
579bba98c4 Export specify_phase() to the library, closes #1133 (#1134)
* Cubic calc_molar_mass, closes #1124

* Add simplified update and output functions
This allows simpler use of the low level interface by using the strings name instead of the parameter number.
The parameter number version stays and will be faster for more than one call with the same parameter.

* Add AbstractState_update_and_1_out

* Export specify_phase() to the library

* small correction
Safer to only accept an array of real numbers here.

* Small correction
Specifying the type of the array to avoid any convertion
2016-06-22 21:57:13 -06:00
Ian Bell
84f7eff363 Drastically improve stability of QT for cubics through the use of spinodal pressures 2016-06-15 23:34:26 -06:00
Jorrit Wronski
63c6c184e5 Solved #1120 with C++11 constructors, moving back to C++98 2016-06-10 12:58:01 +02:00
Jorrit Wronski
94bcee472f introduced backend enumerations, I hope this fixes #1120 reliably 2016-06-10 12:19:18 +02:00
Ian Bell
c16a4b64f5 Fix integer types in #1114 2016-06-08 07:30:28 -06:00
JonWel
afeca6a8b2 Export set_binary_interaction_double + Julia wrapper improvement (#1114)
* Precompiling of Julia Wrapper only for Julia 0.4+
Should allow to keep compatibility with Julia 0.3

* Export set_binary_interaction_double
to the shared library and add it to Julia Wrapper

* Correct comment in previous commit

* Change tab to spaces in precendent commit

* Add update_and_*_out functions

Add `AbstractState_update_and_common_out` and `AbstractState_update_and_5_out` to the wrapper

* Update .gitignore
2016-06-08 07:19:14 -06:00
Ian Bell
8c9b1a5e9b Added Helmholtz energy throughout the API as output parameter; closes #1086 2016-06-05 15:56:37 -06:00
Ian Bell
154de451fe Fix set_reference_stateD(); closes #1091
Now all inputs are molar, and the function actually works!
2016-06-05 15:16:02 -06:00
JonWel
a5c7886e47 Export first_partial_deriv to DLL wrapper of AbstractState, see #946 (#1062) 2016-05-11 07:10:51 -06:00
Ian Bell
4dd6a9860e Add rho*sr scaling methodology for viscosity from Bell paper in Purdue conference
closes #816
closes #665
2016-05-10 21:32:20 -06:00
Ian Bell
5fcb5dd2a9 Add apply_simple_mixing_rule to AbstractState; fix bug with SatL and SatV and setting interaction parameters
closes #1048
closes #1049
2016-05-07 19:51:25 -06:00
Ian Bell
3c24e94a28 Copy PlatformDetermination.h into the top of CoolPropLib.h; see #946 2016-05-06 18:21:01 -06:00
Jorrit Wronski
7a8eb7c21e Guard against multiple definitions of "_CRT_SECURE_NO_WARNINGS" macro on Windows 2016-04-21 15:33:38 +02:00
Ian Bell
cd996fb1ff Make the gas constant an adjustable parameter and update to CODATA 2014 value 2016-04-07 20:14:39 -06:00
Ian Bell
616d775aa9 Typo in TPD fix; see #1019 2016-04-07 20:09:19 -06:00
Ian Bell
3f50ba07ee Fix docs for tangent_plane_distance; closes #1019 2016-04-07 20:03:58 -06:00
Ian Bell
130c6ed456 Add ability to use GERG in REFPROP; closes #923 2016-04-04 20:06:01 -06:00
Ian Bell
2c64bdaadf Add chemical potential as abstract state method
For example:

```
auto fluids = strsplit("Methane&Ethane", '&');
auto x = { 0.6,0.4 };

shared_ptr<CoolProp::AbstractState> RP(CoolProp::AbstractState::factory("HEOS", fluids));
RP->set_mole_fractions(x);
RP->update(PT_INPUTS, 101325, 300);
auto mu1 = RP->chemical_potential(0);

RP.reset(CoolProp::AbstractState::factory("REFPROP", fluids));
RP->set_mole_fractions(x);
RP->update(PT_INPUTS, 101325, 300);
auto mu2 = RP->chemical_potential(0);
```
2016-03-30 22:10:57 -06:00
Ian Bell
9ec2acc664 Add cair_sat to DLL/SO; closes #1005 2016-03-24 17:31:18 -06:00
Ian Bell
a35f09f81b Cubics now are validated and new cubic fluids can be added
Lots of changes:
* Cubics are validated against schema
* Schema can be returned as string
* Added preliminary docs for cubics
* Cubic fluids can be added programmatically
2016-03-24 15:40:25 -06:00
Ian Bell
02e0323b67 Fix order of initialization for solver wrapper class 2016-03-21 20:28:47 -07:00
Ian Bell
8a03d2bd55 Move error string into solver class; see #985 2016-03-19 22:40:14 -07:00
Ian Bell
61caa8902e Fix include for msgpack-c; see #994 2016-03-19 21:13:03 -07:00
Ian Bell
137a850b49 Where possible, remove include paths
Can't do so for Eigen.

closes #994
2016-03-19 21:08:30 -07:00
Ian Bell
2160b02985 Implement 95% of the BIP setting/getting
See #1000
2016-03-19 20:39:40 -07:00
Ian Bell
913c6188a2 Allow ability to adjust the fineness of the refinement of the phase envelope from the high-level 2016-03-18 22:46:28 -07:00
Ian Bell
470514a8e3 Refactor phase envelope packaging with msgpack to remove external msgpack-c include
Also, don't package msgpack or rapidjson with CoolProp.  Doesn't seem necessary now
2016-03-18 21:37:49 -07:00
Ian Bell
18954facc5 Also add the configuration key 2016-03-18 21:30:58 -07:00
Ian Bell
545cbab36c Kill min and max macros to close #995 2016-03-13 10:43:45 -07:00
Ian Bell
59470d005b Added two headers that might help with #995 2016-03-12 17:33:27 -07:00
Jorrit Wronski
b498d8b287 Added the generated cubic header to the ignore files 2016-03-09 10:08:51 +01:00