Commit Graph

143 Commits

Author SHA1 Message Date
poojanagrawal
ee7470f969 fix(standard_compositions.cpp): found and fixed h and he leaking out of the composition data
added a check for H and He getting added to SpeciesObject and cleaned up some variable names  and filenames
2026-06-05 22:47:15 +02:00
poojanagrawal
376df477e3 fix(Standard-Compositions): fixed the compositions that were not working 2026-06-04 13:53:35 +02:00
poojanagrawal
a7389fcfce fix(standard-compositions): completed the calculations of mass fractions
Moved the abundance calculations to its own function instead of main, fixed calulations of mass fractions
2026-06-03 13:49:35 +02:00
5ae76be756 test(tests): Standard Solar Composition Unit Tests
Added first basic unit test to ensure all standard solar compositions can load. Not currently passing
2026-06-03 13:28:48 +02:00
3d09d1e0ea docs(gitignore): added CLI11 source to gitignore 2026-06-03 12:00:16 +02:00
1619eba529 feat(standard_compositions): added working enum overloads
also added docs
2026-06-03 11:59:54 +02:00
3d2eb46d0d feat(sandbox): added example input params 2026-06-02 17:02:19 +02:00
22083d5d11 feat(standard_composition): Enum overload for compositions
Added additional overloads to allow typesafe and compile time checking of requested composition
2026-06-02 16:22:18 +02:00
poojanagrawal
663bdcea03 feat(Standard-Compositions): Imported standard metal fractions from MESA
Imported standard metal fractions from MESA to build compositions from one of the standard schemes
2026-06-02 15:57:33 +02:00
3741768893 docs(docs): rebuilt docs 2026-05-18 10:08:43 -04:00
9299514307 Added more docs 2026-05-18 10:04:49 -04:00
1a5bd2b32c fix(gcc): static_cast long int -> size_t for comparision
address IDB warnings in gcc build
2025-12-22 07:39:59 -05:00
e3b2a19de6 Merge pull request #9 from tboudreaux/perf/vec
Cache Locality
2025-12-08 11:52:50 -05:00
a49dc32fdb docs(version): Version bumb v2.2.3 -> v2.3.0
New version brings internal cache locality by storing everything as
vectors rather than maps
2025-12-08 11:51:44 -05:00
d38517bc42 fix(benchmarks): fixed incorrect index gen 2025-12-08 11:50:05 -05:00
e29c7b8e2f perf(benchmarks): added hist output 2025-12-08 11:38:43 -05:00
284e8cd10a perf(Composition): Internally switched from map -> vector
This brings a major performance improvment as all memory is contiguous
on the heap rather than spread around.
2025-12-08 11:31:46 -05:00
184df676ca perf(hashing): Much faster hash algorithm
For compositions we have implimented a much faster hashing algorithm
2025-12-07 09:41:58 -05:00
3dc697dd6e docs(meson): version bump v2.2.4 -> v2.2.5
added composition hash caching in this version
2025-12-07 07:54:10 -05:00
3bd761091d Merge branch 'main' of github.com:4D-STAR/libcomposition 2025-12-07 07:52:27 -05:00
51c6a97b47 fix(cache): Cache properly clears
Cache now clears properly when setting molar abundances
2025-12-07 07:52:08 -05:00
75ba6c8456 perf(hash): Hash caching
added ability for composition to stash their own hash values
2025-12-07 07:47:32 -05:00
c2e542700a build(wasm): libcomposition now builds on wasm
libcomposition now builds and works on wasm. This includes bringing in versions of sublibraries which can also work on wasm
2025-12-03 11:12:41 -05:00
9541234a5f build(wasm): working on getting wasm support into libcomposition 2025-12-03 11:02:51 -05:00
ae4b2119d8 fix(unity): fixed name conflict in unity builds
getSpecies was defined in two translation units. This was not an issue
for regular builds but broke unity builds. this has been refactored to a
single function in utils.h
2025-11-28 11:42:13 -05:00
42c9d18063 docs(docs): rebuilt 2025-11-27 17:47:38 -05:00
ceff418999 docs(version): version bump v2.2.0 -> v2.2.1
Fixed broken include directies on linux
2025-11-27 17:47:19 -05:00
6da4818ff4 fix(gcc): Fixed broken include paths
GCC is more strict with header includes. Fixed some of these so that libcomposition compiled on linux with a gcc toolchain
2025-11-27 17:40:32 -05:00
522d766bc2 feat(composition): added map overloads 2025-11-25 11:27:45 -05:00
408dd71eee feat(composition-hash): added robust hashed for compositions
also added ability to use Compositions as a std::hash in unordered_* types. Further added a constructor to build a Composition from a const CompositionAbstract&
2025-11-12 15:21:33 -05:00
2492b5f652 feat(MaskedComposition): added MaskedComposition to libcomposition
MaskedComposition is a generally useful decorator, therefore instead of forcing callers to impliment it on their own, we have implimented it as part of libcomposition
2025-11-10 08:47:35 -05:00
71e9269837 feat(CompositionAbstract): added clone and iterator methods to the CompositionAbstract Interface 2025-11-09 09:51:29 -05:00
31407c91f7 feat(CompositionDecorator): added composition decorator
It is sometimes useful for callers to be able to create new composition objects without overloading all the required methods. The CompositionDecorator acts as a simple translation layer which will pass any calls to virtual methods down to the next level of the composition stack (other than those which may have been overloaded by the caller)
2025-11-09 07:42:03 -05:00
49bfb5eff1 fix(CompositionAbstract): Moved CompositionAbstract into correct namespace
Further, added the composition_abstract header file to the correct install path
2025-11-09 06:59:38 -05:00
acff543b2d docs(docs): updated docs and readme 2025-11-08 10:00:16 -05:00
e4e7387c01 docs(version): version bump v2.0.0 -> v2.0.1 2025-11-08 07:09:32 -05:00
576b99e719 build(meson.build): fixed required header check
build validation stage was looking at the old path for atomic headers, updated this
2025-11-08 07:08:52 -05:00
492e54a5ec Merge pull request #8 from tboudreaux/main
Documentation Update
2025-11-08 06:44:57 -05:00
02cfc5f14c docs(CHANGELOG): updated 2025-11-08 06:43:18 -05:00
d68808666e docs(docs): rebuilt 2025-11-08 06:42:51 -05:00
7a303b8d3a docs(fourdst::composition-and-fourdst::atomic): update documentation 2025-11-08 06:42:41 -05:00
a790d21df9 docs(changelog): added changelog 2025-11-07 15:53:27 -05:00
07b0b84793 Merge pull request #7 from tboudreaux/feature/molarAbundance
feat(composition): changed how composition is conmstructed
2025-11-07 15:51:34 -05:00
538fa78b37 docs(version): version bump v1.9.1 -> v2.0.0 to reflect major API change 2025-11-07 15:51:20 -05:00
84947a2b12 feat(composition): changed how composition is conmstructed
Composition objects now must be built from vectors of molar abundances.  Things such as mass fraction and number fraction are computed on the fly (with some caching for performance). This will allow for many fewer issues when converting from solver space to composition space.

BREAKING CHANGE: The entire old API has been broken. There is no longer any need to finalize. In fact the entire concept of finalization has been removed. Further, the entire CompositionEntry and GlobalComposition data structure has been removed. Any code written for the old version will no longer work and major reworking will be needed to use the new version.
2025-11-07 15:49:25 -05:00
106f7c1c96 docs(version): version bump (v1.9.0 -> v1.9.1)
this is entirley a preformance patch, no features have regressed or been affected
2025-10-22 10:36:47 -04:00
b8dc4ad8a5 perf(Composition): improved static correctness 2025-10-22 10:35:49 -04:00
19c78ff241 perf(Composition): changed logger aquisition to static to prevent each Composition object from needing to instantiate a logger whenever its built 2025-10-22 10:32:50 -04:00
36849783f5 perf(CompositionEntry): made symbol and isotope std::optional for comopsition entry so that construction can be cheaper 2025-10-22 10:12:59 -04:00
8be8ac3b65 docs(docs): rebuilt docs 2025-10-12 10:22:43 -04:00