hyteg merge requestshttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests2021-05-04T00:01:35+02:00https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/414Hot-fix for IsoviscousConvectionAnnulus tutorial2021-05-04T00:01:35+02:00Marcus MohrHot-fix for IsoviscousConvectionAnnulus tutorialSee issue #150 for problem description.See issue #150 for problem description.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/371Implements VectorToScalar and ScalarToVector operators2020-10-12T19:51:13+02:00Marcus MohrImplements VectorToScalar and ScalarToVector operatorsMarcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/546Issue #181: Modify Matrix and PointND classes2022-12-07T10:37:30+01:00Marcus MohrIssue #181: Modify Matrix and PointND classesIn light of issue #181 this commit changes the implementation details
of the Matrix and PointND classes, while leaving their API basically
unchanged.
The major switch is that both classes now use an Eigen::Matrix object
to store their d...In light of issue #181 this commit changes the implementation details
of the Matrix and PointND classes, while leaving their API basically
unchanged.
The major switch is that both classes now use an Eigen::Matrix object
to store their data instead of the previous static 1D array of type T.
This allows to delegate all the algebraic operations to the Eigen
library and makes certain operations also available for dimensions for
which so far they had not been implemented.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/545Issue #181: Modify Matrix and PointND classes2022-12-01T11:27:14+01:00Marcus MohrIssue #181: Modify Matrix and PointND classesIn light of issue #181 this commit changes the implementation details
of the Matrix and PointND classes, while leaving their API basically
unchanged.
The major switch is that both classes now use an Eigen::Matrix object
to store their d...In light of issue #181 this commit changes the implementation details
of the Matrix and PointND classes, while leaving their API basically
unchanged.
The major switch is that both classes now use an Eigen::Matrix object
to store their data instead of the previous static 1D array of type T.
This allows to delegate all the algebraic operations to the Eigen
library and makes certain operations also available for dimensions for
which so far they had not been implemented.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/624Make HyTeG aware of system's byte order2023-07-12T13:17:33+02:00Marcus MohrMake HyTeG aware of system's byte orderMerge adds a new macro `HYTEG_ARCH_ENDIANESS` to HytegDefinitions that is set by CMake to the value of `CMAKE_CXX_BYTE_ORDER`. We also add a query method `systemEndianess()` to BuildInfo. We use this information then to place the correct...Merge adds a new macro `HYTEG_ARCH_ENDIANESS` to HytegDefinitions that is set by CMake to the value of `CMAKE_CXX_BYTE_ORDER`. We also add a query method `systemEndianess()` to BuildInfo. We use this information then to place the correct information into our VTU output files, instead of hardcoding LittleEndian everywhere.
In order to use the CMake macro we need 3.20 as minimal version and document this in our README.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/455Make P2P1TaylorHoodFunction child of BlockFunction2021-10-14T16:37:21+02:00Marcus MohrMake P2P1TaylorHoodFunction child of BlockFunctionThe merge makes the ```P2P1TaylorHoodFunction``` and the ```P1CahnHilliardFunction``` children of ```BlockFunction```. The
```FunctionWrapper``` class is adapted, so that we can keep ```uvw``` and ```p``` as members of the ```P2P1TaylorH...The merge makes the ```P2P1TaylorHoodFunction``` and the ```P1CahnHilliardFunction``` children of ```BlockFunction```. The
```FunctionWrapper``` class is adapted, so that we can keep ```uvw``` and ```p``` as members of the ```P2P1TaylorHoodFunction```, similar for the ```P1CahnHilliardFunction```. Thus, we do not need to adapt the operators, solvers, ..., yet.
Note that we need to explicitely define a copy constructor in the children to take care of setting the entries in the ```subFuncs_``` vector inherited from the ```BlockFunction``` parent. Otherwise nasty memory errors will occur.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/246mohr/issue992019-07-17T13:06:59+02:00Marcus Mohrmohr/issue99Follow up on merge request !240 which is superseded by this one. Will fix issue #99.Follow up on merge request !240 which is superseded by this one. Will fix issue #99.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/628Move Table and KeyValueStore to a central place2023-07-20T11:23:12+02:00Daniel BauerMove Table and KeyValueStore to a central placeRebase of !625.
`Table` and `KeyValueStore` can be used to write data in HyTeG apps/tests such that they can be later directly included in LaTeX code. See the docstrings for example usages.
This MR documents the existing classes and mo...Rebase of !625.
`Table` and `KeyValueStore` can be used to write data in HyTeG apps/tests such that they can be later directly included in LaTeX code. See the docstrings for example usages.
This MR documents the existing classes and moves them to `src/hyteg/dataexport`. Before, they were hidden away in `apps/2023-bauer-mt`.Daniel BauerDaniel Bauerhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/383New 'functions' subdirectory2020-12-01T17:50:19+01:00Marcus MohrNew 'functions' subdirectoryIn order to cleanup 'src/hyteg' a little bit and in preparation of working
on the class hierarchy for functions (see als issue #142) the commit
introduces a new 'functions' subdirectory and move the following files
into it:
- Function....In order to cleanup 'src/hyteg' a little bit and in preparation of working
on the class hierarchy for functions (see als issue #142) the commit
introduces a new 'functions' subdirectory and move the following files
into it:
- Function.hpp
- FunctionIterator.hpp
- FunctionProperties.cpp
- FunctionProperties.hpp
- FunctionTraits.hppNils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/424New forms for epsilon operator and deprecation of old forms2021-06-04T17:45:16+02:00Marcus MohrNew forms for epsilon operator and deprecation of old formsWorked on the forms part of HyTeG. Most importantly:
- added forms for epsilon operator with blending and variable viscosity
- marked most of the HyTeG generated forms from the pre-hyteg-form-generator era as deprecatedWorked on the forms part of HyTeG. Most importantly:
- added forms for epsilon operator with blending and variable viscosity
- marked most of the HyTeG generated forms from the pre-hyteg-form-generator era as deprecatedMarcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/404New VectorFunction classes and hierarchy2021-04-01T13:18:09+02:00Marcus MohrNew VectorFunction classes and hierarchyThe merge will resolve issue #142. Especially it will bring a new class hierarchy for vector-valued functions. The associated base class provides most of the methods we find in our ```P1Function``` and ```P2Function``` classes, but allow...The merge will resolve issue #142. Especially it will bring a new class hierarchy for vector-valued functions. The associated base class provides most of the methods we find in our ```P1Function``` and ```P2Function``` classes, but allow to directly operate on vector functions, which means we can e.g. write
```
f.uvw.multElementwise( { f.uvw, outwardNormal.uvw }, l );
f.uvw.assign( { rayleighNumber }, { f.uvw }, l, All );
```
instead of the previous
```
f.uvw.u.multElementwise( {f.uvw.u, outwardNormal.uvw.u}, l );
f.uvw.v.multElementwise( {f.uvw.v, outwardNormal.uvw.v}, l );
f.uvw.w.multElementwise( {f.uvw.w, outwardNormal.uvw.w}, l );
f.uvw.u.assign( {rayleighNumber}, {f.uvw.u}, l, All );
f.uvw.v.assign( {rayleighNumber}, {f.uvw.v}, l, All );
f.uvw.w.assign( {rayleighNumber}, {f.uvw.w}, l, All );
```
Access to indiviudal scalar component functions is supported, e.g. via operator[]. This allows implementing loops based on the
return value of the ```getDimension()``` method.
```
for ( uint_t k = 0; k < function.uvw.getDimension(); k++ )
{
prolongationOperator_.prolongate( function.uvw[k], sourceLevel, flag );
}
```
which is important, since we do not provide a **dummy** third component for 2D vector functions.
The implementation relies on CRTP as our scalar functions do and as we discussed for the proposed **block functions**.
There is a first draft for a ```VectorToVector``` operator. But that only provides ```apply()``` as method and is not really used, yet.
This merge will bring many changes, so please take a look at it (and approve :sweat_smile:)
Cheers
MarcusMarcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/406New VectorFunction classes and hierarchy (updated version)2021-04-01T15:54:36+02:00Marcus MohrNew VectorFunction classes and hierarchy (updated version)Merge request for new branch with updated version of the one from !404.Merge request for new branch with updated version of the one from !404.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/215P2 multigrid experiments2019-02-27T14:03:40+01:00Nils KohlP2 multigrid experimentsNils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/476PETSc dynamic sparse matrix allocation2022-01-25T19:19:19+01:00Nils KohlPETSc dynamic sparse matrix allocationRefactored PETSc sparse matrix and vector classes so that the DoF counting is (optionally) done during run time. This is relevant for operators and functions for which the sizes are not known at compile time.Refactored PETSc sparse matrix and vector classes so that the DoF counting is (optionally) done during run time. This is relevant for operators and functions for which the sizes are not known at compile time.Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/248Placement of Forms2019-07-19T10:00:22+02:00Marcus MohrPlacement of FormsHi,
branch mohr/cleanup performs some code-cleanup related to
1. removal of code outdated by resolution of issue 99
1. new placement of source code files for forms
Cheers
MarcusHi,
branch mohr/cleanup performs some code-cleanup related to
1. removal of code outdated by resolution of issue 99
1. new placement of source code files for forms
Cheers
MarcusMarcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/489Refactor Composite Functions2022-03-01T12:50:09+01:00Marcus MohrRefactor Composite FunctionsThis merge is the next step on the long road to make our operator and solver implementation more flexible, by changing over to *BlockOperators*. It refactors the composite functions
- P1StokesFunction
- P2P1TaylorHoodFunction
- P2P2St...This merge is the next step on the long road to make our operator and solver implementation more flexible, by changing over to *BlockOperators*. It refactors the composite functions
- P1StokesFunction
- P2P1TaylorHoodFunction
- P2P2StokesFunction
to be children of the `BlockFunction` class.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/483Refactor Function <-> Vector interface2022-02-04T20:26:32+01:00Marcus MohrRefactor Function <-> Vector interfaceSome time ago we had agreed that the conversion from a function to a vector and vice-versa should be handled by a member function of the corresponding function class instead of through a free function.
That makes it consistent with the r...Some time ago we had agreed that the conversion from a function to a vector and vice-versa should be handled by a member function of the corresponding function class instead of through a free function.
That makes it consistent with the refactored matrix creation, see #125.
This merge implements the discussed change. Function classes now offer member functions
- `toVector()`
- `fromVector()`
which get used by the `PETScVector` and `TrilinosVector` classes.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/619Refactor VTKOutput2023-06-27T13:41:44+02:00Marcus MohrRefactor VTKOutputIn order to prepare for different output formats and libraries this MR refactors the implementation of the existing `VTKOutput` class and also adapts structure of source file placement.In order to prepare for different output formats and libraries this MR refactors the implementation of the existing `VTKOutput` class and also adapts structure of source file placement.Extend capabilities for exporting data by adding support for ADIOS2Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/439Refactoring of VTKOutput class2021-08-09T13:15:30+02:00Marcus MohrRefactoring of VTKOutput classOver time the VTKOutput class has grown quite large. In order to be better able to maintain and extend it I have relocated functionality to new *friend* classes. The idea is that the VTKOutput class itself only acts as a **manager**, but...Over time the VTKOutput class has grown quite large. In order to be better able to maintain and extend it I have relocated functionality to new *friend* classes. The idea is that the VTKOutput class itself only acts as a **manager**, but the work of doing the actual outputting is handled by separate writer classes.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/157Refactoring: Introduce FaceDoFIndexing2018-06-07T12:06:06+02:00Marcus MohrRefactoring: Introduce FaceDoFIndexingHi,
I changed the code as discussed in issue #75. So this commit resolves #75.
Cheers
MarcusHi,
I changed the code as discussed in issue #75. So this commit resolves #75.
Cheers
MarcusNils KohlNils Kohl