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

Add C++ demo that shows mixed elements and consistency fixes for element spaces #3500

Merged
merged 109 commits into from
Nov 15, 2024

Conversation

garth-wells
Copy link
Member

@garth-wells garth-wells commented Nov 6, 2024

This PR adds a mixed Poisson C++ demo. It is the first mixed method C++ demo added to DOLFINx.

Adding this demo exposed some bugs, incorrect docs and some clumsy code. Fixes include:

  • Removes inconsistency where a FunctionSpace and and FiniteElement both have a value shape, which is usually the same (redundant) and sometimes different (confusing). A FunctionSpace no longer stores a value size.
  • In FiniteElement, it was unclear how 'blocked' elements were handled and the docs were inconsistent. The is now made clear.
  • In numerous places, shared pointers were passed to functions that only required a reference. std::reference_wrapper is now used in containers in interfaces where appropriate in place of a shared pointer.
  • std::optional is now used in FiniteElement for value shape data. This removed confusion around is std::vector<std::size_t>{} unset or is it the value shape for a scalar?

There are no changes to the Python interface.

@garth-wells garth-wells changed the title Add C++ demo that shows mixed elements and other advanced features Add C++ demo that shows mixed elements and consistency fixes for element spaces Nov 11, 2024
@garth-wells garth-wells marked this pull request as ready for review November 12, 2024 08:05
@garth-wells garth-wells added this pull request to the merge queue Nov 15, 2024
Merged via the queue into main with commit 594f190 Nov 15, 2024
27 checks passed
@garth-wells garth-wells deleted the garth/cpp-mixed-demo-3 branch November 15, 2024 15:57
jorgensd added a commit to jorgensd/dolfinx_mpc that referenced this pull request Nov 17, 2024
jorgensd added a commit to jorgensd/dolfinx_mpc that referenced this pull request Nov 17, 2024
* Update CI versions and behavior

* Refactor timings, due to:
FEniCS/dolfinx#3487
FEniCS/dolfinx#3488

* API changes from:  FEniCS/dolfinx#3500

* Fix demo

* Install boost

* Set tag

* Only check docker on release branch

* Fixes for refernece value size

* More timing fixes

* Another round of timing changes

* Remove last old timing instance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
demo New demo or demo enhancements/improvements enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants