* Add extrapolating secant solver
Sometimes, the backwards ancillary solver fails near the critical
point. This can happen if the ancillary function at its limit
(i.e., critical temperature) does not reach the desired seek value
(e.g., density). Because we are only usually using these to get a
guess value, we can extrapolate them without issue to avoid a crash
near the critical point.
This helps to resolve#2154.
* Stabilize saturation curve solution
Solving for the saturation curve near the critical point can be
unstable. This commit fixes that in a few ways.
1) Prevent the solver from overshooting and prevent a negative
temperature or density.
2) If it does fail, try again with a smaller omega value.
If the solver fails after all of this, we will still throw to allow
something downstream to handle it.
This helps to address issue #2154.
* Move saturation_D_pure max iterations to options
Implementation comparable to HelmholtzEOSMixturebackend
See PR #1371 (4014f85c4c)
Minor changes to CubicBackend.cpp
If phase is imposed, it is returned
instead of always returning gas phase for mixtures
TODO is not properly fixed though
* Add AbstractState functions to CoolPropLib
AbstractState_get_mole_fractions_satState
AbstractState_keyed_output_satState
AbstractState_backend_name
add_fluids_as_JSON
* Overloaded AbstractState_get_phase_envelope_data and appended checkedMemory to function name
* Bump Catch2 to latest v3.0.0-preview4
Bump Catch2 to latest 2.x: 2.13.8
Rename submodule Catch to Catch2
Add catch2 to ctest
Fix missing ";" in catch tests
Use ctest for catch2: run once with little output, then 2nd time with verbose output for failed tests
Run through CatchTestRunner: TEMP: PICK A STYLE
Update Catch to v3.0.0-preview4
Try to migrate to catch2 v3
Ok it builds and runs, but I'm missing tests
Get all files that have inline tests, now I get same behavior as with catch1
Put back app sources
* Remove the link to coolprop lib since I am now using APP_SOURCES instead of just the specific files with tests
* Fix build error: `src/Backends/IF97/IF97Backend.h:54:34: error: call of overloaded ‘abs(double)’ is ambiguous`
Found with the manylinux_2_24_x86_64
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
* Register MSVC 2019 and 2022 in setup.py
* setup.py: when calling cmake, build in parallel
* Enable using Env variables instead of passing them as args to setup.py
* Github actions for linux: try 1
* use actions/checkout@v3 for submodules
* mod setup.py:; typo
* Random shot for cibuildwheel for all platforms
* I thought package_dir was a flag, but it's positional
* typo in cmake_compiler
* add cython to setup_requires
* try a pryproject.toml to install cython
* try more requirements?
* pywin32 only found on win32 I guess
* Try with CIBW_BEFORE_BUILD instead
* try to enable msvc via vcvarsall on windows, and pass MACOSX_DEPLOYMENT_TARGET
* more tweaks for windoze
* disable tests for now (fails on windows)
* tweak mac again: it seems mac doesn't understand a C++ lambda, so like it's using pre C++11
* tweak
* try 10.15 for mac...
* try to force C++11 since mac picks up the path where lambdas are used...
* Move back down to 10.9 now that C++11 is enabled and it works on mac, it should be enough
* Try to debug win32
* Enable part of the upload step (minus the upload) to list the wheels
* try to allow win32 to fail for now (instead of plain disabling)
* Disable the python_linux.yml workflow, so cibuildwheels works fine.
* Adjust the upload step to point to the right folder
* make LGTM python happy
* Fixed crash in PTflash_twophase::build_arrays
Fixed crash in SaturationSolvers::PTflash_twophase::build_arrays for mixtures with 3 or more components.
* set HEOS._Q = -1 when phase-envelope built