Commit Graph

222 Commits

Author SHA1 Message Date
b9e639a382 Merge pull request #17 from tboudreaux/feature/logging
Added Probe Module
2025-02-23 11:41:05 -05:00
70f2156adb Merge pull request #16 from tboudreaux/feature/defaultConfig
Added default config generation script
2025-02-23 11:32:10 -05:00
109326f339 feat(defaultConfig): added default config generation script
While writing 4DSSE we want a way to keep track of what defaults have been set for config files, and validate that we are using the same config variables where we want to. This python script generates a "default" yaml file based on the default values given in .get<T>
2025-02-23 11:29:16 -05:00
fd4964511a refactor(.gitignore): added quill dir to gitignore 2025-02-23 11:27:23 -05:00
411a767dc4 feat(probe): added probe namespace
Probe handles LogManager (for tracking multiple log files) as well as a few utility functions such as wait, pause, glVisView, and rayView (future)
2025-02-23 11:26:41 -05:00
17fea1e046 build(quill): added quill config to build-config 2025-02-23 11:25:39 -05:00
c25b0ff38d build(quill): added quill as a subproject
quill provides a robust and very efficient asyncronous and thread safe logging module. I have brought this in to handle logging
2025-02-23 11:25:11 -05:00
eb0b274e2b test(tests/probe): added probe tests 2025-02-23 11:22:08 -05:00
6f61f5be1e docs(.gitignore): added .log to gitignore 2025-02-23 10:43:34 -05:00
7dee9ca39d Merge branch 'main' into feature/logging
Restore deleted config code so that tests can compile correctly
2025-02-21 10:40:39 -05:00
a20a150c85 fix(config): restored deleted code
I accidently deleted some cacheing mechanisms, these have been restored
2025-02-21 10:39:43 -05:00
98ead4f06c build(probe): updated build system to include probe and probe tests 2025-02-21 10:31:57 -05:00
c049e3d91c test(tests/probe): logging module test suite started 2025-02-21 10:31:24 -05:00
95f943b45a feat(probe): probe logging module first implimentation 2025-02-21 10:30:59 -05:00
31bc77159b ci(github-actions): updated meson version 2025-02-20 11:12:42 -05:00
85cd0a597b ci(github-actions): updated static library path 2025-02-20 11:09:32 -05:00
38901b619f ci(github-actions): updated path to google tests install dir on ubuntu 2025-02-20 11:07:23 -05:00
24e1fbf8c2 ci(github-actions): removed fedorah, arch, and macOS from targets
will add them back in latter
2025-02-20 11:03:01 -05:00
7d540311cf ci(github-actions): updated action to install meson 2025-02-20 11:01:03 -05:00
e54a5be967 docs(config): rebuild docs and removed redundant documentation 2025-02-20 09:45:47 -05:00
796d8a9021 Merge pull request #15 from tboudreaux/performance/configCache
Added Cache to Config Class
2025-02-20 09:39:27 -05:00
b94ed435e1 fix(tests/config): fixed unknownKeyTest name
unknownKeyTest was named incorrectly
2025-02-20 09:32:20 -05:00
16cdf9ac32 test(tests/config): tests updated to deal with cache 2025-02-20 09:31:03 -05:00
2dcff35e01 perf(config): added cache
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
2025-02-20 09:30:43 -05:00
47b833e0d2 docs(docs): rebuilt docs 2025-02-19 16:24:41 -05:00
fac54201ff Merge pull request #14 from tboudreaux/feature/config
Added Config module
2025-02-19 16:21:39 -05:00
8bf62b68d0 test(tests/config): config tests added 2025-02-19 16:12:23 -05:00
a134878e67 feat(config): config class added
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...
2025-02-19 16:11:55 -05:00
53fc943129 build(yaml-cpp): added yaml-cpp as a dependency
config files will be written in yaml, added a well tested yaml parser to 4DSSE
2025-02-19 14:50:44 -05:00
096d9b278c Merge pull request #13 from tboudreaux/feature/opatOPALII
Updated OPAT file format and handlers to work for OPAL type I or type II opacity files
2025-02-17 13:07:55 -05:00
dc796be7bf feat(utils/opatio): updated hash generation to only look at logKappa 2025-02-17 13:02:18 -05:00
df6335d25f feat(opatIO): fully updated for index vector
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
2025-02-17 13:01:34 -05:00
5d51f5b5e0 build(opatIO/meson.build): added PicoSHA2 as a dependency 2025-02-17 13:00:01 -05:00
f44a07bac3 build(meson.build): updated to build PicoSHA2 2025-02-17 12:59:16 -05:00
f973fec061 build(mk): added debug symbols when building with tests 2025-02-17 12:58:51 -05:00
9ae69d82fc test(tests/opatIO): updated tests for index vector based search
previously tests used X and Z. Nw they use a general index vector
2025-02-17 12:58:08 -05:00
33d269c411 feat(subprojects/PicoSHA2): added picosha subproject to compute checksums 2025-02-17 12:57:03 -05:00
131161e1bd feat(utils/opatio): updated save to ascii function and fixed minor bug in loader
the new general purpose index design introduced a bug in the loader related to the byte position of the byteStart field. This has been resolved. Further, I have updated the save to ascii format to provide an explicit warning that the ascii version is only for debugging purposes and not meant to be used directly.
2025-02-16 20:44:45 -05:00
4ac9340804 docs(specs/opat): updated opat spec for general indexing
OPAL type II tables use a 4 vector for composition, while many other opacity tables use a 2 vector of composition to index tables. In an attempt to be as general as possible I have updated the OPAT specification to allow for tables indexed by a vector of any length [1, 255]. This should allow a single spec to be used when storeing and accessing type I or type II tables.

BREAKING CHANGE: Careful thought will have to be given to how the C++ module handles this. We want the same code to work for querying data from any kind of opaticy table
2025-02-16 20:43:07 -05:00
c4cd731520 feat(utils/opatio): began update to account for OPAL type II tables (or generally an arbitrary number of index values per table) 2025-02-16 19:03:41 -05:00
9a302fd5d3 Merge pull request #12 from tboudreaux/feature/meshing
Added base MeshIO class and MFEM in tree building
2025-02-16 15:26:51 -05:00
4158c893d4 docs(tests/meshIO): added comments to meshIO tests 2025-02-16 15:20:24 -05:00
2f753c6ea0 test(tests/meshIO): added basic test suite for meshIO
just tests the constuctor, getMesh, and isLoaded method. This confirms that a basic spherical mesh can be loaded in correctly
2025-02-16 15:10:13 -05:00
a727eca14c docs(meson.build): updated build system docs 2025-02-16 15:09:22 -05:00
ea037cf996 feat(meshIO): added basic mesh reading implimentation
also added basic unit sphere mesh file which can be rescaled
2025-02-16 15:08:33 -05:00
1713f6cb08 fix(utils/meshGeneration): changed mesh format to gmsh 2.2
meshio writes vtk version 9 but mfem only supports up to version 4, so we changed to gmsh version 2.2 which is supported
2025-02-16 15:07:20 -05:00
41da26cd81 docs(readme): updated readme 2025-02-16 14:33:31 -05:00
189a4f5f0b feat(resource/mesh): added base unit sphere mesh 2025-02-16 14:04:16 -05:00
08f810448c fix(meshGeneration): changed file extension to vtk and 3D 2025-02-16 13:53:19 -05:00
64e6a745d0 fix(meshGeneration): changed from netgen to vtk as that format is better supported 2025-02-16 13:45:06 -05:00