dune-structures issueshttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/issues2021-06-24T14:53:52Zhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/issues/18Use argument parser default to choose action function in CLI2021-06-24T14:53:52ZLukas RiedelUse argument parser default to choose action function in CLI### Description
In the CLI parser, we currently select the action function according to the value of `args.action`. This, however, does not pair well with subparser aliases, as this changes the value of `args.action`.
### Proposal
Use...### Description
In the CLI parser, we currently select the action function according to the value of `args.action`. This, however, does not pair well with subparser aliases, as this changes the value of `args.action`.
### Proposal
Use [parser defaults](https://docs.python.org/3/library/argparse.html#parser-defaults) to select action functions. For each subparser, set a default `func` and call it in the main function.https://gitlab.dune-project.org/lukas.riedel/dune-structures/-/issues/14Add h-refinement2021-06-21T15:05:20ZLukas RiedelAdd h-refinement### Description
Adaptive grid refinement (h-refinement) can be used to decrease the discretization error in the solution, which can be suitable especially for evaluating the stresses near fiber ends, which cause singularities. However, ...### Description
Adaptive grid refinement (h-refinement) can be used to decrease the discretization error in the solution, which can be suitable especially for evaluating the stresses near fiber ends, which cause singularities. However, it is currently unclear which error estimator to use.
### Proposal
* Choose and implement and error estimator
* Add h-refinement as solver option
* Implement h-refinement as iterative process:
* Solve on the current grid
* Compute error estimator
* Refine grid based on estimator
* Repeathttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/issues/17Make ReinforcedFiber model support St. Venant-Kirchhoff parameterization2021-06-16T09:06:12ZLukas RiedelMake ReinforcedFiber model support St. Venant-Kirchhoff parameterization### Description
The St. Venant-Kirchhoff material model is the natural, non-linear extension of the linear elasticity model. It would therefore be useful for simulations with large local deformations, where linear elasticity is not appl...### Description
The St. Venant-Kirchhoff material model is the natural, non-linear extension of the linear elasticity model. It would therefore be useful for simulations with large local deformations, where linear elasticity is not applicable anymore, while retaining the material properties of the linear model.
The non-linear model requires an iterative Newton solver whose parameters have to be tuned to the problem. Also, the solver might not converge. A suitable initial condition is required. Possibly, a solution of the linear problem can be used.
### Proposal
* Enable the St. Venant-Kirchhoff model for the bulk material of the fiber-reinforced local operator.
* Ensure that the model is correctly parameterized.
* Employ a Newton solver.
* Add a run test for the model.https://gitlab.dune-project.org/lukas.riedel/dune-structures/-/issues/2Add test routines2021-05-10T15:12:15ZLukas RiedelAdd test routines### Description
Tests are important to verify that changes work as intended and do not break existing routines. At this point, we still have to figure out how the code in this project can be compiled and tested consistently. This probab...### Description
Tests are important to verify that changes work as intended and do not break existing routines. At this point, we still have to figure out how the code in this project can be compiled and tested consistently. This probably will not include the interactive dune-blocklab frontend, meaning that it will have to be circumvented somehow.
#### System Tests
System tests execute a large portion of, or the entire, program. Several YAML and INI files reproducing experiments and examples are provided in the [`experiments`](experiments) and [`examples`](examples) folders. These can be used to verify that the program still runs with the intended input. However, it is unclear how the results can be verified. System tests can be run with the [DUNE Testsuite](https://gitlab.dune-project.org/core/dune-common/-/blob/master/dune/common/test/testsuite.hh) and/or the [dune-testtools](https://gitlab.dune-project.org/quality/dune-testtools) module.
#### Unit Tests
Unit tests are granular tests of specific functions in the code. They are very useful for code development, but creating them requires a solid understanding of the code and the interaction of the project's modules. Probably the most suitable dependency for this is [googletest](https://github.com/google/googletest), which can be included as Git Submodule into this repository.
Notably, an important part of the code is written in Python/UML, and thus has to be unit tested in Python. [pytest](https://docs.pytest.org/en/stable/) is the straightforward choice here.
### Open Questions
* Since the internals of dune-blocklab remain unclear to me, I am not exactly sure how to write a blocklab application that immediately compiles the code it requires. This is important when checking for compiler errors and warnings.
* Can the UML operator definitions be tested reasonably?
* How to verify system test application output?
* How to test the dune-blocklab frontend application? Is this actually necessary?
### Proposals
- [x] Write system test application(s) with default input files (!2)
- [ ] Add routines for verifying system test output
- [ ] Add googletest as Git Submodule
- [ ] Add C++ unit tests
- [ ] Add Python unit testsGetting Operationalhttps://gitlab.dune-project.org/lukas.riedel/dune-structures/-/issues/7Visualize fibers in VTK2021-04-30T16:04:07ZLukas RiedelVisualize fibers in VTK### Description
It is desirable to visualize the fibers placed in the domain. The problem is that the DUNE VTK reader does not support visualizing line data. Line data can be stored as `vtkPolyData`, which can be written to a file using...### Description
It is desirable to visualize the fibers placed in the domain. The problem is that the DUNE VTK reader does not support visualizing line data. Line data can be stored as `vtkPolyData`, which can be written to a file using `vtkPolyDataWriter`. However, this requires the VTK library.
### Proposals
1. Extend existing VTK writers to store line data using the VTK library. This requires VTK as large dependency -- but that a problem?
2. Use Python to add VTK line data. This requires the Python VTK library, which is rarely up to date with latest Python versions. It also requires post-processing out output files.
3. Write Python script for visualizing everything, loading VTK files and the YAML input file.