hyteg issueshttps://i10git.cs.fau.de/hyteg/hyteg/-/issues2024-03-28T10:34:38+01:00https://i10git.cs.fau.de/hyteg/hyteg/-/issues/257Potential tutorial folder structure2024-03-28T10:34:38+01:00Ponsuganth Ilangovan Ponkumar IlangoPotential tutorial folder structureThis issue is to discuss modifying the tutorials folder structure to make it well categorised, like basics, full apps, etc. As we would also like to have the benchmark apps like Blankenbach under the tutorials which would serve as an exa...This issue is to discuss modifying the tutorials folder structure to make it well categorised, like basics, full apps, etc. As we would also like to have the benchmark apps like Blankenbach under the tutorials which would serve as an example of community standard geophysical application.
A potential folder structure would be,
- Tutorials
- Basics
- 01_PrimitiveStorage
- 02_PrimitiveData
- 03_Communication
- 04_Indexing
- Benchmarks
- 13_Blankenbach
- Full Apps
- others
Any suggestions or improvement with this and maybe also ideas for more tutorials would be greatly helpful as we start to work on these now.Ponsuganth Ilangovan Ponkumar IlangoPonsuganth Ilangovan Ponkumar Ilangohttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/256Doxygen issues2024-03-26T16:09:48+01:00Nils KohlDoxygen issuesA collection of current issues in our Doxygen documentation:
- [x] LaTeX does not seem to render, see https://hyteg.pages.i10git.cs.fau.de/hyteg/10_DGAMR.html (see https://i10git.cs.fau.de/hyteg/hyteg/-/issues/256#note_29522)
- [ ] CI ba...A collection of current issues in our Doxygen documentation:
- [x] LaTeX does not seem to render, see https://hyteg.pages.i10git.cs.fau.de/hyteg/10_DGAMR.html (see https://i10git.cs.fau.de/hyteg/hyteg/-/issues/256#note_29522)
- [ ] CI badges in README do not link to CI
- [ ] some links in the README do not work correctly when clicked in GitLabNils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/251Document whether the pseudo-3D setting for 2D FullStokes is applied.2024-03-06T08:41:58+01:00Nils KohlDocument whether the pseudo-3D setting for 2D FullStokes is applied.From [this comment](https://i10git.cs.fau.de/hyteg/hyteg/-/issues/246#note_28573) in #246:
> just a comment on the `P2P1StokesFull` case in 2D. Though, I am not sure how important this will be for us at the moment. The current **form_st...From [this comment](https://i10git.cs.fau.de/hyteg/hyteg/-/issues/246#note_28573) in #246:
> just a comment on the `P2P1StokesFull` case in 2D. Though, I am not sure how important this will be for us at the moment. The current **form_stokes_full.ufl** for the 2D case uses 2/3 as factor, which is a *'pseudo 2D'* setting. That was motivated by people doing 2D simulations, with are actually 3D but with a cylindrical symmetry of sorts.
We should document what is implemented in the 2D case. Probably needs to be done through the HFG.Nils KohlNils Kohlhttps://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/216Doxygen Documentation2024-03-20T10:39:17+01:00Marcus MohrDoxygen DocumentationHi,
I was just parsing the output of running Doxygen on our master. One thing I recognised is the following
# \section
In the tutorials we make use of Doxygen's [`\section` command](https://www.doxygen.nl/manual/commands.html#cmdsectio...Hi,
I was just parsing the output of running Doxygen on our master. One thing I recognised is the following
# \section
In the tutorials we make use of Doxygen's [`\section` command](https://www.doxygen.nl/manual/commands.html#cmdsection). Please be aware that the name given to a section is **global**. Thus, we get warnings like the following:
```
Preprocessing .../HyTeG/tutorials/08_CahnHilliard/CahnHilliard.cpp:478: warning: multiple use of section label 'code' while adding section, (first occurrence: .../HyTeG/tutorials/01_PrimitiveStorage.cpp, line 101)
```
This actually has also a real effect. The corresponding section in tutorial \#8 bares the name *Complete Program* as specified in tutorial \#1 and not the name *Code* as given in tutorial \#8.
I suggest to prefix the section names in the tutorials with **`T<tutorial number>-`** to make section names unique.
# $`\LaTeX`$
Do not add pseudo-LaTeX code such as,
```
/// Evaluates the linear functional
///
/// l( v ) = \int_\Omega f * v
///
```
but instead put it into a construct to render it as $`\LaTeX`$:
```
/// Evaluates the linear functional
/// \f[
/// l( v ) = \int_\Omega f \cdot v
/// \f]
```
Also make sure that your $`\LaTeX`$ commands are supported by standard $`\LaTeX`$. Otherwise you will get problems.
While additional packages can be loaded by Doxygen via the `EXTRA_PACKAGES` option, we should IMHO limit this to the really essential stuff for reasons of portability. Currently we only load **amsmath** in this way.
Note, however, that Doxygen seems not so super stable w.r.t. to treating $`\LaTeX`$. For example that following
```
* \f{align*}{
* F(\phi) = \int \boldsymbol \psi(\phi) dx + \frac{\epsilon^2}{2}\int |\nabla \phi |^2 dx
* \f}
```
seems to be responsible for
```
warning: Found unknown command '\boldsymbol'
warning: Found unknown command '\psi'
```
although it is type-set correctly in the output and (at least to me) seems to adhere to the specification.
# Other Issues
Most other warnings seem to belong to one of four categories:
- `The following parameter of XYZ is not documented:`, which would be easy to fix by adding the respective documentations. Unless XYZ is a templated function. I see cases where there is an attempt to document the parameter, but Doxygen seems to have problems to understand this for a concrete template instantiation. Not sure if one can help Doxygen here.
- `warning: no uniquely matching class member found for XYZ` which, without looking too much into details seems to be related to templatisation and, thus, might be unfixable.
- `warning: explicit link request to 'XYZ' could not be resolved`, where XYZ is something like P1Function or ValueType, so again related to templatisation.
- `warning: member XYZ belongs to two different groups. The second one found here will be ignored.` Not sure about that one, yet.
# Pictures
This is more of a question. Can someone please explain to me, why we need to explicitely add pictures, used e.g. in the tutorials, to `EXTRA_HTML_FILES` when we include them using `<img src="..."/>`? This only seems to bother Doxygen, when we [build the documentation as part of the pipeline](https://i10git.cs.fau.de/hyteg/hyteg/-/jobs/1076187), but not, when one builds it locally. What's the difference and could that maybe be resolved?Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/214Add documentation to grid transfer functions2023-12-19T17:21:34+01:00Nils KohlAdd documentation to grid transfer functionsFor instance the standard restriction classes are the transpose of the prolongation - but users might think that it is rather an "interpolation". We need better names and documentation.For instance the standard restriction classes are the transpose of the prolongation - but users might think that it is rather an "interpolation". We need better names and documentation.https://i10git.cs.fau.de/hyteg/hyteg/-/issues/207Minor DG tutorial fixes2023-05-26T15:34:21+02:00Nils KohlMinor DG tutorial fixesThere are some minor things that should be fixed in the DG tutorial.
* The full app code is missing on the Doxygen page.
* The computation of h is flawed. Better use h_max or h_min. There are suitable functions in HyTeG.There are some minor things that should be fixed in the DG tutorial.
* The full app code is missing on the Doxygen page.
* The computation of h is flawed. Better use h_max or h_min. There are suitable functions in HyTeG.Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/issues/201Update GMG tutorial2023-02-17T14:32:07+01:00Nils KohlUpdate GMG tutorialThe GMG tutorial (05) is a little outdated and could use some more in-depth description to provide a nice starting point for new users.The GMG tutorial (05) is a little outdated and could use some more in-depth description to provide a nice starting point for new users.Nils KohlNils Kohlhttps://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