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

Non-overlapping Distributed Assembly #486

Closed
wants to merge 127 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
ba72645
Add initial (non-functional) version of mesh partitioning.
termi-official May 26, 2022
4d77590
Local grid extraction functional.
termi-official May 26, 2022
7ba155b
Add debug print for shared vertices. Works. But uses too much memory.
termi-official May 27, 2022
fe76900
Hotfix self-inclusion of vertex neighborhood.
termi-official Jun 1, 2022
30b3f17
Distributed dof assignment works for 2 processes. >2 fails.
termi-official Jun 1, 2022
bd19f31
Fix dof assignment for >2 with a massive amount of redundant communic…
termi-official Jun 1, 2022
7d7b9a9
Distributed assembly loop sketched - does not work because neighborho…
termi-official Jun 2, 2022
3c34b16
Fix process neighborhood construction in assembly.
termi-official Jul 19, 2022
c45c3c9
Manually fixed distributed assembly for the concrete example on two p…
termi-official Jul 19, 2022
bea2003
Small refactor to see where exactly algorithms are necessary and thei…
termi-official Jul 19, 2022
92ed5fa
Some documentation.
termi-official Jul 19, 2022
84fb508
Abstraction to enforce correct communicator in distributed example.
termi-official Jul 19, 2022
9a91fba
toglobal should work on general grids.
termi-official Jul 19, 2022
8c1051b
Ghost dof sync works for simple cases.
termi-official Jul 20, 2022
18e33d2
Algorithmic construction of rows and cols in distributed matrix works…
termi-official Jul 20, 2022
bc108e4
COO assembly of ghost layer almost functional.
termi-official Jul 20, 2022
42cd543
2 processes seem to work out well and 1,2,3,4 on a 2 by 2 grid. 4 by …
termi-official Jul 20, 2022
30e1d1f
Hotfix confirming that non-local interactions of local basis function…
termi-official Aug 24, 2022
c51db6a
Ghost layer looks correct for linear ansatz in 2D now.
termi-official Sep 30, 2022
f5c2ae6
Fix RHS assembly.
termi-official Oct 1, 2022
d188b1a
Fix Dirichlet constraint application.
termi-official Oct 1, 2022
5d2c4f9
Add management for non-zero valued Dirichlet boundary conditions.
termi-official Oct 3, 2022
ebbe1e7
Hotfix test. :)
termi-official Oct 3, 2022
fe2ac0f
Generalize ghost dof synchronization.
termi-official Oct 3, 2022
69dd9a4
Add some FIXMES and comments for future work.
termi-official Oct 9, 2022
c7d8b67
Move grid generator into its own file.
termi-official Oct 9, 2022
aaf9a30
Move dof handler code from docs to Ferrite.
termi-official Oct 9, 2022
93356d1
Fix precompile errors.
termi-official Oct 9, 2022
827b356
Generalize constraint handler.
termi-official Oct 9, 2022
62a9839
Derp.
termi-official Oct 9, 2022
c6c7acd
Derp.
termi-official Oct 9, 2022
3e742da
Add some missing exports.
termi-official Oct 9, 2022
5ad1c89
Fix cell iterator interface.
termi-official Oct 9, 2022
83f3b5c
Add 'reshape_to_nodes' to distributed dof handler.
termi-official Oct 9, 2022
2c23b5b
Turn on debug mode.
termi-official Oct 9, 2022
217594f
Minor refactor.
termi-official Oct 9, 2022
602360f
Fix typo.
termi-official Oct 9, 2022
2447b00
Add pvtk export.
termi-official Oct 9, 2022
04f3374
Add some viz utils to aid debugging.
termi-official Oct 9, 2022
dc91cfc
Refactor DBC management from docs to Ferrite.jl.
termi-official Oct 9, 2022
5429962
Factor out COO assembly infrastructure.
termi-official Oct 9, 2022
3b51265
Clean up example.
termi-official Oct 10, 2022
e7a9cbe
Add PartitionedArrays.jl as dependency.
termi-official Oct 10, 2022
d4934e8
Improve variable naming and docs for ghost layer stuff.
termi-official Oct 10, 2022
2fdbdad
Some minor fixes.
termi-official Oct 10, 2022
b017d2d
Change to manufactured solution because closed form for f=1 is quite …
termi-official Oct 10, 2022
979a70d
Fix inhomogeneous boundary condition application for distributed prob…
termi-official Oct 10, 2022
0b73395
Change to inhomogeneous boundary in example.
termi-official Oct 10, 2022
4810b75
Fix shared vertices viz.
termi-official Oct 10, 2022
e5442b8
Add edges and faces to distributed grid.
termi-official Oct 10, 2022
49c0390
Fix dof distribution for higher order.
termi-official Oct 10, 2022
ae8823d
Typo.
termi-official Oct 10, 2022
a53b258
Fix dof assignment try 2.
termi-official Oct 10, 2022
eddb222
Revert generalziation of entity loops.
termi-official Oct 11, 2022
5670dd2
Copy pasta party.
termi-official Oct 11, 2022
9c77747
Debug distributed grid construction....
termi-official Oct 11, 2022
60242a5
Add Maxi's fix for the edge topology.
termi-official Oct 11, 2022
3297c06
Fix some bugs.
termi-official Oct 11, 2022
2cd15b9
Fix edge dof distribution.
termi-official Oct 12, 2022
a493422
Fix edge dof distribution.
termi-official Oct 12, 2022
5a50b85
Fix edge dof distribution.
termi-official Oct 12, 2022
c9bbcb3
Fix edge dof distribution.
termi-official Oct 12, 2022
13c974a
Fix edge dof distribution.
termi-official Oct 12, 2022
d2622c9
Hotfix for bug in edge neighborhood access.
termi-official Oct 12, 2022
abd68c2
Hotfix for bug in edge neighborhood access. Again.
termi-official Oct 12, 2022
900ac88
Apply Fredriks bugfix for 3D P2 on hex
termi-official Oct 12, 2022
13f904b
Fix higher order assembly.
termi-official Oct 12, 2022
d3b2623
Add simple manufactured solution to heat example to quickly check ele…
termi-official Oct 12, 2022
3250c77
Fix bug in distributed dof assignment.
termi-official Oct 12, 2022
f88ae96
Apply Fredriks bugfix for 3D P2 on hex again.
termi-official Oct 12, 2022
49852a9
Update distributed assembly example.
termi-official Oct 12, 2022
773528c
Allow empty Dirichlet sets.
termi-official Oct 12, 2022
8512c39
Merge master.
termi-official Oct 12, 2022
9c9042b
Metis type.
termi-official Oct 14, 2022
a2e65c8
Fetch empty partitions.
termi-official Oct 18, 2022
c55abb5
Fix set accessors.
termi-official Oct 18, 2022
2c4152c
Fix vector assembly.
termi-official Oct 19, 2022
a114933
Update manifest
termi-official Oct 19, 2022
aa2fb90
Fix distributed assembly for multi-field vectorial problems
termi-official Oct 24, 2022
5cb2c2c
Add first MPI test.
Feb 16, 2023
140185e
Move most of the distributed code into an extension.
Feb 16, 2023
afd3f13
Forgot two files.
Feb 16, 2023
959ecea
Couple some functions to the Ferrite namespace.
Feb 16, 2023
d517ec2
Forgot some exports.
Feb 16, 2023
3c4e8c3
Move iterator overload into the extension.
Feb 16, 2023
51f9aef
Actually add extension.
Feb 16, 2023
1d5c816
Fix typo.
Feb 16, 2023
ace4c15
Fix extension dependencies.
Feb 16, 2023
8048c1d
Fix compile errors in extension.
Feb 16, 2023
78d7c72
Add Pkg to ext for debugging.
Feb 16, 2023
09e6712
Remove Pkg dep again.
Feb 16, 2023
c4abb01
Remove debug code.
Feb 16, 2023
4331fbf
Fix namespace errors and add some functionality from master.
Feb 16, 2023
224785a
Freeze partitioned arrays because 0.3.0 contains breaking changes.
Feb 16, 2023
c6c40d2
Derp.
Feb 16, 2023
4911675
Remove empty file.
Feb 16, 2023
9d5ee9f
Replace precomputed dofs with ad-hoc computed dofs.
Feb 17, 2023
d0f7918
Remove helper dicts in dof handlers.
Feb 17, 2023
ddb763b
Reduce redundancies.
Feb 17, 2023
d41e787
readability.
Feb 17, 2023
573dfd8
Error messages.
Feb 17, 2023
c16a7f5
I think this is the correct close to make hypre functional.
Feb 17, 2023
ae376c7
Merge master.
Feb 17, 2023
9de3131
Typo.
Feb 17, 2023
1bb93bd
Add missing method.
Feb 17, 2023
6e1c52d
Hypre gets into shape. Needs more testing and utils.
Feb 17, 2023
1c31a8b
Add missing overload for reinit./src/cellml2julia
Feb 17, 2023
a54cdf0
Fix exports.
Feb 17, 2023
96dd397
Fix HYPRE example.
Feb 19, 2023
5b9a07a
Fix deprecation.
Feb 19, 2023
3a4fb82
Fix plasticity example.
Feb 19, 2023
f125b3c
Prepare extension split.
Feb 20, 2023
071c7df
Widen interface to new extensions.
Feb 20, 2023
fa6f3df
Acutally split up packages.
Feb 20, 2023
93eeac4
First attempt at splitting extensions with transient deps.
Feb 20, 2023
cacebad
Finalize extension split.
Feb 20, 2023
325a75c
Try to fix CI.
Feb 20, 2023
bb00098
Merge master.
Feb 20, 2023
921fb9a
Rename file.
Feb 20, 2023
1d21987
Introduce new topology.
Feb 21, 2023
1edc657
Improve distribute mesh api.
Feb 21, 2023
92b8e05
Add test battery for new distributed modules.
Feb 21, 2023
491f0ea
Fix oopsie.
Feb 21, 2023
0b4c7e7
Revert changes to face neighborhood construction helper.
Feb 21, 2023
27bfeb2
Fix remaining inconsistency between geometry and algebra in hexahedra…
Feb 21, 2023
26ac865
Fix deprecation warnings.
Feb 21, 2023
3696fdf
Remove Pkg dep from docs.
Feb 21, 2023
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
22 changes: 19 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@ version = "0.3.11"

