-
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
u.sub(0)
should still be in a ComponentFunctionSpace
if the vector is 1 dimensional
#3902
Conversation
…keproject/firedrake into JHopeCollins/vector_sub1
|
|
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.
Basically just f-strings
Co-authored-by: Connor Ward <[email protected]>
if self.dof_dset.cdim == 1: | ||
return (self, ) | ||
if self.function_space().rank == 0: | ||
return tuple((self, )) |
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.
tuple
is not needed here
if self.function_space().block_size == 1: | ||
return (self, ) | ||
if self.function_space().rank == 0: | ||
return tuple((self, )) |
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.
Same here
Currrently, for
u
in aVectorFunctionSpace
, theFunctions
returned byu.sub
are in different types of spaces depending on the dimension of the VFS.dim
is 2 or higher, thenu.sub(i).function_space()
is aComponentProxyFunctionSpace
.dim
is 1, thenu.sub(0) is u
, instead of being in theComponentProxyFunctionSpace
.This PR changes the
u.sub(0)
for 1-dim vectors to be in theComponentProxyFunctionSpace
by changing the if-statement to testself.rank
instead ofself.dof_dset.cdim
.Change made here:
firedrake/firedrake/function.py
Line 127 in a2a9448
The rest of the changes are making how/where the mixed/vector-ness is tested in subfunctions/sub/_components consistent across functions and function spaces.