Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • lurpi/ogsPW
  • steffenbeese/ogs
  • HBShaoUFZ/ogs
  • vehling/ogs
  • kuateric/ogs
  • heinzej/ogs
  • MostafaMollaali/dynamic
  • GuanglinDu/ogs
  • katakurgyis/ogs
  • felikskiszkurno/ogs
  • aachaudhry/ogs
  • friederl/ogs
  • fparisio/ogs
  • Scinopode/ogs
  • MaxDoe/ogs
  • nagelt/ogs
  • zhangning737/ogs
  • ogs/ogs
  • bilke/ogs
  • montoyav/ogs
  • TomFischer/ogs
  • wenqing/ogs
  • renchao-lu/ogs
  • ChaofanChen/ogs
  • rinkk/ogs
  • WanlongCai/ogs
  • dominik-kern/ogs
  • Yonghui56/ogs
  • endJunction/ogs
  • VinayGK/ogs
  • AlirezaBGE/ogs
  • SebasTouristTrophyF/ogs
  • tengfeideng/ogs
  • joergbuchwald/ogs
  • KeitaYoshioka/ogs
  • hhutyou/debug-petsc-large
  • ThieJan/ogs
  • ArashPartow/ogs
  • skai95/ogs
  • yezhigangzju/ogs
  • PhilippSelzer/ogs
  • MartinBinder/ogs
  • MehranGhasabeh/ogs-mg
  • MManicaM/ogs
  • TobiasMeisel/ogs
  • norihiro-w/ogs
  • garibay-j/ogs
  • Christopher-McDermott/ogs
  • loewenzahm/ogs
  • aheinri5/ogs
  • tcajuhi/ogs
  • RichardScottOZ/ogs
  • lagraviereScience/ogs
  • jrandow/ogs
  • cbsilver/ogs
  • reza-taherdangkoo/ogs
  • joboog/ogs
  • basakz/ogs
  • ropaoleon/ogs
  • ShuangChen88/ogs
  • cguevaramorel/ogs
  • boyanmeng/ogs
  • XRuiWang/ogs
  • grubbymoon/ogs
  • yUHaOLiu-tj/ogs
  • FZill/ogs
  • michaelpitz/ogs
  • hhutyou/ogs
  • Lifan97/ogs
  • mattschy/ogs
  • Mojtaba-abdolkhani/ogs
  • kristofkessler/ogs
  • ozgurozansen/ogs
  • eike-radeisen/ogs-gitlab
  • DStafford/ogs
  • Max_Jaeschke/ogs
  • fwitte/ogs
  • LionAhrendt/ogs
  • emadnrz/ogs
  • laubry/ogs
  • HailongS/ogs
  • noorhasan/ogs
  • WenjieXuZJU/ogs
  • suresh199824/ogs
