Commit Graph

125 Commits

Author SHA1 Message Date
663e6fc52c Merge branch 'main' into feature/pointwisePolytrope 2025-03-13 15:08:35 -04:00
cd32394d37 fix(helm.cpp): exp10(x) changed to pow(10, x)
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).
2025-03-13 14:08:21 -04:00
7ea20369b2 fix(opatIO): brought changes from main related to gcc13 compliance 2025-03-07 10:26:45 -05:00
bb0ec4d341 fix(opatIO): added cstdint header
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
2025-03-07 10:17:45 -05:00
Aaron Dotter
da7f5e5022 adding more quantities to the eos test, including derivatives 2025-03-06 14:36:07 -05:00
38db2ca586 build(meson.build): added eos to build 2025-03-05 16:59:38 -05:00
154004c8ca feat(eos): added helmholtz eos as module
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.
2025-03-05 16:59:04 -05:00
e43caf3027 fix(const): added set header 2025-03-05 16:57:22 -05:00
08efc99688 build(const_data_dep): updated const header dep to be called const_data_dep 2025-03-05 16:56:51 -05:00
eb0a13a804 build(const): added const_dep 2025-03-05 16:56:28 -05:00
4de0f9d974 feat(meshGeneration): explicitly added core point in mesh generation 2025-03-05 12:56:58 -05:00
3a2bc8e8b2 feat(probe): moved default glvis potions inside probe 2025-03-05 12:56:31 -05:00
59162a1a54 feat(poly): constraint integrator
The NewtonSolver has been subclassed to try to auto enforce the zero boundary central condition by modifying the residual vector and the gradient matrix. This is a work in progress

BREAKING CHANGE:
2025-03-05 12:55:53 -05:00
cd6da7065b refactor(poly/coeff): renamed coefficients to be more descriptive 2025-03-05 12:54:47 -05:00
Aaron Dotter
6255ba5524 adding eos with helmholtz option 2025-03-04 13:52:39 -05:00
77d8cc8e86 feat(probe): default glvis keysets and vector version of glvisView
glVisView function now accepts a keyset to send and has an overloaded version which takes a vector and finite element space instead of just a grid function and mesh
2025-03-03 09:55:24 -05:00
f61c8fae28 fix(poly): working on 3D polytrope
not working yet
2025-03-03 09:54:13 -05:00
6aaa25df4b fix(config): loaded flag and checks added
added check to make sure that config file has been loaded before any config variables are accessed
2025-03-03 09:53:42 -05:00
06226b8623 feat(default-mesh): added a few default meshes 2025-03-03 09:51:43 -05:00
83ee05272c feat(probe): vector overload for glVisView
glVisView can now also be called with a vector and finite element space as opposed to just a grid function and mesh
2025-02-28 09:47:15 -05:00
6416d95260 feat(meshIO): LinearRescale method added
Rescaling a mesh by a linear transformation is a useful option so that we can start with a single "base" mesh and then rescale it to the dimensions needed for our problem. This commit adds the LinearRescale option too meshIO so that a unit sphere can be turned into a sphere of arbitrary radius (as an example).
2025-02-24 16:35:39 -05:00
83213f961b feat(probe): functions to get solution along ray and view solution with GLVis 2025-02-24 12:39:48 -05:00
c2729f63f5 feat(meshIO): increased default mesh refinment level 2025-02-24 12:39:21 -05:00
dfb65c1082 refactor(sphere.msh): increased base resolution of spherical mesh 2025-02-24 12:38:47 -05:00
ce299ebfe1 feat(probe): added getRadius and start of ray cast solution 2025-02-23 14:11:50 -05:00
d8789bd343 feat(polySolver): getters for polySolver 2025-02-23 14:11:18 -05:00
205f32a76f fix(build-system): fixed build system order and test env variables 2025-02-23 11:57:59 -05:00
2d67413321 merged main into feature/polytrope 2025-02-23 11:47:29 -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
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
95f943b45a feat(probe): probe logging module first implimentation 2025-02-21 10:30:59 -05:00
9925f56e34 fix(poly): polytrope converges to solution
first commit where the polytrope module converges to a solution. I have not yet validated if it is a correct solution
2025-02-20 16:05:02 -05:00
776174c093 refactor(macros): added macros class
macros provides a unified place to define macros which can be accessed at other points in the code. I defined a DEPRICATION_WARNING_OFF macro so we can disable those warnings for times when we cannot control them
2025-02-20 16:04:05 -05:00
ff299f8ce7 fix(poly): changed lambda from fespace to scalar
previously I had a lagrangian multipliers at every element; however, we are enforcing a global constraint so there need only be one lagrangian multiplier
2025-02-20 15:36:46 -05:00
1fd1e624f2 feat(poly): lagrangian constrained weak form of 3D lane-Emden
added a basic implimentation of the 3D lane emden equation using a lagrangian multiplier to constrain the value at the center of a spherical domain
2025-02-20 15:28:00 -05:00
e54a5be967 docs(config): rebuild docs and removed redundant documentation 2025-02-20 09:45:47 -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
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
b939fd68fa feat(poly): added first pass implimentation of 3D constrained lane-emden solver
This has not currently been tested and this commit should not be viewed as scientifically complete
2025-02-19 14:35:15 -05:00
98162d002e build(src/meson.build): added poly module to build system 2025-02-19 14:34:31 -05:00
4979475a98 build(meshIO): defined meshio_ dependency
libraries which need mesh_io can now use meshio_dep which will automatically link and include headers for meshIO
2025-02-19 14:33:28 -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
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
189a4f5f0b feat(resource/mesh): added base unit sphere mesh 2025-02-16 14:04:16 -05:00
1f7cb1033d Merge branch 'feature/polytrope' into feature/meshing 2025-02-16 13:18:11 -05:00
0d5406aeee docs(opatIO): wrote and built doxygen docs 2025-02-16 12:29:51 -05:00
5345b4c801 fix(opatIO): fixed header packing bug 2025-02-16 12:15:11 -05:00