## Release notes # 6.0.5 (in preparation) ### Features: - Added an ODE solver library that can solve transient and nonlinear processes (see http://doxygen.opengeosys.org/df/d35/group__ODESolver.html). - Move up common Process parts from particular GroundwaterFlow process implementation. #951, #982 - Separate Dirichlet boundary condition class implementation. #963 - Split process output and post timestep. #998 - Added pre- and postTimestep and -Iteration hooks to processes. #1094, #1100, #1101 - New configuration tree parser - Checks configuration parameters more strictly, automatically prints error/warning messages. - Requires Boost >= 1.56 because of boost::optional with move semantics. - Command line argument `--config-warnings-nonfatal` that keeps OGS from terminating on warnings during configuration file parsing (errors still makes it terminate). - Axis aligned bounding box: - Is now a from the right half-open interval. - Removed template from class declaration. - MeshLib: Class MeshElementGrid implements a grid data structure supporting search operations. - Added cmake option `OGS_EIGEN_DYNAMIC_SHAPE_MATRICES` that makes OGS use dynamically. allocated shape matrices. - Added several cmake options for selecting which element types, dimensions and orders to be built. Selecting only few element types speeds up compilation significantly. #1092 - Command line argument `-l` for OGS cli and testrunner to specify verbosity of logging. #1056 - Added possibility to specify after which timesteps there shiuld be output. - Added possibility to specify timesteps of different size for use with transient processes. #### DataExplorer and utilities - Added command line tool for creating layered meshes from raster files - OGSFileConverter is now a separate library - Raster file to structured grid conversion can now convert pixel values in user-defined scalar arrays - All scalar arrays will be displayed in mesh information window in DataExplorer - Added generation of structured meshes to DataExplorer - Restructured mesh creation access in DataExplorer - Mesh layers can be added to existing meshes in DataExplorer - Rework tools: - CreateBoundaryConditionsAlongPolyline - AddTopLayer - ResetPropertyInPolygonalRegion - removeMeshElements ### Infrastructure - Minimum Boost version: 1.56.0. #943 - Boost requirement is now header-only. #940 - Optional support for VTK 7. #1083 - Test data is now a git submodule. #1000 - In-code defined Jenkins jobs. #970 - Use [clang's address and undefined behaviour sanitizers](https://svn.ufz.de:8443/job/OGS-6/job/Docker/job/clang-sanitizer/) on Jenkins now. #958 ### Documentation - Speed up builds with [ccache](http://docs.opengeosys.org/docs/devguide/advanced/using-ccache), #938 - Overview of the new non-linear, transient solver in [ODESolver](see http://doxygen.opengeosys.org/df/d35/group__ODESolver.html) source code documentation. ### Fixes - Fix bugs in GeoLib: - lineSegmentIntersects. - Polygon::splitPolygonAtIntersection. - Grid. - GeoMapper: Refactoring few methods, c++11. #977 - Rework FileIO::GMSH interface - Process geometries located other than in the x-y-plane. - Respect the scaling factor for Stations. - Fix memory leaks. - Added/modified tests for GML-, GMS- and TetGen-files. # 6.0.4 ### Features: - Parallel computing framework for FEM by using PETSc, which also includes - Parallel input of partitioned mesh data. - Parallel output of solutions by using pvtu data format. - New data structures for mesh properties are used everywhere replacing Element's value member. - The penalty method to impose first-type boundary conditions was substituted with a non-penalty method for LIS and Eigen linear solvers. - Support for multiple nodal variables is extended to the boundary conditions, the sparsity pattern. - Passing of linear solver options from the project files is now possible. - The global matrix and global vector type of indices is consistent with the linear solver library being used. ### Infrastructure - Added CMake option `OGS_CPU_ARCHITECTURE`, #858, [downloadable binaries](http://docs.opengeosys.org/download) build by Jenkins should now run on more CPUs - Added CMake options for Boost, VTK and Eigen (`OGS_LIB_BOOST`, ...) to specify if libs are searched on the system first, then build them locally (`Default`), or you can specify to just use system libs (`System`) or force a local build (`Local`) - Added CMake options for enabling Clang sanitizer: - `OGS_ADDRESS_SANITIZER` - `OGS_UNDEFINED_BEHAVIOR_SANITIZER` - The zlib library is removed from ThirdParty directory. - A LIS solver interface using Eigen's sparse matrices is now available through CMake option `OGS_USE_EIGENLIS`. - CMake configuration uses [ccache](https://ccache.samba.org/) if available. ### Documentation - Added [offline viewable Doxygen documentation](http://docs.opengeosys.org/docs/devguide/documentation/offline-documentation-viewer) ### Fixes - Fix all ogs-internal warnings on all OS. - Move eigen solver compute call to solve(); different fix for 0237275 # 6.0.3 ### Features: - Mesh properties are now used for: - heterogeneous "initial conditions" (actually a start solution vector for the elliptic problem). - spatially heterogeneous hydraulic conductivity values in the groundwater flow process. - First steps towards time dependent problems: Time loop integration for processes is provided. - Interpolation of nodal quantities on elements using shape functions. - Mesh generator can create surface meshes according to a given function - Utilities: - MoveGeometry - The DOF table handles now all of the provided element types: Hex 8 and 20, Line 2 and 3, Prism 6 and 15, Pyramid 5 and 13, Quad 4, 8, and 9, Tet 4 and 10, Triangle 3 and 6. - Eigen linear solver library can be used for solution of the linear systems of equations. - Implemented [OctTree](https://github.com/ufz/ogs/pull/714) for fast searching points and nodes - Volumetric and surface grid - ElementSearcher NodeSearcher improvements - Generalized the computation of rotation matrix to xy ### Fixes - FEFLOW interface supports element sets now. - Reduce compilation times by using forward declarations and removing unnecessary includes and using explicit template instantiation for often required classes. - GMSH2OGS: fixed bug in cases GMSH mesh does not contain line elements - CreateBoundaryConditionsAlongPolylines: fixed bug concerning the GeoLib and point ids. - PointVec corrected point id map - Shape interface creates polylines in a consistent state ### Infrastructure - Replace quickcheck with autocheck. See https://github.com/thejohnfreeman/autocheck.git for more details on autocheck - Added support for cross-compiling with [MXE](http://mxe.cc/): build native Windows binaries on Linux and Mac OS, see [Cross-Compiling help page](http://docs.opengeosys.org/docs/devguide/advanced/cross-compiling) and #767 - Migrated to new Travis infrastructure (faster build times), see #775 - Simplified CMake library linking, see #769 ## Test examples - Test case: groundwater flow in the Unstrut catchment (model consists approximately of 9e6 hexahedral cells) - Simulations using homogeneous and heterogeneous hydraulic conductivity - Integrated rivers as Dirichlet type boundary conditions - Integrated groundwater recharge (spatialy homogeneous) as Neumann boundary condition  ## Next steps The next big step will be the implementation of a parallelization scheme using PETSc library ### In development - OGS#PETSc interface for parallel computing - Solving of time dependent problems ### Planned - Implementation of a linear parabolic pde solver - Extending the linear elliptic solver to non-linear problems # 6.0.2 | Released on 2015/06/15, [GitHub Release Link](https://github.com/ufz/ogs/releases/tag/6.0.2) ## Release notes The second release of ogs6 introduces Neumann boundary conditions and VTK result output. ### Features: - [Neumann boundary conditions](http://docs.opengeosys.org/docs/benchmarks/elliptic/groundwater-flow-neumann) - Implement mesh properties for storage of data fields. This also includes mapped values (e.g. based on material id) [PR #542](https://github.com/ufz/ogs/pull/542), [PR #644](https://github.com/ufz/ogs/pull/644), - Refactored mesh property classes to [enable VTK output](https://github.com/ufz/ogs/pull/692) - Extended the available elements to quadratic (e.g. Quad8) based on generalized "element rules". [#572](https://github.com/ufz/ogs/pull/572), [PR #656](https://github.com/ufz/ogs/pull/656), [PR #657](https://github.com/ufz/ogs/pull/657), - Extend computation of shape matrices to lower dimensional elements embedded in higher dimensional space [#655](https://github.com/ufz/ogs/pull/655) - Builds with MinGW (GCC) on Windows, see [Developer Guide](http://docs.opengeosys.org/docs/devguide/getting-started/prerequisites) and the new MinGW platform instructions - [Cross-compiling for Windows with MXE on Mac OS](http://docs.opengeosys.org/docs/devguide/advanced/cross-compiling) - [Support for new cross-platform IDE CLion](http://docs.opengeosys.org/docs/devguide/development-workflows/development-ides#clion) - Add gradual refinement to the structured mesh generator [PR #539](https://github.com/ufz/ogs/pull/539) - Add a command line tool "queryMesh" to search mesh information [PR #665](https://github.com/ufz/ogs/pull/665) - Add a command line tool "AddTopLayer" to add an additional top layer (for example a soil layer, see also the [documentation](http://docs.opengeosys.org/docs/tools/meshing/addtoplayer)) [PR #649](https://github.com/ufz/ogs/pull/649) ### Fixes - Performance optimizations in VTK mesh conversion, [PR #695](https://github.com/ufz/ogs/pull/695) - Improve layered prism mesh construction - Fix a lot of warnings on gcc/clang/msvc compilers improving the code ### Infrastructure - Test runtime is monitored at Jenkins for [normal](https://svn.ufz.de:8443/job/OGS-6/job/Tests_Linux/) and [nightly large tests](https://svn.ufz.de:8443/job/OGS-6/job/Tests_Linux_Large/) - Utilities are build by separate Jenkins Jobs, e.g. [Win_Utils](https://svn.ufz.de:8443/job/OGS-6/job/Win_Utils/) ## Test examples - [Groundwater flow (Neumann)](http://docs.opengeosys.org/docs/benchmarks/elliptic/groundwater-flow-neumann):  ## Next steps ### In development - Heterogeneous fields (for e.g. hydraulic conductivity parameters) - Octree data structures for fast searches - OGS#PETSc interface for parallel computing ### Planned - Parallelization scheme using PETSc library - Extending the linear elliptic solver to non-linear problems -------------------------------------------------------------------------------- # 6.0.1 | Released 2015/03/02, [GitHub Release Link](https://github.com/ufz/ogs/releases/tag/6.0.1) The 6th version of OpenGeoSys (OGS) is under way. After single and coupled FORTRAN modules in ROCKFLOW 1+2, the C version 3 with dynamic data structures, the object-oriented C++ parallelized version 4, completed with data integration and visualization tools by version 5; ogs6 - as an open source project - is aimed at performing on supercomputing platforms and providing complete workflows for solving of coupled multi-field problems in real world applications. The major paradigms of ogs6 are being developer-friendly, performing, and user-friendly. ## Important links: - Getting started tutorial: http://docs.opengeosys.org/docs/quickstart - Descriptions of selected benchmarks: http://docs.opengeosys.org/docs/benchmarks - Source code access: https://github.com/ufz/ogs - Developer guide: http://docs.opengeosys.org/docs/devguide ## Release notes The first version ogs6 is dedicated for elliptic problems. ### Features: - Basic structures of processes - Mathematical operations are based on Eigen3 library - Linear solvers: DenseMatrix with Gauss elimination, and LIS (http://www.ssisc.org/lis/) - XML based IO - Standard finite element method (FEM) - Available element types: lines, triangles, quads, hexahedra - Dirichlet boundary conditions - Linear elliptic solver (e.g. Groundwater flow) for scalar quantities in homogeneous media ### Fixes - DenseMatrix Gauss algorithm pivoting - Fixing mem-leaks on DataExplorer start up - Fixing resizing and layout issues in various DataExplorer dialogs ## Test examples  - Example 1: Unit square (access) - Example 2: Unit cube (access): has 1000 hexahedra elements with Dirichlet boundary conditions (u=1|x=0) and (u=-1|x=1) ## Next steps ### In development - OGS#PETSc interface for parallel computing (02/2015*planned) - Neuman boundary conditions (03/2015*planned) ### Planned - Parabolic solver