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

2186 add tests for specx #2211

Closed
wants to merge 53 commits into from
Closed

2186 add tests for specx #2211

wants to merge 53 commits into from

Conversation

lemoinep
Copy link

@lemoinep lemoinep commented Feb 1, 2024

  • Request to merge Specx benchmarks development under /testsuite folder
    @prudhomm

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.
@lemoinep lemoinep linked an issue Feb 1, 2024 that may be closed by this pull request
Copy link

Stale pull request message

@vincentchabannes
Copy link
Member

@prudhomm unfortunately, the branch was based on your dev branch on ranges, so we have a conflict. We rebuild a new one from develop branch.

@lemoinep lemoinep deleted the 2186-add-tests-for-specx branch March 21, 2024 08:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

add tests for specx
3 participants