dune-structures merge requestshttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests2021-06-24T14:46:21Zhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/15Gmsh reader executable2021-06-24T14:46:21ZLukas RiedelGmsh reader executable### What does this MR do?
Add an app (executable) that reads GMSH files and applies the `2d_p2` bulk operator with reinforced fibers.
Add a test run for the app.### What does this MR do?
Add an app (executable) that reads GMSH files and applies the `2d_p2` bulk operator with reinforced fibers.
Add a test run for the app.https://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/14Fix & update visualization of stress eigenvectors2021-06-23T14:49:56ZLukas RiedelFix & update visualization of stress eigenvectors### What does this MR do?
* Fix an error in the calculation of the stress eigenvectors. The strain tensor contained a wrong summation, which has been removed. Additionally, the stress tensor did not contain the full strain trace on its ...### What does this MR do?
* Fix an error in the calculation of the stress eigenvectors. The strain tensor contained a wrong summation, which has been removed. Additionally, the stress tensor did not contain the full strain trace on its diagonal. Both issues have been fixed.
* Add the configuration option `continuous` to the stress EV visualization. This allows toggling of a P1 (vertex) or a P0 (cell) representation of the EVs.
* Remove output of the index of the largest EV. This simply was leftover code from !8.https://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/8Add visualization block for stress eigenvectors2021-06-23T14:49:18ZLukas RiedelAdd visualization block for stress eigenvectorsThe new visualization block writes a stress eigenvector of choice into the VTK file. The schema for the visualization is:
```yaml
visualization:
_blockname: visualization_0
blocks:
vis_stress:
_blockname: vis_stress_0
...The new visualization block writes a stress eigenvector of choice into the VTK file. The schema for the visualization is:
```yaml
visualization:
_blockname: visualization_0
blocks:
vis_stress:
_blockname: vis_stress_0
vector: 0
index: 0
```
The eigenvectors are stored according to the corresponding eigenvalue in *ascending* order. The default index is `dim - 1`, which is the eigenvector of the largest eigenvalue. The block is added to the registry. The entry in the VTK file is called `stress_ev_<idx>`, where `idx` is the index selected.
Changes:
* Add `StressEVVisualizationBlock` using a new `StressEVGridFunction`.
* Register the visualization block.
* Add visualization of stress eigenvectors to `experiments/hansbo_reproduction/fig23_3.yml`, which is used in the tests.https://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/11Resolve "Port INI files in experiments/ to YAML"2021-06-16T10:16:13ZLukas RiedelResolve "Port INI files in experiments/ to YAML"### What does this MR do?
* Port INI configuration files in experiments/mixeddim_validation to YAML config files.
* Add `cell2d_p2` app including a GMSH grid generator based on YAML input.
### Related issues
Closes #13### What does this MR do?
* Port INI configuration files in experiments/mixeddim_validation to YAML config files.
* Add `cell2d_p2` app including a GMSH grid generator based on YAML input.
### Related issues
Closes #13Lukas RiedelLukas Riedelhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/12Resolve "Add prestress for fibers"2021-06-16T10:07:25ZLukas RiedelResolve "Add prestress for fibers"### What does this MR do?
Add isotropic prestress to fibers. As the prestress of fibers only acts in tangential direction, this quantity reduces to a single scalar that can be supplied via the fiber configuration node.
### To-Do
- [x]...### What does this MR do?
Add isotropic prestress to fibers. As the prestress of fibers only acts in tangential direction, this quantity reduces to a single scalar that can be supplied via the fiber configuration node.
### To-Do
- [x] Implement fiber prestress
- [x] Add test case for fiber prestress
### Related issues
Closes #12Lukas RiedelLukas Riedelhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/10Resolve "Make default input files comply to sequence-like block structure"2021-05-31T13:21:47ZLukas RiedelResolve "Make default input files comply to sequence-like block structure"### What does this MR do?
Comply to dune-blocklab update that changes the configuration structure of `blocks` from mapping to sequence.
- Update/Rebuild Docker environment image
- Update YAML input files
### Related issues
Closes #16### What does this MR do?
Comply to dune-blocklab update that changes the configuration structure of `blocks` from mapping to sequence.
- Update/Rebuild Docker environment image
- Update YAML input files
### Related issues
Closes #16Lukas RiedelLukas Riedelhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/9Resolve "Reformulate penalty factor" and "Fiber intersection algorithm fails ...2021-05-31T09:05:18ZLukas RiedelResolve "Reformulate penalty factor" and "Fiber intersection algorithm fails if fiber ends at intersection inside grid"### What does this MR do?
* Reformulate the penalty factor to not include fiber segment information
* Fix the fiber intersection algorithm in conjunction with updates to the local operator. Information from adjacent fiber segments with...### What does this MR do?
* Reformulate the penalty factor to not include fiber segment information
* Fix the fiber intersection algorithm in conjunction with updates to the local operator. Information from adjacent fiber segments with element intersections are not needed anymore. The algorithm now explicitly allows fibers ending exactly at a grid intersection.
* Make intersection algorithm allow for fibers that *begin* at a grid intersection
* Add test `test-fiber-intersection.cc` for verifying the fiber intersection algorithm
### Related issues
Closes #10, #15Lukas RiedelLukas Riedelhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/7Add command line interface module2021-05-14T11:58:52ZLukas RiedelAdd command line interface module### What does this MR do?
Add a command line interface to the Python module. The interface is currently capable of executing a simulation.
Changes:
* Add command line interface to Python module..
* Add CI job for testing the CLI.
* Red...### What does this MR do?
Add a command line interface to the Python module. The interface is currently capable of executing a simulation.
Changes:
* Add command line interface to Python module..
* Add CI job for testing the CLI.
* Reduce artifact size of CI jobs to speed up CI pipeline.https://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/6Add reader for VTK files with vertex data2021-05-11T14:53:04ZLukas RiedelAdd reader for VTK files with vertex data### What does this MR do?
Create a reader for VTK output files of this project. It is only able to read VTK unstructured grids.
The reader requires the `vtk` Python library. Since it is not yet available from PyPI for Python 3.9, we in...### What does this MR do?
Create a reader for VTK output files of this project. It is only able to read VTK unstructured grids.
The reader requires the `vtk` Python library. Since it is not yet available from PyPI for Python 3.9, we install it from source into the Docker environment image.
This MR also adds tests for the VTK reader and a separate CI job for Python builds.https://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/5Resolve "Catch errors in material lookup according to entity index"2021-05-10T15:14:55ZLukas RiedelResolve "Catch errors in material lookup according to entity index"### What does this MR do?
* Avoid segfaults in material lookup by throwing an exception instead.
* Add sanitizer for material specification. It is enabled by the new key `debug`, which is added to the `material` specification schema.
* ...### What does this MR do?
* Avoid segfaults in material lookup by throwing an exception instead.
* Add sanitizer for material specification. It is enabled by the new key `debug`, which is added to the `material` specification schema.
* Add test for checking verifying the sanitizer and its effects.
* Split CI pipeline into building/running tests and simulations.
### Related issues
Closes #11.
See #2.Lukas RiedelLukas Riedelhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/4Resolve "Unroll parameter list for FieldVector constructor"2021-04-15T09:44:07ZLukas RiedelResolve "Unroll parameter list for FieldVector constructor"This MR uses a template parameter pack (as it likely was intended) in the `parameter_unrolled` method of the `ElasticMaterialBase` class instead of a variadic function argument. This requires templating the function. The coordinates are ...This MR uses a template parameter pack (as it likely was intended) in the `parameter_unrolled` method of the `ElasticMaterialBase` class instead of a variadic function argument. This requires templating the function. The coordinates are then passed to the `FieldVector` constructor taking an initializer list as argument.
This, in turn, resolves the assertion error reported in #9.
Closes #9Lukas RiedelLukas Riedelhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/3Resolve "Implement CI with automated builds and tests"2021-04-14T09:17:11ZLukas RiedelResolve "Implement CI with automated builds and tests"This MR adds a GitLab CI/CD pipeline configuration to the project. The pipeline consists of the stages `build` and `test`. The following jobs are defined:
* `build:all`: Build the default build target with no CMake build type
* `build:de...This MR adds a GitLab CI/CD pipeline configuration to the project. The pipeline consists of the stages `build` and `test`. The following jobs are defined:
* `build:all`: Build the default build target with no CMake build type
* `build:debug`: Build the default target with a `Debug` build, warnings, and fail the job if warnings are thrown. This propagates the warnings to the pipeline result.
* `test:all`: Run `make test` on the artifacts of `build:all`.
Additionally, the Dockerfile for the base/environment image is supplied. This image has to be built and pushed to the local registry manually. A `docker/README.md` with instructions is supplied.
Closes #3Getting OperationalLukas RiedelLukas Riedelhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/2Build system updates2021-04-13T11:17:30ZLukas RiedelBuild system updatesThis MR improves the overall build system configuration and adds a simple test configuration.
* App executables are now part of the default target and depend on the `generation` target.
* Raise minimum required CMake version to v3.16, r...This MR improves the overall build system configuration and adds a simple test configuration.
* App executables are now part of the default target and depend on the `generation` target.
* Raise minimum required CMake version to v3.16, resolving #6.
* Add executing experiments at [`experiments/hansbo_reproduction`](experiments/hansbo_reproduction) as system tests, see #2.
* List Python sources explicitly, resolving #5.
* Remove spurious global filesystem library link.Getting Operationalhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/merge_requests/1Resolve "Refactor C++ and Python code to comply to formatting guide"2021-04-09T10:18:38ZLukas RiedelResolve "Refactor C++ and Python code to comply to formatting guide"### What does this MR do?
Refactor C++ and Python code according to style guides and add `.clang-format` configuration.
Closes #1### What does this MR do?
Refactor C++ and Python code according to style guides and add `.clang-format` configuration.
Closes #1Getting OperationalLukas RiedelLukas Riedel