hyteg issueshttps://i10git.cs.fau.de/hyteg/hyteg/-/issues2024-03-06T08:43:00+01:00https://i10git.cs.fau.de/hyteg/hyteg/-/issues/246New generated Stokes operators2024-03-06T08:43:00+01:00Nils KohlNew generated Stokes operatorsThis issue shall document and **discuss** the introduction of the Stokes composite operators that are built from the new generated operators.
Also **point out if I made a mistake** and feel free to correct this description.
## List of S...This issue shall document and **discuss** the introduction of the Stokes composite operators that are built from the new generated operators.
Also **point out if I made a mistake** and feel free to correct this description.
## List of Stokes operators
It seems(?) that we are particularly interested in three types of Stokes operators, particularly differing in the momentum terms.
Let
```math
K = \begin{bmatrix}
A & B^T \\
B & 0
\end{bmatrix}
```
be the discrete Stokes operator for a $\mathbb{P}_2-\mathbb{P}_1$ Taylor-Hood discretization.
The operators differ in the way the $A$ block is defined. Let's summarize.
| Proposed name (prefix) | Strong form of momentum term ("velocity part") | Weak form that defines $A$ |
| ------ | ------ | ------ |
| `P2P1StokesConstant` | $- \Delta u$ | $\displaystyle\int_\Omega \nabla u : \nabla v$ |
| `P2P1StokesEpsilon` | $\displaystyle- \nabla \cdot \Big(2 \mu \varepsilon(u)\Big)$ | $\displaystyle\int_\Omega 2 \mu \Big(\varepsilon(u) : \varepsilon(v)\Big)$ |
| `P2P1StokesFull` | $\displaystyle - \nabla \cdot \Big( 2 \mu \varepsilon(u) \Big) - \frac{2}{\mathrm{dim}} \nabla (\nabla \cdot u)$ | $\displaystyle\int_\Omega 2 \mu \Big(\varepsilon(u) : \varepsilon(v)\Big) - \frac{2}{\mathrm{dim}} (\nabla \cdot u) \cdot (\nabla \cdot v)$
where $\varepsilon(w) = \frac{1}{2} (\nabla w + (\nabla w)^T)$.
$\mu = \mu(x)$ will eventually be a scalar finite element function (in $\mathbb{P}_2$) that is supplied by the user.
## Possible file structure
I propose the following structure - **open to suggestions**.
```
hyteg/src/
- hyteg/
- terraneo/
- ...
- hyteg_operators/ # submodule with generated operators
- hyteg_operators_composites/ # new module
- stokes/
- viscousblock/
- P2ViscousBlockLaplaceOperator.*pp
- P2ViscousBlockEpsilonOperator.*pp
- P2ViscousBlockFullOperator.*pp
- divergence/
- P2VectortoP1DivergenceOperator.*pp
- gradient/
- P1toP2VectorGradientOperator.*pp
- P2P1StokesConstantOperator.*pp
- P2P1StokesEpsilonOperator.*pp
- P2P1StokesFullOperator.*pp
- ...
```
## Blending
For each relevant blending map, additional operators will be added to the respective files. For instance
```cpp
// P2P1StokesEpsilonOperator.hpp
class P2P1StokesEpsilonOperator { ... };
class P2P1StokesEpsilonIcosahedralShellMapOperator { ... };
```
## Some notes
* I am not sure yet which quadrature rules to choose for the blending cases. For now I chose rules that integrate degree 3 polynomials exactly for blending, and degree 2 polynomials without blending (the latter should be sufficient to maintain convergence order(?)). But we may want to discuss this.
* The new composites shall _only_ use/depend on the newly generated operators and never introduce any of the existing constant stencil ops, elementwise ops etc. If something is missing, we should adapt the HFG.
* Lumped and diagonal operators are already in the making. Those are needed for all sorts of preconditioners.
* I currently only consider Taylor-Hood-style operators. Stabilized $\mathbb{P}_1-\mathbb{P}_1$ operators should be straightforward to generate, too.
* In the future, we want to enable the HFG to generate the vector-operators directly such that they do not have to be composed manually. This will likely remove the need for all operators in the subdirectories `viscousblock`, `gradient`, `divergence`, etc. But for starters, we will probably go with the composed versions.
## Checklist
- [x] generate scalar block operators
- [x] compile composites for viscous blocks (!710)
- [x] compile div and grad blocks (!710)
- [x] compile Stokes operators (!710)
- [x] tests (!710)
- [ ] compile/implement diagonal operators to use preconditioners (moved to #250)Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/230HYTEG_build_doc on by default causes problems2024-02-27T14:36:42+01:00Dominik Thoennesdominik.thoennes@fau.deHYTEG_build_doc on by default causes problemsWe currently have `HYTEG_BUILD_DOC` `ON` by default. I guess it makes sense to have but when doxygen is no available it causes errors in cmake.
I think we should either turn it `OFF` or at least not fail when doxygen is not found.
What d...We currently have `HYTEG_BUILD_DOC` `ON` by default. I guess it makes sense to have but when doxygen is no available it causes errors in cmake.
I think we should either turn it `OFF` or at least not fail when doxygen is not found.
What do you think?https://i10git.cs.fau.de/hyteg/hyteg/-/issues/170Rename dotGlobal() to dot()2023-03-17T15:37:52+01:00Nils KohlRename dotGlobal() to dot()Should generally be "global" for users, shouldn't it?Should generally be "global" for users, shouldn't it?https://i10git.cs.fau.de/hyteg/hyteg/-/issues/143List Trilinos as optional dependency2021-03-16T13:29:05+01:00Marcus MohrList Trilinos as optional dependencyHi,
my pipeline just failed in coverage as I did not build with Trilinos. That reminded me to suggest that we should maybe list that as another optional dependency on the "Project Overview" page.
Cheers
MarcusHi,
my pipeline just failed in coverage as I did not build with Trilinos. That reminded me to suggest that we should maybe list that as another optional dependency on the "Project Overview" page.
Cheers
MarcusNils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/36Improve README2017-10-02T17:36:49+02:00Nils KohlImprove READMEWe need a better readme file for the gitlab overview page:
* improving build instructions
* dependency overview
* some introduction
* links to documentation and maybe important referencesWe need a better readme file for the gitlab overview page:
* improving build instructions
* dependency overview
* some introduction
* links to documentation and maybe important referencesNils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/15Build doxygen documentation via CI2017-07-26T17:12:51+02:00Nils KohlBuild doxygen documentation via CIIt would be nice to be able to access the doxygen documentation from a Pipeline as an artifact.It would be nice to be able to access the doxygen documentation from a Pipeline as an artifact.Dominik Thoennesdominik.thoennes@fau.deDominik Thoennesdominik.thoennes@fau.de