113 Commits

Author SHA1 Message Date
Hannes Signer
91ae02cbf1 fix error for missing matching function 2025-10-14 18:54:18 +02:00
Hannes Signer
c8d1b08e28 add diagonal optimization approach 2025-10-14 18:33:20 +02:00
Max Lübke
13226e8668 refactor: simplify FTCS_2D by removing unused code 2025-02-05 12:53:15 +01:00
Max Luebke
8fcc77bc60 doc: Add documentation for new Diffusion constructors and functions 2025-01-31 15:58:13 +01:00
Max Luebke
3612dcf034 BREAKING CHANGE: Rework Grid definition
Now the API does not rely on `Grid` structure but lay a wrapper around
an existing memory region, which defines for example a diffusion grid.

All simulation steps are done in place.

The user has to make sure the memory existing throughout the lifetime of
a simulation grid.
2025-01-31 15:46:06 +01:00
Max Luebke
5c68f8b6b2 refactor: Change enums to scoped enums and simplify output option validation 2024-12-11 19:56:54 +01:00
Max Luebke
477d943bf0 refactor: Introduce BaseSimulationGrid template class and update domain handling 2024-12-11 19:53:45 +01:00
Max Lübke
d3843fb2a3 refactor: Update testDiffusion.cpp and Diffusion.hpp
Refactor testDiffusion.cpp and Diffusion.hpp to improve code readability and maintainability. Remove unnecessary exception throwing and replace with assert statements for invalid arguments.
2024-12-10 10:42:53 +01:00
Max Lübke
13f6556f54 refactor: Use assert instead of custom throw for invalid argument in TugUtils.hpp 2024-12-10 08:59:16 +01:00
Max Lübke
a796acbc1d BREAKING CHANGE: Rename Simulation to Diffusion
chore: Cleanup of applications
2024-12-10 08:55:50 +01:00
Max Lübke
ac693caea9 Merge branch 'ml/row-major-mat' into 'main'
feat: Add support for setting concentrations from a pointer

See merge request naaice/tug!32
2024-06-10 16:05:09 +02:00
Max Luebke
74b46f111b perf: Minimize copy operations 2024-06-10 16:04:13 +02:00
Max Luebke
c01d8e8607 refactor: Use Row-major matrix internally 2024-06-10 16:01:47 +02:00
DannyPuhan
f7dbf3abaf [Fix] Fix setNumberThreads()-method parameter in Simulation.hpp. 2024-06-06 08:59:02 +02:00
Max Luebke
e64e8dfd5e feat: Add support for setting concentrations from a pointer
refactor: Use Row-major matrix internally
2024-06-03 23:48:54 +02:00
Max Luebke
5193f36e1f Add methods to get and set inner constant boundary conditions 2024-04-04 12:45:04 +00:00
Max Luebke
bd3cdde0fb Add constant inner cell concentration with test cases 2024-04-04 14:33:19 +02:00
Max Luebke
7ae35dccf9 Add functions to retrieve inner boundary rows and columns 2024-04-04 14:18:12 +02:00
Max Luebke
cb0c21eab9 Add inner boundary conditions for 1D and 2D grids 2024-04-04 13:48:10 +02:00
Max Lübke
2dc959b993 Merge branch 'poet' into 'main'
Add changes required for POET into main

See merge request naaice/tug!27
2024-04-04 13:09:28 +02:00
Max Lübke
8c0687a6cd Update grid dimensions validation to handle 1D grids 2024-03-27 20:11:45 +00:00
Max Lübke
1679dc84d2 Add serialization and deserialization methods to Boundary class 2024-03-27 15:35:16 +00:00
Max Lübke
eb14c53314 Merge branch 'fix_neg_values' into 'main'
Fix possible NaN @ calcAlphaIntercell

