dune-geometry merge requestshttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests2024-03-22T15:58:26Zhttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/243[feature][Python] Compile commonly used reference elements into library.2024-03-22T15:58:26ZRobert K[feature][Python] Compile commonly used reference elements into library.Compile commonly used reference elements into dune-geometry Python module to avoid code generation.Compile commonly used reference elements into dune-geometry Python module to avoid code generation.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/229Check transposed (inverse) Jacobian by tolerance2024-02-15T10:57:55ZSimon PraetoriusCheck transposed (inverse) Jacobian by tolerance### Summary
The geometry check implements a transposed check by exact comparison. This works only if the transposed is implemented just as a permutation of the values. But geometries that implement the transposed (inverse) Jacobians diff...### Summary
The geometry check implements a transposed check by exact comparison. This works only if the transposed is implemented just as a permutation of the values. But geometries that implement the transposed (inverse) Jacobians differently might return matrices that are not exactly transposed but contain small floating point errors. This MR changes the exact comparison by a tolerance based comparison.Carsten Gräsergraeser@math.fau.deCarsten Gräsergraeser@math.fau.dehttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/238[cleanup] Silence -Warray-bounds in ReferenceElement implementation.2024-02-05T14:44:10ZRobert K[cleanup] Silence -Warray-bounds in ReferenceElement implementation.@simon.praetorius: This is a non-invasive alternative to !236.@simon.praetorius: This is a non-invasive alternative to !236.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/230Extract default geometry traits from MultiLinearGeometryTraits2023-12-11T19:34:56ZSimon PraetoriusExtract default geometry traits from MultiLinearGeometryTraits### Summary
The `MultiLinearGeometry` can be parametrized by traits that are defaulted to `MultiLinearGeometryTraits`. Several other geometry implementations might use the same or at least a subset of these traits, e.g. various implement...### Summary
The `MultiLinearGeometry` can be parametrized by traits that are defaulted to `MultiLinearGeometryTraits`. Several other geometry implementations might use the same or at least a subset of these traits, e.g. various implementations of courved or chained geometries. This MR extracts some common traits properties into a separate class that can better be used by other geometries. Additionally, the `FieldMatrixHelper` class is extracted from the affine geometry into a separate file to be reused by multiple geometry implementations.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/209[bugfix] dune-common version dependency.2022-10-20T14:00:19ZRobert K[bugfix] dune-common version dependency.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/202[cmake][python] Replace deprecated dune_python_install_package2022-10-08T13:32:17ZChristoph Grüninger[cmake][python] Replace deprecated dune_python_install_packageSimon PraetoriusSimon Praetoriushttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/195[python][cleanup] Remove unused argument2022-04-23T08:56:06ZTimo Koch[python][cleanup] Remove unused argumenthttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/137WIP: [ReferenceElement] Remove magic to emit deprecation warning for de-ref2022-02-20T06:21:49ZChristoph GrüningerWIP: [ReferenceElement] Remove magic to emit deprecation warning for de-refThis was alread deprecated in Dune 2.6.This was alread deprecated in Dune 2.6.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/163Draft: [cleanup][ci] Use compilers from toolchain for dune-py to avoid failures2022-01-27T11:14:23ZRobert KDraft: [cleanup][ci] Use compilers from toolchain for dune-py to avoid failureswhen toolchain is changed.when toolchain is changed.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/185Feature/precompiled2021-10-20T09:33:18ZSamuel Burbullasamuel.burbulla@mathematik.uni-stuttgart.deFeature/precompiledI propose to already compile commonly used reference elements (dim=0...3) for the python bindings during the building of dune-geometry.
This increases the build time from 1s to 5s (with a parallel build) when python bindings are enabled...I propose to already compile commonly used reference elements (dim=0...3) for the python bindings during the building of dune-geometry.
This increases the build time from 1s to 5s (with a parallel build) when python bindings are enabled, but will reduce the time of compilation of about 14s on the Python user's side.Andreas DednerAndreas Dednerhttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/168Remove spurious deprecation warning from deprecated_topology.hh2021-05-30T19:07:08ZTimo KochRemove spurious deprecation warning from deprecated_topology.hhThe deprecation warning is printed if `geometry/type.hh` is included somewhere even if none of the deprecated classes are usedThe deprecation warning is printed if `geometry/type.hh` is included somewhere even if none of the deprecated classes are usedAndreas DednerAndreas Dednerhttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/146Add static_assert to constructor of AxisAlignedCubeGeometry2020-10-05T10:02:40ZKilian WeishauptAdd static_assert to constructor of AxisAlignedCubeGeometryfixes #25
This MR additionally introduces some C++17 features.fixes #25
This MR additionally introduces some C++17 features.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/102WIP: Step 1 of redesign of quadrature rules2020-03-03T20:17:30ZSimon PraetoriusWIP: Step 1 of redesign of quadrature rules### Summary
All quadrature rules are moved to subdirectory `quadraturerules`, with a common filename scheme. The whole implementation for each rule is now put into one file. Therefore, the .mac scripts are adopted to generate these file ...### Summary
All quadrature rules are moved to subdirectory `quadraturerules`, with a common filename scheme. The whole implementation for each rule is now put into one file. Therefore, the .mac scripts are adopted to generate these file structure directly.
### Motivation
This is the first step of a cleanup and redesign of the quadrature rules: 1.) put all rules into a similar structure. 2.) cleanup of the classes QuadratureRules and QuadratureFactory, 3.) Automatically generate coefficients for all rules with higher precisionhttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/44[multilineargeometry] use correct mapping in global for affine-linear case2020-02-22T18:36:45ZTobias Leibner[multilineargeometry] use correct mapping in global for affine-linear caseWithout this change, the Newton method in the ```local``` function of ```MultiLinearGeometry``` often is not converging for UGGrid.Without this change, the Newton method in the ```local``` function of ```MultiLinearGeometry``` often is not converging for UGGrid.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/112Use GeometryTypes::cube(dim) instead of GeometryType(dim).2018-11-13T19:50:36ZClaus-Justus Heineclaus-justus.heine@ians.uni-stuttgart.deUse GeometryTypes::cube(dim) instead of GeometryType(dim).https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/109Merge branch 'feature/do-not-catch-polymorphic-type-by-value' into 'master'2018-10-08T09:41:01ZJö Fahlkejorrit@jorrit.deMerge branch 'feature/do-not-catch-polymorphic-type-by-value' into 'master'do not catch polymorphic type by value
See merge request core/dune-geometry!99
Closes: #20
(cherry picked from commit 08fa18a9a99f05b1cd9b79c7c6b27b9319b2c2b8)
3bbc37a3 do not catch polymorphic type by valuedo not catch polymorphic type by value
See merge request core/dune-geometry!99
Closes: #20
(cherry picked from commit 08fa18a9a99f05b1cd9b79c7c6b27b9319b2c2b8)
3bbc37a3 do not catch polymorphic type by valuehttps://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/20Feature/higher order simplex quadrature2018-07-22T14:58:26ZSimon PraetoriusFeature/higher order simplex quadratureIn Issue #6 it is discussed, that it would be nice to have higher order quadrature rules in high precision on triangles and tetrahedra, as provided by other libraries, like PHG, and published in several publication, e.g. "A Set of Symmet...In Issue #6 it is discussed, that it would be nice to have higher order quadrature rules in high precision on triangles and tetrahedra, as provided by other libraries, like PHG, and published in several publication, e.g. "A Set of Symmetric Quadrature Rules on Triangles and Tetrahedra", by L. Zhang, T. Cui and H. Liu, (2009) and "New fully symmetric and rotationally symmetric cubature rules on the triangle using minimal orthonormal bases", by S.-A. Papanicolopulos, (2016)
A set of rules is added to the `simplexquadrature.hh` implementation, i.e. rules for order 12-24 for triangles and rules for order 2-12 for tetrahedra. All these rules are provided in 35 digit precision, calculated from symmetric interior point rules with positive weights, given originally in barycentric coordinates in *PHG* version 0.9.2 that can be found at http://lsec.cc.ac.cn/phg/index_en.htm. The corresponding conversion scripts are attached to this merge request and use *boost.multiprecision* to actually calculate the rescaled coefficients and the residuum of the formulas: [rules3d.cc](/uploads/134e1057d3f222fbf040f7120b756677/rules3d.cc)[rules2d.cc](/uploads/a7d308bee3af4db9c0e760a26e4070bf/rules2d.cc)[quad-permu.h](/uploads/4be0d07d9d6c1d6df561dc6c35275aca/quad-permu.h)
Some rules are replaced with the new rules:
- 2d, order 12: using higher precision coefficients
- 3d, order 2: higher precision, same number of points
- 3d, order 3: interior point rule, higher precision, same number of points
- 3d, order 4 and 5: new rules with less number of points
In 2d some DUNE quadrature rules have negative weights (order 3) or points on the triangle boundary (order 11). However, a replacement with interior point rules with positive weights might have more quadrature points. Thus, this is not changed and may be discussed later on.
Some higher order rules in 2d might be replaced with not fully symmetric rules, with less number of points, as provided in Papanicolopulos's paper. Currently only fully symmetric rules are added. There, the value of the formula is independent of the vertex numbering, but results in slightly less efficient rules.
Some higher order rules can be found in the supplement of "On the identification of symmetric quadrature rules for finite element methods", by F. D. Witherden and P. E. Vincent (2015). Using the scripts [rules3d_new.cc](/uploads/0d4b1a5229ec9cbdc12ec05d34b8011e/rules3d_new.cc)[rules2d_new.cc](/uploads/8954bdca2ceaea7de6d90f2bf6994290/rules2d_new.cc) to convert the provided coefficients to the DUNE reference geometry.https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/27WIP: Redesign of quadrature rules2018-07-22T14:58:08ZSimon PraetoriusWIP: Redesign of quadrature rulesRedesign of the implementation of quadrature rules in Dune. Basically: generate c++ files from tabulated values, stored in a clearly defined .csv file.
See issue "Redesign of quadrature rules" #9 for some details.
Main changes:
- Th...Redesign of the implementation of quadrature rules in Dune. Basically: generate c++ files from tabulated values, stored in a clearly defined .csv file.
See issue "Redesign of quadrature rules" #9 for some details.
Main changes:
- The file `quadraturerules.hh` is cleaned up, i.e.
- internal definitions of specific quadrature rules removed (e.g. prism quadrature rule)
- several old rules are removed, e.g. `gauss.cc`, `gauss_imp.hh`, `gausslobatto.cc`, `gausslobatto_imp.hh`, `jacobi_1_0.cc`, `jacobi_1_0_imp.hh`, `jacobi_2_0.cc`, `jacobi_2_0_imp.hh`, `simplexquadrature.hh`
- a directory `utility` is added, that provides generators for several rules:
- the `*.mac` files are moved to utility
- a script `make_rules.py` is added that generates rules from a set of .csv files
- a script `make_all_rules.py` calls `make_rules.py` for all geometry types
- the `rules.templ.hh` file is similar to the old `simplexquadrature.hh` but with placeholders for *dim*, *maxorder* and *geomtry-type* and an internal script that writes points and weights given as input
- A directory `utility/rules` is added that contains for all geometry types a set of quadrature rules in *.csv* files.
- Using the `make_rules.py` script with the template `rules.templ.hh` and the defined rules in the folder `rules` some implementations for quadrature rules are generated and stored in the folder `quadraturerules`:
- `cube2dquadrature.inc.hh`, `cube3dquadrature.inc.hh`, `gausslobattoquadrature.inc.hh`, `gaussquadrature.inc.hh`, `jacobi1quadrature.inc.hh`, `jacobi2quadrature.inc.hh`, `prismquadrature.inc.hh`, `pyramidquadrature.inc.hh`, `simplex2dquadrature.inc.hh`, `simplex3dquadrature.inc.hh`
- These files are included in the main `quadraturerules.hh`
- To provide multi-precision rules all rules are given as string representation of the values
- A conversion function is provided in `common/cast.hh` with a specialization for quadprecision in `quadmath.hh`
- All standard floating-point types are cast from string using std methods, like `std::strtod( string )` for double. All unknown types are assumed to have a string constructor. (This implementation may be changed in favour of `std::stringstream`)
Thus, the user-interface is not changed, only the way the concrete quadrature rules are defined. https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/89Revert "[geometrytype] Deprecate GeometryType::BasicType"2018-01-19T13:43:39ZDominic Kempfdominic.kempf@iwr.uni-heidelberg.deRevert "[geometrytype] Deprecate GeometryType::BasicType"This reverts commit 221368af289172c7121944e28ff38178ea998f26.
This is the MR implementing the de-deprecation discussed in #17This reverts commit 221368af289172c7121944e28ff38178ea998f26.
This is the MR implementing the de-deprecation discussed in #17DUNE 2.6.0https://gitlab.dune-project.org/core/dune-geometry/-/merge_requests/79Add changelog entries for GeometryType and ReferenceElement2017-11-29T17:56:57ZSteffen Müthingsteffen.muething@iwr.uni-heidelberg.deAdd changelog entries for GeometryType and ReferenceElementDUNE 2.6.0