Features
The main features of this release is the implementation of two new processes,
the small deformation, and the heat conduction. Some extensions were done to
the DOF table to be able to manage multi-component/multi-variable processes.
Also, during implementation of the Robin boundary conditions, the base classes
for boundary conditions were generalized.
- Add small deformation process with linear elastic material model. The
implementation is based on the Kelvin mapping. [1340](https://github.com/ufz/ogs/pull/1340)
- Added B-Matrices and Kelvin mapping tools for deformation processes. [1359](https://github.com/ufz/ogs/pull/1359)
- Heat conduction process implementation. [1328](https://github.com/ufz/ogs/pull/1328)
- Finalize support for multicomponent boundary conditions adding configuration
parser. [1343](https://github.com/ufz/ogs/pull/1343)
- Added uniform Robin boundary condition. [1336](https://github.com/ufz/ogs/pull/1336)
- Added a generic natural boundary condition class. [1337](https://github.com/ufz/ogs/pull/1337)
- Added Robin boundary condition. [1336](https://github.com/ufz/ogs/pull/1336)
- Reworked the Parameter class. It now serves as a basis for BCs and ICs.
[1357](https://github.com/ufz/ogs/pull/1357), [#1356](https://github.com/ufz/ogs/pull/1356)
- Added time-dependent Dirichlet BCs. [1380](https://github.com/ufz/ogs/pull/1380)
- Add calculation of surface flux, tests for groundwater flow. [1429](https://github.com/ufz/ogs/pull/1429)
- Implemented numerical Jacobian assembly for Newton-Raphson solver. [1352](https://github.com/ufz/ogs/pull/1352)
- Added the new parameter type "Group" which can be used for setting material
ID dependent values. [1426](https://github.com/ufz/ogs/pull/1426)
- Added fluid property class and several fluid density and viscosity models
based on it. [1398](https://github.com/ufz/ogs/pull/1398), [#1435](https://github.com/ufz/ogs/pull/1435)
- Enabled solving of axially symmetric problems on 2D meshes for all currently
implemented processes. [1443](https://github.com/ufz/ogs/pull/1443)
- Added time measurement for assembly and solvers. [1322](https://github.com/ufz/ogs/pull/1322)
- Added named functions, out of which expressions can be built up at run-time
from the prj file, which can be used to output additional nodal quantities.
[1314](https://github.com/ufz/ogs/pull/1314), [#1315](https://github.com/ufz/ogs/pull/1315)
- Added component-wise norms, and flexible convergence criteria for nonlinear
solvers. [1349](https://github.com/ufz/ogs/pull/1349), [#1342](https://github.com/ufz/ogs/pull/1342)
- Restructured the time loop. [1364](https://github.com/ufz/ogs/pull/1364)
Utilities
New utilities:
- createNeumannBc: The tool integrates the given element property and writes
the computed data as a PropertyVector with the name `node_aggregated_gwn`
into the mesh. The tool also outputs an OGS-5 direct source term (Neumann
boundary condition) data file. [1346](https://github.com/ufz/ogs/pull/1346)
- scaleProperty for simple rescaling of mesh properties. [1347](https://github.com/ufz/ogs/pull/1347)
- convertGEO for geometric file conversion, e.g. gli to glm. [1360](https://github.com/ufz/ogs/pull/1360)
- swapNodeCoordinateAxes to swap node coordinate values, e.g. XY to XZ plane.
[1361](https://github.com/ufz/ogs/pull/1361)
New feature:
- Support tetrahedra types in generateStructuredMesh. [1353](https://github.com/ufz/ogs/pull/1353)
Infrastructure
- Migrated all important Jenkins jobs to script-based
[Jenkins Pipeline](https://jenkins.io/doc/pipeline/)
functionality. For an introduction see
[docs.opengeosys.org - Continuous Integration](https://docs.opengeosys.org/docs/devguide/development-workflows/continuous-integration).
[1392](https://github.com/ufz/ogs/pull/1392), [#1396](https://github.com/ufz/ogs/pull/1396), [#1404](https://github.com/ufz/ogs/pull/1404), [#1411](https://github.com/ufz/ogs/pull/1411), [#1424](https://github.com/ufz/ogs/pull/1424), [#1428](https://github.com/ufz/ogs/pull/1428), [#1436](https://github.com/ufz/ogs/pull/1436)
- Moved CMake logic for packaging executable dependencies (such as shared libs)
to the install and package targets instead of running after each executable
gets build. [1458](https://github.com/ufz/ogs/pull/1458)
- Increase minimum clang compiler version to 3.5 in course of updating travis
build environment to Ubuntu LTS 14.04. [1448](https://github.com/ufz/ogs/pull/1448)
- Added a script that generates crosslinked Doxygen pages out of ctest input
files [1348](https://github.com/ufz/ogs/pull/1348)
Fixes
- Fix an issue that a shape vector was defined as a column vector. Corrected to
a row vector . [1288](https://github.com/ufz/ogs/pull/1288)
- Fix usage of `boost::optional<T const&>`, which has changed in version 1.61.
[1385](https://github.com/ufz/ogs/pull/1385)
- Fix Grid (enlarge bounding box to fit all points). [1369](https://github.com/ufz/ogs/pull/1369)
- Fix mapping of geometries to mesh surfaces. [1327](https://github.com/ufz/ogs/pull/1327). [#1368](https://github.com/ufz/ogs/pull/1368)
- Fix transmitting raster data to element properties. [1347](https://github.com/ufz/ogs/pull/1347)
- Fixed missing XSD files in packages. [1410](https://github.com/ufz/ogs/pull/1410)
- Fix a shape vector to a row vector. [1288](https://github.com/ufz/ogs/pull/1288)
- Fix FEFLOW import. [1397](https://github.com/ufz/ogs/pull/1397)
- Fix NodeReordering to check ordering of each element. [1425](https://github.com/ufz/ogs/pull/1425)
- Fix builds linking shared VTK library. [1431](https://github.com/ufz/ogs/pull/1431)
- Fix global Newton iteration counter. [1341](https://github.com/ufz/ogs/pull/1341)
- Correct few loops over mesh nodes, which should run over the mesh subsets.
[1437](https://github.com/ufz/ogs/pull/1437)
- Fix shape function computation for 2D elements lying in the x-y-plane [1318](https://github.com/ufz/ogs/pull/1318)
- Fix AddTest, s.t. ctest now really checks results. [1325](https://github.com/ufz/ogs/pull/1325)
- Made Eigen preconditioner configurable. [1367](https://github.com/ufz/ogs/pull/1367)