hyteg merge requestshttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests2023-01-12T15:36:21+01:00https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/557Resolve issue #1922023-01-12T15:36:21+01:00Marcus MohrResolve issue #192Marcus 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/543Replace Matrix::adj() by Matrix::inverse()2022-11-22T17:34:33+01:00Marcus MohrReplace Matrix::adj() by Matrix::inverse()Resolves issue #188.Resolves issue #188.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/535Resolve issue #1842022-12-06T16:25:39+01:00Marcus MohrResolve issue #184The merge will make the evaluate() and evaluateGradient() methods of P[12]Function and DGFunction expect physical instead of computational coordinates. Additionally it fixes the problem with piecewise defined blending maps described as p...The merge will make the evaluate() and evaluateGradient() methods of P[12]Function and DGFunction expect physical instead of computational coordinates. Additionally it fixes the problem with piecewise defined blending maps described as part of issue #184.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/514Regenerated all HFG forms after update in HFG - HFG SHA: 21b345a2022-06-06T15:16:13+02:00Nils KohlRegenerated all HFG forms after update in HFG - HFG SHA: 21b345aNils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/508Starts a new terraneo module2022-05-05T11:22:40+02:00Marcus MohrStarts a new terraneo moduleAs discussed in the last developer meeting it is time, in light of soon to
come extensions, to start with a separate terraneo module. This is intended
to house code specifically addressing the needs of running mantle convection
models wi...As discussed in the last developer meeting it is time, in light of soon to
come extensions, to start with a separate terraneo module. This is intended
to house code specifically addressing the needs of running mantle convection
models with HyTeG.
This commit starts with the new module and relocates the
SphericalHarmonicsTool into it.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/497VectorToVectorOperators, Smoothability and Code Cleanup2022-03-21T13:56:03+01:00Marcus MohrVectorToVectorOperators, Smoothability and Code CleanupThe merge mostly deals with VectorToVectorOperators and their smoothability.The merge mostly deals with VectorToVectorOperators and their smoothability.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/494"Vectorisation" of Stokes-type operators2022-03-16T09:08:18+01:00Marcus Mohr"Vectorisation" of Stokes-type operatorsThe merge aims at "vectorising" our Stokes-type operators. By this I mean that they start using instances of the templated
1. VectorToVectorOperator
1. ScalarToVectorOperator
1. VectorToVectorOperator
classes instead of individual s...The merge aims at "vectorising" our Stokes-type operators. By this I mean that they start using instances of the templated
1. VectorToVectorOperator
1. ScalarToVectorOperator
1. VectorToVectorOperator
classes instead of individual scalar-to-scalar operators.
- Points 2 and 3 have been completely implemented, i.e. all Stokes-type operators now use a corresponding *div* and *divT*
operator instead of *div_{x,y,z}* and *divT_{x,y,z}*.
- Point 1 has been implemented for all 'true' Stokes operators, i.e. those with a Vector Laplacian for the velocity field.
They now use a corresponding `VectorLaplaceOperator` instance. Via the member function `getA()` they provide access to the
associated scalar Laplace operator.Marcus 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/488Collects all applyDirichletBC() free-functions in one file2022-02-25T13:37:31+01:00Marcus MohrCollects all applyDirichletBC() free-functions in one fileThe free-functions `hyteg::applyDirichletBC()` no longer depend on PETSc,
but were still in header files such as P2Petsc.hpp. This merge collects
them all into a new file **sparseassembly/DirichletBCs.hpp**.
This allows to remove the fo...The free-functions `hyteg::applyDirichletBC()` no longer depend on PETSc,
but were still in header files such as P2Petsc.hpp. This merge collects
them all into a new file **sparseassembly/DirichletBCs.hpp**.
This allows to remove the following, now empty, header files
- composites/petsc/P1StokesPetsc.hpp
- composites/petsc/P2P1TaylorHoodPetsc.hpp
- composites/petsc/P2P2StabilizedStokesPetsc.hpp
- p2functionspace/P2Petsc.hpp
and cleanup includes.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/485Updates meshing function for the full annulus2022-02-22T16:33:06+01:00Marcus MohrUpdates meshing function for the full annulus* Fixes a problem with the flagging of tangential edges where the
annulus is "glued" together; re-inserted edges were all markes as inner.
* Removes old version of MeshAnnulus() that had CRISSCROSS hardcoded.
* Updates MeshGenTest to t...* Fixes a problem with the flagging of tangential edges where the
annulus is "glued" together; re-inserted edges were all markes as inner.
* Removes old version of MeshAnnulus() that had CRISSCROSS hardcoded.
* Updates MeshGenTest to test all four meshing flavours.
* Introduces hollowFlag enum in MeshInfo class for setting in a mesh generator
flagInnerBoundary, flagInterior, flagOuterBoundary for closed and hollow
domains such as the full annulus and the thick spherical shell. MeshAnnulus()
now used these.
* Extends documentation.
* Also fixes clipping of CRISSCROSS and CROSS picture for MeshRectangle()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/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/474Removing some functions from PETSc namespaces that are actually calling spars...2022-01-23T18:07:01+01:00Nils KohlRemoving some functions from PETSc namespaces that are actually calling sparse assembly wrappers.Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/470Fixes issue #1692021-12-20T15:32:55+01:00Marcus MohrFixes issue #169Commit fixes consistency problem between constructors of scalar functions and vector functions. Closes issue #169.Commit fixes consistency problem between constructors of scalar functions and vector functions. Closes issue #169.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/469Removes deprecated P1FormPSPG form and closes issue #1532021-12-09T15:17:25+01:00Marcus MohrRemoves deprecated P1FormPSPG form and closes issue #153Closes issue #153Closes issue #153https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/466Updates div and divt forms generated with hfg2021-11-25T20:05:43+01:00Marcus MohrUpdates div and divt forms generated with hfgMerge reduces number of source code files for div(ergence) and divt forms in ```form_hyteg_generated```.Merge reduces number of source code files for div(ergence) and divt forms in ```form_hyteg_generated```.https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/463Updates HyTeG forms for epsilon operator variants2021-11-22T16:40:28+01:00Marcus MohrUpdates HyTeG forms for epsilon operator variantsThe merge reduces the number of form files. The hyteg-form-generator now allows to generate single [ch]pp files for
forms that are composed of different scalar sub-forms. This merge replaces the separate
```p[12]_epsilon[cc|var]_[012...The merge reduces the number of form files. The hyteg-form-generator now allows to generate single [ch]pp files for
forms that are composed of different scalar sub-forms. This merge replaces the separate
```p[12]_epsilon[cc|var]_[012]_[012]_[affine|blending].[ch]pp```
files by newly generated single
```p[12]_epsilon[cc|var]_[affine|blending].[ch]pp```
files. It also updates
```p[12]_epsilon_all_forms.hpp```
and changes the corresponding header inclusions in the operator
sources.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 Mohr