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

resolves 2233: improve hdg toolbox #2236

Open
wants to merge 99 commits into
base: develop
Choose a base branch
from
Open

Conversation

prudhomm
Copy link
Member

@prudhomm prudhomm commented Apr 9, 2024

  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes?
  • Have you successfully run the Feel++ testsuite with your changes locally?
  • Have you written Doxygen comments in your contribution ?

[ci skip]
Update commobject.hpp, meshcontiguousnumberingmapping.hpp, and filters.hpp

The commit message is as follows:

"Inline function worldComm updated in commobject.hpp, range_element_type updated in meshcontiguousnumberingmapping.hpp, and is_tuple struct updated in filters.hpp".
no need for worldcomm anymore, use the one from the range
define Range and RangeBase
provide is_range_v and is_filter_v to know whether we manipulate a range
port feelpp to new Range
Enrich range object #1489

Enriched the range object by modifying the `nelements` function template in multiple files. Made changes to improve readability and removed unnecessary code.
disambiguate type(fix compilation)
Enrich range object #1489

The commit enriches the range object by adding support for a new template parameter and additional constructors. This allows the range object to work with a MeshStructured class, as well as support different types for the template parameter.
Enrich range object

This commit adds the inclusion of the <variant> header in functionspace.hpp file. It also updates the typedefs local_interpolant_type and local_interpolants_type to use std::monostate instead of boost::none_t in functionspace.hpp and orthonormalpolynomialset.hpp files.
Enrich range object #1489

- Refactor code to use the `Range` object instead of `ext_elements_t` in the `buildGhostDofMapExtended` and `generateDofPoints` functions.
- Update type aliases in the `FunctionSpace` class to use the new `Range` object.
- Remove redundant functions `project` from `projectors.hpp`.
- Update the `test_submesh.cpp` file to use the new `Range` object in the `test_submesh_view` test case.
use Range in toolboxes

- Declare range_elements_type using Range template for mesh_type and MESH_ELEMENTS
- Update rangeMeshElements() function to return Range<mesh_type, MESH_ELEMENTS> instead of elements_reference_wrapper_t<mesh_type>
- Update the variable M_rangeMeshElements to be of type Range<mesh_type, MESH_ELEMENTS> instead of elements_reference_wrapper_t<mesh_type>

Refactor Range objects for better functionality
Add utility classes and templates to get the element type contained in certain classes:
- Added `element_type_helper` class to get the element type of `ObjectType`
- Added `element_t` and `element_ptr_t` aliases to get the element type and element shared pointer type of `ObjectType`
- Added specializations of `element_type_helper` for `FunctionSpaces` and `Meshes`
- Added `elements_mesh`, `faces_mesh`, `facets_mesh`, `edges_mesh`, `parent_mesh`, and `trace_mesh` classes and their corresponding aliases and specializations to get the mesh type and mesh shared pointer type of different topological dimensions
- Add debug compile option (-O1) for cln library when CMAKE_BUILD_TYPE is set to "Debug". This allows for optimized debugging.
Add boolean constants for enabling and disabling shared_from_this functionality in the code.
use Range<> class
use mp11 instead of mpl
Use element_t<range_type> instead of typename boost::tuples::element<1_c,range_type>::type::value_type::type for element_type in EmpiricalQuadrature class.
- Update the `updateDisplacementImposed` function in `modelmesh.cpp` to accept a `Range` object instead of `faces_reference_wrapper_t`.
- Update the `on` function in `discr.cpp` to accept a `Range` object instead of `elements_reference_wrapper_t`.
- Update the `integrate` function in `integrate.cpp` to accept a `Range` object instead of `elements_reference_wrapper_t` for integration over elements or faces.
- Update the `defInterpolate` function in `interpolation.cpp` to use a `Range` object instead of `elements_reference_wrapper_t`.
- Update the `distanceToRange` function in `ls.cpp` to accept a `Range` object instead of `faces_reference_wrapper_t`.
- Update the `measure` function in `measure.cpp` to accept a `Range` object instead of `elements_reference_wrapper_t`.

These changes allow more flexible range specification when operating on elements, faces, or other mesh entities.
Enrich range object #1489

Add new file `CTestCostData.txt` to the testsuite. Refactor code in `test_element_component.cpp`, `test_evaluator.cpp`, `test_geomap.cpp`, `test_mortar2.cpp`, `test_space_on_range.cpp`, `test_submesh.cpp`, `test_trace.cpp`, `test_upmarker_faces.cpp`, `test_wire_basket.cpp`, and `test_ranges.cpp`.
Update mesh-related types to use the new trace_mesh_t and trace_mesh_ptr_t aliases. Also update other type aliases accordingly.
prudhomm and others added 22 commits March 24, 2024 12:50
collision is skipped for now

skip feelpp skip testsuite skip toolboxes skip mor
Enrich range object #1489

skip feelpp skip testsuite skip toolboxes skip mor
/cc @VLCeline /cc @vincentchabannes

skip feelpp skip testsuite skip toolboxes skip mor
Enrich range object #1489
skip feelpp skip testsuite skip toolboxes skip mor
minor cleanup of forms #2191

skip feelpp skip testsuite skip toolboxes skip mor
skip feelpp skip testsuite skip toolboxes skip mor
minor cleanup of forms #2191

skip feelpp skip testsuite skip toolboxes skip mor
@prudhomm prudhomm added this to the v111 milestone Apr 9, 2024
@prudhomm prudhomm self-assigned this Apr 9, 2024
@prudhomm prudhomm linked an issue Apr 9, 2024 that may be closed by this pull request
2 tasks
Docker Robot and others added 3 commits April 10, 2024 00:19
add test for convection-diffusion and reaction, improve hdg toolbox #2233

skip feelpp skip testsuite
improve hdg python interface #2235
if verbose >0 then print and save toolbox information in simulate

skip feelpp skip toolboxes skip mor skip testsuite
skip feelpp skip toolboxes skip testsuite skip mor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
2 participants