Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop update #642

Merged
merged 221 commits into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
c59e6ed
make `cmake.sh` more extensible by eliminating `cd`
Puerling Sep 11, 2023
f798015
make compile_commands.json accessible to commandline tools that expec…
Puerling Sep 11, 2023
2e3dd02
fix: changed log level for 'mu_s' to Warning\n\nAll the other missing…
Puerling Sep 27, 2023
67bb4a5
cleanup: add `const` qualifiers where applicable
Puerling Oct 9, 2023
afdcdd2
fix: header `cstdint` is needed for `uintptr_t`
Puerling Oct 9, 2023
295a274
cleanup: avoid unnecessary conversions in CUDA launch parameters
Puerling Oct 9, 2023
6723f1d
Pack interaction specific data into small objects
Puerling Sep 18, 2023
1e89004
modernization: `make_shared` & `make_unique`
Puerling Sep 18, 2023
cbb5cd7
cleanup: code readability
Puerling Sep 18, 2023
2969a2d
modernization: `make_shared` & `make_unique`
Puerling Sep 18, 2023
50cecc0
formatting of the cleanup of the Hamiltonian constructor signature
Puerling Sep 19, 2023
2686ea3
readability: add `vectorlabeld` type alias
Puerling Sep 19, 2023
f9040fa
refactor(Hamiltonian_Heisenberg): combine CUDA and CPU implementations
Puerling Sep 19, 2023
0653cd9
fixup(f36c9d3): oversights
Puerling Nov 10, 2023
a25648e
misc(cuda): turned off CUDA warnings (directly through nvcc)
Puerling Nov 15, 2023
6c2d7c2
misc(testing): added test script for automated build and test, moved …
Puerling Nov 22, 2023
5a18419
refactor(modular Hamiltonian): move files to subdirectory
Puerling Nov 15, 2023
9a7d591
refactor(modular Hamiltonian): unify Hamiltonian class
Puerling Nov 20, 2023
0d01734
refactor(modular Hamiltonian): connect Interaction::Gaussian data
Puerling Nov 20, 2023
00d0056
refactor(modular Hamiltonian): let Gaussian contribute
Puerling Nov 20, 2023
7183d8a
refactor(modular Hamiltonian): pull out Anisotropy
Puerling Nov 20, 2023
bff40e5
refactor(modular Hamiltonian): pull out Zeeman
Puerling Nov 21, 2023
fa7829b
refactor(modular Hamiltonian): pull out Cubic_Anisotropy
Puerling Nov 21, 2023
11b155b
refactor(modular Hamiltonian): pull out Exchange
Puerling Nov 21, 2023
13275fd
refactor(modular Hamiltonian): pull out DMI
Puerling Nov 21, 2023
b3831d8
refactor(modular Hamiltonian): pull out Quadruplet
Puerling Nov 21, 2023
1d06b91
refactor(modular Hamiltonian): pull out DDI
Puerling Nov 21, 2023
e93d863
refactor(modular Hamiltonian): cleanup Hamiltonian class
Puerling Nov 21, 2023
833fa7f
refactor(modular Hamiltonian): simplify Method_GNEB::Calculate_Interp…
Puerling Nov 21, 2023
bc849b2
refactor(modular Hamiltonian): add `Energy_per_Spin()` aggregation me…
Puerling Nov 22, 2023
6e4d0f8
refactor(modular Hamiltonian): extend and update tests
Puerling Nov 22, 2023
d3d73ce
drop random number generation for `Hamiltonian` and `Interaction::ABC`
Puerling Nov 22, 2023
cbbf891
fix: EMA-test failure message
Puerling Nov 27, 2023
3a1003b
modernize(unittest): phase out `unittest.makeSuite()` (deprecated)
Puerling Dec 13, 2023
cac53c6
refactor(`TableParser`): centralize common logic for parsing data tables
Puerling Dec 7, 2023
a0e261d
add structure providing separators to `core/python/spirit/hamiltonian…
Puerling Dec 15, 2023
c171861
feature(Biaxial Anisotropy): introduce more complex anisotropy term
Puerling Dec 15, 2023
9121962
enable use of standard string literal operators
Puerling Jan 9, 2024
3daff97
feature(Biaxial Anisotropy): add API documentation
Puerling Jan 22, 2024
81e39a6
feature(Biaxial Anisotropy): update `Configwriter`
Puerling Jan 22, 2024
17e1c14
feature(Biaxial Anisotropy): fix API and `Configparser` and add tests
Puerling Jan 23, 2024
10e2f49
feature(Biaxial Anisotropy) fix test related issues
Puerling Jan 24, 2024
4de56d8
feature(Biaxial Anisotropy): work around `CUDA` limitations
Puerling Jan 29, 2024
ec34da0
fix(CUDA: too many resources requested): reduce blockSize (Biaxial_An…
Puerling Feb 5, 2024
09af143
fix(CUDA: too many resources requested): reduce blockSize (DDI)
Puerling Feb 5, 2024
92129dc
update documentation for Hamiltonian (LaTeX render)
Puerling Feb 5, 2024
852d5ec
update(ImGui - ImPlot): update ImPlot to v0.16
Puerling Jan 29, 2024
3164d80
update(ImGui - ImGui): update ImGui to epezent/imgui@54ef409
Puerling Jan 29, 2024
9e0e55a
update(ImGui - GLFW): update GLFW to 3.3.9 (glfw/glfw@e2c9264)
Puerling Jan 29, 2024
96c1d48
update(ImGui - spirit): ImGui UI - API compatibility
Puerling Jan 29, 2024
4e98ac1
enable templates for `Spin_System` and `Spin_System_Chain`
Puerling Feb 9, 2024
915decc
utilize structured bindings for from_indices()
Puerling Feb 9, 2024
f2e1c93
harden `Span`, by throwing when out of range
Puerling Feb 14, 2024
6bed3fd
make setting CUDA as modular as adding source files
Puerling Feb 14, 2024
96e9cc3
don't rely on `#include` within a namespace, clangd doesn't like that
Puerling Feb 14, 2024
f50f8bb
restructure files to make room for a second Hamiltonian
Puerling Feb 15, 2024
30b3ad8
add `namespace Engine::Spin` to make room for second Hamiltonian kind
Puerling Feb 15, 2024
446bfd6
factor out parsing of different interactions into separate functions
Puerling Feb 15, 2024
0d6274f
add `namespace Engine::Common`
Puerling Feb 20, 2024
a1e0356
make `Owner *` private to `Common::Interaction::ABC`
Puerling Feb 20, 2024
b8def38
feature-template_hamiltonian commit
Puerling Mar 12, 2024
94be003
fixup: feature-template_hamiltonian initial commit
Puerling Mar 14, 2024
5d9192e
feature(template_hamiltonian) simplify data names and add verifiers
Puerling Mar 14, 2024
5da983f
feature(template_hamiltonian): add constructors for data
Puerling Mar 14, 2024
38d9200
refactor(template_hamiltonian): structural cleanup
Puerling Mar 15, 2024
cc9fabc
remove reliance on `use_redundant_neighbours`
Puerling Mar 15, 2024
a0df4fb
remove parallel for in applyGeometry due to possible race condition
Puerling Mar 15, 2024
54553c2
turn `Quadruplet` into a local interaction
Puerling Mar 15, 2024
39eb4ef
turn `clearIndex` into a free function reliant on overload resolution
Puerling Mar 15, 2024
3a8d4b5
change access pattern for Interaction Functors to pointers that can b…
Puerling Mar 18, 2024
06833d7
remove reference to `Cache` and `Data` from functors and put the burd…
Puerling Mar 18, 2024
c39db1f
fix: set modularized CUDA source file properties after setting the la…
Puerling Mar 18, 2024
ebe5eb5
introduce `using field = thrust::universal_vector<T>` and partially i…
Puerling Mar 22, 2024
f3bc2ed
enable `thrust` based parallelization through the `Backend` namespace
Puerling Mar 22, 2024
7785240
the internal state no longer has the duplication of pairs, even in th…
Puerling Apr 4, 2024
9c6e7d8
we need an uninitialized state for the cuFFTHandle
Puerling Apr 4, 2024
49a5746
return to custom kernels for `transform` and `transform_reduce`
Puerling Apr 4, 2024
6178c86
make the Geometry object private to the Hamiltonian
Puerling Apr 4, 2024
e74cfa3
Fix(API): `Geometry_Get_mu_s` should operate only on the first unit cell
Puerling Jun 28, 2024
fcf7d98
rename `StandaloneAdapter` -> `StandaloneAdaptor` for consistency
Puerling Apr 5, 2024
d558f41
Migrate `Backend::par` to the stdlib conforming `Backend`
Puerling Apr 8, 2024
e9e8582
chore: mark more variables const that can be const
Puerling Apr 9, 2024
cae0e3c
mark Counting_Iterator `constexpr` and `[[nodiscard]]`
Puerling Apr 9, 2024
dd1576f
re-enable OpenMP as a parallelization backend
Puerling Apr 9, 2024
6816eec
utilize `namespace detail` to hide implementation details of cuda alg…
Puerling Apr 9, 2024
32f01ee
cleanup: mark precision constants in tests as `[[maybe_unused]]`
Puerling Apr 9, 2024
01b0d96
enable parllel STL compile path
Puerling Apr 9, 2024
161cc2e
fix(Data::Geometry): make use of mutable keyword instead of heap allo…
Puerling Apr 15, 2024
966103f
eliminate static local member variable in Interaction_Wrapper
Puerling Apr 15, 2024
f4b7c75
fix(Backend::cuda): enable switching mechanism for CUDA backend
Puerling Apr 17, 2024
81ccadf
replace type of modes with a `std::optional` (from `std::shared_ptr`)
Puerling Apr 17, 2024
90af02c
move common functionality of the `Hamiltonian` into the `Common` name…
Puerling Apr 19, 2024
74e475b
address nvcc warnings in tests
Puerling Apr 19, 2024
caf1600
oversight: use default backend for Manifoldmath::Geodesic_Tangent
Puerling Apr 25, 2024
22664c8
introduce `Backend::reduce` overload for arbitrary reduce operations
Puerling Apr 29, 2024
1f7d53e
add more binary and unary operations to the Backend
Puerling Apr 29, 2024
72b02be
connect Vectormath and Manifoldmath to the new backend
Puerling Apr 29, 2024
2f71ded
removal: `Simulation_Get_MaxTorqueComponent` and
Puerling Apr 29, 2024
04c4f43
introduce custom transform_iterator and zip_iterator implementations
Puerling Apr 30, 2024
6045218
bring counting_iterator in line with the other custom iterators
Puerling Apr 30, 2024
3e86bda
make safer, by only performing raw_pointer_casts from iterators
Puerling Apr 30, 2024
07203ae
formatting and improved perfect forwarding in CUDA algorithms
Puerling Apr 30, 2024
4094cd5
let switching of the system types for the methods be handled by the a…
Puerling May 2, 2024
9770510
remove side effect ridden `Method_Solver::MaxTorque_on_Image()`
Puerling May 2, 2024
e05a700
introduce customization point for method specific messages instead of…
Puerling May 2, 2024
d9c0667
Move `systems` vector into `Method_Solver` and `Method` specializations
Puerling May 3, 2024
a976d04
turn `Method::print_precision` into a constexpr variable
Puerling May 6, 2024
e43a183
break up member data of `Spin::Method_Solver`
Puerling May 6, 2024
d3fcb6b
factor out `Prepare_Thermal_Field` and `Calculate_Force_Virtual` of `…
Puerling May 3, 2024
db9ab37
make `Calculate_Forces{_Virtual}` methods available to `SolverData` c…
Puerling May 7, 2024
e01da6d
add reference to `llg_parameters` to VP solvers
Puerling May 7, 2024
27498ff
remove `raw_pointer_cast` on return value of `field<T>::data()`
Puerling May 7, 2024
1f16f17
the code now never duplicates the pairs so the Datawriter has to do it
Puerling May 8, 2024
a6553bb
replace boolean switches in Datawriter module with Flags
Puerling May 8, 2024
c7dd396
move `TableParser` class into its own file
Puerling May 8, 2024
504c545
split IO module implementations to make the extension through additio…
Puerling May 13, 2024
7443db4
introduce fastpow function for positive integer exponents
Puerling May 15, 2024
5fe210b
turn `make_functor` into a free function in the `Common::Interaction`…
Puerling May 16, 2024
1b3ec88
add logging output to `State_Setup` for `SPIRIT_USE_STDPAR`
Puerling May 16, 2024
eb8595d
decouple method switching code from namespace by introducing `using` …
Puerling May 21, 2024
05b5431
oversight: correction to conditional noexcept in `Spin::HamiltonianVa…
Puerling May 21, 2024
eb88e55
fixup: misplaced `&`
Puerling May 21, 2024
b37dd6d
use geometry for initializing `OVF_Segment` instead of the system type
Puerling May 22, 2024
c4a92a4
factor out `IO::Write_Image_Energy_Contributions`
Puerling May 23, 2024
62473e0
make version info constexpr
Puerling May 23, 2024
2a9b6fb
decouple `io/Datawriter` from `Data::Spin_System`
Puerling May 24, 2024
cecdd38
optimization: avoid `std::pow` in `Utility::Cubic_Hermite_Spline`
Puerling May 24, 2024
0f04f8a
add missing `source_groups` to `CMakeLists.txt`
Puerling May 27, 2024
72417b5
use `constexpr if` to switch on template paramteters if possible
Puerling May 27, 2024
980c5c5
merge kernels in `Common::Method_LLG`
Puerling May 27, 2024
a9d6922
chore: fix import
Puerling Jun 12, 2024
ee2cf53
enable hashing support for the `Pair` struct
Puerling Jun 12, 2024
d1c3593
restructure `io/Dataparser`
Puerling Jun 12, 2024
572c7c5
chore: clean up formatting and small scale restructuring
Puerling Jun 13, 2024
d22ba01
make random vector functions independent of the random engine by temp…
Puerling Jun 13, 2024
51f419e
decouple `utility/Configurations` from the `Spin_System` class
Puerling Jun 13, 2024
d32352b
complete rule of 5 for `Data::Spin_System`
Puerling Jun 13, 2024
5047361
rename `Spin_System::spins` -> `Spin_System::state` and introduce gen…
Puerling Jun 13, 2024
b7c6a3a
add overload to `make_from_tuple` for aggregates
Puerling Jun 13, 2024
4c5bace
use namespace local `system_t` instead of relying on `State`
Puerling Jun 13, 2024
aec238b
template `from_indices` based on the State
Puerling Jun 13, 2024
ece8569
use more appropriate types for `State::clipboard_spins` and `throw_if…
Puerling Jun 13, 2024
a5d5810
use `geometry::nos` instead of `Spin_System::state::size()` in
Puerling Jun 13, 2024
f5a4129
restructure `io/Configwriter` and `io/Configparser` for `Hamiltonian`
Puerling Jun 13, 2024
59545fd
chore: formatting
Puerling Jun 13, 2024
1405cf2
minor optimizations to `Manifoldmath.cpp`
Puerling Jun 17, 2024
8907825
factor out parsing of the `hamiltonian_type` and make using declarati…
Puerling Jun 17, 2024
365067f
make `Solver_Kernels` more general
Puerling Jun 19, 2024
8ecb206
use the same input file throughout `test_io`
Puerling Jun 19, 2024
f4fd88a
check against all configurations in `Solver_LBFGS_Atlas` not just the
Puerling Jun 19, 2024
59cb8c0
implement Hessian for Quadruplet interaction
Puerling Jun 20, 2024
0d30a12
fix(CUDA): preform `device_iterator_cast` on elements of
Puerling Jun 20, 2024
423902c
fix(CMake): set correct variable in CMakeLists.txt
Puerling Jun 21, 2024
68d09f3
use `std::string_view` for solver names & use an associated free func…
Puerling Jun 25, 2024
1cbedac
Lowercase `Lock()` and `Unlock()` member functions
Puerling Jun 28, 2024
edcb39b
Turn choosing the wrong `Solver` into a recoverable error
Puerling Jun 28, 2024
3aaa8e9
Address deprecation warnings in Qt build
Puerling Jun 28, 2024
7745e4d
Qt GUI: minor optimizations
Puerling Jun 28, 2024
25fb7af
rename: `setBoundaryConditions()` -> `set_boundary_conditions()`
Puerling Jul 1, 2024
8693314
update(`stb_image.h`): 2.28 -> 2.30 to address GCC warning
Puerling Jul 1, 2024
3a218c4
update(`stb_image_resize2.h`): v0.97 -> v2.07, adapt to API change
Puerling Jul 1, 2024
88e1343
Use remove-erase idiom for updating `renderer_widgets` vector in
Puerling Jul 1, 2024
9e90337
add move option for `Hamiltonian::set_geometry()`
Puerling Jul 2, 2024
38b180f
remove misleading double sums in docs/Hamiltonian.md
Puerling Jul 2, 2024
a7c8850
fix(python-api): avoid `*` imports and use correct name of `parameter…
Puerling Jul 2, 2024
b84302f
fix(CMake): use `FindPython3` instead of `FindPythonInterp`.
Puerling Jul 2, 2024
2bce2c8
Minor Optimization: use `std::deque` for notifications in ImGUI
Puerling Jul 2, 2024
856ae8f
cleanup(CMakeLists.txt): gather source and header files into variables
Puerling Jul 3, 2024
37bd213
add `SPIRIT_USE_STDPAR` variable to `version.py`
Puerling Jul 3, 2024
d5c0074
update current maintainers and
Puerling Jul 3, 2024
1c11b35
update embeded math to make it readable in GitHub dark-mode
Puerling Jul 3, 2024
1a05f3f
chore(formatting): apply clang-format-18.1.8 across all source files
Puerling Jul 5, 2024
5683137
chore(formatting): apply black to python package
Puerling Jul 5, 2024
7305706
add https://pre-commit.com/ configuration to ensure consistent format…
Puerling Jul 5, 2024
d485561
chore(chmod): remove executable bit where not necessary
Puerling Jul 5, 2024
0868065
fix(Pinning): Actually apply pinning to the Hessian before calculating
Puerling Jul 9, 2024
37b3c13
replace counting loop in `DDI` with closed formula
Puerling Jul 15, 2024
dbd307c
feature: enable `pip install` for python bindings from `cmake --insta…
Puerling Jul 15, 2024
8349d2d
optimization(python): store `libSpirit` in a module variable
Puerling Jul 15, 2024
61471b7
enhancement(API): less greedy resize of spin vectors trough the API
Puerling Jul 16, 2024
fc6bb91
Add dynamics test for the pinning feature
Puerling Jul 16, 2024
014a4ed
add `is_contributing()` to the `Standalone_Adaptor` wrapper class
Puerling Jul 12, 2024
7d5ceec
make all interaction data containers default constructible
Puerling Jul 17, 2024
a3dcb08
fix(OpenMP): add generic reduce operations to OpenMP backend
Puerling Jul 19, 2024
5514405
optimization(backend): use `std::advance` to avoid an iterator copy
Puerling Jul 22, 2024
f8c4a62
fix: add `.decode()` call for proper bytes -> str conversion in pytho…
Puerling Jul 22, 2024
cdbd140
fix: calling `hasInteraction()` though an instance is not `constexpr`
Puerling Aug 6, 2024
ada8296
fixup! restructure `io/Dataparser`
Puerling Sep 10, 2024
ed3e94d
disable building tests by default
Puerling Sep 6, 2024
aad4649
update ci: use `clang-format-18` and install `numpy` before configuring
Puerling Sep 6, 2024
7bd415f
use `apt-get` instead of `apt` in CI
Puerling Sep 6, 2024
1354389
fix pinning build after putting geometry inside hamiltonian
Puerling Sep 6, 2024
092f6d5
pin clang-format version in CI to the same version as in pre-commit
Puerling Sep 6, 2024
08033e9
update cuda version to 12.4
Puerling Sep 10, 2024
93331b5
CI: set `CUDA_PATH` variable in cuda builds
Puerling Sep 11, 2024
edb53db
CI: install python and numpy before configuring
Puerling Sep 11, 2024
9d1dad3
CI: update NVHPC version to 24.5
Puerling Sep 11, 2024
6031733
CI: set environment in windows variable properly
Puerling Sep 11, 2024
3e9dbc8
CI: don't set cuda toolkit path manually
Puerling Sep 11, 2024
35727c1
fixup! CI: update NVHPC version to 24.5
Puerling Sep 11, 2024
3bd2690
add CUDA property to missing tests
Puerling Sep 11, 2024
bde943e
CI: exclude clang cuda build for now, because I cannot configure it
Puerling Sep 11, 2024
ce53579
using the xor keyword requires iso646.h in msvc
Puerling Sep 12, 2024
597d419
fixup! CI: set environment in windows variable properly
Puerling Sep 12, 2024
c4ab1e4
CI(test-clang): use conditionally defined flag for the build system
Puerling Sep 12, 2024
ee2e68f
choose more realistic margins for the single precision test cases
Puerling Sep 12, 2024
80958ef
CI: use unittest directly for python code coverage
Puerling Sep 12, 2024
07ac009
set `-bigobj` in Debug build with `msvc` because it is required
Puerling Sep 12, 2024
29d3b94
fix typo in omp algorithms
Puerling Oct 2, 2024
0158534
CI: use `gcc-12` for `test-other-configurations`
Puerling Oct 2, 2024
0d32d50
cleanup: remove unrecognised `#pragma unroll`
Puerling Oct 2, 2024
12e3cfe
CI: use ninja build system for all clang-windows builds
Puerling Oct 2, 2024
5c94dc2
CI: remove redundant `--rerun-failed` flag in ctest calls
Puerling Oct 9, 2024
4e0c56c
CI: update `actions/checkout@v4` and `actions/setup-python@v5` due to…
Puerling Oct 9, 2024
1110385
CI: use `ubuntu:24.04` and `gcc-13` for other builds
Puerling Oct 15, 2024
dbfc102
CI: drop windows single precision build, because it fails for unknown…
Puerling Oct 15, 2024
6ea5906
CI: skip configparser for testing the debug build, because the window…
Puerling Oct 15, 2024
7766b49
CI: split debug and coverage builds to avoid developer confusion
Puerling Oct 15, 2024
2e1ec9c
CI: drop test for the windows debug build, because it hangs for unkno…
Puerling Oct 15, 2024
ee87965
CI: upgrade to `actions/upload-artifacts@v4` (deprecation)
Puerling Oct 15, 2024
a70d504
CI(formatting): break long `cmake` into multiple lines
Puerling Oct 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ TabWidth: 4
UseTab: Never
---
Language: Cpp
Standard: C++11
Standard: c++17
AlwaysBreakTemplateDeclarations: Yes
Cpp11BracedListStyle: false
CompactNamespaces: true
Expand Down Expand Up @@ -50,4 +50,4 @@ JavaScriptQuotes: Single
SpacesInContainerLiterals: true
SpaceBeforeParens: ControlStatements
SpacesInParentheses: false
TabWidth: 2
TabWidth: 2
Loading
Loading