- Nov 13, 2024
-
-
Oliver Sander authored
Fix wrong range and jacobian type in hermitebasistest Closes #88 See merge request !492
-
- Oct 15, 2024
-
-
Maik Porrmann authored
Feature/transformed finite element mixin See merge request !490
-
- Oct 10, 2024
-
-
Carsten Gräser authored
-
Carsten Gräser authored
There are many Hermite-type elements. The one implemented here is commonly known as cubic Hermite element.
-
Carsten Gräser authored
This commit is not ment to be merged but should be removed once the test is in. It only serves to disable it in a minimal invasive way such that the CI can be run.
-
Layout cleanup: * Unify indentation. * Unify placement of opening/closing braces. * Unify placement of `static_assert`s and add missing conditions. * Surround each method by empty lines. * Put initializer and base class specifier in new line. * Fix a few typos. * For my inner Monk: Unify indentation of multiline doxygen comments. Other cleanup: * Cleanup includes. * Drop `coeffsize` and use `constexpr` function instead of nested ternary operators. * Rename `MorleyLocalBasis` to `MorleyReferenceLocalBasis`. Co-authored-by: Carsten Gräser <graeser@math.fau.de>
-
Layout cleanup: * Unify indentation. * Unify placement of opening/closing braces. * Unify placement of `static_assert`s and add missing conditions. * Surround each method by empty lines. * Put initializer and base class specifier in new line. * Fix a few typos. * Order some `using` statements. * For my inner Monk: Unify indentation of multiline doxygen comments. Other cleanup: * Remove redundant members. * Cleanup includes. * Drop `coeffsize` and use `constexpr` function instead of nester ternary operators. * Rename `HermiteLocalBasis` to `HermiteReferenceLocalBasis`. * Improve documentation. * Extract generic mapper-based utilities into separate header: * A simple range over all subindices associated to an element within a `MCMGMapper`. * A function computing average mesh sizes for all DOFs addressed by a `MCMGMapper`. * Cleanup internal members: * Incorporate `LFE::fillMatrix()` into `LFE::bind()` to avoid useless indirection. * Incorporate `PreBasis::updateState()` into `PreBasis::update()` to avoid useless indirection. * Use meaningfull names for member variables instead of generic ones like `localState` and `data`. * Use `std::array<T,n>` instead of `std::vector<T>` if `n` is a small compile time constant. Interface improvements: * Add global basis. Further changes: * Test on a non-uniform grid. * Fix a bug (and memory leak) when binding to an element. * Order includes lexicographically. Co-authored-by: Carsten Gräser <graeser@math.fau.de>
-
- Oct 06, 2024
-
-
Carsten Gräser authored
* Extend documentation. * Move non-working 'example' into doxygen documenation. * Unify coding style. * Remove redundant calls to `resize()`. Co-authored-by: Maik Porrmann <maik.porrmann@tu-dresden.de>
-
Carsten Gräser authored
-
Carsten Gräser authored
This is needed to specify the nature of the DOFs of a Hermite-basis in order to identify those that need to be constrained for a certain boundary condition.
-
This implements the global basis for the nonconforming Morley-element. The implementation is based on `TransformedFiniteElementMixin`. This only provides the classical quadratic element in 2d and no higher-order or 3d extensions. Notice that the element is H^1- and H^2-nonconforming.
-
This uses the `TransformedFiniteElementMixin` helper class to imeplement the crucial local transformation needed to ensure global continuity of derivatives. The implementation provides: * The 1d cubic Hermite basis (aka cubic C1 splines) * The 2d cubic Hermite basis (aka Hermite triangle) * A version of the 2d cubic Hermite basis where the cubic element bubble is eliminated. This is known as 'reduced Hermite triangle' and provides one part of the mixed DKT-element. * The 3d cubic Hermite basis Notice that, except for the 1d case, these FE-spaces are one H^1 but not H^2 conforming.
-
This CRTP-mixin class implements the `localBasis()` part of a `LocalFiniteElement` using a transformation of another basis. The implementation class is required to implement member functions `referenceLocalBasis()` and `transform()`. The former allows to define the local ansatz-space in terms of _some_ local basis based on the corresponding interface in dune-localfunctions. The target basis is then given by a set of linear combinations of those reference basis functions. The `transform()` methods implements the linear transformation indiced by those linear combinations. Since the same transformation is used for function values as well as any order of derivative, this __cannot__ be used to implement range transformation as e.g. Piola-transformations.
-
- Oct 03, 2024
-
-
Carsten Gräser authored
[doc][cleanup] Fix typo See merge request !493
-
- Oct 02, 2024
-
-
Carsten Gräser authored
-
Simon Praetorius authored
-
- Sep 27, 2024
-
-
Carsten Gräser authored
Feature/add differentiability checks See merge request !480
-
This adds optional checks for continuity at vertices and continuity of normal derivatives at edge midpoints. The latter is implemented by means of a general framework for differentiability checks.
-
- Sep 25, 2024
-
-
Carsten Gräser authored
Add new function class MonomialSet<K,dim,n> See merge request !470
-
Carsten Gräser authored
-
Co-authored-by: Simon Praetorius <simon.praetorius@tu-dresden.de>
-
Carsten Gräser authored
This implements all `dim`-variate monomials up to order `n` as components of a vector-valued differentiable functions. Currently this is only specialized for order `dim=1` and `dim=2`. The new `MonomialSet` is used and tested in `CubicHermiteBasis`.
-
- Sep 04, 2024
-
-
Simon Praetorius authored
Update versions release 2 10 See merge request !488
-
Simon Praetorius authored
-
Simon Praetorius authored
-
Simon Praetorius authored
Use Hybrid::equal_to instead of Hybrid::equals See merge request !486
-
Simon Praetorius authored
Add container descriptor for blocked-interleaved index-merging strategy See merge request !467
-
Simon Praetorius authored
-
Simon Praetorius authored
-
Simon Praetorius authored
-
Simon Praetorius authored
-
Simon Praetorius authored
-
- Aug 10, 2024
-
-
Christoph Grüninger authored
Update COPYING See merge request !484
-
- Aug 09, 2024
-
-
Christoph Grüninger authored
-
- Aug 07, 2024
-
-
Oliver Sander authored
Add SPDX license information See merge request !475
-
- Jul 04, 2024
-
-
Carsten Gräser authored
[examples][doc] Fix sign of pressure in Stokes example See merge request !482
-
Carsten Gräser authored
This has been changed to the physically correct version in the example code, too.
-
Carsten Gräser authored
While the exact sign is not important mathematically, the example used the physically wrong sign. Thus this is also uncommon in literature. The physically correct form of the Stokes equation is `-\Delta u + \grad p = f` which, after partial integration leads to a `-div(v)p` term in the weak form. This issues exists since the example was added. Maybe the initial version of the example was implemented based on the book by Braess. There, indeed the uncommon sign is used for the Stokes as well as for the Navier-Stokes equation. No surprisinly, the uncommon convention leads to confusing results. E.g. for the lid driven cavity flow, the pressure decreases towards the corner where the fluid is driven to. Similarly, for Poiseuille flow in a pipe the fluid is driven towards the high pressure side.
-
- Jun 29, 2024
-
-
Oliver Sander authored
-
Oliver Sander authored
-