-
Notifications
You must be signed in to change notification settings - Fork 25
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
💥 Introducing ClusterComplete
: Exact SiDB Logic Simulation with well over 50 DBs
#390
base: main
Are you sure you want to change the base?
Conversation
The merge brach 'main' in clustercomplete messes with my changed to Also: the CI has no way of passing at the moment since ALGLIB is not installed. I suppose the following should be added to the workflows: $ git clone https://github.com/S-Dafarra/alglib-cmake.git
$ cd alglib-cmake
$ mkdir build && cd build
$ cmake ..
$ make
$ [sudo] make install (clone in the libs folder, the CMakeLists.txt there that was edited in this PR does the rest) |
Latest commit reverts a small change (a bug fix in |
It does stop 🥳 Windows CI now sees ALGLIB |
Operational Domain fails, inherited from the ❌ on the main branch at the moment |
It seems that CodeQL does not find ALGLIB, so at the moment it will inspect empty files where the ALGLIB functionality is. Also there seems to be something wrong with the linker for the Windows CI wrt ALGLIB. For one Windows CI, any file that indirectly includes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
Thank you Clang-Tidy for the motivation to generalise the charge state iterators. Implemented it with a nice physical intuition: enum class sidb_state_iter_dir
{
TO_VALENCE_BAND,
TO_CONDUCTANCE_BAND
}; |
clang-tidy review says "All clean, LGTM! 👍" |
2 similar comments
clang-tidy review says "All clean, LGTM! 👍" |
clang-tidy review says "All clean, LGTM! 👍" |
include/fiction/algorithms/simulation/sidb/ground_state_space.hpp
Outdated
Show resolved
Hide resolved
include/fiction/algorithms/simulation/sidb/ground_state_space.hpp
Outdated
Show resolved
Hide resolved
Signed-off-by: GitHub Actions <[email protected]>
This reverts commit 229585a.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
Excluding the determinism test for ClusterComplete (10000 iterations of the same simulation) from Debug builds fixes the Windows CI |
maybe we can reduce it to 100? |
Good suggestion, implemented: #ifdef NDEBUG
for (auto i = 0; i < 10000; i++)
#else
for (auto i = 0; i < 100; i++)
#endif |
Description
This rather extensive PR introduces the groundbreaking ClusterComplete exact simulator to
fiction
. It relies on the concept of "State Space Pruning in a Cluster Hierarchy", which is demonstrated for the first time with the advent of this simulator as a proof of concept. Jan Drewniok's idea of "Physically Informed Space Pruning" is generalised over charge states, and, above all, the relevant electrostatic potential equations are lifted to higher order to enable reasoning in a cluster hiercharchy. This reasoning allows the Ground State Space algorithm to prune multisets of charge states at any point in the cluster hierarchy where it gets the chance, which is enabled by analysis of potential bounds.The SiDB cluster hierarchy header file
technology/sidb_cluster_hierarchy.hpp
is now heavily documented, though it does not have associated tests for all the functions and structures used by Ground State Space. Indirectly, they are well tested, however, since the performance of Ground State Space, and, in turn, ClusterComplete are extremely sensitive to any bugs or inconsistencies in this code. Also, since the methodology of the simulation and pre-simulation are translated directly from a generic theory, no room is left for edge cases, except perhaps the empty layout, and the fact that simulation in base 2 can return 0 physically valid layouts. Both of these have a corresponding testChecklist: