716 Commits

Author SHA1 Message Date
Ian Bell
14294fb790 Default is non-lazy superancillary loading 2025-05-17 17:58:25 -04:00
Ian Bell
ec30622371 Make the superancillary loading entirely lazy in debug 2025-05-17 15:41:57 -04:00
Ian Bell
719d980b74 Make ln(p) construction lazy
Only really matters for debug builds
2025-05-17 15:41:57 -04:00
Ian Bell
98ffdb2d71 Expose update_QT_pure_superanc to Python 2025-05-17 15:41:57 -04:00
Ian Bell
aab1000685 Fix init order 2025-05-17 15:41:57 -04:00
Ian Bell
46662bc3a3 Fix how caching is managed in Helmholtz class 2025-05-17 15:41:57 -04:00
Ian Bell
01d9a23606 Back to memset - can memset with 0 but no other value 2025-05-17 15:41:57 -04:00
Ian Bell
d9de22cd8a squelch warnings 2025-05-17 15:41:56 -04:00
Ian Bell
b21583e061 Get the critical points working for superancillaries 2025-05-17 15:41:56 -04:00
Ian Bell
95d606c7da Superfluous ; 2025-05-17 15:41:56 -04:00
Ian Bell
f9dc0be5e5 Fix warnings 2025-05-17 15:41:56 -04:00
Ian Bell
c9f5af51dd More annoying solution for boost iter max 2025-05-17 15:41:56 -04:00
Ian Bell
92ee7ad4a1 Another int cast 2025-05-17 15:41:56 -04:00
Ian Bell
49464729e7 Many int conversions in superancillary 2025-05-17 15:41:56 -04:00
Ian Bell
96b7d7f7e5 Missing header 2025-05-17 15:41:56 -04:00
Ian Bell
f855483e6c Turn on superancillaries by default 2025-05-17 15:41:56 -04:00
Ian Bell
de32d6b0d8 Allow T limits to be obtained 2025-05-17 15:41:56 -04:00
Ian Bell
4edf2cef8e Add pmax check for PQ superancillary calls 2025-05-17 15:41:56 -04:00
Ian Bell
0781cd8a2d Superancillaries are working!
In C++, speedup is more than 2000x. In Python, more like 150x because of Python <-> C++ overhead
2025-05-17 15:41:56 -04:00
Ian Bell
47bf6728bf SuperAncillary class is working
>1000x speedup for water
Time for C++!
2025-05-17 15:41:56 -04:00
Ian Bell
9290b51960 Count solutions 2025-05-17 15:41:56 -04:00
Ian Bell
514a783d85 Get 1D approx working via cython 2025-05-17 15:41:56 -04:00
Ian Bell
685462f634 Expansions are fully wrapped, looking good. Next step is the set of expansions that is the 1D approximation 2025-05-17 15:41:56 -04:00
Ian Bell
50a73dfabf Add a method for getting the fluid_param string length (#2547)
Also update the error message
2025-05-07 20:33:26 -04:00
Ian Bell
50fa2dc2b2 Cannot use memset with double arrays
Closes #2545
2025-05-03 16:41:16 -04:00
Ian Bell
3c61e22c44 Implement the array-based caching in AbstractState. (#2544)
* Implement the array-based caching in AbstractState. Not clear much more optimization is possible

Closes #2543
2025-04-30 07:18:43 -04:00
Ian Bell
a1d4433738 Remove the _R from AbstractState 2025-04-29 21:27:15 -04:00
Ian Bell
45fdfaa8ea Config should use unordered_map
Safe change, doubles the speed of lookups
2025-04-28 20:30:11 -04:00
Ian Bell
b20dcbbc8e Array header missing 2025-04-27 17:35:48 -04:00
Ian Bell
b502fc46ce Switch Helmholtz cache to array with memset for clear
Closes #2540
2025-04-27 16:27:59 -04:00
Ian Bell
71c4d24768 Switch methanol to the EOS of de Reuck to match REFPROP
Closes #2538
2025-04-27 09:26:36 -04:00
Ian Bell
49a0e1508b message to cerr as well 2025-04-12 08:02:44 -04:00
Ian Bell
b234116404 Oops, use the converted double 2025-04-12 07:54:52 -04:00
Ian Bell
873c1f700b type checks on env loads; fatal errors if not convertible 2025-04-12 07:53:38 -04:00
Ian Bell
f226e35e01 Maybe I fixed the env issue 2025-04-11 17:29:39 -04:00
Ian Bell
11438acf7b Another try at debugging weird env reading issue 2025-04-11 15:46:55 -04:00
Ian Bell
3cb96a021c Overwrite config with env (#2532)
* Allow paths to be set from environment variables

* Add some quick docs
2025-04-11 07:51:06 -04:00
Ian Bell
e3aa835ca8 Allow all() to throw
Due to the GERG terms where Tc is required to be stored
2025-04-03 19:30:56 -04:00
Ian Bell
dc360fc167 miniz fluids (#2495)
* Ignore depcache files [skip ci]

* Z lib compress the fluid data

And migrate to newer version of miniz

* Add the writing of the .z file

* This works on MSVC, not sure about any other platform

How does one inform the linker about what locations to search for this file?

* Does this give the necessary linking info to the compiler?

* Include the header only for MSVC

* The incbin is still needed for non-windows

* Missing headers for Python

* Add miniz source file

* Missing import

* Provide a solution for compilers that don't support assembly to embed files

* Don't specify standard since we have mixed C/C++

https://stackoverflow.com/questions/49000674/cython-std-c11-error-using-both-c-and-c

* rename miniz to cpp

* And cmake

* Back to .c again

Not sure what to do about Python now

* Build the C library and then link it in

* FIx cmake too

* Location for .z file

* arg to setup function

* Check for z file [skip ci]

* Force build temp to be here

* Try switching to setuptools version

* Force the build_temp to be build before clib construction begins

That was subtle...
2025-03-09 10:38:56 -04:00
Ian Bell
c54b241675 Switch EOS tests to multicomplex (#2490)
Found some issues in log function of mcx. Should update the tests to use autodiff probably, but that requires quite a lot more work
2025-03-02 13:58:21 -05:00
Andrej Dolenc
5775dac12a Support plotting in C++ (#2463)
* Initial rewrite to c++

* Minor cleanup

* Add simple unit test for ph plot

* Add tests for Ts plot

* Use coolprop's lin and logspace functions to generate ranges

* Remove copied file header comments

* Remove code for handling unit conversions

* Replace Optional return from value_at with Nan

* Rename generate_ranges to generate_values_in_range

* Clean up xy_switch code

* Remove redundand <memory> include

* Make namings more consistent

* Further cleanup

* Move implementation to .cpp file

* More renamings

* Finish moving implementation over to .cpp

* Move generate_values out of Details namespace

* Make get_axis_limits const-able

* Constify most of the methods

* Add _ for member variables

* Make isoline methods consts too

* Make tp limits parameter an enum instead

* Try to match the code style with rest of repo

* Move not needed code from .h to .cpp

* Match code style with curly braces on same line

* Update variable names in tests so they make more sense

* Clean up the public api for PropertyPlot

* Add docstrings to public interface in CoolPropPlot
2025-02-17 13:38:54 -05:00
Ian Bell
a19e69662f Update msgpack-c and selectively add boost (#2450)
(like was done in teqp)
2024-12-07 13:06:49 -05:00
Ian Bell
730620f7b1 Expose the neff function 2024-10-03 20:00:15 -04:00
k-collie
1d98aa9f6a Include stdbool for C interface (#2342)
* Include stdbool for C interface

* Maintain pre-C99 compatibility
2024-01-09 12:54:07 -05:00
Jorrit Wronski
cbd53f344b Reformatted the code from #2317 and moved out of the deprecated section. Maybe @CSchulzeTLK can add the doxygen documentation? That would be awesome :-) 2023-11-28 11:21:23 +01:00
Christian Schulze
2cbcc5e236 New C Interface Functions (#2317)
* add more interface functions

* fix phase data type, "const*const"->"const*"
2023-11-28 11:15:33 +01:00
chrishauptmannAtEsiGroup
c525537175 Added second_partial_deriv and first_two_phase_deriv (#2291)
* Added AbstractState_second_partial_deriv and AbstractState_first_two_phase_deriv to CoolProp.dll

* added functions:  first_two_phase_deriv_splined, second_two_phase_deriv

---------

Co-authored-by: Chris Hauptmann <chn@esi-group.com>
2023-09-15 07:17:14 -04:00
chris-hampel-CA
36d91f178d Add fugacity functions needed for compatability with CoolProp.jl pkg (#2286)
* attempt to add fugacity functions needed for CoolProp.jl

* address first round of PR edits

change std:size_t to long
remove get_fugacity_coefficients
add .def exports

* remove fugacity refs in CoolPropLib.def
2023-09-07 21:09:50 -04:00
Ian Bell
c4108e5a57 Fix order of initialization 2023-08-28 20:54:20 -04:00
Ian Bell
3cab04a678 format_as should be inline, not static 2023-08-28 20:54:05 -04:00