[deps]
EnumX = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
Metis = "2679e427-3c69-5b7f-982b-ece356f1e94b"
NearestNeighbors = "b8a86587-4115-5ab1-83bc-aa920d37bbce"
PartitionedArrays = "5a9dfac6-5c52-46f7-8278-5e2210713be9"
Preferences = "21216c6a-2e73-6563-6e65-726566657250"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
Expand All @@ -14,20 +18,29 @@ WriteVTK = "64499a7a-5c06-52f2-abe2-ccb03c286192"

[weakdeps]
BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771"
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
Metis = "2679e427-3c69-5b7f-982b-ece356f1e94b"
PartitionedArrays = "5a9dfac6-5c52-46f7-8278-5e2210713be9"

[extensions]
FerriteBlockArrays = "BlockArrays"
FerriteHYPRE = ["MPI", "Metis", "HYPRE"]
FerriteMPI = ["MPI", "Metis"]
FerriteMetis = "Metis"
FerritePartitionedArrays = ["MPI", "Metis", "PartitionedArrays"]

[compat]
BlockArrays = "0.16"
EnumX = "1"
HYPRE = "^1.4.0"
MPI = "^0.20.2"
Metis = "1.3"
NearestNeighbors = "0.4"
PartitionedArrays = "0.2.15"
Preferences = "1"
Reexport = "1"
Tensors = "1"
Tensors = "^1.12"
WriteVTK = "1.13"
julia = "1.6"

Expand All @@ -37,16 +50,19 @@ Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
FerriteGmsh = "4f95f4f8-b27c-4ae5-9a39-ea55e634e36b"
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
Gmsh = "705231aa-382f-11e9-3f0c-b7cb4346fdeb"
HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771"
IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
Metis = "2679e427-3c69-5b7f-982b-ece356f1e94b"
NBInclude = "0db19996-df87-5ea3-a455-e3a50d440464"
PartitionedArrays = "5a9dfac6-5c52-46f7-8278-5e2210713be9"
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
SHA = "ea8e919c-243c-51af-8825-aaa63cd721ce"
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"

[targets]
test = ["BlockArrays", "Downloads", "FerriteGmsh", "ForwardDiff", "Gmsh", "IterativeSolvers", "Metis", "NBInclude", "ProgressMeter", "Random", "SHA", "StableRNGs", "Test", "TimerOutputs", "Logging"]
test = ["BlockArrays", "Downloads", "FerriteGmsh", "ForwardDiff", "Gmsh", "HYPRE", "IterativeSolvers", "Metis", "MPI", "NBInclude", "PartitionedArrays", "ProgressMeter", "Random", "SHA", "StableRNGs", "Test", "TimerOutputs", "Logging"]
Loading