The build system now passes compiler directives based on the mode being build. By default data is stored in the source root (and this is encoded into the compiled binary). However, if building in user mode then data is assumed to be at the meson install prefix data directory
epx10 is a extension to the c++ standard library from glibc which is not in libc. To provide support for llvm compilers alonw with gcc I have changed all calls to exp10(x) to pow(10, x).
gcc versions 11 and before did not require this header to be manually specified, above that it does. As we move towrds a standardized compiler version I have brought opatIO in line with more modern gcc expectations
Aaron Dotter implimented a C++ version of Frank Timmes' fortran code helmholtz.f90. I have taken that and refactored it to work in the 4DSEE code style. This has mostly involved some light moving of stuff around. The biggest change is removing all globals, and reorienting memory to be heap allocated and contiguous. This is because there was too much memory being stack allocated.
In order to prevent traversing the YAML tree I have added a hash map (O(1) lookup) to cache already accessed config variables. I have also added a vector to store keys requested but not found so we do not need to check for those every time
At many points in the code we may want configurable options, the Config class usses a yaml file to make this easy. It also allows for namespace references "opac:lowtemp:file" etc...
PreviouslyOPAT files were indexed using X and Z now they are indexed with a general index vector.
BREAKING CHANGE: all methods wch used X and Z now use std::vector<double> index (size: header.numIndex) instead. Also added a method to validate tables using checksum
opatIO can now read tables properly and retreive them in a useful manner. Future aditions will be the ability to lookup "closest" tables and a pretty printer for tables.
the polytrope module will be used as an initial guess to the solver. A skeleton of this has been imported from https://github.com/tboudreaux/FEMPolytrope
This module will need major updates still to handle 3D, proper boundary conditions, and to incorporate it with the rest of our meshing scheme
const needds to be accessed all throughout so it has been changed to a singleton to allow for more efficient usage
BREAKING CHANGE: Any previous loads to const will break, also constant->Constant and constants->Constants
eta (liminous efficacy) was overflowing its unit line causing errors when parsing the uncertainty. Removed extra space to contain it within the proper column width