-
Notifications
You must be signed in to change notification settings - Fork 15
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
Exploring ghost optimisation #128
Exploring ghost optimisation #128
Conversation
- We now save block PRanges for reuse later - Modified constructors for SparseMatrixAssemblers
Codecov Report
❗ Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more. @@ Coverage Diff @@
## block-assemblers-v0.3 #128 +/- ##
======================================================
Coverage 0.00% 0.00%
======================================================
Files 11 12 +1
Lines 2242 2402 +160
======================================================
- Misses 2242 2402 +160
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
Tests will not fail after the release of Gridap v0.17.20 |
Todo/Done:
consistent_local_views
andchange_ghost
. Expand functionality ofchange_ghost
.OwnAndGhostVector
as vector partition of resultingPVector
s, as a way to reduce memory copying when transferring between FESpace and linear system layouts.BlockPArray <: AbstractBlockArray
, a new type that behaves as aBlockArray{PArray}
and which fulfills the APIs of bothPArray
andAbstractBlockArray
. This will get rid of the type piracy we have been using up to now and gets rid of some of the issues we are having (mainly, the fact thatBlockArray
expects its blocks to be indexable).MultiFieldFESpace{<:BlockMultiFieldStyle}
now has aBlockPRange
as gids, which makes the fespace dof vector be of typeBlockPVector
. This is necessary to create consistency between fespace and system vectors, which in turn avoids memory allocations/copies when transferring between FESpace and linear system layouts.To Think:
BlockPArray
constructors work withBlockPRange
s, which is inconsistent with PartitionedArrays. Should we be trying to be coherent? How can we do it well for dispatching?Left for another PR:
PRange
ghost-related optimisations while assembling the system matrix. This will create linear systems which ghost layout is compatible with the original FESpace, avoiding copying data when transferring between FESpace and linear system layouts.