Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
663 commits
Select commit Hold shift + click to select a range
b49017f
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jan 25, 2024
6e6f9ae
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Jan 25, 2024
6cc9d45
Improve check
loumalouomega Jan 25, 2024
cde548f
Merge pull request #11857 from KratosMultiphysics/core/modify-spatial…
loumalouomega Jan 29, 2024
84fccc3
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jan 29, 2024
44ffe00
Minor
loumalouomega Jan 29, 2024
c5bdfb2
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jan 30, 2024
c3ed537
Consistent Rank
loumalouomega Jan 30, 2024
c5bf9fc
Fix
loumalouomega Jan 30, 2024
e353b61
Adding timers
loumalouomega Jan 30, 2024
c757642
Search ranks is a redundant information
loumalouomega Jan 31, 2024
10d55d8
Missing check (reduces sending/receiving info)
loumalouomega Jan 31, 2024
d8b76cf
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 1, 2024
bc22e90
[Core] Missing & in `Get` method in `SpatialSearchResult`
loumalouomega Feb 1, 2024
72c87bc
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 2, 2024
b3fa630
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 5, 2024
cf4113e
[Core] Correcting corner case in `GeometricalObjectBins` + typo ("ava…
loumalouomega Feb 5, 2024
e11e0ff
Minor clean up
loumalouomega Feb 5, 2024
73829d9
Revert
loumalouomega Feb 5, 2024
ba4f67c
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 5, 2024
3e103dd
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 6, 2024
4c3678f
Fix potential node conflict
loumalouomega Feb 6, 2024
3a54ce5
Update search utilities
loumalouomega Feb 6, 2024
f8a029d
Update the SpatialSearchResultContainer adding SpatialSearchCommunica…
loumalouomega Feb 6, 2024
8ff6850
Update the SpatialSearchResultContainerVector adding SpatialSearchCom…
loumalouomega Feb 6, 2024
d4e5cdc
Update the SearchWrapper consistently
loumalouomega Feb 6, 2024
a3ec6bb
Update python exposition
loumalouomega Feb 6, 2024
af04564
Serial compilation fix
loumalouomega Feb 7, 2024
4e5df90
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 7, 2024
a2d2794
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 7, 2024
9ecf8b3
Adding `GetSpatialSearchCommunication`
loumalouomega Feb 7, 2024
a63a0fc
Update tests
loumalouomega Feb 7, 2024
8f4dd45
Adding error
loumalouomega Feb 9, 2024
9838922
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 9, 2024
6b36995
Adding error
loumalouomega Feb 9, 2024
119cce7
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 9, 2024
9109f27
Minor fix
loumalouomega Feb 10, 2024
d60f1bf
Minor fix
loumalouomega Feb 10, 2024
5987400
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 10, 2024
96c767e
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 13, 2024
88b1dfa
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 13, 2024
6f62ac6
Adding `RemoveResultsFromRanksList`
loumalouomega Feb 16, 2024
3203640
Update `KeepOnlyGivenLambdaResult` with ranks
loumalouomega Feb 16, 2024
667de5b
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 16, 2024
2eee44a
Adding `RemoveResultsFromRanksList`
loumalouomega Feb 16, 2024
96c7a54
Update `KeepOnlyGivenLambdaResult` with ranks
loumalouomega Feb 16, 2024
777bb8f
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 16, 2024
6feebe0
Extra :
loumalouomega Feb 16, 2024
014d1bb
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 16, 2024
aae224f
Fix Windows communicator issue
loumalouomega Feb 16, 2024
70021c2
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 16, 2024
6d4ee58
Improve logic
loumalouomega Feb 16, 2024
63a6abd
Improve logic
loumalouomega Feb 16, 2024
8b97858
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 16, 2024
8d8a89c
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 16, 2024
990d9ed
Update `PreparePointsSearch` with Rank info
loumalouomega Feb 19, 2024
aba08bc
Add rank in `PreparePointsSearch` call
loumalouomega Feb 19, 2024
a55e460
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 19, 2024
2944fdd
Update `PreparePointsSearch` with Rank info
loumalouomega Feb 19, 2024
2d84ce2
Add rank in `PreparePointsSearch` call
loumalouomega Feb 19, 2024
bfd38ec
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 19, 2024
e03cc1d
work in progress
AFranci Dec 21, 2023
886f748
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 19, 2024
ecf62c6
work in progress
AFranci Dec 21, 2023
10c310e
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 19, 2024
3b2dcc0
Minor checks done when filling
loumalouomega Feb 20, 2024
2c244a1
Add additional checks
loumalouomega Feb 20, 2024
f4901cd
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 20, 2024
7047001
Add additional checks
loumalouomega Feb 20, 2024
8563e29
Minor checks done when filling
loumalouomega Feb 20, 2024
6b0bb35
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 20, 2024
f72a9e5
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 20, 2024
99dcd01
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 20, 2024
1e5c34a
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Feb 20, 2024
68115ee
Merge pull request #12024 from KratosMultiphysics/core/mpi/spatial-se…
loumalouomega Feb 20, 2024
5916649
Update test_edge_based_data_structure.cpp
rubenzorrilla Feb 20, 2024
a675438
Adding linear to quadratic tets modeler
jcotela Feb 5, 2024
b6116a8
Adding doc
loumalouomega Feb 6, 2024
635e042
Expose GeometryData to Python
jcotela Feb 8, 2024
5a44734
Use GeometryType to filter incorrect input
jcotela Feb 8, 2024
43a91c7
Class rename
jcotela Feb 15, 2024
17ad216
Adding python registry to MeshingApplication
jcotela Feb 15, 2024
653d99e
Install python registry file
jcotela Feb 15, 2024
32d942a
Fixing registry
jcotela Feb 16, 2024
810112c
Add tests
jcotela Feb 16, 2024
3be58a6
Removing factory method
jcotela Feb 16, 2024
02baedc
Revert unwanted change in output level
jcotela Feb 16, 2024
7d99473
Minor updates
jcotela Feb 16, 2024
2147ee5
Using any
jcotela Feb 19, 2024
48faca5
Require root model part
jcotela Feb 19, 2024
4b12221
Cleaning up
jcotela Feb 19, 2024
cc5ff62
Avoid element copy
jcotela Feb 19, 2024
09eecac
Add condition check
jcotela Feb 19, 2024
d76c637
Fix wrong check
jcotela Feb 19, 2024
686dd8d
Remove duplicate check
jcotela Feb 19, 2024
e82f5cc
Update applications/MeshingApplication/custom_utilities/linear_to_qua…
jcotela Feb 19, 2024
7ed5b2b
Update applications/MeshingApplication/custom_utilities/linear_to_qua…
jcotela Feb 19, 2024
10ee600
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 21, 2024
b947bee
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 22, 2024
ff954d3
Unify serial and distributed
loumalouomega Feb 22, 2024
573e408
Some remaining changes
loumalouomega Feb 22, 2024
16653f4
Inconsistent
loumalouomega Feb 22, 2024
5e19156
Clean up and unify code
loumalouomega Feb 22, 2024
02b3e94
Unnecesary serial fix
loumalouomega Feb 22, 2024
927c820
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 26, 2024
29d2fc5
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 27, 2024
3687bba
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Mar 12, 2024
02ea856
1st cut-fem
AFranci Mar 14, 2023
2dc15e5
Set 10 to default `bucket_size`
loumalouomega Mar 12, 2024
428f04d
Clarify global BB
loumalouomega Mar 12, 2024
f4fffa7
Wrong description
loumalouomega Mar 12, 2024
9ab0417
Using vectorial version
loumalouomega Mar 12, 2024
82ef541
Clarify doc
loumalouomega Mar 12, 2024
9c002b0
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Mar 14, 2024
b3b86b0
Check already done in `Apply`
loumalouomega Mar 14, 2024
6d70719
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Mar 14, 2024
adc1476
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Mar 19, 2024
124be55
Minor
loumalouomega Mar 20, 2024
318abab
Some missing stuff
loumalouomega Mar 20, 2024
d4c9d02
Minor correction
loumalouomega Mar 20, 2024
f401e2b
Add new methods and variables to the SpatialSearchResultContainerVect…
loumalouomega Mar 20, 2024
eb6e33b
Add missing methods and variables to the SpatialSearchResultContainer…
loumalouomega Mar 20, 2024
a9f19ce
Add new test cases to SpatialSearchResultContainerVector class
loumalouomega Mar 20, 2024
d53aee0
Add new MPI test cases to SpatialSearchResultContainerVector class
loumalouomega Mar 20, 2024
bb452b7
Fix compilation unsigned issue
loumalouomega Mar 20, 2024
dd7cffc
Compilation fix
loumalouomega Mar 21, 2024
6a23f7d
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega May 21, 2024
bcad3fc
Add GetGlobalIndex and SetGlobalIndex methods to SpatialSearchResultC…
loumalouomega May 30, 2024
ffe1312
Adding more extended and complex search test
loumalouomega May 30, 2024
e9b668d
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jun 3, 2024
0fad27f
[Core] Fix BB check
loumalouomega Jun 3, 2024
655214a
Extend test (WIP)
loumalouomega Jun 3, 2024
b3818a3
Fix index
loumalouomega Jun 3, 2024
c8bbe65
Activate test MPI
loumalouomega Jun 3, 2024
4cb4066
Add tests for PointIsInsideBoundingBox functions
loumalouomega Jun 4, 2024
058087a
Refactor search_wrapper.h to use zero instead of -1 for non-distribut…
loumalouomega Jun 4, 2024
b0338f2
[Core] Refactor search_utilities.h to handle negative tolerance value…
loumalouomega Jun 5, 2024
f5f8944
Refactor search_wrapper.h to use consistent bounding box threshold value
loumalouomega Jun 5, 2024
e65c432
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jun 5, 2024
f324df5
Refactor search_wrapper.h to use consistent bounding box threshold value
loumalouomega Jun 6, 2024
59aea26
Refactor search_wrapper.h to use consistent bounding box threshold value
loumalouomega Jun 6, 2024
23eb0b3
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jun 6, 2024
87fdd9b
Merge branch 'master' into doc/document-search-mpi
loumalouomega Jun 6, 2024
a11aa71
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jun 10, 2024
ce164ac
Merge branch 'master' into doc/document-search-mpi
loumalouomega Jun 10, 2024
0bef7e1
Remove whitespace
loumalouomega Jun 14, 2024
afdba02
Document tree
loumalouomega Jun 14, 2024
267685a
Document spatial search result
loumalouomega Jun 14, 2024
48111fd
Document octree
loumalouomega Jun 14, 2024
b936bae
Document kd_tree
loumalouomega Jun 14, 2024
ff31cf0
Document bins static
loumalouomega Jun 14, 2024
bd47b60
Document bins dynamic
loumalouomega Jun 14, 2024
a9ceb62
Document GeometricalObjectsBins
loumalouomega Jun 14, 2024
ef3af98
Point to wiki
loumalouomega Jun 14, 2024
5926add
Remove images
loumalouomega Jun 14, 2024
e1094e9
Merge branch 'doc/initial-search-doc' into doc/document-search-mpi
loumalouomega Jun 20, 2024
77f1df7
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jun 20, 2024
403d792
Merge branch 'master' into doc/document-search-mpi
loumalouomega Jun 20, 2024
89aa204
Delete duplicated doc
loumalouomega Jun 20, 2024
37d9391
[Core] Adding documentation for MPI classes
loumalouomega Jun 25, 2024
e393e73
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jun 25, 2024
3c29117
Merge branch 'core/mpi/spatial-search-container-new-proposal-v3' into…
loumalouomega Jun 25, 2024
f78191c
Merge pull request #12480 from KratosMultiphysics/doc/document-search…
loumalouomega Jun 25, 2024
1cd8c19
Minor doc update
loumalouomega Jun 26, 2024
8fc59ae
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jul 17, 2024
b8badaf
Update the includes
loumalouomega Jul 17, 2024
854466e
Deactivate hetereogeneous tests
loumalouomega Jul 17, 2024
7b1d86e
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jul 17, 2024
f5984de
Cleanup subdatacommunicators in SearchWrapper destructor
loumalouomega Jul 18, 2024
d45c5f2
Redundant
loumalouomega Jul 18, 2024
7a52876
Reactivate hetereogeneous tests
loumalouomega Jul 18, 2024
4ad9e07
Simplify code with data communicator implementation
loumalouomega Aug 1, 2024
9443276
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 8, 2024
e6a1223
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 17, 2024
74320c8
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Nov 20, 2024
fc2b383
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Mar 29, 2025
4119af8
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Apr 12, 2025
3bc1191
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jun 18, 2025
bf5b1a5
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Aug 7, 2025
c43188d
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Aug 28, 2025
c693486
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Sep 3, 2025
c689468
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Sep 5, 2025
833dfd9
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Sep 29, 2025
3b67719
Remove unused methods and tests related to local results and coordina…
loumalouomega Sep 8, 2025
7bf50ea
Refactor Apply function documentation and move it to private section …
loumalouomega Sep 8, 2025
512873b
Remove GetResultNodeIndices method and update related tests in Spatia…
loumalouomega Sep 8, 2025
8a5dd85
Refactor spatial search communication types and remove heterogeneous …
loumalouomega Sep 26, 2025
9e82f3c
Refactor GetResultIndices method and update related tests
loumalouomega Sep 26, 2025
dc5c22b
Fix distance and index retrieval in search wrapper tests and Python b…
loumalouomega Sep 26, 2025
adb55e2
Fix formatting in documentation for point synchronization method
loumalouomega Sep 26, 2025
3e10815
Fix retrieval of distances in TestSearchWrapper to use results from G…
loumalouomega Sep 26, 2025
5521850
Refactor SearchWrapper and SpatialSearchResultContainer to streamline…
loumalouomega Sep 26, 2025
1a03c51
Refactor GetResultRank method and update its declaration in SpatialSe…
loumalouomega Sep 26, 2025
ac02e3b
Remove GetResultIsActive method and its associated tests from Spatial…
loumalouomega Sep 29, 2025
127f51c
Add tests for GetResultIsActive, GetResultIndices, GetResultNodeIndic…
loumalouomega Sep 29, 2025
9bc6156
Add tests for GetResultIsActive, GetResultIndices, and GetResultCoord…
loumalouomega Sep 29, 2025
17a0dfa
Remove GetResultPartitionIndices method from SpatialSearchResultConta…
loumalouomega Sep 29, 2025
2294c62
Fix formatting of documentation for GenerateGreaterThanZeroIndexes me…
loumalouomega Sep 29, 2025
bc8994f
Merge pull request #13834 from KratosMultiphysics/core/mpi/spatial-se…
loumalouomega Oct 2, 2025
aac825f
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 2, 2025
aa5cf33
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 6, 2025
0474433
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 8, 2025
bd8e7ad
Remove Barrier method and its documentation from SpatialSearchResultC…
loumalouomega Oct 6, 2025
afb5329
Refactor SpatialSearchResultContainer to remove dependency on DataCom…
loumalouomega Oct 7, 2025
142e1c0
Refactor SpatialSearchResultContainerVector to remove DataCommunicato…
loumalouomega Oct 7, 2025
641e55b
Refactor test cases in SpatialSearchResultContainer to remove DataCom…
loumalouomega Oct 7, 2025
1764a42
Refactor test cases in SpatialSearchResultContainerVector to remove D…
loumalouomega Oct 7, 2025
bf98645
Refactor BindSpatialSearchResultContainer to remove DataCommunicator …
loumalouomega Oct 7, 2025
a726be1
Refactor SearchWrapper to use mrDataCommunicator directly in rank cal…
loumalouomega Oct 7, 2025
c47bbb6
Refactor GenerateGreaterThanZeroIndexes method to improve placement a…
loumalouomega Oct 7, 2025
9278197
Add unit tests for ParallelSpatialSearch functionality
loumalouomega Oct 7, 2025
252d521
Refactor spatial search result container methods to use output parame…
loumalouomega Oct 7, 2025
6f4c459
Refactor spatial search result container methods to improve shape fun…
loumalouomega Oct 7, 2025
0514b51
Refactor loop formatting in SpatialSearchResultContainerVector for im…
loumalouomega Oct 7, 2025
b306f6e
Refactor GenerateGreaterThanZeroIndexes method into a lambda for impr…
loumalouomega Oct 7, 2025
a1312ac
Refactor MPI synchronization logic in SpatialSearchResultContainerVec…
loumalouomega Oct 7, 2025
3ffc62f
Refactor MPI synchronization logic in SpatialSearchResultContainer an…
loumalouomega Oct 7, 2025
8b93d97
Refactor MPI synchronization logic in SpatialSearchResultContainer an…
loumalouomega Oct 8, 2025
d1c2d9a
Refactor SpatialSearchResultContainer and SpatialSearchResultContaine…
loumalouomega Oct 8, 2025
ca04457
Refactor variable names in spatial search tests and Python bindings f…
loumalouomega Oct 8, 2025
6b6e485
Replace test_search_wrapper with test_parallel_spatial_search in test…
loumalouomega Oct 8, 2025
f82a599
Refactor documentation in SpatialSearchResultContainer to enhance cla…
loumalouomega Oct 8, 2025
27e518f
Refactor documentation in spatial_search_result_container and spatial…
loumalouomega Oct 8, 2025
fd3d665
Add documentation for Parallel Spatial Search, detailing its implemen…
loumalouomega Oct 8, 2025
e11714b
Refactor SpatialSearchResultContainer and related classes to improve …
loumalouomega Oct 9, 2025
012c088
Remove deprecated GetGlobalPointerCommunicator method from SpatialSea…
loumalouomega Oct 9, 2025
6c40f36
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 15, 2025
586b804
Refactor GetResultRank method to remove unnecessary DataCommunicator …
loumalouomega Oct 17, 2025
d75a34e
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 18, 2025
8665e86
Unused capture
loumalouomega Oct 18, 2025
efb8c29
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 21, 2025
0f8ede7
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 21, 2025
70f4e84
[SearchUtilities] Add methods to compute bounding boxes with tolerance
loumalouomega Oct 29, 2025
42890cb
Refactor global bounding boxes to use BoundingBox type and optimize i…
loumalouomega Oct 29, 2025
63ef4e6
Remove ClearSolution parameter and always clear results in ParallelSp…
loumalouomega Oct 29, 2025
98a4b87
Remove ClearSolution parameter and always clear results in SearchNear…
loumalouomega Oct 29, 2025
dc69a93
Rename KeepOnlyGivenLambdaResult to KeepOnlySmallestLambdaResult for …
loumalouomega Oct 29, 2025
19d718a
Add debug checks for result vector cleaning in ParallelSpatialSearch
loumalouomega Oct 29, 2025
7da63a0
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Oct 30, 2025
9726a34
Refactor ParallelSpatialSearch to enhance result filtering and improv…
loumalouomega Oct 30, 2025
6718b4e
Revert "Refactor ParallelSpatialSearch to enhance result filtering an…
loumalouomega Oct 30, 2025
dca14ee
Refactor ParallelSpatialSearch to streamline rank handling in paralle…
loumalouomega Oct 30, 2025
2c112bc
Refactor ParallelSpatialSearch to replace lowest rank result handling…
loumalouomega Oct 31, 2025
17bbccd
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Nov 6, 2025
6cd6cb5
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Nov 20, 2025
516e41b
Remove SynchronizeAll method and related tests from SpatialSearchResu…
loumalouomega Nov 20, 2025
f148b7d
Remove SynchronizeAll method references from SpatialSearchResultConta…
loumalouomega Nov 20, 2025
2c861bf
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jan 7, 2026
a3c3869
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Jan 13, 2026
43de362
Merge branch 'master' into core/mpi/spatial-search-container-new-prop…
loumalouomega Feb 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
---
title: ParallelSpatialSearch
keywords: search spatial_container core
tags: [search spatial_container]
sidebar: kratos_core_search
summary: This is a parallel spatial search ready for MPI searches
---

# Parallel Spatial Search

## Description

This is a parallel spatial search, which must be adapted and specialized for every search object.The class is designed to efficiently handle searches across different processes in a distributed computing environment using MPI.

Spatial container are used to manage and query spatial data efficiently. Classes like [`GeometricalObjectsBins`](geometrical_object_bins) and various tree-based structures (e.g., [KDTree](kd_tree), [OCTree](octree), [BinsDynamic](bind_dynamic)) are used depending on the application requirements.

See [`SpatialSearchResultContainer`](spatial_search_result_container) and [`SpatialSearchResultContainerVector`](spatial_search_result_container_vector).

## Implementation

Can be found in [`parallel_spatial_search.h`](https://github.com/KratosMultiphysics/Kratos/blob/master/kratos/spatial_containers/parallel_spatial_search.h).

### Template arguments

- `TSearchObject`: The type of the spatial search object.
- `TSpatialSearchCommunication`: The communication strategy, which can be synchronous or asynchronous, and homogeneous or heterogeneous. Considers the enum `SpatialSearchCommunication`, see [`SpatialSearchResultContainer`](spatial_search_result_container):
- `SYNCHRONOUS`: All partitions are fully aware of the entire dataset.
- `ASYNCHRONOUS`: Asynchronous communication, **which is not implemented yet**.

### Result containers

- **[`SpatialSearchResultContainer`](spatial_search_result_container) and [`SpatialSearchResultContainerVector`](spatial_search_result_container_vector)**: These containers store the results of spatial searches, handling different data types and ensuring compatibility with **MPI**.

### Python exposition

#### Template parameters:

- `TSearchObject`: Type of the search object.
- `TSpatialSearchCommunication`: Type of spatial search communication.

#### Exposed methods:

1. **Constructors**:
- Different constructors are exposed based on the type of `ObjectType` within `TSearchObject`. Depending on whether the object is a `Node`, `Element`, or `Condition`, appropriate container types are used as arguments along with a `DataCommunicator` and optionally, `Parameters`.

2. **Spatial Search Methods**:
- `GetGlobalBoundingBox`: Retrieves the global bounding box of the search space.
- `SearchInRadius`: Performs a radius-based search.
- `SearchNearestInRadius`: Searches for the nearest objects within a specified radius.
- `SearchNearest`: Searches for the nearest objects.
- `SearchIsInside`: Checks if objects are inside a specified space (only if `TSearchObject` is `GeometricalObjectBins`).

#### Instantiation

##### 1. `SearchWrapperGeometricalObjectBins`
- For both `SYNCHRONOUS` and `ASYNCHRONOUS` (**TO BE IMPLEMENTED**) communication types.
- Exposes constructors for `GeometricalObjectsBins` and the spatial search methods as described above.

##### 2. KDTree Wrappers
- Different variants of KDTree for `Node`, `Element`, and `Condition`:
- `SearchWrapperKDTreeNode`
- `SearchWrapperKDTreeElement`
- `SearchWrapperKDTreeCondition`

##### 3. OCTree Wrappers
- Analogous to KDTree wrappers, tailored for OCTree partitions:
- `SearchWrapperOCTreeNode`
- `SearchWrapperOCTreeElement`
- `SearchWrapperOCTreeCondition`

##### 4. Static and Dynamic Bins Wrappers
- Exposes wrappers for static and dynamic bins structures for `Node`, `Element`, and `Condition`:
- `SearchWrapperStaticBinsTreeNode`
- `SearchWrapperDynamicBinsNode`, etc.

## Example usage

### C++

Here's an example of how you can utilize the `SearchWrapperGeometricalObjectsBins` class in C++:

```cpp
#include "containers/model.h"
#include "tests/test_utilities/cpp_tests_utilities.h"
#include "spatial_containers/parallel_spatial_search.h"
#include "mpi/utilities/parallel_fill_communicator.h"

using namespace Kratos;

static void Example() {
Model current_model;

// Create a cube model part
ModelPart& cube_skin = CppTestsUtilities::CreateCubeSkinModelPart(current_model, 0.6, 0.9, 0.3);

// Setup the parallel environment for the model part
const DataCommunicator& data_communicator = Testing::GetDefaultDataCommunicator();
ParallelFillCommunicator(cube_skin, data_communicator).Execute();

// Define the type of the parallel spatial search using homogeneous communication
using SearchWrapperType = SearchWrapperGeometricalObjectsBins;

// Instantiate the parallel spatial search with the elements of the model part
SearchWrapperType parallel_spatial_search(cube_skin.Elements(), data_communicator);

// Create a model part for points to be searched
ModelPart& point_model_part = current_model.CreateModelPart("PointModelPart");
point_model_part.AddNodalSolutionStepVariable(PARTITION_INDEX);

// Adding a point in the point model part
auto p_node = point_model_part.CreateNewNode(1, 0.0, 0.0, 0.0);
p_node->FastGetSolutionStepValue(PARTITION_INDEX) = 0;

// Create a vector to store the search results
typename SearchWrapperType::ResultContainerVectorType results;

// Conduct a search in radius of 0.3 units around the newly added node
parallel_spatial_search.SearchInRadius(point_model_part.NodesBegin(), point_model_part.NodesEnd(), 0.3, results);

// Print out results of the search
for (auto& result : results) {
std::cout << "Search result - Found: " << result.IsObjectFound() << ", Number of Global Results: " << result.NumberOfGlobalResults() << std::endl;
}
}
```

#### Key points:

1. **Model setup**: This example creates a cubic skin model part using utility functions. The model dimensions are specified, and communication details are set up using MPI utilities, which is typical in distributed environments.

2. **Search wrapper initialization**: The `SearchWrapperGeometricalObjectsBins` is initialized with the cube skin's elements and the default data communicator.

3. **Search operation**: A search is performed for points in a radius of 0.3 units. The search operation populates the results vector, which is then iterated to output the search findings.

4. **MPI environment**: Depending on your setup, you might need to initialize and finalize the **MPI** environment to handle parallel computations properly. This is suggested in the comments but commented out for simplicity and context dependency.

### Python

For example if we have the following mesh divided in two partitions:

![](https://github.com/KratosMultiphysics/Documentation/blob/master/Wiki_files/Search/search_wrapper_example.png?raw=true)

We can search the nodes in a radius of 0.5 from the nodes in X = 0.

![](https://github.com/KratosMultiphysics/Documentation/blob/master/Wiki_files/Search/search_wrapper_example_2.png?raw=true)

We can perform that with the following script:

~~~py
# Create search
search = KM.SearchWrapperKDTreeNode(model_part.Nodes, data_comm)

# Define radius
radius = 0.5

# Search only in the x=0 points
sub_model_part = model_part.CreateSubModelPart("SubModelPart")
for node in model_part.Nodes:
if node.X == 0.0:
sub_model_part.AddNode(node)

# Nodes array search
results = search.SearchInRadius(sub_model_part.Nodes, radius)

# Only in partitions were results are found
number_search_results = results.NumberOfSearchResults()
if number_search_results > 0:
for i in range(5):
node_results = results[i]
global_id = node_results.GetGlobalIndex()
ids = node_results.GetResultIndices()
number_of_global_results = node_results.NumberOfGlobalResults()
if global_id > 0: # Solution defined in this rank
rank = data_comm.Rank()
print("Global id: ", global_id, " Rank: ", rank, " Number of local results: ", node_results.NumberOfLocalResults())
if rank == 0:
print("Global id: ", global_id, " Number of global results: ", number_of_global_results, " Ids: ", ids)
~~~

The output will looks something like the following:

~~~sh
Global id: 1 Rank: 0 Number of local results: 2
Global id: 1 Rank: 1 Number of local results: 3
Global id: 1 Number of global results: 5 Ids: [5, 4, 1, 2, 3]
Global id: 2 Rank: 0 Number of local results: 3
Global id: 2 Rank: 1 Number of local results: 4
Global id: 2 Number of global results: 7 Ids: [5, 9, 4, 6, 1, 2, 3]
Global id: 6 Rank: 0 Number of local results: 4
Global id: 6 Rank: 1 Number of local results: 2
Global id: 6 Number of global results: 6 Ids: [12, 5, 9, 4, 6, 2]
Global id: 12 Rank: 0 Number of local results: 5
Global id: 12 Rank: 1 Number of local results: 2
Global id: 12 Number of global results: 7 Ids: [12, 5, 16, 9, 14, 6, 20]
Global id: 16 Rank: 0 Number of local results: 4
Global id: 16 Rank: 1 Number of local results: 1
Global id: 16 Number of global results: 5 Ids: [12, 16, 9, 14, 20]
~~~

## Parameters & Defaults

The parameters and defaults are the followings:

~~~json
{
"allocation_size" : 1000,
"bucket_size" : 10
}
~~~

- `"allocation_size"`: An integer representing the initial allocation size. Default value is `1000`.
- `"bucket_size"`: An integer specifying the size of each bucket. Default value is `10`.
Loading
Loading