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

Assemble the firedrake form in AllAtOnceForm into a cofunction. #176

Open
JHopeCollins opened this issue Mar 5, 2024 · 1 comment
Open
Assignees
Labels
Core functionality Adding to the main paradiag functionality refactor Tidy up existing functionality

Comments

@JHopeCollins
Copy link
Member

AllAtOnceForm (aaoform) assembles the firedrake form aaoform.form into an AllAtOnceFunction called F (actually it assembles it into the firedrake Function F.function).

Really F should be a AllAtOnceCofunction but we can't currently do that because of the way we then apply boundary conditions to the residual:
bc.apply(F.function, aaofunc.function)
where aaofunc.function is the current state. If F.function is a fd.Cofunction then we get an internal firedrake error from bc.apply because of the argument type mismatch.

@JHopeCollins JHopeCollins added refactor Tidy up existing functionality Core functionality Adding to the main paradiag functionality labels Mar 5, 2024
@JHopeCollins
Copy link
Member Author

According to Pablo this should be achievable using:

fd.assemble(form, tensor=cofunction, bcs=bcs, zero_bc_nodes=True)

However this currently does nothing so well have to wait for it to be fixed.

@JHopeCollins JHopeCollins self-assigned this Mar 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Core functionality Adding to the main paradiag functionality refactor Tidy up existing functionality
Projects
None yet
Development

No branches or pull requests

1 participant