* Catch singular explosions in saturation_PHSU_pure
Sometimes, the Akasaka solver has issues. This is usually caught and
then it is retried with a new omega. However, sometimes it goes bad
because the J matrix is singular, and this is not caught because the
error is not recalculated.
This commit recalculates the error term to prevent a bad result.
* Add comment to explain error check in saturation_PHSU_pure
* Add extra update check after saturation_PHSU_pure
During saturated PHSU flash calculations, SatL and SatV states have an
imposed phase. This is good for stability, but there is a small chance
that they can both up up with a matching third variable (e.g.,
pressure) that is not actually at the saturation point. This commit
forces a final DT update without this requirement. If an actual solution
has been found, the the error term will still be small. If not, then we
throw an exception and try again.
This continues work on #2245.
* Ensure that saturated phase is specified
In saturation_PHSU_pure, we unspecify the phase of SatL and SatV to
perform a final check. However, for any future updates, these states
*must* be set with specified phase. This commit ensures that no matter
what happens (exception, etc.) the phase is always specified again.
* Revert "Ensure that saturated phase is specified"
This reverts commit c6b650b861.
The commit caused potential recursive lookups and did not solve the
issue at hand.
* Update the ammonio saturated rhoV ancillary
The rhoV ancillary gave somewhat wrong results. This commit provides a
closer fit that prevents errors downstream.
Use an existing CoolProp installation to create data sets for Acetone, Ethanol, Hexane as well as gaseous air. These fluids are added to the list of incompressible fluids for simplified calculations.
use interpolation to avoid the division by zero when calculating incompressible fluid properties exactly at the base temperature or composition, closes#2295
* Add EOS JSON for R1336mzz(E) from Akasaka-IJT-2023.
* Add BibTeX entry for Akasaka-IJT-2023.
* Add BibTeX_EOS label in R1336mzz(E).json.
* Update R1336mzz(E).json
Fix the triple point liquid density, without it, VLE calculations fail
---------
Co-authored-by: Ian Bell <ian.h.bell@gmail.com>
* Liquid sodium properties added in incompressible liquids from range 400 K to 2500 K in steps of 100 K.
np.float changed to float in SecCoolFluids.py (Deprecated alias)
json file generated and added
* a bug in liquid sodium viscosity value corrected
* specific heat capacity fit was not proper for liquid sodium.
after removing two data points at the high temperature end, the fit is reasonable and is retained as of now.
* liquid sodium json file updated
* specific heat fit for liq sodium was not satisfactory for full range 400 K to 2300 K.
hence the range of values for specific heat of liq sodium reduced to 400 K to 1000 K and new coefficients updated
The rhoV auxilliary for n-Hexane had accidentally been set to use
reduced tau. This commit fixes the typo. This prevents bad guesses
for a number of property evaluations which use saturated states.
* Remove R1233zd(E) hL ancillary
The R1233zd(E) hL ancillary performs poorly. This can result in a
failure to converge when provided inputs (p/h) lie between the
ancillary saturation curve and the true saturation curve. Removing
the ancillary makes CoolProp fall back to a robust saturation
solver.
* Add 0.01 K cushion to Tmax in HSU_P_flash
Within HSU_P_flash, if an ancillary is used it can have a small
error. If the point of interest is near that saturation curve, this
error can prevent the solver from converging. Adding a 0.01 K margin
account for small ancillary errors and allow the solver to converge.
* Correct 0.01K cushion
The 0.01K adjustment should increase the potential range of the
solver. Previously, the minimum was increased, but it should be
decreased.
- Streamlined the build of the HTML documentation based on a private docker image.
- Invoke doxygen and Sphinx to create the final HTML pages.
- Employ a cache for the GitHub actions to store the output of the expensive tasks.
- Restructured the GitHub actions builders and introduced a naming scheme.
- Fixed a few typos in the docs.
- Automatically publish the documentation to GitHub pages.
* Minimum fix for sed: mac has a weird sed version...
* Make repalcement from python to avoid dealing with weird sed version on mac
* Try to get the size of the wheels (/!\ 100MB max per upload)
* move setting env vars up a block
* Enable upload to testpypi
* Figure out the next available version to avoid override (especially for testpypi, shouldn't happen for pypi as we should bump in CMakeLists)
* 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
* First try at building shared library
* Rename artifact for clarity instead of putting them all in the same
* Add a doxygen worklow
* Extract version from CMakeLists to name the artifacts
* move the extract version bit to a script in dev/ so I can reuse for documentation too
* Disable fail-fast, and don't use fstrings in extract_version.py (mac has a too old python by default, and I don't want to call setuppython actions)
* Mac still picks up a too old python, whatever: just setup any 3.x (it's cached, so quick)
* First try for a Windows Installer package
* forgot to create the build dir
* forgot build type
* Try to re-enable catch2 tests
* adjust
* Leave the coolprop catch2 tests in a separate workflow, since many are currently failing