See merge request naaice/tug!26
2024-03-14 09:10:52 +01:00
Max Luebke
4328ef3436 Fix possible NaN @ calcAlphaIntercell 2024-03-14 09:08:33 +01:00
Max Lübke
2f737ce09e Fix alpha intercell calculation 2024-03-05 10:26:15 +01:00
Max Lübke
69690c0afa Remove check for negative concentration in Boundary.hpp 2024-03-04 21:28:30 +01:00
Max Lübke
61d6cfc5cb fix: remove factor 2 in 'middle' coefficient of explicit part (closed)
test: add test case with homogeneous field and same values as const
boundary condition
2023-12-19 16:04:57 +01:00
Max Lübke
db1a2b2e5c fix: use maximum alpha for CFL condition 2023-12-04 09:12:10 +01:00
Max Lübke
cdfc42ac9c fix: Typos in FTCS
In the calculation of alpha intercell values, the concentration of alpha
and its neighboring concentrations were utilized, as opposed to
employing neighboring alpha concentrations.

For evaluating the left/right boundary conditions, there was an error in
indexing - specifically, column indexing was erroneously employed
instead of the intended row indexing.
2023-11-30 08:58:46 +01:00
Max Lübke
77914ea69f fix: include optional output of csv during thomas algorithm
fix: marco's benchmark
2023-10-19 12:23:23 +02:00
Max Lübke
8456f2212d BREAKING CHANGE: tug as header-only library
build: installation of library is now possible
2023-10-19 12:20:39 +02:00
Marco De Lucia
9a3fc67885 Fix: Eigen::MatrixX<T> instead of Eigen::MatrixXd in Grid.hpp 2023-10-16 12:11:52 +02:00
Max Lübke
5196c36ec5 fix: reintroduce tug namespace 2023-09-15 11:38:13 +02:00
Max Lübke
ba627b6624 feat: rewrite library as template library 2023-09-15 11:38:08 +02:00
Max Lübke
0eba63f875 refactor: core adjustments to Simulation class
perf: const qualification of local vairables
2023-09-14 16:21:20 +02:00
Max Lübke
edaad7cc04 refactor: core adjustment to Boundary class
perf: const qualification of local variables
2023-09-14 16:21:20 +02:00
Max Lübke
f0d5220a48 refactor: adjust const qualifications for Grid class 2023-09-14 14:54:34 +02:00
Max Lübke
2096ee5cc3 refactor: remove all 'using namespaces' from library 2023-09-14 12:04:03 +02:00
Max Lübke
b9c4474f5a fix: add header guards to includes 2023-09-14 11:02:40 +02:00
Max Lübke
0d34752837 refactor: format all source files to LLVM standard 2023-09-14 10:27:05 +02:00
philippun
684fcd217f changed default numbeer of cores to max-1 2023-09-13 10:55:05 +02:00
philippun
fc4689461e Merge branch 'hannes-philipp' of git.gfz-potsdam.de:naaice/tug into hannes-philipp 2023-09-08 15:30:33 +02:00
philippun
d2e3ef23de improved commentary, refactored TugUtils into .cpp, and added CRNI example 2023-09-08 15:30:27 +02:00
Max Lübke
e8a783f00c fix: domain size can also be real number 2023-09-06 09:15:08 +02:00
Hannes Signer
8fcc8812e7 Merge branch 'hannes-philipp' of git.gfz-potsdam.de:naaice/tug into hannes-philipp 2023-08-29 10:42:23 +02:00
philippun
d24b65db63 updated documentation 2023-08-29 10:39:59 +02:00
Hannes Signer
a0ab764870 add comments for setNumberThreads 2023-08-29 10:38:51 +02:00
Hannes Signer
6b8368d9f7 add setNumberThreads method 2023-08-23 18:34:48 +02:00
philippun
32b05a8a87 added Thomas Solver with option to choose solver and cleaned up the repository 2023-08-23 12:24:35 +02:00
philippun
fb397897c8 improved commentary 2023-08-15 11:55:26 +02:00