84 results
Show changes
Commits on Source (4392)
Showing
with 660 additions and 358 deletions
---
Checks: '-*,clang-diagnostic-*,clang-analyzer-*,cppcoreguidelines-pro-type-member-init, *explicit-conversions*, google-explicit-constructor, google-readability-braces-around-statements, modernize-loop-convert, modernize-use-default-member-init, modernize-use-emplace, modernize-use-using, readability-braces-around-statements, readability-else-after-return, readability-named-parameter, *readability-namespace-comments, *readability-inconsistent-*, readability-redundant-member-init, readability-simplify-boolean-expr, readability-string-compare'
Checks: >
-*
,clang-diagnostic-*,
clang-analyzer-*,
cppcoreguidelines-pro-type-member-init,
*explicit-conversions*,
google-explicit-constructor,
google-readability-braces-around-statements,
modernize-loop-convert,
modernize-use-default-member-init,
modernize-use-emplace,
modernize-use-using,
readability-braces-around-statements,
readability-else-after-return,
readability-named-parameter,
*readability-namespace-comments,
*readability-inconsistent-*,
readability-redundant-member-init,
readability-simplify-boolean-expr,
readability-string-compare
WarningsAsErrors: ''
HeaderFilterRegex: '.*'
WarningsAsErrors: ""
HeaderFilterRegex: ".*"
AnalyzeTemporaryDtors: false
FormatStyle: file
FormatStyle: file
CheckOptions:
- key: google-readability-braces-around-statements.ShortStatementLines
value: '1'
- key: hicpp-braces-around-statements.ShortStatementLines
value: '1'
- key: readability-braces-around-statements.ShortStatementLines
value: '1'
- key: google-readability-braces-around-statements.ShortStatementLines
value: "1"
- key: hicpp-braces-around-statements.ShortStatementLines
value: "1"
- key: readability-braces-around-statements.ShortStatementLines
value: "1"
......@@ -57,28 +57,6 @@ parse:
RUNTIME: 1
WRAPPER: +
meshtest:
pargs:
nargs: "*"
flags:
- NONE
spelling: MeshTest
kwargs:
EXECUTABLE: 1
PATH: 1
NAME: 1
WRAPPER: 1
RUNTIME: 1
WORKING_DIRECTORY: 1
EXECUTABLE_ARGS: +
DATA: +
DIFF_DATA:
pargs:
tags:
- cmdline
WRAPPER_ARGS: +
REQUIREMENTS: +
cpmaddpackage:
pargs:
nargs: "*"
......@@ -109,6 +87,7 @@ parse:
HTTP_PASSWORD: 1
EXCLUDE_FROM_ALL: 1
OPTIONS: +
PATCH_COMMAND: +
cpmfindpackage:
pargs:
nargs: "*"
......
version: "2"
exclude_patterns:
- "ThirdParty/"
- "Tests/"
plugins:
duplication:
......
......@@ -11,3 +11,4 @@ Malcom, M.A.M.(2018).Analysis of underground excavations in argillaceous hard
Stoffverhaltens von Salzgestein in Abh{\"a}ngigkeit von der Zeit und der
Temperatur auf der Grundlage von Laborversuchen mit begleitenden kontinuumsmechanischen
Berechnungen nach der Methode der finiten Elemente}'
- _Dupuit J. Mouvement de l’eau a travers le terrains permeables. C. R. Hebd. Seances Acad. Sci., 45:92–96, 1857._
[codespell]
skip = ./.git,./Tests/Data,./ThirdParty,*.yml,*.bib,./web/content/imprint.md,./GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd
ignore-words-list = ket,nd,strat,theis,ba,sur
skip = *.bib,*.css,*.pdf,*.yaml,*.yml,*.vtu,*/.vale,./.git,./GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd,./Tests/Data,./web/content/imprint.md,./web/node_modules,./web/public/imprint/index.html,./web/resources,CITATION.cff,
ignore-words-list = ba,bu,ket,nd,pris,strat,sur,theis,ot,Jupyter,testrunner
exclude-file = .codespellexclude
uri-ignore-words-list = *
{
"name": "ogs-gcc-dev",
"image": "registry.opengeosys.org/ogs/ogs/vscode:latest",
"postStartCommand": "nohup bash -c 'cd web; yarn; yarn build; hugo server &'",
"forwardPorts": [
1313
],
"mounts": [
"source=devcontainer-cpm-cache,target=/opt/cpm,type=volume",
"source=devcontainer-ccache-cache,target=/opt/ccache,type=volume",
"source=${localWorkspaceFolder}/../build,target=${containerWorkspaceFolder}/../build,type=bind"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools",
"ms-vscode.cpptools"
]
}
},
"remoteUser": "vscode",
"features": {
"common": {}
}
"name": "ogs-gcc-dev",
"image": "mcr.microsoft.com/devcontainers/cpp",
"mounts": [
"source=devcontainer-cpm-cache,target=/opt/cpm,type=volume",
"source=devcontainer-ccache-cache,target=/opt/ccache,type=volume",
"source=${localWorkspaceFolder}/../build,target=${containerWorkspaceFolder}/../build,type=bind"
],
"features": {
"common": {},
"ghcr.io/devcontainers/features/python:1": {},
"ghcr.io/devcontainers/features/common-utils:2": {
"configureZshAsDefaultShell": true
}
}
}
# .git
Tests/Data
_out/images
ThirdParty/container-maker
......@@ -15,7 +15,7 @@ jobs:
uses: actions/checkout@v2
- name: Configure CMake
run: cmake -B ${{ env.build }} -DCMAKE_BUILD_TYPE=${{ env.config }} -DOGS_BUILD_PROCESS_TH2M=OFF -DOGS_USE_PYTHON=OFF -DOGS_USE_UNITY_BUILDS=OFF -DOGS_BUILD_TESTING=OFF -DOGS_ENABLE_ELEMENT_PRISM=OFF -DOGS_ENABLE_ELEMENT_PYRAMID=OFF -DOGS_MAX_ELEMENT_DIM=2
run: cmake -B ${{ env.build }} -DCMAKE_BUILD_TYPE=${{ env.config }} -DOGS_USE_UNITY_BUILDS=OFF -DOGS_BUILD_TESTING=OFF -DOGS_ENABLE_ELEMENT_PRISM=OFF -DOGS_ENABLE_ELEMENT_PYRAMID=OFF -DOGS_MAX_ELEMENT_DIM=2
# Build is not required unless generated source files are used
# - name: Build CMake
......
......@@ -12,11 +12,6 @@ tags
# Visual Studio Code project files
.vscode
# Conan package manager
conanbuildinfo.cmake
conaninfo.txt
CMakeLists.txt.user*
*.pyc
.venv
......@@ -26,6 +21,7 @@ Tests/Data/_out
web/.netlify
CMakeUserPresets.json
scripts/cmake/vtk-*.patch
.snakemake
......
stages:
- preparation
- build
- test
- check
- release
- package
......@@ -10,58 +11,73 @@ variables:
BUILD_TYPE: Release
BUILD_TESTS: "true"
BUILD_CTEST: "true"
CTEST_INCLUDE_REGEX: "" # Regex is given via ctest -R [regex]
CTEST_EXCLUDE_REGEX: "" # Regex is given via ctest -E [regex]
CTEST_ARGS: "" # If not empty supply arguments to select tests
CTEST_TIMEOUT: "" # in minutes
CPU_TARGET: ivybridge # envinf1 has oldest cpu
ARTIFACTS_PAGES_URL: https://$CI_PROJECT_ROOT_NAMESPACE.$CI_PAGES_DOMAIN/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts
PIPELINE_NAME: "Default pipeline name"
# by default skip performance tests, they can be enabled on isolated test machines
OGS_PERFORMANCE_TESTS_ALLOWED_TO_FAIL: true
workflow:
name: "$PIPELINE_NAME"
rules:
# Disable CI for non-MR user-scoped pipelines
- if: '$CI_MERGE_REQUEST_IID == null && $CI_PROJECT_PATH != "ogs/ogs"'
when: never
- if: "$CI_MERGE_REQUEST_LABELS =~ /.*(workflow::paused|ci skip).*/"
- if: "$CI_MERGE_REQUEST_LABELS =~ /.*(workflow::paused|ci::skip).*/"
when: never
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::web only.*/
variables:
PIPELINE_NAME: "web only MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
BUILD_TESTS: "false"
CTEST_INCLUDE_REGEX: "nb-"
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::linux only.*/
variables:
PIPELINE_NAME: "linux only MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::mac only.*/
variables:
PIPELINE_NAME: "mac only MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::win only.*/
variables:
PIPELINE_NAME: "win only MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::guix only.*/
variables:
PIPELINE_NAME: "guix only MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
- if: $CI_MERGE_REQUEST_IID # merge requests
variables:
PIPELINE_NAME: "MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
- if: $CI_COMMIT_TAG # tags, ogs/ogs repo only
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_PATH == "ogs/ogs"' # master, ogs/ogs repo only
- if: '$CI_COMMIT_BRANCH =~ /^v[0-9]\.[0-9]\.[0-9]/ && $CI_PROJECT_PATH == "ogs/ogs"' # release branches, e.g. v6.x.x
variables:
PIPELINE_NAME: "master pipeline"
include:
- local: "scripts/ci/extends/*.yml"
- local: "/scripts/ci/jobs/meta.yml"
- local: "/scripts/ci/jobs/ci_images.yml"
# jobs, can be indiviually disabled for testing
- local: "/scripts/ci/jobs/pre-commit.yml"
- local: "/scripts/ci/jobs/build-linux.yml"
- local: "/scripts/ci/jobs/build-linux-petsc.yml"
- local: "/scripts/ci/jobs/build-linux-frontend.yml"
- local: "/scripts/ci/jobs/build-docs.yml"
- local: "/scripts/ci/jobs/build-win.yml"
- local: "/scripts/ci/jobs/build-mac.yml"
- local: "/scripts/ci/jobs/build-container.yml"
- local: "/scripts/ci/jobs/jupyter.yml"
- local: "/scripts/ci/jobs/code-quality.yml"
- local: "/scripts/ci/jobs/code-coverage.yml"
- local: "/scripts/ci/jobs/build-gui-linux.yml"
- local: "/scripts/ci/jobs/build-gui-win.yml"
- local: "/scripts/ci/jobs/build-gui-mac.yml"
- local: "/scripts/ci/jobs/check-header.yml"
- local: "/scripts/ci/jobs/clang-sanitizer.yml"
- local: "/scripts/ci/jobs/clang-tidy.yml"
- local: "/scripts/ci/jobs/web.yml"
- local: "/scripts/ci/jobs/container.yml"
- local: "/scripts/ci/jobs/release.yml"
- local: "/scripts/ci/jobs/package.yml"
- local: "/scripts/ci/jobs/trigger.yml"
# child pipelines
wheels:
stage: build
needs: []
trigger:
include: /scripts/ci/jobs/build-wheels.yml
rules:
- if: $CI_COMMIT_TAG
- when: manual
allow_failure: true
- local: "/scripts/ci/pipelines/regular.yml"
rules:
- if: $CI_PIPELINE_SOURCE != "schedule" && $CI_MERGE_REQUEST_LABELS !~ /.*ci::\w* only.*/
- local: "/scripts/ci/pipelines/web.yml"
rules:
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::web only?($|,)/
- local: "/scripts/ci/pipelines/web-fast.yml"
rules:
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::web only \(fast.*/
- local: "/scripts/ci/pipelines/scheduled.yml"
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- local: "/scripts/ci/pipelines/linux.yml"
rules:
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::linux only.*/
- local: "/scripts/ci/pipelines/mac.yml"
rules:
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::mac only.*/
- local: "/scripts/ci/pipelines/win.yml"
rules:
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::win only.*/
- local: "/scripts/ci/pipelines/guix.yml"
rules:
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::guix only.*/
- local: "/scripts/ci/jobs/build-wheels.yml"
rules:
- if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::wheels only.*/
^[CMake]
*.cmake @bilke
CMakeLists.txt @bilke
[Documentation] @ogs/docs-team
Documentation
web/content
[submodule "ThirdParty/container-maker"]
path = ThirdParty/container-maker
url = https://gitlab.opengeosys.org/ogs/container-maker.git
[submodule "ThirdParty/ogs6py"]
path = ThirdParty/ogs6py
url = https://github.com/joergbuchwald/ogs6py.git
......@@ -2,11 +2,14 @@ Alireza Hassanzadegan <a.hassanzadegan@gmail.com> AlirezaBGE <a.hassanzadegan@gm
Aqeel Chaudhry <Aqeel.Chaudhry@ifgt.tu-freiberg.de> aachaudhry <aqeel318@gmail.com>
Carolin Helbig <carolin.helbig@ufz.de>
Chaofan Chen <chaofan.chen@ufz.de>
Chaofan Chen <chaofan.chen@ufz.de> <cchaofan1311@gmail.com>
Christian Silbermann <christian.silbermann@ifgt.tu-freiberg.de> cbsilver <christian.silbermann@ifgt.tu-freiberg.de>
Christoph Lehmann <christoph.lehmann@ufz.de> <chleh@users.noreply.github.com>
Dmitri Naumov <dmitri.naumov@ufz.de> <github@naumov.de>
Dmitri Naumov <dmitri.naumov@ufz.de> Dmitrij Naumov <dmitrij@naumov.de>
Dmitri Naumov <dmitri.naumov@ufz.de> Dmitry Yu. Naumov <dmitri.naumov@ufz.de>
Dmitri Naumov <dmitri-jurievic.naumov@ifgt.tu-freiberg.de> <github@naumov.de>
Dmitri Naumov <dmitri-jurievic.naumov@ifgt.tu-freiberg.de> Dmitrij Naumov <dmitrij@naumov.de>
Dmitri Naumov <dmitri-jurievic.naumov@ifgt.tu-freiberg.de> Dmitry Yu. Naumov <dmitri.naumov@ufz.de>
Dmitri Naumov <dmitri-jurievic.naumov@ifgt.tu-freiberg.de> <dmitri.naumov@ufz.de>
Dmitri Naumov <dmitri-jurievic.naumov@ifgt.tu-freiberg.de> <Dmitri-Jurievic.Naumov@ifgt.tu-freiberg.de>
Dominik Kern <dominik.kern1@ifgt.tu-freiberg.de> <dominik.kern.ifgt@gmail.com>
Eric Simo <eric.simo@bge.de> ericsimo <kuateric>
Florian Zill <florian.zill@ufz.de> Florian Krupsack <florian.krupsack@ufz.de>
......@@ -27,21 +30,25 @@ Jörg Buchwald <joerg.buchwald@ufz.de> joerg <joerg@debian>
Jörg Buchwald <joerg.buchwald@ufz.de> joergbuchwald <44933043+joergbuchwald@users.noreply.github.com>
Jörg Buchwald <joerg.buchwald@ufz.de> joergbuchwald <joerg.buchwald@ufz.de>
Karsten Rink <karsten.rink@ufz.de>
Keita Yoshioka <keita.yoshioka@ufz.de> KeitaYoshioka <32516139+KeitaYoshioka@users.noreply.github.com>
Keita Yoshioka <keita.yoshioka@ufz.de>
Keita Yoshioka <keita.yoshioka@ufz.de> <32516139+KeitaYoshioka@users.noreply.github.com>
Lars Bilke <lars.bilke@ufz.de> <bilke@users.noreply.github.com> <lars@bilke.info>
Lars Bilke <lars.bilke@ufz.de> Lars Bilke <lars@bilke.info>
Lars Bilke <lars.bilke@ufz.de> Lars Bilke <larsbilke83@googlemail.com>
Marc Walther <marc.walther@ufz.de>
Mostafa Mollaali <mostafa.mollaali@ufz.de> MostafaMollaali <m.molaali@gmail.com>
Myles English <mylesenglish@gmail.com>
Norbert Grunwald <norbert.grunwald@ufz.de> <n.g.boettcher@gmail.com> <Norbert.Grunwald@ufz.de>
Norihiro Watanabe <norihiro.watanabe@aist.go.jp> <norihiro.w@gmail.com> <norihiro.watanabe@ufz.de>
Norbert Grunwald <norbert.grunwald@ufz.de> <n.g.boettcher@gmail.com>
Norbert Grunwald <norbert.grunwald@ufz.de> <Norbert.Grunwald@ufz.de>
Norihiro Watanabe <norihiro.watanabe@ufz.de> <norihiro.watanabe@aist.go.jp>
Norihiro Watanabe <norihiro.watanabe@ufz.de> <norihiro.w@gmail.com>
OGS Bot[bot] <no-email> git@dev2 <lars.bilke@ufz.de>
OGS Bot[bot] <no-email> GitLab Runner <ci@opengeosys.org>
OGS Bot[bot] <no-email> OGS Bot <larsbilke@web.de>
OGS Bot[bot] <no-email> OGS Bot <larsbilke@web.de>
OGS Bot[bot] <no-email> ogsbot <larsbilke@web.de>
Renchao Lu <renchao.lu@ufz.de> <renchao.lu@gmail.com> <lur@modmon128.intranet.ufz.de>
Renchao Lu <renchao.lu@ufz.de> <renchao.lu@gmail.com>
Renchao Lu <renchao.lu@ufz.de> <lur@modmon128.intranet.ufz.de>
Renchao Lu <renchao.lu@ufz.de> renchao.lu <renchao.lu@ufz.de>
Reza Taher Dang Koo <reza.taherdangkoo@ifgt.tu-freiberg.de> rezataherdangkoo <reza.taherdangkoo@gmail.com>
Shuang Chen <shuang.chen@bgr.de> <gechenshuang88@gmail.com>
......@@ -49,13 +56,15 @@ Shuang Chen <shuang.chen@bgr.de> Shuang Chen <shuang.chen@ufz.de>
Tengfei Deng <Tengfei.Deng@doktorand.tu-freiberg.de> tengfeideng <54792615+tengfeideng@users.noreply.github.com>
Tengfei Deng <Tengfei.Deng@doktorand.tu-freiberg.de> tengfeideng <dengtengfei2016@hotmail.com>
Thomas Fischer <thomas.fischer@ufz.de> <123_tom_dabei@web.de> <Thomas.Fischer@ufz.de>
Thomas Fischer <thomas.fischer@ufz.de> Tom Fischer <Thomas.Fischer@ufz.de>
Thomas Fischer <thomas.fischer@ufz.de> <Thomas.Fischer@ufz.de>
Thomas Kalbacher <thomas.kalbacher@ufz.de> Thomas-TK <thomas.kalbacher@ufz.de>
Thomas Nagel <thomas.nagel@ufz.de> <nagelt@tcd.ie>
Thomas Nagel <thomas.nagel@ufz.de> nagelt <thomas.nagel@ufz.de>
Thomas Nagel <thomas.nagel@ufz.de> tnagel <thomas.nagel@ufz.de>
Thomas Nagel <thomas.nagel@ufz.de> <thomas.nagel@ifgt.tu-freiberg.de>
Tianyuan Zheng <ichbinzty@gmail.com>
Tobias Meisel <tobias.meisel@ufz.de> <tobias.meisel@web.de>
Tobias Meisel <tobias.meisel@ufz.de>
Tuanny Cajuhi <Tuanny.Cajuhi@bgr.de> tcajuhi <trmcajuhi@gmail.com>
Vanessa Montoya <vanessa.montoya@ufz.de> montoyag <vanemonto@hotmail.com>
Vanessa Montoya <vanessa.montoya@ufz.de> montoyav <vanessa.montoya@ufz.de>
......@@ -78,3 +87,15 @@ Sophia Einspänner <sophia.einspaenner@student.tu-freiberg.de> Sophia Einspänne
Jakob Randow <jakob.randow@web.de> jrandow <jakob.randow@htwk-leipzig.de>
Jakob Randow <jakob.randow@web.de> jrandow <jakob.randow@web.de>
Olaf Kolditz <olaf.kolditz@ufz.de>
Falko Vehling <falko.vehling@ufz.de>
Julian Heinze <julian.heinze@ufz.de>
Tao You <hhutyou@126.com>
Matthes Kantzenbach <m.kantzenbach@outlook.de>
Feliks K. Kiszkurno <feliks-kuba.kiszkurno@ufz.de>
Philipp Selzer <philipp.selzer@ufz.de>
Philipp Selzer <philipp.selzer@ufz.de> <Philipp.Selzer@gmx.net>
Joy Brato Shil <joybroto6@gmail.com>
Frieder Loer <frieder.loer@ufz.de>
Eike Radeisen <eike.radeisen@bgr.de>
Maximilian Dörnbrack <maximilian.doernbrack@ufz.de> <maximlian.doernbrack@ufz.de>
Kristof Kessler <kristof.kessler@bgr.de> <mail@kristofkessler.com>
\ No newline at end of file
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.2.0
rev: v4.4.0
hooks:
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md, --markdown-linebreak-ext=pandoc]
exclude: "^ThirdParty/.*|^Tests/Data/.*|^web/static|^Documentation/.vale/.*"
# Tests/Python/res/test_docu_scripts/ contain improper white spaces on
# purpose: such whitespace errors should be tested, there.
exclude: "^Tests/Data/.*|^Tests/Python/res/test_docu_scripts/|^web/static|^Documentation/.vale/.*|.*\\.patch"
- id: check-added-large-files
args: [--maxkb 1024]
- id: check-merge-conflict
- id: check-xml
exclude: '^Tests/Data/.*\.xml'
- id: check-yaml
exclude: "^scripts/ci/.*|.cmake-format.yaml"
- id: check-toml
......@@ -18,53 +21,89 @@ repos:
- id: fix-byte-order-marker
exclude: "^Documentation/.vale/.*"
- id: mixed-line-ending
exclude: ".*\\.vtu"
exclude: ".*\\.vtu|.*@@"
- repo: https://github.com/psf/black
rev: 22.3.0
rev: 23.1.0
hooks:
- id: black
exclude: "ThirdParty|LinearMFront/generate_ref.py"
exclude: "LinearMFront/generate_ref.py"
# Run black on markdown notebooks
- repo: https://github.com/nbQA-dev/nbQA
rev: 1.7.0
hooks:
- id: nbqa-black
additional_dependencies: [jupytext, black==23.1.0]
- repo: https://github.com/codespell-project/codespell
rev: v2.1.0
rev: v2.2.2
hooks:
- id: codespell
exclude: 'ThirdParty/.*|Tests/Data/.*|.*\.ya?ml|.*\.bib|^web/content/imprint.md|^GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd|^Applications/FileIO/Legacy/OGSIOVer4.cpp|^scripts/cmake/CPM.cmake|Documentation/.vale/.*'
exclude: 'Tests/Data/.*|.*\.ya?ml|.*\.bib|^web/content/imprint.md|^GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd|^Applications/FileIO/Legacy/OGSIOVer4.cpp|^scripts/cmake/CPM.cmake|Documentation/.vale/.*|.*\.ipynb|.*\.svg|^GeoLib/predicates.c'
- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
additional_dependencies: ["cmakelang[YAML]"]
args: [--config=.cmake-format.yaml]
exclude: "scripts/cmake/jedbrown/.*|PackagingMacros.cmake|conan.cmake|CPM.cmake|FindFilesystem.cmake|ConanSetup.cmake|Tests.cmake"
exclude: "CPM.cmake|FindFilesystem.cmake|FindMKL.cmake|JSONParser.cmake|Tests.cmake|FindTFEL.cmake|FindMFrontGenericInterface.cmake"
- id: cmake-lint
additional_dependencies: ["cmakelang[YAML]"]
exclude: "scripts/cmake/jedbrown/.*|PackagingMacros.cmake|conan.cmake|CPM.cmake|FindFilesystem.cmake|ConanSetup.cmake|BuildExternalProject.cmake"
exclude: "CPM.cmake|FindFilesystem.cmake|FindMKL.cmake|JSONParser.cmake|BuildExternalProject.cmake|FindTFEL.cmake|FindMFrontGenericInterface.cmake"
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.31.1
rev: v0.42.0
hooks:
- id: markdownlint
language_version: 22.11.0
- repo: local
hooks:
- id: git-diff-check
name: Run git diff --check
entry: git diff --check --cached -- ':!*.md' ':!*.pandoc' ':!*.asc' ':!*.dat' ':!*.ts'
language: system
exclude: "ThirdParty/*|Tests/Data/*|web/static/images/xsd"
stages: [commit, manual]
exclude: "Tests/Data/.*|web/static/images/xsd"
stages: [pre-commit, manual]
- id: file-extensions
name: Check file extensions
entry: scripts/hooks/pre-commit-file-extensions.sh
language: system
files: '.*\.cpp'
stages: [commit, manual]
stages: [pre-commit, manual]
- id: git-clang-format
name: git-clang-format
entry: bash -c 'if command -v git-clang-format &> /dev/null; then git clang-format; else exit 0; fi'
language: system
pass_filenames: false
files: \.(h|cpp)$
- repo: https://github.com/errata-ai/vale
rev: v2.24.4
hooks:
- id: vale
name: Check spelling with vale
entry: bash -c 'if command -v vale &> /dev/null; then vale sync; VALE_MIN_ALERT_LEVEL=error scripts/ci/helper/run-vale; else exit 0; fi'
name: vale sync
pass_filenames: false
language: system
args: [sync]
- id: vale
args: [--output=line, --minAlertLevel=error]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.9.9"
hooks:
- id: ruff
types_or: [python, pyi, jupyter]
args: [--output-format=full]
# A variant of the ruff hook above that automatically applies proposed fixes.
# Runs only manually.
# Run this hook (and all other manual hooks if any) with:
# pre-commit run --hook-stage manual
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.9.9"
hooks:
- id: ruff
types_or: [python, pyi, jupyter]
args: [--output-format=full, --fix, --exit-non-zero-on-fix]
stages: [manual]
# Enable on demand, run with
# pre-commit run --all-files clang-format
#
# - repo: https://github.com/pocc/pre-commit-hooks
# rev: master
# hooks:
# - id: clang-format
# args: ["-i"]
......@@ -9,7 +9,7 @@ Packages = Hugo
[*.md]
BasedOnStyles = Vale, write-good, ogs
Vale.Spelling = None
write-good.ThereIs = suggestion
write-good.ThereIs = None
write-good.Passive = None
write-good.TooWordy = None
write-good.Weasel = None
......@@ -21,7 +21,10 @@ TokenIgnores = \
; (\\ref\s\S+(\s"\S*")?), \
; (\\subpage\s\S*), \
; (\\copydoc\s\S*), \
(\$+[^\n$]+\$+), \
(\$[^\n$]+\$), \
(\\\S*|\{\S*\}), \
(\w*\set\sal)
(\w*\set\sal), \
({{<\s?(rel)?ref (.*)>}})
# https://regex101.com/r/QWLhgT/1 helped me generating this one:
BlockIgnores = (?s) *(\$\$.*?\$\$)
......@@ -7,11 +7,19 @@ ogs_add_library(ApplicationsLib ${LIB_SOURCES})
target_link_libraries(
ApplicationsLib
PUBLIC BaseLib GeoLib NumLib
$<$<TARGET_EXISTS:VTK::ParallelMPI>:VTK::ParallelMPI>
PRIVATE CMakeInfoLib MathLib MeshLib MeshGeoToolsLib
$<$<BOOL:${OGS_USE_PYTHON}>:pybind11::pybind11>
$<$<BOOL:${OGS_USE_PETSC}>:petsc>
PUBLIC
BaseLib
GeoLib
NumLib
$<$<AND:$<BOOL:${OGS_USE_PETSC}>,$<TARGET_EXISTS:VTK::ParallelMPI>>:VTK::ParallelMPI>
$<$<AND:$<NOT:$<BOOL:${OGS_BUILD_WHEEL}>>,$<BOOL:${OGS_BUILD_CLI}>>:ogs_embedded_python>
PRIVATE CMakeInfoLib
MathLib
MeshLib
MeshGeoToolsLib
MeshToolsLib
$<$<BOOL:${OGS_USE_PETSC}>:PkgConfig::PETSC>
pybind11::module
)
if(OGS_BUILD_CLI OR OGS_BUILD_UTILS OR OGS_BUILD_TESTING)
......@@ -19,7 +27,9 @@ if(OGS_BUILD_CLI OR OGS_BUILD_UTILS OR OGS_BUILD_TESTING)
ApplicationsLib PUBLIC Processes PRIVATE ParameterLib ProcessLib
)
elseif(OGS_BUILD_GUI)
target_link_libraries(ApplicationsLib PRIVATE nlohmann_json::nlohmann_json)
target_link_libraries(
ApplicationsLib PRIVATE MeshToolsLib nlohmann_json::nlohmann_json
)
endif()
if(OGS_USE_LIS)
......@@ -28,10 +38,20 @@ endif()
target_compile_definitions(
ApplicationsLib PUBLIC $<$<BOOL:${USE_LIS}>:USE_LIS>
$<$<BOOL:${OGS_USE_PYTHON}>:OGS_USE_PYTHON>
PRIVATE $<$<BOOL:${OGS_USE_INSITU}>:OGS_USE_INSITU>
)
# ~~~
# Prevent warning:
# warning: ‘ProjectData’ declared with greater visibility than the type of its field ‘ProjectData::_py_scoped_interpreter’
# see https://pybind11.readthedocs.io/en/stable/faq.html#someclass-declared-with-greater-visibility-than-the-type-of-its-field-someclass-member-wattributes
# ~~~
if(NOT OGS_BUILD_WHEEL AND OGS_BUILD_CLI)
set_target_properties(
ApplicationsLib PROPERTIES CXX_VISIBILITY_PRESET hidden
)
endif()
# Set cpp definitions if the cmake option is enabled for the given process.
foreach(process ${_enabled_processes})
string(TOUPPER "OGS_BUILD_PROCESS_${process}" EnableProcess)
......@@ -41,5 +61,7 @@ foreach(process ${_enabled_processes})
)
endforeach()
target_precompile_headers(ApplicationsLib PRIVATE [["BaseLib/Error.h"]]
[["BaseLib/ConfigTree.h"]] [["BaseLib/Logging.h"]])
target_precompile_headers(
ApplicationsLib PRIVATE [["BaseLib/Error.h"]] [["BaseLib/ConfigTree.h"]]
[["BaseLib/Logging.h"]]
)
/**
* \file
* \copyright
* Copyright (c) 2012-2023, OpenGeoSys Community (http://www.opengeosys.org)
* Copyright (c) 2012-2025, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
......@@ -18,6 +19,7 @@
/// The default implementation is empty providing polymorphic behaviour when
/// using this class.
#include "BaseLib/MPI.h"
#include "NumLib/DOF/GlobalMatrixProviders.h"
#if defined(USE_PETSC)
......@@ -27,9 +29,8 @@ namespace ApplicationsLib
{
struct LinearSolverLibrarySetup final
{
LinearSolverLibrarySetup(int argc, char* argv[])
LinearSolverLibrarySetup(int argc, char* argv[]) : mpi_setup(argc, argv)
{
MPI_Init(&argc, &argv);
char help[] = "ogs6 with PETSc \n";
PetscInitialize(&argc, &argv, nullptr, help);
MPI_Comm_set_errhandler(PETSC_COMM_WORLD, MPI_ERRORS_RETURN);
......@@ -39,8 +40,9 @@ struct LinearSolverLibrarySetup final
{
NumLib::cleanupGlobalMatrixProviders();
PetscFinalize();
MPI_Finalize();
}
BaseLib::MPI::Setup mpi_setup;
};
} // ApplicationsLib
#elif defined(USE_LIS)
......@@ -66,7 +68,22 @@ namespace ApplicationsLib
{
struct LinearSolverLibrarySetup final
{
LinearSolverLibrarySetup(int /*argc*/, char* /*argv*/[]) {}
LinearSolverLibrarySetup(int /*argc*/, char* /*argv*/[])
{
#ifdef _OPENMP
const char* omp_num_threads_env = std::getenv("OMP_NUM_THREADS");
if (omp_num_threads_env)
{
INFO("OMP_NUM_THREADS is set to: {:s}", omp_num_threads_env);
}
else
{
WARN("OMP_NUM_THREADS is not set, falling back to: {:d}",
omp_get_max_threads());
}
#endif
INFO("Eigen use {:d} threads", Eigen::nbThreads());
}
~LinearSolverLibrarySetup()
{
NumLib::cleanupGlobalMatrixProviders();
......
/**
* \file
* \author Karsten Rink
* \date 2010-08-25
*
* \copyright
* Copyright (c) 2012-2023, OpenGeoSys Community (http://www.opengeosys.org)
* Copyright (c) 2012-2025, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
......@@ -18,6 +19,7 @@
#include <string>
#include "BaseLib/ConfigTree-fwd.h"
#include "BaseLib/ExportSymbol.h"
#include "ChemistryLib/ChemicalSolverInterface.h"
#include "MaterialLib/MPL/Medium.h"
#include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h"
......@@ -26,6 +28,15 @@
#include "ProcessLib/Process.h"
#include "ProcessLib/ProcessVariable.h"
#ifdef OGS_EMBED_PYTHON_INTERPRETER
#include <pybind11/embed.h>
#endif
namespace GeoLib
{
struct NamedRaster;
}
namespace MeshLib
{
class Mesh;
......@@ -83,6 +94,14 @@ public:
ProcessLib::TimeLoop& getTimeLoop() { return *_time_loop; }
MeshLib::Mesh& getMesh(std::string const& mesh_name) const;
std::map<int, std::shared_ptr<MaterialPropertyLib::Medium>> const&
getMedia() const
{
return _media;
}
private:
/// Parses the process variables configuration and creates new variables for
/// each variable entry passing the corresponding subtree to the process
......@@ -124,6 +143,7 @@ private:
const std::string& output_directory);
std::vector<std::unique_ptr<MeshLib::Mesh>> _mesh_vec;
std::vector<GeoLib::NamedRaster> _named_rasters;
std::vector<std::unique_ptr<ProcessLib::Process>> _processes;
std::vector<ProcessLib::ProcessVariable> _process_variables;
......@@ -144,9 +164,8 @@ private:
std::map<std::string,
std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
_curves;
};
/// Parses a comma separated list of integers.
/// Such lists occur in the medium definition in the OGS prj file.
/// Error messages in this function refer to this specific purpose.
std::vector<int> splitMaterialIdString(std::string const& material_id_string);
#ifdef OGS_EMBED_PYTHON_INTERPRETER
std::optional<pybind11::scoped_interpreter> _py_scoped_interpreter;
#endif
};
/**
* \brief Implementation of class Simulation
* \file
* \brief Implementation of class Simulation
*
* \copyright
* Copyright (c) 2012-2023, OpenGeoSys Community (http://www.opengeosys.org)
* Copyright (c) 2012-2025, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
......@@ -21,6 +21,7 @@
#include "BaseLib/ConfigTreeUtil.h"
#include "BaseLib/FileTools.h"
#include "BaseLib/PrjProcessing.h"
#include "MeshLib/Mesh.h"
#include "NumLib/NumericsConfig.h"
#include "ProcessLib/TimeLoop.h"
......@@ -100,7 +101,7 @@ void Simulation::initializeDataStructures(
INFO("Initialize processes.");
for (auto& p : project_data->getProcesses())
{
p->initialize();
p->initialize(project_data->getMedia());
}
// Check intermediately that config parsing went fine.
......@@ -114,13 +115,13 @@ void Simulation::initializeDataStructures(
double Simulation::currentTime() const
{
auto const& time_loop = project_data->getTimeLoop();
return time_loop.currentTime();
return time_loop.currentTime()();
}
double Simulation::endTime() const
{
auto const& time_loop = project_data->getTimeLoop();
return time_loop.endTime();
return time_loop.endTime()();
}
bool Simulation::executeTimeStep()
......@@ -128,11 +129,21 @@ bool Simulation::executeTimeStep()
auto& time_loop = project_data->getTimeLoop();
if (time_loop.currentTime() < time_loop.endTime())
{
return time_loop.executeTimeStep();
auto const result = time_loop.executeTimeStep();
if (time_loop.calculateNextTimeStep())
{
time_loop.outputLastTimeStep();
}
return result;
}
return false;
}
MeshLib::Mesh& Simulation::getMesh(std::string const& name)
{
return project_data->getMesh(name);
}
bool Simulation::executeSimulation()
{
INFO("Solve processes.");
......