hyteg merge requestshttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests2023-07-17T14:34:59+02:00https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/627Add capability to export FE functions for visualisation using the ADIOS2 library2023-07-17T14:34:59+02:00Marcus MohrAdd capability to export FE functions for visualisation using the ADIOS2 libraryThis MR extends the dataexport capabilities of HyTeG by allowing to use the [ADIOS 2: The Adaptable Input Output (I/O) System version 2](https://csmd.ornl.gov/software/adios2) to write FE function data to file for visualisation with Para...This MR extends the dataexport capabilities of HyTeG by allowing to use the [ADIOS 2: The Adaptable Input Output (I/O) System version 2](https://csmd.ornl.gov/software/adios2) to write FE function data to file for visualisation with ParaView.
The corrent implementation so far only supports functions of type
- P1Function + P1VectorFunction
- P2Function + P2VectorFunction
- P2P1TaylorHoodFunction
but is easily extensible by adding another specialised sub-writer class.Extend capabilities for exporting data by adding support for ADIOS2Marcus 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/500Fixes bad_cast issue in P2P1ElementwiseBlendingStokesOperator and adds PrintInfoTest2022-03-25T11:42:02+01:00Marcus MohrFixes bad_cast issue in P2P1ElementwiseBlendingStokesOperator and adds PrintInfoTestMarcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/838Draft: Automatic projection of boundary nodes to surfaces2024-10-11T09:53:42+02:00Nils KohlDraft: Automatic projection of boundary nodes to surfacesDescription pending :)Description pending :)Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/836Add option to utilize reference temperature profiles in TerraNeo2024-10-04T10:57:27+02:00Eugenio D'AscoliAdd option to utilize reference temperature profiles in TerraNeoA reference temperature profile can be provided within the parameters.prm file.
If a profile is entered, the application will use this profile as the reference temperature profile throughout the mantle.
The temperature deviations will he...A reference temperature profile can be provided within the parameters.prm file.
If a profile is entered, the application will use this profile as the reference temperature profile throughout the mantle.
The temperature deviations will henceforth be estimated with respect to this profile.
The profile has to be in .json format with one entry holding the key "Radius (m)" and the corresponding
data values in descending order starting from the surface.
The second entry must be the temperature.Eugenio D'AscoliEugenio D'Ascolihttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/835[Rebased, 2nd time] Radially aligned annulus and icosahedral shell maps.2024-10-10T00:40:38+02:00Nils Kohl[Rebased, 2nd time] Radially aligned annulus and icosahedral shell maps.Rebased !834 on master.
-----
Re-introduced from 7bc4be0bc8f1e3a9c401b1e487f5622ad7845592 and parents (see !792).
-----
Opposed to their "unaligned" counterparts, the new maps align micro-vertices radially along rays from the origin....Rebased !834 on master.
-----
Re-introduced from 7bc4be0bc8f1e3a9c401b1e487f5622ad7845592 and parents (see !792).
-----
Opposed to their "unaligned" counterparts, the new maps align micro-vertices radially along rays from the origin.
These new maps are not well tested in combination with operators, but the forward mapping should be working and usable with the implementation of parametric maps via the MicroMesh class (example in `apps/show_mesh.cpp`).
-----
Includes refactoring of the `show_mesh` app.Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/834[Rebased] Radially aligned annulus and icosahedral shell maps.2024-09-25T09:58:13+02:00Nils Kohl[Rebased] Radially aligned annulus and icosahedral shell maps.Rebased !829 on master after merging !828.
-----
Re-introduced from 7bc4be0bc8f1e3a9c401b1e487f5622ad7845592 and parents (see !792).
-----
Opposed to their "unaligned" counterparts, the new maps align micro-vertices radially along ra...Rebased !829 on master after merging !828.
-----
Re-introduced from 7bc4be0bc8f1e3a9c401b1e487f5622ad7845592 and parents (see !792).
-----
Opposed to their "unaligned" counterparts, the new maps align micro-vertices radially along rays from the origin.
These new maps are not well tested in combination with operators, but the forward mapping should be working and usable with the implementation of parametric maps via the MicroMesh class (example in `apps/show_mesh.cpp`).Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/833Allow exporting a refined mesh from HyTeG (rebased)2024-09-24T16:16:44+02:00Marcus MohrAllow exporting a refined mesh from HyTeG (rebased)New rebased version of !822.New rebased version of !822.https://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/831Add PETSc MinRes as an option for the coarse grid solver2024-09-30T08:52:57+02:00Eugenio D'AscoliAdd PETSc MinRes as an option for the coarse grid solverUsers can now define if the HyTeG MinRes coarse grid solver will be used or if a PETSc MinRes coarse grid solver should be utilized in TerraNeo simulation runs.
By defining the corresponding flag "PETScFlag" within the parameters.prm fil...Users can now define if the HyTeG MinRes coarse grid solver will be used or if a PETSc MinRes coarse grid solver should be utilized in TerraNeo simulation runs.
By defining the corresponding flag "PETScFlag" within the parameters.prm file the coarse grid solver can be set.
If a PETSc MinRes solver is chosen it must be ensured that TerraNeo is build with PETSc being enabled.
The amount of PETSc coarse grid iterations is derived from the solver coarse grid iteration parameter in the parameters file.Eugenio D'AscoliEugenio D'Ascolihttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/830Add option to utilise reference temperature profiles in TerraNeo2024-09-30T13:52:17+02:00Eugenio D'AscoliAdd option to utilise reference temperature profiles in TerraNeoA reference temperature profile can be provided within the parameters.prm file.
If a profile is provided, the application will use this profile as the reference temperature profile throughout the mantle.
The temperature deviations will h...A reference temperature profile can be provided within the parameters.prm file.
If a profile is provided, the application will use this profile as the reference temperature profile throughout the mantle.
The temperature deviations will henceforth be estimated with respect to this profile.
The profile has to be in .json format with one entry holding the key "Radius (m)" and the corresponding
data values in descending order starting from the surface.
The second entry must be the temperature [K].Eugenio D'AscoliEugenio D'Ascolihttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/829Draft: Radially aligned annulus and icosahedral shell maps.2024-09-24T15:25:42+02:00Nils KohlDraft: Radially aligned annulus and icosahedral shell maps.Should be rebased onto master after !828 is merged.
-----
Re-introduced from 7bc4be0bc8f1e3a9c401b1e487f5622ad7845592 and parents (see !792).
-----
Opposed to their "unaligned" counterparts, the new maps align micro-vertices radially...Should be rebased onto master after !828 is merged.
-----
Re-introduced from 7bc4be0bc8f1e3a9c401b1e487f5622ad7845592 and parents (see !792).
-----
Opposed to their "unaligned" counterparts, the new maps align micro-vertices radially along rays from the origin.
These new maps are not well tested in combination with operators, but the forward mapping should be working and usable with the implementation of parametric maps via the MicroMesh class.Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/828[Rebased, 2nd time] MicroMesh & iso-/super-/sub-parametric elements2024-10-14T21:38:12+02:00Nils Kohl[Rebased, 2nd time] MicroMesh & iso-/super-/sub-parametric elements> Rebased. Old MRs: !814 (original), !821 (first rebase)
# Overview
This MR introduces utilities to work with iso-, sub-, and super-parametric meshes.
Mainly it enables/simplifies working with meshes the node-positions of which are sp...> Rebased. Old MRs: !814 (original), !821 (first rebase)
# Overview
This MR introduces utilities to work with iso-, sub-, and super-parametric meshes.
Mainly it enables/simplifies working with meshes the node-positions of which are specified as finite element functions.
Instead of using the blending function feature, the geometry can be interpolated into a (vector-valued) P1 or P2 space.
Using the HOG, the local Jacobians can be computed straightforwardly by evaluation of the gradients of the shape functions (see https://i10git.cs.fau.de/hyteg/hog/-/merge_requests/24).
Functions to generate appropriate volume meshes from either surface meshes or analytical descriptions of curved geometries are not yet included in this MR.
For more details see docstring of `MicroMesh`.
# Concrete changes
* `MicroMesh` class and several centralized functions to compute node positions
* corresponding VTK output adaptions
* some tests
* new operators via hyteg_operators update
# TODOs
## Necessary
- [x] generate isoparametric operators necessary for the tests and update hyteg-operators afterwards
- [x] proper VTK test before merging this (specifically, #278 would be very nice)
## Nice to have / next steps
- proper, stable mesh improvement
- semi-automated meshing from surface representations (e.g., via OpenMesh or gmsh)
- tutorial
- more operators
# Images
## 2D, piecewise quadratic mesh (P2, level 3)
(left: coarse mesh, middle: projected, right: projected and corrected with diffusion)
![curved_mesh_2D](/uploads/dfac15b0a63760d1264fbc4b6e46d4c3/curved_mesh_2D.png)
## 3D, piecewise quadratic mesh (P2, level 3)
(left: coarse mesh, middle: projected, right: projected with edges)
![curved_mesh_3D](/uploads/71f2d2ee2fb4e84b0a328bb90ecfc760/curved_mesh_3D.png)Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/822Allow exporting a refined mesh from HyTeG2024-09-24T11:04:01+02:00Marcus MohrAllow exporting a refined mesh from HyTeGIn the last developer meeting the funtionality for exporting a refined mesh from HyTeG to import into other FEM libraries to run comparisons was requested. This MR provides this functionality.
The `gmsh::exportRefinedMesh()` function ge...In the last developer meeting the funtionality for exporting a refined mesh from HyTeG to import into other FEM libraries to run comparisons was requested. This MR provides this functionality.
The `gmsh::exportRefinedMesh()` function generates a minimal MSH4.1 file containing the three sections
- **MeshFormat**
- **Nodes**
- **Elements**
These are enough to describe the plain mesh. Some applications might also require an **Entities** section. We could generate that, too, if need be. The current implementation uses the macro-primitives as entities and we could base the information in an Entities section also on these.
The implementation seems to work, as one can import the generated files into Gmsh or reimport them into HyTeG.![Gmsh-Annulus](/uploads/dd9bb125c0357010ae91e8aa432b5bb2/Gmsh-Annulus.png)![Gmsh-ThickSphericalShell](/uploads/49b363d10df29b91065dc626263c42f2/Gmsh-ThickSphericalShell.png)Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/821[Rebased] MicroMesh & iso-/super-/sub-parametric elements2024-09-18T14:12:03+02:00Nils Kohl[Rebased] MicroMesh & iso-/super-/sub-parametric elements> Rebased. Old MR: !814
# Overview
This MR introduces utilities to work with iso-, sub-, and super-parametric meshes.
Mainly it enables/simplifies working with meshes the node-positions of which are specified as finite element functi...> Rebased. Old MR: !814
# Overview
This MR introduces utilities to work with iso-, sub-, and super-parametric meshes.
Mainly it enables/simplifies working with meshes the node-positions of which are specified as finite element functions.
Instead of using the blending function feature, the geometry can be interpolated into a (vector-valued) P1 or P2 space.
Using the HOG, the local Jacobians can be computed straightforwardly by evaluation of the gradients of the shape functions (see https://i10git.cs.fau.de/hyteg/hog/-/merge_requests/24).
Functions to generate appropriate volume meshes from either surface meshes or analytical descriptions of curved geometries are not yet included in this MR.
For more details see docstring of `MicroMesh`.
# Concrete changes
* `MicroMesh` class and several centralized functions to compute node positions
* corresponding VTK output adaptions
* some tests
* new operators via hyteg_operators update
# TODOs
## Necessary
- [x] generate isoparametric operators necessary for the tests and update hyteg-operators afterwards
- [ ] proper VTK test before merging this (specifically, #278 would be very nice)
## Nice to have / next steps
- proper, stable mesh improvement
- semi-automated meshing from surface representations (e.g., via OpenMesh or gmsh)
- tutorial
- more operators
# Images
## 2D, piecewise quadratic mesh (P2, level 3)
(left: coarse mesh, middle: projected, right: projected and corrected with diffusion)
![curved_mesh_2D](/uploads/dfac15b0a63760d1264fbc4b6e46d4c3/curved_mesh_2D.png)
## 3D, piecewise quadratic mesh (P2, level 3)
(left: coarse mesh, middle: projected, right: projected with edges)
![curved_mesh_3D](/uploads/71f2d2ee2fb4e84b0a328bb90ecfc760/curved_mesh_3D.png)Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/818Add a reader for Gmsh files in MSH 4.1 format2024-08-29T11:39:44+02:00Marcus MohrAdd a reader for Gmsh files in MSH 4.1 formatThis MR supersedes !801, look there for details and discussion.This MR supersedes !801, look there for details and discussion.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/814Draft: MicroMesh & iso-/super-/sub-parametric elements2024-09-18T14:11:49+02:00Nils KohlDraft: MicroMesh & iso-/super-/sub-parametric elements# Overview
This MR introduces utilities to work with iso-, sub-, and super-parametric meshes.
Mainly it enables/simplifies working with meshes the node-positions of which are specified as finite element functions.
Instead of using the ...# Overview
This MR introduces utilities to work with iso-, sub-, and super-parametric meshes.
Mainly it enables/simplifies working with meshes the node-positions of which are specified as finite element functions.
Instead of using the blending function feature, the geometry can be interpolated into a (vector-valued) P1 or P2 space.
Using the HOG, the local Jacobians can be computed straightforwardly by evaluation of the gradients of the shape functions (see https://i10git.cs.fau.de/hyteg/hog/-/merge_requests/24).
Functions to generate appropriate volume meshes from either surface meshes or analytical descriptions of curved geometries are not yet included in this MR.
For more details see docstring of `MicroMesh`.
# Concrete changes
* `MicroMesh` class and several centralized functions to compute node positions
* corresponding VTK output adaptions
* some tests
# TODOs
## Necessary
- [x] generate isoparametric operators necessary for the tests and update hyteg-operators afterwards
- [ ] proper VTK test before merging this (specifically, #278 would be very nice)
## Nice to have / next steps
- proper, stable mesh improvement
- semi-automated meshing from surface representations (e.g., via OpenMesh or gmsh)
- tutorial
- more operators
# Images
## 2D, piecewise quadratic mesh (P2, level 3)
(left: coarse mesh, middle: projected, right: projected and corrected with diffusion)
![curved_mesh_2D](/uploads/dfac15b0a63760d1264fbc4b6e46d4c3/curved_mesh_2D.png)
## 3D, piecewise quadratic mesh (P2, level 3)
(left: coarse mesh, middle: projected, right: projected with edges)
![curved_mesh_3D](/uploads/71f2d2ee2fb4e84b0a328bb90ecfc760/curved_mesh_3D.png)Nils KohlNils Kohlhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/808Add a prependHyTeGMeshDir() function and move 2D meshes into separate folder2024-08-09T07:59:43+02:00Marcus MohrAdd a prependHyTeGMeshDir() function and move 2D meshes into separate folderSee the original MR !798 for details and discussion. This MR uses a rebased branch on which the change of source code and parameter files was completed.See the original MR !798 for details and discussion. This MR uses a rebased branch on which the change of source code and parameter files was completed.Marcus MohrMarcus Mohrhttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/805Refactor solvers to use copyBCs2024-08-08T15:38:20+02:00Ponsuganth Ilangovan Ponkumar IlangoRefactor solvers to use copyBCsThis is partly related to #245
Basically refactors hyteg and petsc solver classes to use `copyBCs` from `FunctionTools.hpp` instead of using the FE function copy.
This would be useful for use cases where we have mixed boundary conditi...This is partly related to #245
Basically refactors hyteg and petsc solver classes to use `copyBCs` from `FunctionTools.hpp` instead of using the FE function copy.
This would be useful for use cases where we have mixed boundary conditions for FE component functions.Ponsuganth Ilangovan Ponkumar IlangoPonsuganth Ilangovan Ponkumar Ilangohttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/803Draft: Implement functionality to update non-dimensional numbers (e.g. Di, Ra, Grueneisen) based on user defined radial profiles2024-08-09T16:16:50+02:00Eugenio D'AscoliDraft: Implement functionality to update non-dimensional numbers (e.g. Di, Ra, Grueneisen) based on user defined radial profilesUsers can provide radial profiles for the calculation of non-dimensional numbers such as the
Grueneisen parameter, thermal expansivity or specific heat capacity.
If radial profile values lie in between given data points a linear interpo...Users can provide radial profiles for the calculation of non-dimensional numbers such as the
Grueneisen parameter, thermal expansivity or specific heat capacity.
If radial profile values lie in between given data points a linear interpolation will be
performed to estimate the radial profile value at the given location.
If a radial profile is used the non-dimensional numbers will be updated during runtime according to the
corresponding radial profile.
These radial profiles have to be in .json format with one entry for the radius holding the key-argument: "Radius (m)".
The radius entry must be sorted descending from surface (m) to CMB (m)
The second entry will hence be derived as data value entry.
A check for min and max radii of the radial profile will ensure that only reasonable profiles can be utilised (r_max <= r_surface and r_min >= r_CMB).Eugenio D'AscoliEugenio D'Ascolihttps://i10git.cs.fau.de/hyteg/hyteg/-/merge_requests/802Adding RMS to the radial profiles.2024-08-06T16:34:41+02:00Nils KohlAdding RMS to the radial profiles.Nils KohlNils Kohl