40 Commits

Author SHA1 Message Date
Ian Bell
e367c68859 build: fetch boost subset via CPM from CoolProp/boost-headers (#2775)
The boost subset used to live as a .tar.xz inside this repo under
dev/docker/boost_bcp_docker/, extracted at configure time into
boost_CoolProp/. That setup is replaced by a CPM fetch of
CoolProp/boost-headers, pinned to a commit SHA like every other
dependency in cmake/dependencies.cmake.

Drops ~22 MB of in-tree headers + a 548 KB .tar.xz, and removes the
fatal-error configure path that required the tarball to exist.

The new subset also includes boost::numeric::odeint (and pulls the
typeof sublibrary explicitly so bcp's static dep scan doesn't miss
macro-registered headers -- see CoolProp/boost-headers c681046).

Closes #2774

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 18:21:31 -04:00
Ian Bell
d5761cb150 Use ninja for the examples (#2635)
* Use ninja for the examples

Should help a little bit with doc building

* FIx some templates

* Fix template deduction error in count_x_for_y_many functions

The count_x_for_y_many and count_x_for_y_manyC functions were using
a single template parameter for both input (double) and output (size_t)
arrays, causing template deduction failures in Cython bindings.

Changed to use separate template parameters YContainer and CountContainer
to properly support different types for input y values and output counts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix types in PXD header too

* Docs should get ninja too

* Changes from clang-format

* Fix git diff argument order in clang-format script

The script was comparing PR_BRANCH to TARGET_BRANCH, which shows changes from the PR branch to the target (what's in target that's NOT in PR). For PR validation, we need the opposite: changes from target to PR (what's in PR that's NOT in target).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Cython template deduction errors in solve_for_x_manyC and count_x_for_y_manyC

Add explicit template parameters [double, size_t] to both function calls
to resolve template type deduction errors when compiling with Cython.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix wheel building by removing return from void Cython template calls

The functions solve_for_x_manyC and count_x_for_y_manyC return void in C++.
When Cython sees a return statement with a void function call containing
template arguments with commas (e.g., [double, size_t]), it wraps the call
in the __Pyx_void_to_None macro. This macro is a simple preprocessor macro
that cannot handle the commas in template arguments, treating them as macro
argument separators instead.

The fix is to remove the return statements, making these simple void function
calls. This prevents the __Pyx_void_to_None wrapping and allows the wheel to
build successfully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-12 09:28:57 -04:00
Ian Bell
40cbc70eb9 More annoying leak info
Caught a few true positives
2025-05-19 08:28:25 -04:00
Ian Bell
267d64533a Superancillaries for pure fluids (#2511)
* Expansions are fully wrapped, looking good. Next step is the set of expansions that is the 1D approximation

* Get 1D approx working via cython

* Count solutions

* SuperAncillary class is working

>1000x speedup for water
Time for C++!

* Superancillaries are working!

In C++, speedup is more than 2000x. In Python, more like 150x because of Python <-> C++ overhead

* Add pmax check for PQ superancillary calls

* Update tests

* Allow T limits to be obtained

* Implement get_fluid_parameter_double for getting superanc value

* Add tests for getting parameters from superanc

* Script for testing superancillaries for sphinx

* Microoptimizations; don't help speed

The limiting factor remains the clear function, which takes about 30 ns

* Add R125 superancillary

* Use the release from fastchebpure for the files

* Drop a .gitignore in the unzipped folder

* Update superancillary injection script

* Turn on superancillaries by default

* Missing header

* Many int conversions in superancillary

* Another int cast

* More annoying solution for boost iter max

* Fix warnings

* One more warning

* Clear up the calculation of rho

* Update docs_docker-build.yml

Use arm64 since the containers were built on mac

* Superfluous ;

* Update backend.py

* Get the critical points working for superancillaries

* Fix wrapping changes of xmin&xmax methods

* squelch warnings

* Version 0 of jupyter notebook for docs

* Try to add the notebook to the docs

* Add jupyter notebook for superancillary

* Lots of updates to superancillary notebook

* More updates to docs

* Skip pseudo-pure for superancillary docs

* Fix output of superancillary figures

* Add superancillary plots to docs for the page for each fluid

* Make a placeholder figure for fluids without superancillary

* Add superancillary plots to task list

* Bump to release fixing m-xylene

* Relax the location of the REFPROP stuff

* Change default name for R-1336mzz(E)

* No need for figures to be so large

* Don't need REFPROP setting

* Bump to fastchebpure release with methanol

* Benchmark caching options

* Benchmark more granularly

* Add the fast methods to public API for HEOS class

* Back to memset - can memset with 0 but no other value

* Fix how caching is managed in Helmholtz class

* Close to final implementation

Perhaps a tiny bit more optimization possible?

* Update function name

* Make message more accurate

* Fix init order

* Expose update_QT_pure_superanc to Python

* Fix when _reducing is set for pures

* Fix the post_update

* Indent

* Notebook

* Notebook

* Make ln(p) construction lazy

Only really matters for debug builds

* Also make reference non-const

* Inject superancillary for methanol

* Make the superancillary loading entirely lazy in debug

* Fix PH bug for Nitrogen

 Closes #2470

* Force the clear to be called on SatL and SatV

To invalidate them at start

* Default is non-lazy superancillary loading

* Add CMake option to have lazy-loading superancillaries [skip ci]

Not a good idea unless doing very narrow testing
2025-05-17 20:27:19 -04:00
Ian Bell
d60f51aca8 version is deprecated in docker-compose 2025-05-17 11:47:43 -04:00
Ian Bell
746285e566 Add valgrind files 2025-05-17 11:00:00 -04:00
Ian Bell
a0325820c9 Add workaround note for arch 2025-05-11 19:59:50 -04:00
Ian Bell
75a3bb0edd Docker container for archlinux tester 2025-05-11 19:27:10 -04:00
Ian Bell
1795a1c2f0 Add imagemagick (and jupyter things) to docker container 2025-04-21 14:17:01 -04:00
Ian Bell
8a1b1f8bca Jump to python 3.13 for doc builder 2025-04-06 21:35:14 -04:00
Ian Bell
855293c4ce Add pickleshare and nbsphinx to container 2025-04-06 21:16:55 -04:00
Ian Bell
0a41d0d876 jinja2 is now no longer allowed to be < 3.0 by sphinx.
Patch cloud_sptheme, no longer being developed
2025-04-06 14:50:23 -04:00
Ian Bell
c0d5ecb7a4 Add note about how to get the right token 2025-04-06 09:16:26 -04:00
Ian Bell
9891a1df3a Update Dockerfile for doc base image 2025-04-05 08:32:10 -04: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
Jorrit Wronski
2841dfe217 Build the docs for v6.4.2 (#2191)
- 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.
2022-12-07 11:55:16 +01:00
Jorrit Wronski
35e5914581 Removed the Dockerfiles and added a new test builder for the docs 2015-10-29 23:22:43 +01:00
Jorrit Wronski
f18b71d26e Fixed a password leak in the docker log files. All affected passwords are changed. 2015-10-12 12:14:40 +02:00
Jorrit Wronski
3b32252a4c Added requests library to dockerfiles 2015-10-12 00:06:55 +02:00
Jorrit Wronski
c8ea0a07ba New entryfile with hints 2015-10-12 00:03:49 +02:00
Jorrit Wronski
7d2953c8ad Removed unused templates and scripts 2015-10-11 23:38:14 +02:00
Jorrit Wronski
85c19e4c13 Rewrote the files by hand and changed the inheritance structure 2015-10-11 23:12:06 +02:00
Jorrit Wronski
59e3624a52 Added more docs and modified the base image 2015-10-11 22:30:52 +02:00
Jorrit Wronski
cb952a03fb Added web builder 2015-10-11 16:12:59 +02:00
Jorrit Wronski
c6832ea193 Added some more documentation and move the entrypoint 2015-10-11 14:06:10 +02:00
Jorrit Wronski
3173fbfe3b Switching to Debian stable 2015-10-11 13:53:23 +02:00
Jorrit Wronski
2826230133 Relative location for entrypoint 2015-10-11 13:45:56 +02:00
Jorrit Wronski
9efad4cfd4 Moved dockerfile to new directory 2015-10-11 13:42:58 +02:00
Jorrit Wronski
0b09f5261e Added Dockerfiles for automatic builds on docker hub. 2015-10-11 13:34:52 +02:00
Jorrit Wronski
f3c8f24e47 Added more minor adjustments 2015-10-11 00:26:54 +02:00
Jorrit Wronski
089d0a4684 Added new dir and todos 2015-10-09 08:25:12 +02:00
Jorrit Wronski
10d8a749a2 Added rsync, still missing a way to integrate the ssh keys 2015-10-09 07:43:43 +02:00
Jorrit Wronski
1f5dde082b Added a little documentation and fixed an issue with bash 2015-10-09 00:28:15 +02:00
Jorrit Wronski
307d7a0bcd Testing with new entrypoint and environment variables 2015-10-09 00:03:28 +02:00
Jorrit Wronski
d92ad3dbc2 Testing with new entrypoint and environment variables 2015-10-09 00:03:12 +02:00
Jorrit Wronski
6d97c5bba9 Added hints for the shell commands 2015-10-08 23:00:45 +02:00
Jorrit Wronski
64b8777a38 Added conda clean options 2015-10-08 22:50:34 +02:00
Jorrit Wronski
2db75b0003 Fixed some conda code 2015-10-08 08:40:44 +02:00
Jorrit Wronski
2f19352d25 Added more docker images 2015-10-08 08:22:41 +02:00
Jorrit Wronski
1597abd75d Started work on docker image, might move to conda later 2015-10-08 00:55:26 +02:00