-
Notifications
You must be signed in to change notification settings - Fork 160
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
Emmarothwell1/restricted _function_space: Implement a RestrictedFunctionSpace class. #3215
Conversation
33079b1
to
e543a5d
Compare
In serial |
With the above changes, I was able to get a 4 x 4 matrix with nonzeros only on the top-left 2 x 2 submatrix; this indicates that your lgmap is correct. The problem now reduces to getting a matrix of the right shape. firedrake/firedrake/functionspacedata.py Line 107 in 9c50131
The computation of the size of the "constrained owned DoFs" should probably be done when we compute renumbering to push "constrained owned DoFs" to the end of core + owned block.
We currently only renumber (reorder) entities so that a local vector sees core, owned, and ghost DoFs in this order; we compute renumbering using firedrake/firedrake/cython/dmcommon.pyx Line 2265 in 8d97a07
PetscSectionGetOffset() would return offsets in the local vector as we want.As we now want to push "constrained owned DoFs" to the end of the core + owned block,when dmcommon.create_section is called with boundary_set , we need to compute renumbering using dmcommon.plex_renumbering (with additional argument boundary_set ) instead of using the one stored in the mesh. When we do this, we can also compute the size of the constrained owned DoFs.
|
1492321
to
0c96508
Compare
You should also push your PyOP2 branch and do something exactly like this https://github.com/firedrakeproject/firedrake/pull/3288/files for CI to pick up your PyOP2 branch. |
Some PRs that will conflict with yours have just been merged, so you will need to rebase when you have time. Specifically, there has been a change in |
e6412c1
to
d530859
Compare
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.
You need to rebase to make CI running.
As for PyOP2, this PR OP2/PyOP2#714 has made Mat
and Sparsity
inherit sizes from Dataset.layout_vec
, which represents corresponding vectors, so, after rebasing, you should only need to shrink the size of Dataset.layout_vec
.
You will also need to run make
in PyOP2, just as you do in Firedrake after changing Cython file. Before running make
in PyOP2, you will need to:
export PETSC_DIR=$VIRTUAL_ENV/src/petsc
export PETSC_ARCH=default
.
cdde2d0
to
1c1e67f
Compare
132ac13
to
c7a572d
Compare
Cache issue has been sorted out #3355, so rebase. |
c7a572d
to
5e21dc7
Compare
94af4e8
to
438628f
Compare
ed5a318
to
2035349
Compare
c900640
to
edf9adc
Compare
Also please run |
Co-authored-by: David A. Ham <[email protected]>
The merge-base changed after approval.
Implement a RestrictedFunctionSpace class.
(Part of an M4R project)
This inherits from FunctionSpace, with the main difference being how boundary conditions are treated.
This will hopefully be used in cases where users have boundary conditions they want to apply.