diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d40722ebd77..5757d8230fa 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,7 +2,7 @@ "build": { "dockerfile": "Dockerfile", "args": { - "GEOS_TPL_TAG": "278-500" + "GEOS_TPL_TAG": "284-535" } }, "runArgs": [ diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b23f7e229c6..1048325b177 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -10,6 +10,7 @@ /.github/ @rrsettgast /BASELINE_NOTES.md +/.integrated_tests.yaml @CusiniM @cssherman @rrsettgast @wrtobin @castelletto1 @jhuang2601 @paveltomin /inputFiles/ @CusiniM @cssherman @jhuang2601 @rrsettgast /src/coreComponents/LvArray @rrsettgast @wrtobin @corbett5 @CusiniM /src/coreComponents/codingUtilities @rrsettgast @untereiner @corbett5 @wrtobin diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index ab76d9288e3..b34012e1d8d 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -27,7 +27,7 @@ If applicable, add screenshots to help explain your problem. **Platform (please complete the following information):** - Machine [e.g. LLNL/Quartz] - Compiler: [e.g. gcc 8.1.0] -- GEOSX Version [e.g. 0.2] +- GEOS Version [e.g. 0.2] **Additional context** Add any other context about the problem here. diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 8b3405614f7..80debbb603a 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -5,6 +5,10 @@ on: BUILD_AND_TEST_CLI_ARGS: required: false type: string + BUILD_SHARED_LIBS: + required: false + type: string + default: 'ON' BUILD_TYPE: required: false type: string @@ -51,6 +55,9 @@ on: required: false type: string default: '' + HOST_ARCH: + required: false + type: string RUNS_ON: required: true type: string @@ -63,7 +70,11 @@ on: type: string LOCAL_BASELINE_DIR: required: false - type: string + type: string + BUILD_GENERATOR: + required: false + type: string + default: '--ninja' secrets: GOOGLE_CLOUD_GCP: required: false @@ -100,20 +111,26 @@ jobs: - id: 'auth' if: ${{ inputs.GCP_BUCKET || inputs.USE_SCCACHE }} - uses: 'google-github-actions/auth@v2.1.3' + uses: 'google-github-actions/auth@v2.1.5' with: credentials_json: '${{ secrets.GOOGLE_CLOUD_GCP }}' create_credentials_file: true - name: 'Set up Cloud SDK' if: inputs.GCP_BUCKET - uses: 'google-github-actions/setup-gcloud@v2.1.0' + uses: 'google-github-actions/setup-gcloud@v2.1.1' with: version: '>= 363.0.0' - name: Print environment run: printenv + - name: Setup QEMU for ${{ inputs.HOST_ARCH }} emulation + if: ${{ inputs.HOST_ARCH }} + uses: docker/setup-qemu-action@v3 + with: + platforms: ${{ inputs.HOST_ARCH }} + - name: Build, test, deploy. run: | # Those two bash arrays will be populated depending on the required options, @@ -136,6 +153,10 @@ jobs: script_args+=(--nproc ${NPROC}) fi + if [[ -n "${{ inputs.BUILD_GENERATOR }}" ]]; then + script_args+=(${{ inputs.BUILD_GENERATOR }}) + fi + docker_args+=(${{ inputs.DOCKER_RUN_ARGS }}) COMMIT=${{ github.event.pull_request.head.sha }} @@ -184,6 +205,7 @@ jobs: docker_args+=(-e ENABLE_HYPRE=${ENABLE_HYPRE:-OFF}) docker_args+=(-e ENABLE_HYPRE_DEVICE=${ENABLE_HYPRE_DEVICE:-CPU}) docker_args+=(-e ENABLE_TRILINOS=${ENABLE_TRILINOS:-ON}) + docker_args+=(-e GEOS_BUILD_SHARED_LIBS=${{ inputs.BUILD_SHARED_LIBS }}) docker_args+=(--cap-add=SYS_PTRACE --rm) diff --git a/.github/workflows/ci_tests.yml b/.github/workflows/ci_tests.yml index 4d860f4c80c..bf62843e07b 100644 --- a/.github/workflows/ci_tests.yml +++ b/.github/workflows/ci_tests.yml @@ -5,7 +5,7 @@ on: branches: - develop pull_request: - types: [opened, synchronize, reopened, edited] + types: [opened, synchronize, reopened] workflow_dispatch: # Cancels in-progress workflows for a PR when updated @@ -149,14 +149,17 @@ jobs: - name: Ubuntu (20.04, gcc 9.4.0, open-mpi 4.0.3) CMAKE_BUILD_TYPE: Release DOCKER_REPOSITORY: geosx/ubuntu20.04-gcc9 + BUILD_SHARED_LIBS: ON - name: Ubuntu debug (20.04, gcc 10.5.0, open-mpi 4.0.3) - github codespaces CMAKE_BUILD_TYPE: Debug DOCKER_REPOSITORY: geosx/ubuntu20.04-gcc10 + BUILD_SHARED_LIBS: ON - name: Ubuntu (20.04, gcc 10.5.0, open-mpi 4.0.3) - github codespaces CMAKE_BUILD_TYPE: Release DOCKER_REPOSITORY: geosx/ubuntu20.04-gcc10 + BUILD_SHARED_LIBS: ON - name: Ubuntu (22.04, gcc 11.4.0, open-mpi 4.1.2) CMAKE_BUILD_TYPE: Release @@ -164,28 +167,31 @@ jobs: ENABLE_HYPRE: ON ENABLE_TRILINOS: OFF GCP_BUCKET: geosx/ubuntu22.04-gcc11 + BUILD_SHARED_LIBS: ON - name: Ubuntu (22.04, gcc 12.3.0, open-mpi 4.1.2) CMAKE_BUILD_TYPE: Release DOCKER_REPOSITORY: geosx/ubuntu22.04-gcc12 ENABLE_HYPRE: ON ENABLE_TRILINOS: OFF + BUILD_SHARED_LIBS: ON - name: Ubuntu (22.04, clang 15.0.7, open-mpi 4.1.2) CMAKE_BUILD_TYPE: Release DOCKER_REPOSITORY: geosx/ubuntu22.04-clang15 ENABLE_HYPRE: ON ENABLE_TRILINOS: OFF + BUILD_SHARED_LIBS: ON uses: ./.github/workflows/build_and_test.yml with: + BUILD_SHARED_LIBS: ${{ matrix.BUILD_SHARED_LIBS }} CMAKE_BUILD_TYPE: ${{ matrix.CMAKE_BUILD_TYPE }} DOCKER_IMAGE_TAG: ${{ needs.is_not_draft_pull_request.outputs.DOCKER_IMAGE_TAG }} DOCKER_REPOSITORY: ${{ matrix.DOCKER_REPOSITORY }} ENABLE_HYPRE: ${{ matrix.ENABLE_HYPRE }} ENABLE_TRILINOS: ${{ matrix.ENABLE_TRILINOS }} GCP_BUCKET: ${{ matrix.GCP_BUCKET }} - HOST_CONFIG: ${{ matrix.HOST_CONFIG }} RUNS_ON: ubuntu-22.04 secrets: inherit @@ -244,6 +250,8 @@ jobs: ENABLE_TRILINOS: OFF GCP_BUCKET: geosx/ubuntu22.04-gcc11 RUNS_ON: Runner_4core_16GB + REQUIRED_LABEL: "ci: run code coverage" + # mac_builds: # needs: @@ -269,6 +277,7 @@ jobs: - name: Ubuntu CUDA debug (20.04, clang 10.0.0 + gcc 9.4.0, open-mpi 4.0.3, cuda-11.8.89) BUILD_AND_TEST_CLI_ARGS: "--build-exe-only --no-install-schema" CMAKE_BUILD_TYPE: Debug + BUILD_GENERATOR: "--ninja" DOCKER_REPOSITORY: geosx/ubuntu20.04-clang10.0.0-cuda11.8.89 ENABLE_HYPRE_DEVICE: CUDA ENABLE_HYPRE: ON @@ -282,6 +291,7 @@ jobs: - name: Ubuntu CUDA (20.04, clang 10.0.0 + gcc 9.4.0, open-mpi 4.0.3, cuda-11.8.89) BUILD_AND_TEST_CLI_ARGS: "--no-install-schema" CMAKE_BUILD_TYPE: Release + BUILD_GENERATOR: "--ninja" DOCKER_REPOSITORY: geosx/ubuntu20.04-clang10.0.0-cuda11.8.89 ENABLE_HYPRE_DEVICE: CUDA ENABLE_HYPRE: ON @@ -291,28 +301,51 @@ jobs: DOCKER_RUN_ARGS: "--cpus=8 --memory=256g --runtime=nvidia --gpus all -v /etc/pki/ca-trust/source/anchors/:/usr/local/share/ca-certificates/llnl:ro" DOCKER_CERTS_DIR: "/usr/local/share/ca-certificates" DOCKER_CERTS_UPDATE_COMMAND: "update-ca-certificates" + + - name: Rockylinux CUDA (8, clang 17.0.6, cuda 12.5.1) + BUILD_AND_TEST_CLI_ARGS: "--no-install-schema" + CMAKE_BUILD_TYPE: Release + BUILD_GENERATOR: "--ninja" + ENABLE_HYPRE_DEVICE: CUDA + ENABLE_HYPRE: ON + ENABLE_TRILINOS: OFF + DOCKER_REPOSITORY: geosx/rockylinux8-clang17-cuda12.5 + RUNS_ON: streak + NPROC: 8 + DOCKER_RUN_ARGS: "--cpus=8 --memory=256g --runtime=nvidia --gpus all -v /etc/pki/ca-trust/source/anchors/:/usr/local/share/ca-certificates/llnl:ro" + DOCKER_CERTS_DIR: "/usr/local/share/ca-certificates" + DOCKER_CERTS_UPDATE_COMMAND: "update-ca-trust" - # compiler error in ElasticFirstOrderWaveEquationSEMKernel::StressComputation::launch in call to FE_TYPE::computeFirstOrderStiffnessTermX - # - name: Rockylinux (8, clang 17.0.6, cuda 12.5) - # BUILD_AND_TEST_CLI_ARGS: "--no-run-unit-tests --no-install-schema" - # CMAKE_BUILD_TYPE: Release - # DOCKER_REPOSITORY: geosx/rockylinux8-clang17-cuda12.5 - # RUNS_ON: streak2 - # NPROC: 2 - # DOCKER_RUN_ARGS: "--cpus=1 --memory=128g --runtime=nvidia -v /etc/pki/ca-trust/source/anchors/:/etc/pki/ca-trust/source/anchors/llnl:ro" - # DOCKER_CERTS_DIR: "/etc/pki/ca-trust/source/anchors" - # DOCKER_CERTS_UPDATE_COMMAND: "update-ca-trust" - - # compiler error in ElasticFirstOrderWaveEquationSEMKernel::StressComputation::launch in call to FE_TYPE::computeFirstOrderStiffnessTermX - # - name: Rockylinux (8, gcc 8.5, cuda 12.5) - # BUILD_AND_TEST_CLI_ARGS: "--no-run-unit-tests --no-install-schema" - # CMAKE_BUILD_TYPE: Release - # DOCKER_REPOSITORY: geosx/rockylinux8-gcc8-cuda12.5 - # RUNS_ON: streak2 - # NPROC: 2 - # DOCKER_RUN_ARGS: "--cpus=1 --memory=128g --runtime=nvidia -v /etc/pki/ca-trust/source/anchors/:/etc/pki/ca-trust/source/anchors/llnl:ro" - # DOCKER_CERTS_DIR: "/etc/pki/ca-trust/source/anchors" - # DOCKER_CERTS_UPDATE_COMMAND: "update-ca-trust" + - name: Rockylinux CUDA (8, gcc 8.5, cuda 12.5.1) + BUILD_AND_TEST_CLI_ARGS: "--no-run-unit-tests --no-install-schema" + CMAKE_BUILD_TYPE: Release + BUILD_GENERATOR: "--ninja" + ENABLE_HYPRE_DEVICE: CUDA + ENABLE_HYPRE: ON + ENABLE_TRILINOS: OFF + DOCKER_REPOSITORY: geosx/rockylinux8-gcc8-cuda12.5 + RUNS_ON: streak2 + NPROC: 8 + DOCKER_RUN_ARGS: "--cpus=8 --memory=128g --runtime=nvidia -v /etc/pki/ca-trust/source/anchors/:/etc/pki/ca-trust/source/anchors/llnl:ro" + DOCKER_CERTS_DIR: "/etc/pki/ca-trust/source/anchors" + DOCKER_CERTS_UPDATE_COMMAND: "update-ca-trust" + + - name: Pangea 3 (AlmaLinux 8.8, gcc 9.4.0, open-mpi 4.1.2, cuda 11.5.0, openblas 0.3.10) + BUILD_AND_TEST_CLI_ARGS: "--build-exe-only --no-install-schema" + CMAKE_BUILD_TYPE: Release + BUILD_GENERATOR: "--makefile" + DOCKER_REPOSITORY: geosx/pangea3-almalinux8-gcc9.4-openmpi4.1.2-cuda11.5.0-openblas0.3.18 + HOST_CONFIG: host-configs/TOTAL/pangea3-gcc8.4.1-openmpi-4.1.2-wave-solver.cmake + ENABLE_HYPRE_DEVICE: CUDA + ENABLE_HYPRE: ON + ENABLE_TRILINOS: OFF + HOST_ARCH: ppc64le + RUNS_ON: streak2 + NPROC: 8 + DOCKER_RUN_ARGS: "--cpus=8 --memory=128g -v /etc/pki/ca-trust/source/anchors/:/etc/pki/ca-trust/source/anchors/llnl:ro" + DOCKER_CERTS_DIR: "/etc/pki/ca-trust/source/anchors" + DOCKER_CERTS_UPDATE_COMMAND: "update-ca-trust" + # Below this line, jobs that deploy to Google Cloud. @@ -320,6 +353,7 @@ jobs: with: BUILD_AND_TEST_CLI_ARGS: ${{ matrix.BUILD_AND_TEST_CLI_ARGS }} CMAKE_BUILD_TYPE: ${{ matrix.CMAKE_BUILD_TYPE }} + BUILD_GENERATOR: ${{ matrix.BUILD_GENERATOR }} DOCKER_CERTS_DIR: ${{ matrix.DOCKER_CERTS_DIR }} DOCKER_CERTS_UPDATE_COMMAND: ${{ matrix.DOCKER_CERTS_UPDATE_COMMAND }} DOCKER_IMAGE_TAG: ${{ needs.is_not_draft_pull_request.outputs.DOCKER_IMAGE_TAG }} @@ -329,6 +363,7 @@ jobs: ENABLE_HYPRE: ${{ matrix.ENABLE_HYPRE }} ENABLE_TRILINOS: ${{ matrix.ENABLE_TRILINOS }} GCP_BUCKET: ${{ matrix.GCP_BUCKET }} + HOST_ARCH: ${{ matrix.HOST_ARCH }} HOST_CONFIG: ${{ matrix.HOST_CONFIG }} NPROC: ${{ matrix.NPROC }} RUNS_ON: ${{ matrix.RUNS_ON }} diff --git a/.gitignore b/.gitignore index d00a78b3725..8b641c28a31 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ /Debug/ uberenv_libs spack-*.txt +/src/docs/sphinx/datastructure *~ __pycache__ diff --git a/.integrated_tests.yaml b/.integrated_tests.yaml index 14a5dd73076..2d289765a28 100644 --- a/.integrated_tests.yaml +++ b/.integrated_tests.yaml @@ -1,7 +1,7 @@ baselines: bucket: geosx - baseline: integratedTests/baseline_integratedTests-pr3197-6679-a003f43 + baseline: integratedTests/baseline_integratedTests-pr2878-8188-ed2ded2 allow_fail: all: '' - streak: pennyShapedToughnessDominated_smoke_01,pennyShapedViscosityDominated_smoke_01,pknViscosityDominated_smoke_01 + streak: '' diff --git a/.readthedocs.yml b/.readthedocs.yml index 16bd2dc1fc5..5f3f5d49dbf 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -15,6 +15,8 @@ build: nodejs: "16" python: "3.10" jobs: + pre_build: + - python3 scripts/SchemaToRSTDocumentation.py -s src/coreComponents/schema/schema.xsd -o src/docs/sphinx post_install: - npm install -g npm@9.8.1 - npm install -g @mermaid-js/mermaid-cli@10.3.1 @@ -30,9 +32,12 @@ python: sphinx: configuration: src/conf.py builder: html + fail_on_warning: true + # Optionally build your docs in additional formats such as PDF and ePub -formats: all +formats: + - pdf submodules: include: diff --git a/BASELINE_NOTES.md b/BASELINE_NOTES.md index be5e9d7d934..65cd8d82bd9 100644 --- a/BASELINE_NOTES.md +++ b/BASELINE_NOTES.md @@ -6,11 +6,71 @@ This file is designed to track changes to the integrated test baselines. Any developer who updates the baseline ID in the .integrated_tests.yaml file is expected to create an entry in this file with the pull request number, date, and their justification for rebaselining. These notes should be in reverse-chronological order, and use the following time format: (YYYY-MM-DD). -PR 3197 (2024-08-07) -==================== -Separation of contact and friction laws. +PR #2878 (2024-10-17) +===================== +Sorted region cellBlocks names alphabetically. Therefore affected ordering of: faceManager/elemSubRegionList, nodeManager/elemList, nodeManager/elemSubRegionList, SurfaceElementSubRegion::fractureElementsToCellSubRegions, field::perforation::reservoirElementSubregion. + +PR #3364( 2024-10-15) +===================== +Enable reservoir+wells+contact mechanics. Rebaseline needed because of 'allowNegativePressure' flag added for wells. + +PR #3364( 2024-10-01) +===================== +Separate mass and volume residuals for output in compositional flow solver. Baseline update because of minor numerical diffs. + +PR #3149( 2024-09-30) +===================== +Added new field "writeCSV" + +PR #3163 (2024-09-20) +===================== +Added new fields (krylovStrongestTol, adaptiveGamma, adaptiveExponent) to the LinearSolverParameters for adaptive tolerances. + +PR #3338 (2024-09-19) +====================== +Updated time-stepping logic. Rebaseline due to new input parameter and minor numerical diffs. + +PR #3217 (2024-09-16) +====================== +ALM slip and open modes with relative tests. + +PR #3318 (2024-09-12) +====================== +Modified SeismicityRate poroelastic case. + +PR #3322 (2024-09-06) +====================== +Print out fracture state for contact model. Rebaseline the corresponding cases. + +PR #3302 (2024-09-05) +====================== +Added restartcheks to hydrofrac cases and reduced time of cases that were too long. + +PR #3135 (2024-09-04) +====================== +Temperature dependent single phase thermal conductivity. Rebaseline all thermal cases. + +PR #3294 (2024-09-01) +====================== +Re-enable enforcement of wave propagation integrated test pass. + +PR #3300 (2024-08-28) +====================== +Re-enable floating point exceptions. Rebaseline due to minor changing default value of maxRelativeCompDensChange from 1.7976931348623157e+308 to 1.7976931348623157e+208. + +PR #3283 (2024-08-22) +====================== +Reuse computeSinglePhaseFlux. Rebaseline due to minor numerical diffs. + +PR #3249 (2024-08-14) +====================== +Two initialization options for poromechanical models. Rebaseline the corresponding cases. + +PR #3278 (2024-08-12) +====================== +Renamed GEOSX to GEOS in enternal mesh import, so rebaseline to change these names is the baselines. -PR #3202 (2024-08-03) +202 (2024-08-03) ====================== Acoustic VTI tests needed rebaselining after update in source and receiver location algorithm. @@ -18,167 +78,134 @@ PR #3215 (2024-07-23) ====================== Changed the default value for massCreation and name of the wrapper. - PR #3194 (2024-07-22) ====================== Check pore volume for all element types, also check that default aperture > 0. Rebaseline for modified tests. No real results change. - PR #3213 (2024-07-12) ====================== Added baselines for new tests on Dirichlet boundary conditions for multiphase flow. - PR #3194 (2024-07-10) ====================== Use aperture table in poromechanics with conforming fractures. Rebaseline the corresponding cases. - PR #3006 (2024-07-01) ====================== Added baselines for new tests. Relaxing tolerances for singlePhasePoromechanics_FaultModel_smoke. - PR #3196 (2024-06-28) ====================== Added isLaggingFractureStencilWeightsUpdate to hydrofracture solve. Rebaseline because of the new input. - PR #3177 (2024-06-28) ====================== Added logLevel to TimeHistoryOutput. Rebaseline because of the new input flag. - PR #3181 (2024-06-25) ====================== Decouple debug matrix output from logLevel. Rebaseline because of the new input flag. - PR #3142 (2024-06-20) ====================== Adding output of total strain. Rebaseline because of new inclusion of strain in output. - PR #3170 (2024-06-19) ====================== Fix tutorial example for thermal debonding wellbore problem. Test case modified. - PR #3130 (2024-06-19) ====================== New solver for contact mechanics based on the Augmented Lagrangian Method (ALM). New test case added. - PR #3160 (2024-06-18) ====================== Two experimental options for compositional flow solver. Rebaseline because of the new input flags. - PR #3165 (2024-06-18) ====================== Small bug fix. Rebaseline required due to appearance of useTotalMassEquation in well solver params. No real results change. - PR #3088 (2024-06-17) ====================== Adding temperature-dependent Solid Volumetric Heat Capacity. Rebaseline because of the parameter change in SolidInternalEnergy. - PR #3100 (2024-06-14) ====================== Adding pressure stabilization for single phase poromechanics. - PR #3133 (2024-06-14) ====================== Fix node ordering for faceElements. - PR #3021 (2024-06-13) ====================== Preparatory work for fractures + wells. New test case added. - PR #3152 (2024-06-13) ====================== Some random things. Baseline update because of the new parameter (minScalingFactor). - PR #3138 (2024-06-11) ====================== Properly sync nonlinear solver params for coupled solver. Baseline update mostly due to number of iterations change in baseline files. - PR #3140 (2024-06-11) ====================== Fixed derivative in EzrokhiBrineDensity - PR #3080 (2024-06-07) ===================== Rebaseline after adding viscoelastic wave propagator. - PR #3075 (2024-06-05) ===================== Introduce configuration tolerance. Rebaseline because of the new parameter in NonlinearSolverParameters. - PR #3120 (2024-06-05) ===================== Add missing compositionalMultiphaseFlow tests into ATS and adjust output naming. Rebaseline accordingly. - PR #3113 (2024-06-05) ===================== Add general version updateConfiguration. Rebaseline of some edfm cases is needed. - PR #3050 (2024-05-20) ===================== Spatially varying grain bulk modulus. Rebaseline of all poromechanics cases needed. - PR #3141 (2024-05-28) ===================== Test cashing baselines locally. - PR #3125 (2024-05-16) ===================== Remove field to store pressure gradient cell-wise for solvers that don't need it. - PR #2110 (2024-05-13) ===================== new field to store pressure gradient cell-wise. - PR #3060 (2024-05-13) ====================== Rebaselined after addition of elastic VTI wave propagator. - PR #4950 (2024-05-10) ====================== Added smoke tests for SeismicityRate solver in inducedSeismicity. - PR #3086 (2024-05-09) ====================== Added a presure-dependent permeability model and the transmissibility calculation in the CellElementStencil - PR #3105 (2024-05-08) ====================== Added missing derivative for temperature, hence small numerical diffs in thermal tests results and numeracal behavior - PR #2917 (2024-05-07) ====================== New fields for wellsControls: wellControls1_ConstantMassRate_table, targetMassRate, massDensity, ... - PR #3044 (2024-05-02) ====================== Removed old integratedTests submodule diff --git a/CITATION.cff b/CITATION.cff index 2a02e009860..d3e83dcea10 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -1,12 +1,12 @@ cff-version: 1.2.0 -message: "Publications that present GEOSX simulations and/or results should cite as follows:" +message: If you use this software, please cite this repository and our article in the + Journal of Open Source Software. authors: - family-names: "Settgast" given-names: "Randolph Richard" orcid: "https://orcid.org/0000-0002-2536-7867" - family-names: "Corbett" given-names: "Benjamin Curtice" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Klevtsov" given-names: "Sergey" orcid: "https://orcid.org/0000-0001-9044-1827" @@ -24,7 +24,6 @@ authors: orcid: "https://orcid.org/0000-0002-6103-4605" - family-names: "Tobin" given-names: "William" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "White" given-names: "Joshua" orcid: "https://orcid.org/0000-0003-3491-142X" @@ -42,7 +41,6 @@ authors: orcid: "https://orcid.org/0000-0002-5380-2563" - family-names: "Han" given-names: "Brian" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Gross" given-names: "Herve" orcid: "https://orcid.org/0000-0002-1747-2018" @@ -51,45 +49,285 @@ authors: orcid: "https://orcid.org/0000-0002-8833-9425" - family-names: "Mazuyer" given-names: "Antoine" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Besset" given-names: "Julien" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Citrain" given-names: "Aurelien" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Vargas" given-names: "Arturo" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Cremon" given-names: "Matthias" orcid: "https://orcid.org/0000-0001-7458-6401" - family-names: "Hao" given-names: "Yue" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Khait" given-names: "Mark" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Lacoste" given-names: "Xavier" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Semnani" given-names: "Shabnam" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Frambati" given-names: "Stefano" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "N'diaye" given-names: "Mamadou" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Nguyen" given-names: "Sy-Tuan" - orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: "Morgan" given-names: "Hannah Mairs" - orcid: "https://orcid.org/0000-0000-0000-0000" +- family-names: "Crook" + given-names: "Cameron Mikel" +- family-names: "Jin" + given-names: "Tao" +- family-names: "Froehly" + given-names: "Algiane" +- family-names: "Homel" + given-names: "Michael" +- family-names: "Magri" + given-names: "Victor Paludetto" +- family-names: "Ju" + given-names: "Isaac" +- family-names: "Rey" + given-names: "Mel" +- family-names: "Povolny" + given-names: "Stefan" +- family-names: "Wu" + given-names: "Hui" +- family-names: "Bui" + given-names: "Quan" +- family-names: "Tang" + given-names: "Hewei" +- family-names: "Camargo" + given-names: "Julia T." +- family-names: "Chourdakis" + given-names: "Gerasimos" +- family-names: "Hui" + given-names: "Wu" +- family-names: "Ren" + given-names: "Guotong" +- family-names: "Yang" + given-names: "Li" +- family-names: "Taeho" + given-names: "Kim" +- family-names: "Waziri" + given-names: "Sohail" +- family-names: "White" + given-names: "Chris" +- family-names: "Fu" + given-names: "Pengcheng" +- family-names: "Lapene" + given-names: "Alexandre" +- family-names: "Thierry" + given-names: "Bertrand" +- family-names: "Fei" + given-names: "Fan" +- family-names: "Meng" + given-names: "Jie" +- family-names: "Untereiner" + given-names: "Lionel" +- family-names: "Raji" + given-names: "Oluwatobi Quadri" +- family-names: "Karimi-Fard" + given-names: "Mohammad" +- family-names: "Fuss" + given-names: "Gaetan" +- family-names: "Huang" + given-names: "Jixian" +- family-names: "Frigo" + given-names: "Matteo" +- family-names: "Martinez" + given-names: "Paloma" +- family-names: "Kachuma" + given-names: "Dickson" +- family-names: "Tomin" + given-names: "Pavel" +- family-names: "Byer" + given-names: "Thomas James" +- family-names: "Ligocki" + given-names: "Terry" +- family-names: "Shovkun" + given-names: "Igor" +- family-names: "Bader" + given-names: "Milad" +- family-names: "Robinson" + given-names: "Peter B." +- family-names: "Hasanzade" + given-names: "Rasim" +- family-names: "Dudes" + given-names: "Arnaud" +- family-names: "Costa" + given-names: "Andre Macieira Braga" +- family-names: "Pellerin" + given-names: "Jeanne" +- family-names: "Aronson" + given-names: "Ryan" +- family-names: "Osei-Kuffuor" + given-names: "Daniel" title: "GEOSX" -version: 0.2.1 -doi: 10.5281/zenodo.7151032 -date-released: 2022-10-06 +version: 1.1.0 +doi: "10.5281/zenodo.7151031" +date-released: 2024-09-14 url: "https://github.com/GEOS-DEV/GEOS" +preferred-citation: + authors: + - family-names: Settgast + given-names: Randolph R. + orcid: "https://orcid.org/0000-0002-2536-7867" + - family-names: Aronson + given-names: Ryan M. + orcid: "https://orcid.org/0009-0004-0785-5084" + - family-names: Besset + given-names: Julien R. + - family-names: Borio + given-names: Andrea + orcid: "https://orcid.org/0000-0003-2016-5403" + - family-names: Bui + given-names: Quan M. + orcid: "https://orcid.org/0000-0003-2648-0586" + - family-names: Byer + given-names: Thomas J. + - family-names: Castelletto + given-names: Nicola + orcid: "https://orcid.org/0000-0001-6816-6769" + - family-names: Citrain + given-names: Aurélien + orcid: "https://orcid.org/0009-0006-3742-1425" + - family-names: Corbett + given-names: Benjamin C. + orcid: "https://orcid.org/0009-0008-7108-9651" + - family-names: Corbett + given-names: James + - family-names: Cordier + given-names: Philippe + orcid: "https://orcid.org/0000-0002-6439-9263" + - family-names: Cremon + given-names: Matthias A. + orcid: "https://orcid.org/0000-0001-7458-6401" + - family-names: Crook + given-names: Cameron M. + orcid: "https://orcid.org/0000-0002-5366-6418" + - family-names: Cusini + given-names: Matteo + orcid: "https://orcid.org/0000-0002-6024-861X" + - family-names: Fei + given-names: Fan + orcid: "https://orcid.org/0000-0001-7273-4458" + - family-names: Frambati + given-names: Stefano + orcid: "https://orcid.org/0000-0003-0683-1203" + - family-names: Franc + given-names: Jacques + orcid: "https://orcid.org/0000-0002-8833-9425" + - family-names: Franceschini + given-names: Andrea + orcid: "https://orcid.org/0000-0003-4395-5125" + - family-names: Frigo + given-names: Matteo + orcid: "https://orcid.org/0000-0001-8150-1090" + - family-names: Fu + given-names: Pengcheng + orcid: "https://orcid.org/0000-0002-7408-3350" + - family-names: Gazzola + given-names: Thomas + orcid: "https://orcid.org/0000-0002-6103-4605" + - family-names: Gross + given-names: Herve + orcid: "https://orcid.org/0000-0002-1747-2018" + - family-names: Hamon + given-names: Francois + orcid: "https://orcid.org/0000-0001-8229-963X" + - family-names: Han + given-names: Brian M. + orcid: "https://orcid.org/0009-0002-8549-7644" + - family-names: Hao + given-names: Yue + orcid: "https://orcid.org/0000-0002-4543-8618" + - family-names: Hasanzade + given-names: Rasim + - family-names: Homel + given-names: Michael + orcid: "https://orcid.org/0000-0002-0399-0092" + - family-names: Huang + given-names: Jian + orcid: "https://orcid.org/0000-0002-5380-2563" + - family-names: Jin + given-names: Tao + orcid: "https://orcid.org/0000-0001-6658-8941" + - family-names: Ju + given-names: Isaac + orcid: "https://orcid.org/0000-0003-4110-7472" + - family-names: Kachuma + given-names: Dickson + - family-names: Karimi-Fard + given-names: Mohammad + orcid: "https://orcid.org/0000-0001-5707-165X" + - family-names: Kim + given-names: Taeho + - family-names: Klevtsov + given-names: Sergey + orcid: "https://orcid.org/0000-0001-9044-1827" + - family-names: Lapene + given-names: Alexandre + - family-names: Magri + given-names: Victor A. P. + orcid: "https://orcid.org/0000-0002-3389-523X" + - family-names: Mazuyer + given-names: Antoine + orcid: "https://orcid.org/0000-0002-0329-3385" + - family-names: N'diaye + given-names: Mamadou + - family-names: Osei-Kuffuor + given-names: Daniel + orcid: "https://orcid.org/0000-0002-6111-6205" + - family-names: Povolny + given-names: Stefan + - family-names: Ren + given-names: Guotong + orcid: "https://orcid.org/0000-0002-5821-9158" + - family-names: Semnani + given-names: Shabnam J. + - family-names: Sherman + given-names: Chris S. + orcid: "https://orcid.org/0000-0003-3550-0657" + - family-names: Rey + given-names: Melvin + - family-names: Tchelepi + given-names: Hamdi A. + orcid: "https://orcid.org/0000-0002-3084-6635" + - family-names: Tobin + given-names: William R. + orcid: "https://orcid.org/0009-0001-3960-6064" + - family-names: Tomin + given-names: Pavel + orcid: "https://orcid.org/0000-0003-4862-4288" + - family-names: Untereiner + given-names: Lionel + orcid: "https://orcid.org/0000-0002-8025-2616" + - family-names: Vargas + given-names: Arturo + orcid: "https://orcid.org/0000-0001-8001-5517" + - family-names: Waziri + given-names: Sohail + - family-names: Wen + given-names: Xianhuan + orcid: "https://orcid.org/0000-0002-6055-4553" + - family-names: White + given-names: Joshua A. + orcid: "https://orcid.org/0000-0003-3491-142X" + - family-names: Wu + given-names: Hui + orcid: "https://orcid.org/0000-0002-9575-3886" + date-published: 2024-10-10 + doi: 10.21105/joss.06973 + issn: 2475-9066 + issue: 102 + journal: Journal of Open Source Software + publisher: + name: Open Journals + start: 6973 + title: "GEOS: A performance portable multi-physics simulation + framework for subsurface applications" + type: article + url: "https://joss.theoj.org/papers/10.21105/joss.06973" + volume: 9 +title: "GEOS: A performance portable multi-physics simulation framework + for subsurface applications" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..51b8667db23 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +settgast1@llnl.gov. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000000..5d9b612c2fd --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,3 @@ +To contribute to GEOS, please refer to the [Contributing](https://geosx-geosx.readthedocs-hosted.com/en/latest/docs/sphinx/developerGuide/Contributing/index_contributing.html) section in the [GEOS developer guide](https://geosx-geosx.readthedocs-hosted.com/en/latest/docs/sphinx/developerGuide/Index.html#). + +To report a bug please open an [issue](https://github.com/GEOS-DEV/GEOS/issues) \ No newline at end of file diff --git a/COPYRIGHT b/COPYRIGHT index be5ead6e54e..75b72981c2d 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -10,7 +10,7 @@ distribution, unless otherwise stated in the file: * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved diff --git a/README.md b/README.md index 000d3b45c7d..6d4cfee25ff 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,13 @@ page for more details on the HPC, numerics, and applied engineering components of this effort. Documentation ---------------------- +------------- -Our documentation is hosted [here](https://geosx-geosx.readthedocs-hosted.com/en/latest/?). +Please visit the [Main documentation for GEOS](https://geosx-geosx.readthedocs-hosted.com/en/latest/?). +If you would like to contribute to GEOS, please see the [developer guide](https://geosx-geosx.readthedocs-hosted.com/en/latest/docs/sphinx/developerGuide/Index.html) + +If you would like to report a bug, please submit an [issue](https://github.com/GEOS-DEV/GEOS/issues/new/choose). Who develops GEOS? ------------------- diff --git a/examples/GPU/beamBending.xml b/examples/GPU/beamBending.xml index 85f7acfb6ae..755d34970e4 100644 --- a/examples/GPU/beamBending.xml +++ b/examples/GPU/beamBending.xml @@ -77,7 +77,7 @@ diff --git a/examples/ObjectCatalog/Base.hpp b/examples/ObjectCatalog/Base.hpp index ef0af4ad3fe..19ba0cb73e8 100644 --- a/examples/ObjectCatalog/Base.hpp +++ b/examples/ObjectCatalog/Base.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/examples/ObjectCatalog/Derived1.cpp b/examples/ObjectCatalog/Derived1.cpp index 1fe1dcae7c7..8f688f3d486 100644 --- a/examples/ObjectCatalog/Derived1.cpp +++ b/examples/ObjectCatalog/Derived1.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/examples/ObjectCatalog/Derived1.hpp b/examples/ObjectCatalog/Derived1.hpp index b3d04dc2cb0..49ec9755ea2 100644 --- a/examples/ObjectCatalog/Derived1.hpp +++ b/examples/ObjectCatalog/Derived1.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/examples/ObjectCatalog/Derived2.hpp b/examples/ObjectCatalog/Derived2.hpp index 06894666c02..bb06254d07e 100644 --- a/examples/ObjectCatalog/Derived2.hpp +++ b/examples/ObjectCatalog/Derived2.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/examples/ObjectCatalog/main.cpp b/examples/ObjectCatalog/main.cpp index c2fd08113d5..11452b82e93 100644 --- a/examples/ObjectCatalog/main.cpp +++ b/examples/ObjectCatalog/main.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/examples/advanced_xml_features/included/included_b.xml b/examples/advanced_xml_features/included/included_b.xml index bc052d6a51e..ba2aa87baed 100644 --- a/examples/advanced_xml_features/included/included_b.xml +++ b/examples/advanced_xml_features/included/included_b.xml @@ -30,7 +30,7 @@ diff --git a/examples/advanced_xml_features/parameters_example.xml b/examples/advanced_xml_features/parameters_example.xml index 7124be3aa8f..fa31e5d4bd3 100644 --- a/examples/advanced_xml_features/parameters_example.xml +++ b/examples/advanced_xml_features/parameters_example.xml @@ -96,7 +96,7 @@ XML Units: diff --git a/examples/advanced_xml_features/symbolic_math_example.xml b/examples/advanced_xml_features/symbolic_math_example.xml index a0a71b65547..e4d3f4942dd 100644 --- a/examples/advanced_xml_features/symbolic_math_example.xml +++ b/examples/advanced_xml_features/symbolic_math_example.xml @@ -106,7 +106,7 @@ XML Symbolic Math: diff --git a/examples/pygeosxExamples/modifyBoundaryCondition/pkn_example.xml b/examples/pygeosxExamples/modifyBoundaryCondition/pkn_example.xml index 57f6d330ce2..94db4f07eb6 100644 --- a/examples/pygeosxExamples/modifyBoundaryCondition/pkn_example.xml +++ b/examples/pygeosxExamples/modifyBoundaryCondition/pkn_example.xml @@ -70,7 +70,7 @@ diff --git a/examples/sedovKernelTest.xml b/examples/sedovKernelTest.xml index 99b79f3d217..9d56d5b7bf7 100644 --- a/examples/sedovKernelTest.xml +++ b/examples/sedovKernelTest.xml @@ -68,7 +68,7 @@ diff --git a/host-configs/LBL/cori-gcc@8.1.0.cmake b/host-configs/LBL/cori-gcc@8.1.0.cmake index 57c81ea666d..b0a50872aa3 100644 --- a/host-configs/LBL/cori-gcc@8.1.0.cmake +++ b/host-configs/LBL/cori-gcc@8.1.0.cmake @@ -26,10 +26,6 @@ set(MPIEXEC_NUMPROC_FLAG "-n" CACHE STRING "") set(GEOS_TPL_DIR "/global/project/projectdirs/m1411/GEOSX/tpls/install-cori-gcc\@8.1.0-release-24-07-20" CACHE PATH "" ) - -set(GEOS_LINK_PREPEND_FLAG "-Wl,--whole-archive" CACHE STRING "" FORCE) -set(GEOS_LINK_POSTPEND_FLAG "-Wl,--no-whole-archive" CACHE STRING "" FORCE) - set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") set(ENABLE_UNCRUSTIFY OFF CACHE BOOL "") set(ENABLE_DOXYGEN OFF CACHE BOOL "") diff --git a/host-configs/LBL/cori-intel.cmake b/host-configs/LBL/cori-intel.cmake index 52387bd7ece..f9ff8ec447c 100644 --- a/host-configs/LBL/cori-intel.cmake +++ b/host-configs/LBL/cori-intel.cmake @@ -26,9 +26,6 @@ set(MPIEXEC_NUMPROC_FLAG "-n" CACHE STRING "") set(GEOS_TPL_DIR "/global/project/projectdirs/m1411/GEOSX/tpls/install-cori-intel-release-22-07-20" CACHE PATH "" ) -set(GEOS_LINK_PREPEND_FLAG "-Wl,--whole-archive" CACHE STRING "" FORCE) -set(GEOS_LINK_POSTPEND_FLAG "-Wl,--no-whole-archive" CACHE STRING "" FORCE) - set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") set(ENABLE_UNCRUSTIFY OFF CACHE BOOL "") set(ENABLE_DOXYGEN OFF CACHE BOOL "") diff --git a/host-configs/LLNL/dane-gcc-12.cmake b/host-configs/LLNL/dane-gcc-12.cmake index c7cd796b8ab..b45d2dba68a 100644 --- a/host-configs/LLNL/dane-gcc-12.cmake +++ b/host-configs/LLNL/dane-gcc-12.cmake @@ -6,4 +6,7 @@ set(MPI_HOME /usr/tce/packages/mvapich2/mvapich2-2.3.7-gcc-12.1.1-magic CACHE PA # ATS set(ATS_ARGUMENTS "--machine slurm112" CACHE STRING "") +# This is here to note the required flags for using valgrind. These will have to be propagated to the TPL's +#set( CMAKE_CXX_FLAGS "-march=x86-64-v2 -mno-avx512f" CACHE STRING "" FORCE) + include(${CMAKE_CURRENT_LIST_DIR}/llnl-cpu-base.cmake) diff --git a/host-configs/LLNL/lassen-base.cmake b/host-configs/LLNL/lassen-base.cmake index 283755be313..b8014d6410b 100644 --- a/host-configs/LLNL/lassen-base.cmake +++ b/host-configs/LLNL/lassen-base.cmake @@ -7,7 +7,6 @@ # ############################################################################### -set( GEOS_BUILD_SHARED_LIBS ON CACHE BOOL "" ) set( GEOS_BUILD_OBJ_LIBS OFF CACHE BOOL "" ) # Fortran set(ENABLE_FORTRAN OFF CACHE BOOL "") diff --git a/host-configs/LLNL/ruby-clang-14.cmake b/host-configs/LLNL/ruby-clang-14.cmake index 39b8409ba64..c9d928a1d37 100644 --- a/host-configs/LLNL/ruby-clang-14.cmake +++ b/host-configs/LLNL/ruby-clang-14.cmake @@ -2,5 +2,9 @@ include(${CMAKE_CURRENT_LIST_DIR}/../../src/coreComponents/LvArray/host-configs/ # MPI set(MPI_HOME /usr/tce/packages/mvapich2/mvapich2-2.3.7-clang-14.0.6-magic CACHE PATH "") +# This is here to note the required flags for using valgrind. These will have to be propagated to the TPL's +#set( CMAKE_CXX_FLAGS "-march=x86-64-v2 -mno-avx512f" CACHE STRING "" FORCE) +# This is what is required for using address sanitizer. This should be put into GeosxOptions.cmake when it is incorporated into the build options. +#set( CMAKE_CXX_FLAGS "-g -O2 -fno-omit-frame-pointer -fsanitize=address" CACHE STRING "" FORCE) include(${CMAKE_CURRENT_LIST_DIR}/llnl-cpu-base.cmake) diff --git a/host-configs/ORNL/frontier-base.cmake b/host-configs/ORNL/frontier-base.cmake index c33d1fc25ba..7337dbf387b 100644 --- a/host-configs/ORNL/frontier-base.cmake +++ b/host-configs/ORNL/frontier-base.cmake @@ -31,7 +31,6 @@ set( ENABLE_DOCS OFF CACHE BOOL "" FORCE ) set( ENABLE_SCOTCH OFF CACHE BOOL "" FORCE ) set( ENABLE_SUPERLU_DIST OFF CACHE BOOL "" FORCE ) -set( GEOS_BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE ) set( GEOS_BUILD_OBJ_LIBS OFF CACHE BOOL "" FORCE ) set( CMAKE_CXX_STANDARD 17 CACHE STRING "" ) diff --git a/host-configs/Stanford/sherlock-gcc10-ompi4.1.2-openblas0.3.10.cmake b/host-configs/Stanford/sherlock-gcc10-ompi4.1.2-openblas0.3.10.cmake index 86013187457..d29b6180e11 100644 --- a/host-configs/Stanford/sherlock-gcc10-ompi4.1.2-openblas0.3.10.cmake +++ b/host-configs/Stanford/sherlock-gcc10-ompi4.1.2-openblas0.3.10.cmake @@ -40,5 +40,4 @@ set(LAPACK_LIBRARIES "${OPENBLAS_ROOT}/lib/libopenblas.so" CACHE STRING "") set(ENABLE_VALGRIND OFF CACHE BOOL "") set(ENABLE_CALIPER ON CACHE BOOL "") -set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) diff --git a/host-configs/TOTAL/pangea3-gcc8.4.1-openmpi-4.1.2-wave-solver.cmake b/host-configs/TOTAL/pangea3-gcc8.4.1-openmpi-4.1.2-wave-solver.cmake new file mode 100644 index 00000000000..46c8080ddb7 --- /dev/null +++ b/host-configs/TOTAL/pangea3-gcc8.4.1-openmpi-4.1.2-wave-solver.cmake @@ -0,0 +1,13 @@ +# hostconfig to build only the wave solver on pangea3 +# +# +include( ${CMAKE_CURRENT_LIST_DIR}/pangea3-gcc8.4.1-openmpi-4.1.2.cmake ) + +set ( GEOS_ENABLE_CONTACT OFF CACHE BOOL "" FORCE ) +set ( GEOS_ENABLE_FLUIDFLOW OFF CACHE BOOL "" FORCE ) +set ( GEOS_ENABLE_INDUCEDSEISMICITY OFF CACHE BOOL "" FORCE ) +set ( GEOS_ENABLE_MULTIPHYSICS OFF CACHE BOOL "" FORCE ) +set ( GEOS_ENABLE_SIMPLEPDE OFF CACHE BOOL "" FORCE ) +set ( GEOS_ENABLE_SOLIDMECHANICS OFF CACHE BOOL "" FORCE ) +set ( GEOS_ENABLE_SURFACEGENERATION OFF CACHE BOOL "" FORCE ) + diff --git a/host-configs/TOTAL/pangea3-gcc8.4.1-openmpi-4.1.2.cmake b/host-configs/TOTAL/pangea3-gcc8.4.1-openmpi-4.1.2.cmake index b62c1c45f74..320a7842279 100644 --- a/host-configs/TOTAL/pangea3-gcc8.4.1-openmpi-4.1.2.cmake +++ b/host-configs/TOTAL/pangea3-gcc8.4.1-openmpi-4.1.2.cmake @@ -77,7 +77,6 @@ set(ENABLE_MATHPRESSO OFF CACHE BOOL "") # Silo configure script doesn't recognize systype set(SILO_BUILD_TYPE powerpc64-unknown-linux-gnu CACHE STRING "") -set(GEOS_BUILD_SHARED_LIBS OFF CACHE BOOL "") set(ENABLE_PVTPackage ON CACHE BOOL "") set(ENABLE_CALIPER ON CACHE BOOL "") diff --git a/host-configs/apple/macOS_base.cmake b/host-configs/apple/macOS_base.cmake index e300aca41a7..836e2b15936 100644 --- a/host-configs/apple/macOS_base.cmake +++ b/host-configs/apple/macOS_base.cmake @@ -25,14 +25,16 @@ set(ENABLE_CALIPER "OFF" CACHE PATH "" FORCE ) set( BLAS_LIBRARIES ${HOMEBREW_DIR}/opt/lapack/lib/libblas.dylib CACHE PATH "" FORCE ) set( LAPACK_LIBRARIES ${HOMEBREW_DIR}/opt/lapack/lib/liblapack.dylib CACHE PATH "" FORCE ) -set(ENABLE_DOXYGEN OFF CACHE BOOL "" FORCE) -set(ENABLE_MATHPRESSO OFF CACHE BOOL "" FORCE ) -#set(GEOS_BUILD_OBJ_LIBS ON CACHE BOOL "" FORCE) +set(ENABLE_DOXYGEN ON CACHE BOOL "" FORCE) +set(ENABLE_SPHINX ON CACHE BOOL "" FORCE) +set(ENABLE_MATHPRESSO ON CACHE BOOL "" FORCE ) +set(GEOS_BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE) -#set( DOXYGEN_EXECUTABLE /usr/local/bin/doxygen CACHE PATH "" FORCE ) -#set( SPHINX_EXECUTABLE /usr/local/bin/sphinx-build CACHE PATH "" FORCE ) + +set( DOXYGEN_EXECUTABLE ${HOMEBREW_DIR}/bin/doxygen CACHE PATH "" FORCE ) +set( SPHINX_EXECUTABLE ${HOMEBREW_DIR}/opt/sphinx-doc/bin/sphinx-build CACHE PATH "" FORCE ) if(NOT ( EXISTS "${GEOS_TPL_DIR}" AND IS_DIRECTORY "${GEOS_TPL_DIR}" ) ) set(GEOS_TPL_DIR "${CMAKE_SOURCE_DIR}/../../thirdPartyLibs/install-${CONFIG_NAME}-release" CACHE PATH "" FORCE ) diff --git a/host-configs/environment.cmake b/host-configs/environment.cmake index b843c4ce9b7..001d28cb425 100644 --- a/host-configs/environment.cmake +++ b/host-configs/environment.cmake @@ -78,5 +78,9 @@ if(DEFINED ENV{LAPACK_LIBRARIES}) set(LAPACK_LIBRARIES "$ENV{LAPACK_LIBRARIES}" CACHE PATH "" FORCE) endif() +if(DEFINED ENV{GEOS_BUILD_SHARED_LIBS}) + set(GEOS_BUILD_SHARED_LIBS "$ENV{GEOS_BUILD_SHARED_LIBS}" CACHE BOOL "" FORCE) +endif() + set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) include(${CMAKE_CURRENT_LIST_DIR}/tpls.cmake) diff --git a/host-configs/quick-start-template.cmake b/host-configs/quick-start-template.cmake new file mode 100644 index 00000000000..239f52e202f --- /dev/null +++ b/host-configs/quick-start-template.cmake @@ -0,0 +1,32 @@ +set( CONFIG_NAME "quick-start" ) + +# Set compilers path +set(CMAKE_C_COMPILER "path-to-gcc/bin/gcc" CACHE PATH "") # This is typically something like /usr/bin/gcc ... or clang +set(CMAKE_CXX_COMPILER "path-to-gcc/bin/g++" CACHE PATH "") # This is typically something like /usr/bin/g++ ... or clang++ +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# Set paths to mpi +set(ENABLE_MPI ON CACHE PATH "") +set(MPI_C_COMPILER "path-to-mpi/bin/mpicc" CACHE PATH "") # This is typically something like /usr/bin/mpicc +set(MPI_CXX_COMPILER "path-to-mpi/bin/mpicxx" CACHE PATH "") # This is typically something like /usr/bin/mpicxx +set(MPIEXEC "path-to-mpi/bin/mpirun" CACHE PATH "") # This is typically something like /usr/bin/mpirun + +# Set paths to blas and lapack +set( BLAS_LIBRARIES "path-to-blas" CACHE PATH "" FORCE ) # This is typically something like /usr/lib64/libblas.so +set( LAPACK_LIBRARIES "path-to-lapack" CACHE PATH "" FORCE ) # This is typically something like /usr/lib64/liblapack.so + +# Cuda and openMP +set( ENABLE_CUDA OFF CACHE PATH "" FORCE ) +set( ENABLE_OPENMP OFF CACHE PATH "" FORCE ) + +# TPLs +set( ENABLE_TRILINOS OFF CACHE PATH "" FORCE ) +set( ENABLE_CALIPER OFF CACHE PATH "" FORCE ) +set( ENABLE_DOXYGEN OFF CACHE BOOL "" FORCE) +set( ENABLE_MATHPRESSO OFF CACHE BOOL "" FORCE ) + +if(NOT ( EXISTS "${GEOS_TPL_DIR}" AND IS_DIRECTORY "${GEOS_TPL_DIR}" ) ) + set(GEOS_TPL_DIR "${CMAKE_SOURCE_DIR}/../../thirdPartyLibs/install-${CONFIG_NAME}-release" CACHE PATH "" FORCE ) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/tpls.cmake) diff --git a/inputFiles/almContactMechanics/ALM_stickFault_base.xml b/inputFiles/almContactMechanics/ALM_stickFault_base.xml deleted file mode 100644 index 7a8c79aa7d8..00000000000 --- a/inputFiles/almContactMechanics/ALM_stickFault_base.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/inputFiles/almContactMechanics/alm.ats b/inputFiles/almContactMechanics/alm.ats deleted file mode 100644 index dc6417df533..00000000000 --- a/inputFiles/almContactMechanics/alm.ats +++ /dev/null @@ -1,19 +0,0 @@ -import os -from geos.ats.test_builder import TestDeck, RestartcheckParameters, generate_geos_tests - -restartcheck_params = {} -restartcheck_params["atol"] = 2.0E-4 -restartcheck_params["rtol"] = 1.0E-7 - -decks = [ - TestDeck( - name="ALM_stickFault_vertical_smoke", - description= - "Cube with a vertical fracture (structured grid)", - partitions=((1, 1, 1), (2, 2, 2)), - restart_step=1, - check_step=2, - restartcheck_params=RestartcheckParameters(**restartcheck_params)), -] - -generate_geos_tests(decks) diff --git a/inputFiles/compositionalMultiphaseFlow/2ph_cap_1d_ihu.xml b/inputFiles/compositionalMultiphaseFlow/2ph_cap_1d_ihu.xml index 8ca061df0c1..07a0f5d4731 100644 --- a/inputFiles/compositionalMultiphaseFlow/2ph_cap_1d_ihu.xml +++ b/inputFiles/compositionalMultiphaseFlow/2ph_cap_1d_ihu.xml @@ -69,7 +69,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/4comp_2ph_1d.xml b/inputFiles/compositionalMultiphaseFlow/4comp_2ph_1d.xml index 389f0e2a0af..bfe1ffb2914 100644 --- a/inputFiles/compositionalMultiphaseFlow/4comp_2ph_1d.xml +++ b/inputFiles/compositionalMultiphaseFlow/4comp_2ph_1d.xml @@ -72,7 +72,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/4comp_2ph_cap_1d.xml b/inputFiles/compositionalMultiphaseFlow/4comp_2ph_cap_1d.xml index 9072e840981..82da5163ad0 100644 --- a/inputFiles/compositionalMultiphaseFlow/4comp_2ph_cap_1d.xml +++ b/inputFiles/compositionalMultiphaseFlow/4comp_2ph_cap_1d.xml @@ -85,7 +85,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_direct.xml b/inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_direct.xml index 796794b741d..b5f3dc74977 100644 --- a/inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_direct.xml +++ b/inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_direct.xml @@ -67,7 +67,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_iterative.xml b/inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_iterative.xml index 68a933abd5a..5ca7d741433 100644 --- a/inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_iterative.xml +++ b/inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_iterative.xml @@ -66,7 +66,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_base.xml b/inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_base.xml index ae3ddb8c7b1..a715c16b3a2 100644 --- a/inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_base.xml +++ b/inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_base.xml @@ -37,7 +37,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/c1-ppu/c1_ppu.ats b/inputFiles/compositionalMultiphaseFlow/c1-ppu/c1_ppu.ats index 1f524c1ee75..5b68a2cb9f4 100644 --- a/inputFiles/compositionalMultiphaseFlow/c1-ppu/c1_ppu.ats +++ b/inputFiles/compositionalMultiphaseFlow/c1-ppu/c1_ppu.ats @@ -8,8 +8,8 @@ decks = [ TestDeck(name="grav_seg_c1ppu_hyst", description="Smoke test for C1-PPU (1D displacement, C1-PPU)", partitions=((1, 1, 1), (1, 1, 2)), - restart_step=87, - check_step=109, + restart_step=50, + check_step=88, restartcheck_params=RestartcheckParameters(atol=1e-4, rtol=1e-3)), ] diff --git a/inputFiles/compositionalMultiphaseFlow/c1-ppu/grav_seg_c1ppu_base.xml b/inputFiles/compositionalMultiphaseFlow/c1-ppu/grav_seg_c1ppu_base.xml index 89e2c9149b6..0ddb4a08cb2 100644 --- a/inputFiles/compositionalMultiphaseFlow/c1-ppu/grav_seg_c1ppu_base.xml +++ b/inputFiles/compositionalMultiphaseFlow/c1-ppu/grav_seg_c1ppu_base.xml @@ -44,7 +44,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/c1-ppu/grav_seg_c1ppu_hyst.xml b/inputFiles/compositionalMultiphaseFlow/c1-ppu/grav_seg_c1ppu_hyst.xml index a82c573ad0f..d47f6ff14ea 100644 --- a/inputFiles/compositionalMultiphaseFlow/c1-ppu/grav_seg_c1ppu_hyst.xml +++ b/inputFiles/compositionalMultiphaseFlow/c1-ppu/grav_seg_c1ppu_hyst.xml @@ -50,7 +50,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/co2_flux_3d.xml b/inputFiles/compositionalMultiphaseFlow/co2_flux_3d.xml index d693f1542e3..8e18675a646 100644 --- a/inputFiles/compositionalMultiphaseFlow/co2_flux_3d.xml +++ b/inputFiles/compositionalMultiphaseFlow/co2_flux_3d.xml @@ -112,7 +112,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/co2_hybrid_1d.xml b/inputFiles/compositionalMultiphaseFlow/co2_hybrid_1d.xml index b5ea99f5ff5..99e5d1ad3b0 100644 --- a/inputFiles/compositionalMultiphaseFlow/co2_hybrid_1d.xml +++ b/inputFiles/compositionalMultiphaseFlow/co2_hybrid_1d.xml @@ -75,7 +75,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/dbc/bottom_layer_SPE10/bottom_layer_SPE10_base.xml b/inputFiles/compositionalMultiphaseFlow/dbc/bottom_layer_SPE10/bottom_layer_SPE10_base.xml index 9a7515aa2e8..a1d89df6bd9 100755 --- a/inputFiles/compositionalMultiphaseFlow/dbc/bottom_layer_SPE10/bottom_layer_SPE10_base.xml +++ b/inputFiles/compositionalMultiphaseFlow/dbc/bottom_layer_SPE10/bottom_layer_SPE10_base.xml @@ -11,7 +11,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/dbc/buckleyLeverett_1d/buckleyLeverett_1d.xml b/inputFiles/compositionalMultiphaseFlow/dbc/buckleyLeverett_1d/buckleyLeverett_1d.xml index b7978a7ba52..c2cb4574d62 100755 --- a/inputFiles/compositionalMultiphaseFlow/dbc/buckleyLeverett_1d/buckleyLeverett_1d.xml +++ b/inputFiles/compositionalMultiphaseFlow/dbc/buckleyLeverett_1d/buckleyLeverett_1d.xml @@ -41,7 +41,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/dbc/buckleyLeverett_1d/buckleyLeverett_1d_DBC.xml b/inputFiles/compositionalMultiphaseFlow/dbc/buckleyLeverett_1d/buckleyLeverett_1d_DBC.xml index 980fd46f7b9..38eef01c374 100755 --- a/inputFiles/compositionalMultiphaseFlow/dbc/buckleyLeverett_1d/buckleyLeverett_1d_DBC.xml +++ b/inputFiles/compositionalMultiphaseFlow/dbc/buckleyLeverett_1d/buckleyLeverett_1d_DBC.xml @@ -47,7 +47,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/dbc/grav_seg_1d/grav_seg_1d.xml b/inputFiles/compositionalMultiphaseFlow/dbc/grav_seg_1d/grav_seg_1d.xml index 8da5b23a782..2fd8219bf3c 100755 --- a/inputFiles/compositionalMultiphaseFlow/dbc/grav_seg_1d/grav_seg_1d.xml +++ b/inputFiles/compositionalMultiphaseFlow/dbc/grav_seg_1d/grav_seg_1d.xml @@ -44,7 +44,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/dbc/grav_seg_1d/grav_seg_1d_DBC.xml b/inputFiles/compositionalMultiphaseFlow/dbc/grav_seg_1d/grav_seg_1d_DBC.xml index 283c3f5623c..ad39d37d01f 100755 --- a/inputFiles/compositionalMultiphaseFlow/dbc/grav_seg_1d/grav_seg_1d_DBC.xml +++ b/inputFiles/compositionalMultiphaseFlow/dbc/grav_seg_1d/grav_seg_1d_DBC.xml @@ -50,7 +50,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_baker_1d.xml b/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_baker_1d.xml index 30eb6334ce6..5c4ec705a2f 100644 --- a/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_baker_1d.xml +++ b/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_baker_1d.xml @@ -83,7 +83,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_corey_1d.xml b/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_corey_1d.xml index 6699f0dc120..660102cec84 100644 --- a/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_corey_1d.xml +++ b/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_corey_1d.xml @@ -78,7 +78,7 @@ diff --git a/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_corey_1d_fractured.xml b/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_corey_1d_fractured.xml index 2d0b2693a80..d8ec1d272af 100644 --- a/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_corey_1d_fractured.xml +++ b/inputFiles/compositionalMultiphaseFlow/deadoil_3ph_corey_1d_fractured.xml @@ -110,7 +110,7 @@ diff --git a/inputFiles/compositionalMultiphaseWell/benchmarks/Class09Pb3/class09_pb3_benchmark.xml b/inputFiles/compositionalMultiphaseWell/benchmarks/Class09Pb3/class09_pb3_benchmark.xml index d0c07591e87..dbc28b749b6 100644 --- a/inputFiles/compositionalMultiphaseWell/benchmarks/Class09Pb3/class09_pb3_benchmark.xml +++ b/inputFiles/compositionalMultiphaseWell/benchmarks/Class09Pb3/class09_pb3_benchmark.xml @@ -16,7 +16,7 @@ logLevel="5" file="../../../../../GEOSDATA/DataSets/Class09_p3/Johansen_faces.vtu" fieldsToImport="{ perm, poro }" - fieldNamesInGEOSX="{ rockPerm_permeability, rockPorosity_referencePorosity }" > + fieldNamesInGEOS="{ rockPerm_permeability, rockPorosity_referencePorosity }" > + fieldNamesInGEOS="{ rockPerm_permeability, rockPorosity_referencePorosity }" > + fieldNamesInGEOS="{ rockPerm_permeability, rockPorosity_referencePorosity }" > + fieldNamesInGEOS="{ rockPerm_permeability }"> + krylovWeakestTol="1e-2" + logLevel="1"/> + fieldNamesInGEOS="{ rockPerm_permeability }"> - diff --git a/inputFiles/compositionalMultiphaseWell/staircase_co2_wells_hybrid_3d.xml b/inputFiles/compositionalMultiphaseWell/staircase_co2_wells_hybrid_3d.xml index 8e51c899b98..16d7a6fc1c7 100644 --- a/inputFiles/compositionalMultiphaseWell/staircase_co2_wells_hybrid_3d.xml +++ b/inputFiles/compositionalMultiphaseWell/staircase_co2_wells_hybrid_3d.xml @@ -61,7 +61,7 @@ name="mesh1" file="staircase3d_tet_with_properties.vtu" fieldsToImport="{ FluidComposition, PERM, PORO }" - fieldNamesInGEOSX="{ globalCompFraction, rockPerm_permeability, rockPorosity_referencePorosity }" + fieldNamesInGEOS="{ globalCompFraction, rockPerm_permeability, rockPorosity_referencePorosity }" partitionRefinement="1" logLevel="2"> @@ -117,7 +117,7 @@ + maxTime="10.0"> @@ -64,7 +64,7 @@ @@ -75,8 +75,7 @@ diff --git a/inputFiles/hydraulicFracturing/kgdValidation_base.xml b/inputFiles/hydraulicFracturing/kgdValidation_base.xml index 1cb74613cac..e2d16b6d247 100644 --- a/inputFiles/hydraulicFracturing/kgdValidation_base.xml +++ b/inputFiles/hydraulicFracturing/kgdValidation_base.xml @@ -69,7 +69,7 @@ + maxTime="2.0"> @@ -52,21 +52,21 @@ diff --git a/inputFiles/hydraulicFracturing/pennyShapedToughnessDominated_base.xml b/inputFiles/hydraulicFracturing/pennyShapedToughnessDominated_base.xml index 726c70762b7..3254023c350 100644 --- a/inputFiles/hydraulicFracturing/pennyShapedToughnessDominated_base.xml +++ b/inputFiles/hydraulicFracturing/pennyShapedToughnessDominated_base.xml @@ -5,7 +5,7 @@ + maxTime="1.0" + maxCycle="10"> @@ -93,17 +94,20 @@ @@ -113,7 +117,7 @@ diff --git a/inputFiles/hydraulicFracturing/pennyShapedViscosityDominated_base.xml b/inputFiles/hydraulicFracturing/pennyShapedViscosityDominated_base.xml index 67f9e295e70..4e035594dd6 100644 --- a/inputFiles/hydraulicFracturing/pennyShapedViscosityDominated_base.xml +++ b/inputFiles/hydraulicFracturing/pennyShapedViscosityDominated_base.xml @@ -5,7 +5,7 @@ + maxTime="1.0" + maxCycle="10"> @@ -93,17 +94,21 @@ @@ -113,7 +118,7 @@ diff --git a/inputFiles/hydraulicFracturing/pknViscosityDominated_base.xml b/inputFiles/hydraulicFracturing/pknViscosityDominated_base.xml index 5b8685a5e55..366c146ea90 100644 --- a/inputFiles/hydraulicFracturing/pknViscosityDominated_base.xml +++ b/inputFiles/hydraulicFracturing/pknViscosityDominated_base.xml @@ -5,7 +5,7 @@ + maxTime="4" + maxCycle="10"> @@ -107,13 +108,13 @@ targetExactTimestep="0" target="/Outputs/curveOutput"/> - + target="/Outputs/vtkOutput"/> --> diff --git a/inputFiles/hydraulicFracturing/scripts/hydrofractureFigure.py b/inputFiles/hydraulicFracturing/scripts/hydrofractureFigure.py index 739777bb336..c8cb897201d 100644 --- a/inputFiles/hydraulicFracturing/scripts/hydrofractureFigure.py +++ b/inputFiles/hydraulicFracturing/scripts/hydrofractureFigure.py @@ -5,10 +5,10 @@ import sys -def getParametersFromXML(xmlFilePath): - prefix = "../../../../../../../inputFiles/hydraulicFracturing/" +def getParametersFromXML( geosDir, xmlFilePrefix): + prefix = geosDir + "/inputFiles/hydraulicFracturing/" - tree = ElementTree.parse(prefix + xmlFilePath + "_benchmark.xml") + tree = ElementTree.parse(prefix + xmlFilePrefix + "_benchmark.xml") maxTime = float(tree.find('Events').get('maxTime')) @@ -22,7 +22,7 @@ def getParametersFromXML(xmlFilePath): found_source = True if found_source: break - tree = ElementTree.parse(prefix + xmlFilePath + "_base.xml") + tree = ElementTree.parse(prefix + xmlFilePrefix + "_base.xml") elasticParam = tree.find('Constitutive/ElasticIsotropic') @@ -30,30 +30,30 @@ def getParametersFromXML(xmlFilePath): fluidDensity = float(tree.find('Constitutive/CompressibleSinglePhaseFluid').get('defaultDensity')) - if xmlFilePath == 'kgdToughnessDominated' or xmlFilePath == 'kgdViscosityDominated': + if xmlFilePrefix == 'kgdToughnessDominated' or xmlFilePrefix == 'kgdViscosityDominated': youngModulus = float(elasticParam.get('defaultYoungModulus')) poissonRatio = float(elasticParam.get('defaultPoissonRatio')) injectionRate = -2.0 * float(tree.find('FieldSpecifications/SourceFlux').get('scale')) / fluidDensity - tree = ElementTree.parse(prefix + xmlFilePath + "_base.xml") + tree = ElementTree.parse(prefix + xmlFilePrefix + "_base.xml") toughness = float(tree.find('Solvers/SurfaceGenerator').get('rockToughness')) - elif xmlFilePath == 'pennyShapedToughnessDominated' or xmlFilePath == 'pennyShapedViscosityDominated': + elif xmlFilePrefix == 'pennyShapedToughnessDominated' or xmlFilePrefix == 'pennyShapedViscosityDominated': K = float(elasticParam.get('defaultBulkModulus')) G = float(elasticParam.get('defaultShearModulus')) youngModulus = (9.0 * K * G) / (3.0 * K + G) poissonRatio = youngModulus / (2.0 * G) - 1.0 injectionRate = -4.0 * float(tree.find('FieldSpecifications/SourceFlux').get('scale')) / fluidDensity - tree = ElementTree.parse(prefix + xmlFilePath + "_benchmark.xml") + tree = ElementTree.parse(prefix + xmlFilePrefix + "_benchmark.xml") toughness = float(tree.find('Solvers/SurfaceGenerator').get('rockToughness')) - elif xmlFilePath == 'pknViscosityDominated': + elif xmlFilePrefix == 'pknViscosityDominated': K = float(elasticParam.get('defaultBulkModulus')) G = float(elasticParam.get('defaultShearModulus')) youngModulus = (9.0 * K * G) / (3.0 * K + G) poissonRatio = youngModulus / (2.0 * G) - 1.0 injectionRate = -4.0 * float(tree.find('FieldSpecifications/SourceFlux').get('scale')) / fluidDensity - tree = ElementTree.parse(prefix + xmlFilePath + "_benchmark.xml") + tree = ElementTree.parse(prefix + xmlFilePrefix + "_benchmark.xml") toughness = float(tree.find('Solvers/SurfaceGenerator').get('rockToughness')) found_core = False for elem in param: @@ -68,17 +68,17 @@ def getParametersFromXML(xmlFilePath): -def main(xmlFilePathPrefix=''): - if not xmlFilePathPrefix: - xmlFilePathPrefix = sys.argv[1] +def main( geosDir, xmlFilePrefix=''): + if not xmlFilePrefix: + xmlFilePrefix = sys.argv[1] - tMax, E, nu, KIC, mu, Q0, xSource = getParametersFromXML(xmlFilePathPrefix) + tMax, E, nu, KIC, mu, Q0, xSource = getParametersFromXML( geosDir, xmlFilePrefix) Ep = E / (1.0 - nu**2.0) t = np.arange(0.01 * tMax, tMax, 0.01 * tMax) radTimes = np.array([tMax]) - if xmlFilePathPrefix == 'kgdToughnessDominated': + if xmlFilePrefix == 'kgdToughnessDominated': hfsolns = HydrofractureSolutions.KGDSolutions() kgdFrac = hfsolns.Solutions(mu, Ep, Q0, KIC, t, radTimes, xSource) inletPressure = kgdFrac[5] @@ -86,7 +86,7 @@ def main(xmlFilePathPrefix=''): inletAperture = kgdFrac[7] lablelist = ['Asymptotic ( $\mu$ => 0, $C_{L}$ => 0 )', 'GEOSX ( $\mu$ => 0, $C_{L}$ => 0 )'] - elif xmlFilePathPrefix == 'kgdViscosityDominated': + elif xmlFilePrefix == 'kgdViscosityDominated': hfsolns = HydrofractureSolutions.KGDSolutions() kgdFrac = hfsolns.Solutions(mu, Ep, Q0, KIC, t, radTimes, xSource) inletPressure = kgdFrac[8] @@ -94,7 +94,7 @@ def main(xmlFilePathPrefix=''): inletAperture = kgdFrac[10] lablelist = ['Asymptotic ( $K_{IC}$ => 0, $C_{L}$ => 0 )', 'GEOSX ( $K_{IC}$ => 0, $C_{L}$ => 0 )'] - elif xmlFilePathPrefix == 'pennyShapedToughnessDominated': + elif xmlFilePrefix == 'pennyShapedToughnessDominated': hfsolns = HydrofractureSolutions.PennySolutions() pennyFrac = hfsolns.Solutions(mu, Ep, Q0, KIC, t, radTimes, xSource) inletPressure = pennyFrac[5] @@ -102,7 +102,7 @@ def main(xmlFilePathPrefix=''): inletAperture = pennyFrac[7] lablelist = ['Asymptotic ( $\mu$ => 0, $C_{L}$ => 0 )', 'GEOSX ( $\mu$ => 0, $C_{L}$ => 0 )'] - elif xmlFilePathPrefix == 'pennyShapedViscosityDominated': + elif xmlFilePrefix == 'pennyShapedViscosityDominated': hfsolns = HydrofractureSolutions.PennySolutions() pennyFrac = hfsolns.Solutions(mu, Ep, Q0, KIC, t, radTimes, xSource) inletPressure = pennyFrac[8] @@ -110,7 +110,7 @@ def main(xmlFilePathPrefix=''): inletAperture = pennyFrac[10] lablelist = ['Asymptotic ( $K_{IC}$ => 0, $C_{L}$ => 0 )', 'GEOSX ( $K_{IC}$ => 0, $C_{L}$ => 0 )'] - elif xmlFilePathPrefix == 'pknViscosityDominated': + elif xmlFilePrefix == 'pknViscosityDominated': pknFrac = HydrofractureSolutions.PKN_viscosityStorageDominated(E, nu, KIC, mu, Q0, t, xSource) halfLength, inletAperture, inletPressure = pknFrac.analyticalSolution() lablelist = ['Asymptotic ( $K_{IC}$ => 0, $C_{L}$ => 0 )', 'GEOSX ( $K_{IC}$ => 0, $C_{L}$ => 0 )'] diff --git a/inputFiles/hydraulicFracturing/scripts/hydrofractureQueries.py b/inputFiles/hydraulicFracturing/scripts/hydrofractureQueries.py index 4bc35027610..24a466ebcbf 100644 --- a/inputFiles/hydraulicFracturing/scripts/hydrofractureQueries.py +++ b/inputFiles/hydraulicFracturing/scripts/hydrofractureQueries.py @@ -8,8 +8,8 @@ import xml.etree.ElementTree as ElementTree -def getFracHeightFromXML(fracType): - prefix = "../../../../../../../inputFiles/hydraulicFracturing/" +def getFracHeightFromXML(fracType, geosDir): + prefix = geosDir + "/inputFiles/hydraulicFracturing/" tree = ElementTree.parse(prefix + fracType + "_benchmark.xml") @@ -36,35 +36,47 @@ def getFracHeightFromXML(fracType): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + + # Parse the command-line arguments + args = parser.parse_args() + # Load and process GEOSX results # File path + geosDir = args.geosDir + fracType = sys.argv[1] - prefix = "../../../../../../../inputFiles/hydraulicFracturing/" + prefix = geosDir + "/inputFiles/hydraulicFracturing/" hdf5File = prefix + fracType + '_output.hdf5' # Get frac height from XML file if fracType == 'kgdToughnessDominated' or fracType == 'kgdViscosityDominated' or fracType == 'pknViscosityDominated': - fracHeight = getFracHeightFromXML(fracType) + fracHeight = getFracHeightFromXML(fracType, geosDir) # Read simulation output from HDF5 file # Global Coordinate of Element Center hf = hdf5_wrapper.hdf5_wrapper(hdf5File) xl = hf['pressure elementCenter'] - xl = np.array(xl) + xl = np.asarray(xl) xcord = xl[-1, :, 0] ycord = xl[-1, :, 1] zcord = xl[-1, :, 2] tl = hf['pressure Time'] - tl = np.array(tl) + tl = np.asarray(tl) # Load pressure fpre = hf['pressure'] - fpre = np.array(fpre) + fpre = np.asarray(fpre) # Load elementAperture aper = hf['elementAperture'] - aper = np.array(aper) + aper = np.asarray(aper) # Load elementArea area = hf['elementArea'] - area = np.array(area) + area = np.asarray(area) # Find injection location ind = np.argmin(ycord) diff --git a/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_1d_smoke.xml b/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_1d_smoke.xml deleted file mode 100644 index dc6696b11b7..00000000000 --- a/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_1d_smoke.xml +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_base.xml b/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_base.xml new file mode 100644 index 00000000000..7c353e1c4b5 --- /dev/null +++ b/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_base.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_benchmark.xml b/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_benchmark.xml new file mode 100644 index 00000000000..81c26f17495 --- /dev/null +++ b/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_benchmark.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_smoke.xml b/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_smoke.xml new file mode 100644 index 00000000000..21e07439132 --- /dev/null +++ b/inputFiles/inducedSeismicity/SeismicityRate_poromechanics_smoke.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/inputFiles/inducedSeismicity/inducedSeismicity.ats b/inputFiles/inducedSeismicity/inducedSeismicity.ats index ca310081883..58a28bf9c40 100644 --- a/inputFiles/inducedSeismicity/inducedSeismicity.ats +++ b/inputFiles/inducedSeismicity/inducedSeismicity.ats @@ -9,11 +9,11 @@ curvecheck_params["curves"] = "seismicityRate" decks = [ TestDeck( - name="SeismicityRate_poromechanics_1d_smoke", + name="SeismicityRate_poromechanics_smoke", description="", - partitions=((1, 1, 1), (2, 1, 1)), - restart_step=40, - check_step=90, + partitions=((1, 1, 1), (2, 2, 2)), + restart_step=20, + check_step=30, restartcheck_params=RestartcheckParameters(atol=1e-4, rtol=1e-3)), TestDeck( name="SeismicityRate_analytical_verification_smoke", diff --git a/inputFiles/initialization/gravityInducedStress_initialization_base.xml b/inputFiles/initialization/gravityInducedStress_initialization_base.xml new file mode 100644 index 00000000000..7a9ce532b27 --- /dev/null +++ b/inputFiles/initialization/gravityInducedStress_initialization_base.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/initialization/gravityInducedStress_initialization_benchmark.xml b/inputFiles/initialization/gravityInducedStress_initialization_benchmark.xml new file mode 100644 index 00000000000..921334e6944 --- /dev/null +++ b/inputFiles/initialization/gravityInducedStress_initialization_benchmark.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/initialization/gravityInducedStress_initialization_smoke.xml b/inputFiles/initialization/gravityInducedStress_initialization_smoke.xml new file mode 100644 index 00000000000..53dfbba70e7 --- /dev/null +++ b/inputFiles/initialization/gravityInducedStress_initialization_smoke.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/initialization/initialization.ats b/inputFiles/initialization/initialization.ats new file mode 100644 index 00000000000..3bb7cf04cab --- /dev/null +++ b/inputFiles/initialization/initialization.ats @@ -0,0 +1,27 @@ +import os +from geos.ats.test_builder import TestDeck, RestartcheckParameters, generate_geos_tests + +restartcheck_params = {} +restartcheck_params["atol"] = 2.0E-4 +restartcheck_params["rtol"] = 1.0E-7 + +decks = [ + TestDeck( + name="gravityInducedStress_initialization_smoke", + description= + "model intialization with gravity induced stress", + partitions=((1, 1, 1), (2, 2, 1)), + restart_step=1, + check_step=2, + restartcheck_params=RestartcheckParameters(**restartcheck_params)), + TestDeck( + name="userdefinedStress_initialization_smoke", + description= + "model intialization with user defined tables", + partitions=((1, 1, 1), (2, 2, 1)), + restart_step=1, + check_step=2, + restartcheck_params=RestartcheckParameters(**restartcheck_params)) +] + +generate_geos_tests(decks) diff --git a/inputFiles/initialization/userTables/effectiveSigma_xx.csv b/inputFiles/initialization/userTables/effectiveSigma_xx.csv new file mode 100644 index 00000000000..a1dca328d57 --- /dev/null +++ b/inputFiles/initialization/userTables/effectiveSigma_xx.csv @@ -0,0 +1,2 @@ +-7000000.00 +0.00 diff --git a/inputFiles/initialization/userTables/effectiveSigma_yy.csv b/inputFiles/initialization/userTables/effectiveSigma_yy.csv new file mode 100644 index 00000000000..d1f4f182344 --- /dev/null +++ b/inputFiles/initialization/userTables/effectiveSigma_yy.csv @@ -0,0 +1,2 @@ +-17000000.00 +0.00 diff --git a/inputFiles/initialization/userTables/effectiveSigma_zz.csv b/inputFiles/initialization/userTables/effectiveSigma_zz.csv new file mode 100644 index 00000000000..53910c07f32 --- /dev/null +++ b/inputFiles/initialization/userTables/effectiveSigma_zz.csv @@ -0,0 +1,2 @@ +-14000000.00 +0.00 diff --git a/inputFiles/initialization/userTables/porePressure.csv b/inputFiles/initialization/userTables/porePressure.csv new file mode 100644 index 00000000000..5e92619dc6a --- /dev/null +++ b/inputFiles/initialization/userTables/porePressure.csv @@ -0,0 +1,2 @@ +10000000.00 +0.00 diff --git a/inputFiles/initialization/userTables/x.csv b/inputFiles/initialization/userTables/x.csv new file mode 100644 index 00000000000..fb1088c65aa --- /dev/null +++ b/inputFiles/initialization/userTables/x.csv @@ -0,0 +1 @@ +0.00 diff --git a/inputFiles/initialization/userTables/y.csv b/inputFiles/initialization/userTables/y.csv new file mode 100644 index 00000000000..fb1088c65aa --- /dev/null +++ b/inputFiles/initialization/userTables/y.csv @@ -0,0 +1 @@ +0.00 diff --git a/inputFiles/initialization/userTables/z.csv b/inputFiles/initialization/userTables/z.csv new file mode 100644 index 00000000000..eb40c4056f7 --- /dev/null +++ b/inputFiles/initialization/userTables/z.csv @@ -0,0 +1,2 @@ +-1000.00 +0.00 diff --git a/inputFiles/initialization/userdefinedStress_initialization_base.xml b/inputFiles/initialization/userdefinedStress_initialization_base.xml new file mode 100644 index 00000000000..7d216b2786a --- /dev/null +++ b/inputFiles/initialization/userdefinedStress_initialization_base.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/initialization/userdefinedStress_initialization_benchmark.xml b/inputFiles/initialization/userdefinedStress_initialization_benchmark.xml new file mode 100644 index 00000000000..518b4a925a5 --- /dev/null +++ b/inputFiles/initialization/userdefinedStress_initialization_benchmark.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/initialization/userdefinedStress_initialization_smoke.xml b/inputFiles/initialization/userdefinedStress_initialization_smoke.xml new file mode 100644 index 00000000000..7dd0a6a9f76 --- /dev/null +++ b/inputFiles/initialization/userdefinedStress_initialization_smoke.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_PassingCrack_smoke.xml b/inputFiles/lagrangianContactMechanics/ALM_PassingCrack_smoke.xml new file mode 100644 index 00000000000..2025d1e4e19 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_PassingCrack_smoke.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_SimpleCubes_smoke.xml b/inputFiles/lagrangianContactMechanics/ALM_SimpleCubes_smoke.xml new file mode 100644 index 00000000000..d0c48b78bdf --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_SimpleCubes_smoke.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_SingleFracCompression_benchmark.xml b/inputFiles/lagrangianContactMechanics/ALM_SingleFracCompression_benchmark.xml new file mode 100644 index 00000000000..2202aa2f739 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_SingleFracCompression_benchmark.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_SingleFracCompression_smoke.xml b/inputFiles/lagrangianContactMechanics/ALM_SingleFracCompression_smoke.xml new file mode 100644 index 00000000000..8b09acbea67 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_SingleFracCompression_smoke.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_Sneddon_benchmark.xml b/inputFiles/lagrangianContactMechanics/ALM_Sneddon_benchmark.xml new file mode 100644 index 00000000000..ba0462cbe05 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_Sneddon_benchmark.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_Sneddon_smoke.xml b/inputFiles/lagrangianContactMechanics/ALM_Sneddon_smoke.xml new file mode 100644 index 00000000000..41c125ef0e5 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_Sneddon_smoke.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_TFrac_benchmark.xml b/inputFiles/lagrangianContactMechanics/ALM_TFrac_benchmark.xml new file mode 100644 index 00000000000..8acc35c09b1 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_TFrac_benchmark.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_TFrac_smoke.xml b/inputFiles/lagrangianContactMechanics/ALM_TFrac_smoke.xml new file mode 100644 index 00000000000..c7a5bf66543 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_TFrac_smoke.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_UnstructuredCrack_benchmark.xml b/inputFiles/lagrangianContactMechanics/ALM_UnstructuredCrack_benchmark.xml new file mode 100644 index 00000000000..4a893d5dc0a --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_UnstructuredCrack_benchmark.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_UnstructuredCrack_smoke.xml b/inputFiles/lagrangianContactMechanics/ALM_UnstructuredCrack_smoke.xml new file mode 100644 index 00000000000..4b230c006ce --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_UnstructuredCrack_smoke.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_slippingFault_horizontal_smoke.xml b/inputFiles/lagrangianContactMechanics/ALM_slippingFault_horizontal_smoke.xml new file mode 100644 index 00000000000..4060a64af2e --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_slippingFault_horizontal_smoke.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ALM_slippingFault_vertical_smoke.xml b/inputFiles/lagrangianContactMechanics/ALM_slippingFault_vertical_smoke.xml new file mode 100644 index 00000000000..7beefc7386d --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/ALM_slippingFault_vertical_smoke.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_PassingCrack_smoke.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_PassingCrack_smoke.xml index 4ba2c33f6d8..cccc821fc54 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_PassingCrack_smoke.xml +++ b/inputFiles/lagrangianContactMechanics/ContactMechanics_PassingCrack_smoke.xml @@ -3,57 +3,35 @@ + name="./PassingCrack_smoke.xml"/> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + @@ -61,26 +39,23 @@ name="preFracture" target="/Solvers/SurfaceGen"/> - - - + target="/Outputs/vtkOutput"/> + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_SimpleCubes_smoke.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_SimpleCubes_smoke.xml index 74ef1533500..733a439db2e 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_SimpleCubes_smoke.xml +++ b/inputFiles/lagrangianContactMechanics/ContactMechanics_SimpleCubes_smoke.xml @@ -3,54 +3,37 @@ + name="./SimpleCubes_smoke.xml"/> + + + + + + - - - - - - - - - - - - - - - - - + + + + + @@ -74,9 +57,6 @@ targetExactTimestep="0" target="/Outputs/restartOutput"/> - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -81,7 +48,6 @@ @@ -90,6 +56,12 @@ timeFrequency="1" targetExactTimestep="0" target="/Outputs/vtkOutput"/> + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_smoke.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_Sneddon_benchmark.xml old mode 100755 new mode 100644 similarity index 75% rename from inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_smoke.xml rename to inputFiles/lagrangianContactMechanics/ContactMechanics_Sneddon_benchmark.xml index e7962f070c1..cefdf59664b --- a/inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_smoke.xml +++ b/inputFiles/lagrangianContactMechanics/ContactMechanics_Sneddon_benchmark.xml @@ -3,7 +3,7 @@ + name="./Sneddon_benchmark.xml"/> - - - - - - - + + + + + + name="./Sneddon_smoke.xml"/> - + - - - + - - - - - + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_benchmark.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_benchmark.xml index 83e9561f2c4..89e2f4854df 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_benchmark.xml +++ b/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_benchmark.xml @@ -2,60 +2,44 @@ - + - - + + targetRegions="{ Region, Fracture }"> + newtonTol="1.0e-8" + logLevel="2" + maxNumConfigurationAttempts="10" + newtonMaxIter="10" + lineSearchAction="Require" + lineSearchMaxCuts="2" + maxTimeStepCuts="2"/> - + solverType="direct" + directParallel="0" + logLevel="0"/> + + + - - - + + + + + - - - - - - + maxTime="0.2"> @@ -63,7 +47,7 @@ @@ -93,6 +77,12 @@ name="displacementHistoryOutput" timeFrequency="0.2" targetExactTimestep="0" - target="/Outputs/displacementOutput"/> + target="/Outputs/displacementOutput"/> + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_smoke.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_smoke.xml index b788e0ac183..d3a1a91319c 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_smoke.xml +++ b/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_smoke.xml @@ -2,7 +2,7 @@ - + - - - - - - - - - + + + + + + - + name="./UnstructuredCrack_benchmark.xml"/> - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_UnstructuredCrack_smoke.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_UnstructuredCrack_smoke.xml index 71b7da13653..ea9c2adfe64 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_UnstructuredCrack_smoke.xml +++ b/inputFiles/lagrangianContactMechanics/ContactMechanics_UnstructuredCrack_smoke.xml @@ -1,75 +1,38 @@ - + name="./UnstructuredCrack_smoke.xml"/> - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - @@ -90,14 +53,12 @@ targetExactTimestep="0" target="/Outputs/restartOutput"/> - + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_base.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_base.xml deleted file mode 100644 index 0c5350192c1..00000000000 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_base.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_horizontal_smoke.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_horizontal_smoke.xml index 6b59abebbbf..7584144aec3 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_horizontal_smoke.xml +++ b/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_horizontal_smoke.xml @@ -3,132 +3,64 @@ - + - - - - - - - - - - - - - - - - - + + + + + + - + + + + + - + + - + - + - - - - - - - - - - - - - + + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_vertical_smoke.xml b/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_vertical_smoke.xml index b520f3498c6..9a6ca75ddba 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_vertical_smoke.xml +++ b/inputFiles/lagrangianContactMechanics/ContactMechanics_slippingFault_vertical_smoke.xml @@ -3,107 +3,64 @@ - + - - - + + + + + + - - + + + + + - - - + + - - + - + - + + - - - - - - - - - - - - - - diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_PassingCrack_base.xml b/inputFiles/lagrangianContactMechanics/PassingCrack_base.xml similarity index 76% rename from inputFiles/lagrangianContactMechanics/ContactMechanics_PassingCrack_base.xml rename to inputFiles/lagrangianContactMechanics/PassingCrack_base.xml index c309080025d..1f38c231aa9 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_PassingCrack_base.xml +++ b/inputFiles/lagrangianContactMechanics/PassingCrack_base.xml @@ -3,22 +3,6 @@ - - - - - - - - - + diff --git a/inputFiles/lagrangianContactMechanics/PassingCrack_smoke.xml b/inputFiles/lagrangianContactMechanics/PassingCrack_smoke.xml new file mode 100644 index 00000000000..5af8f7534a5 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/PassingCrack_smoke.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_SimpleCubes_base.xml b/inputFiles/lagrangianContactMechanics/SimpleCubes_base.xml similarity index 81% rename from inputFiles/lagrangianContactMechanics/ContactMechanics_SimpleCubes_base.xml rename to inputFiles/lagrangianContactMechanics/SimpleCubes_base.xml index 690ecf823a3..32e64f498de 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_SimpleCubes_base.xml +++ b/inputFiles/lagrangianContactMechanics/SimpleCubes_base.xml @@ -3,25 +3,6 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml b/inputFiles/lagrangianContactMechanics/SingleFracCompression_base.xml old mode 100755 new mode 100644 similarity index 80% rename from inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml rename to inputFiles/lagrangianContactMechanics/SingleFracCompression_base.xml index 28b80df0368..d9da50caf95 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml +++ b/inputFiles/lagrangianContactMechanics/SingleFracCompression_base.xml @@ -4,27 +4,6 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/SingleFracCompression_smoke.xml b/inputFiles/lagrangianContactMechanics/SingleFracCompression_smoke.xml new file mode 100644 index 00000000000..a724d175616 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/SingleFracCompression_smoke.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/SlippingFault_base.xml b/inputFiles/lagrangianContactMechanics/SlippingFault_base.xml new file mode 100644 index 00000000000..5299794fe0f --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/SlippingFault_base.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/SlippingFault_horizontal_smoke.xml b/inputFiles/lagrangianContactMechanics/SlippingFault_horizontal_smoke.xml new file mode 100644 index 00000000000..2d81f9a0593 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/SlippingFault_horizontal_smoke.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/almContactMechanics/ALM_stickFault_vertical_smoke.xml b/inputFiles/lagrangianContactMechanics/SlippingFault_vertical_smoke.xml similarity index 73% rename from inputFiles/almContactMechanics/ALM_stickFault_vertical_smoke.xml rename to inputFiles/lagrangianContactMechanics/SlippingFault_vertical_smoke.xml index 4eb31ff467b..8c70450485d 100644 --- a/inputFiles/almContactMechanics/ALM_stickFault_vertical_smoke.xml +++ b/inputFiles/lagrangianContactMechanics/SlippingFault_vertical_smoke.xml @@ -3,19 +3,19 @@ - + @@ -26,7 +26,7 @@ origin="{0.0, 0.0, 0.0}" lengthVector="{0.0, 1.0, 0.0}" widthVector="{0.0, 0.0, 1.0}" - dimensions="{ 500, 200 }"/> + dimensions="{ 180, 10 }"/> + dimensions="{ 180, 10 }"/> @@ -56,20 +56,20 @@ scale="1"/> + setNames="{ xneg }"/> + setNames="{ yneg, ypos, xneg, xpos }"/> + setNames="{ zneg, zpos }"/> - + scale="-4.25e6"/> - + plotFileRoot="faultSlip_vertical"/> - + name="restartOutput"/> + diff --git a/inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_base.xml b/inputFiles/lagrangianContactMechanics/Sneddon_base.xml old mode 100755 new mode 100644 similarity index 95% rename from inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_base.xml rename to inputFiles/lagrangianContactMechanics/Sneddon_base.xml index 64b949a396e..73d61b18f6e --- a/inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_base.xml +++ b/inputFiles/lagrangianContactMechanics/Sneddon_base.xml @@ -27,18 +27,13 @@ name="FE1" order="1"/> - - - - - + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/Sneddon_smoke.xml b/inputFiles/lagrangianContactMechanics/Sneddon_smoke.xml new file mode 100644 index 00000000000..5e64b204ad1 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/Sneddon_smoke.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_base.xml b/inputFiles/lagrangianContactMechanics/TFrac_base.xml similarity index 96% rename from inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_base.xml rename to inputFiles/lagrangianContactMechanics/TFrac_base.xml index d8d82afdd12..498b09616b2 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_base.xml +++ b/inputFiles/lagrangianContactMechanics/TFrac_base.xml @@ -43,17 +43,12 @@ name="FE1" order="1"/> - - - - + diff --git a/inputFiles/lagrangianContactMechanics/TFrac_benchmark.xml b/inputFiles/lagrangianContactMechanics/TFrac_benchmark.xml new file mode 100644 index 00000000000..60f1a1f537a --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/TFrac_benchmark.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/TFrac_smoke.xml b/inputFiles/lagrangianContactMechanics/TFrac_smoke.xml new file mode 100644 index 00000000000..5ab56b69af9 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/TFrac_smoke.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/ContactMechanics_UnstructuredCrack_base.xml b/inputFiles/lagrangianContactMechanics/UnstructuredCrack_base.xml similarity index 79% rename from inputFiles/lagrangianContactMechanics/ContactMechanics_UnstructuredCrack_base.xml rename to inputFiles/lagrangianContactMechanics/UnstructuredCrack_base.xml index 4c4c2bb1379..628fd884589 100644 --- a/inputFiles/lagrangianContactMechanics/ContactMechanics_UnstructuredCrack_base.xml +++ b/inputFiles/lagrangianContactMechanics/UnstructuredCrack_base.xml @@ -3,23 +3,6 @@ - - - - - - - - - + values="{ 0.0, 2.e0 }"/> diff --git a/inputFiles/lagrangianContactMechanics/UnstructuredCrack_benchmark.xml b/inputFiles/lagrangianContactMechanics/UnstructuredCrack_benchmark.xml new file mode 100644 index 00000000000..bb32766c947 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/UnstructuredCrack_benchmark.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/UnstructuredCrack_smoke.xml b/inputFiles/lagrangianContactMechanics/UnstructuredCrack_smoke.xml new file mode 100644 index 00000000000..faf2455cbf1 --- /dev/null +++ b/inputFiles/lagrangianContactMechanics/UnstructuredCrack_smoke.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/lagrangianContactMechanics/contactMechanics.ats b/inputFiles/lagrangianContactMechanics/contactMechanics.ats index b522d942a63..bc4a2e43d0e 100644 --- a/inputFiles/lagrangianContactMechanics/contactMechanics.ats +++ b/inputFiles/lagrangianContactMechanics/contactMechanics.ats @@ -21,7 +21,7 @@ decks = [ check_step=2, restartcheck_params=RestartcheckParameters(**restartcheck_params)), TestDeck( - name="Sneddon_contactMechanics_smoke", + name="ContactMechanics_Sneddon_smoke", description= "Testing Sneddon problem using contact mechanics (structured grid)", partitions=((1, 1, 1), ), @@ -51,6 +51,45 @@ decks = [ partitions=((1, 1, 1), (2, 1, 1)), restart_step=5, check_step=10, + restartcheck_params=RestartcheckParameters(**restartcheck_params)), + TestDeck( + name="ALM_SimpleCubes_smoke", + description= + "Two cubes with a fracture separating them (structured grid)", + partitions=((1, 1, 1), (2, 2, 2), (1, 3, 3)), + restart_step=10, + check_step=20, + restartcheck_params=RestartcheckParameters(**restartcheck_params)), + TestDeck( + name="ALM_UnstructuredCrack_smoke", + description="A thick plane with a crack in it (unstructured grid)", + partitions=((1, 1, 1), ), + restart_step=1, + check_step=2, + restartcheck_params=RestartcheckParameters(**restartcheck_params)), + TestDeck( + name="ALM_Sneddon_smoke", + description= + "Testing Sneddon problem using contact mechanics (structured grid)", + partitions=((1, 1, 1), ), + restart_step=1, + check_step=2, + restartcheck_params=RestartcheckParameters(**restartcheck_params)), + TestDeck( + name="ALM_TFrac_smoke", + description= + "Two fractures intersecting at a right angle (structured grid)", + partitions=((1, 1, 1), (2, 2, 1)), + restart_step=1, + check_step=2, + restartcheck_params=RestartcheckParameters(**restartcheck_params)), + TestDeck( + name="ALM_SingleFracCompression_smoke", + description= + "Single tilted fracture subjected to remote compression (unstructured grid)", + partitions=((1, 1, 1), ), + restart_step=1, + check_step=2, restartcheck_params=RestartcheckParameters(**restartcheck_params)) ] diff --git a/inputFiles/materialPointMethod/dfgMovingGrid/mpm_dfgMovingGrid.xml b/inputFiles/materialPointMethod/dfgMovingGrid/mpm_dfgMovingGrid.xml index c55e39b4825..6086342f1b6 100644 --- a/inputFiles/materialPointMethod/dfgMovingGrid/mpm_dfgMovingGrid.xml +++ b/inputFiles/materialPointMethod/dfgMovingGrid/mpm_dfgMovingGrid.xml @@ -29,7 +29,7 @@ srun -n 4 /usr/workspace/homel1/GEOS/build-quartz-gcc@12-release/bin/geosx -i mp @@ -133,4 +133,3 @@ boundaryConditionTypes="{ 1, 0, 2, 2, 1, 1 }" - diff --git a/inputFiles/materialPointMethod/particleRepartition/mpm_particleRepartition.xml b/inputFiles/materialPointMethod/particleRepartition/mpm_particleRepartition.xml index ea4fe422923..685e4c3479e 100644 --- a/inputFiles/materialPointMethod/particleRepartition/mpm_particleRepartition.xml +++ b/inputFiles/materialPointMethod/particleRepartition/mpm_particleRepartition.xml @@ -29,7 +29,7 @@ srun -n 4 /usr/workspace/homel1/GEOS/build-quartz-gcc@12-release/bin/geosx -i mp @@ -119,4 +119,3 @@ boundaryConditionTypes="{ 0, 0, 0, 0, 0, 0 }" - diff --git a/inputFiles/materialPointMethod/singleParticle/mpm_singleParticle.xml b/inputFiles/materialPointMethod/singleParticle/mpm_singleParticle.xml index bb795ae6e7f..4fa388009a5 100644 --- a/inputFiles/materialPointMethod/singleParticle/mpm_singleParticle.xml +++ b/inputFiles/materialPointMethod/singleParticle/mpm_singleParticle.xml @@ -29,7 +29,7 @@ srun -n 1 /usr/workspace/homel1/GEOS/build-quartz-gcc@12-release/bin/geosx -i mp @@ -119,4 +119,3 @@ boundaryConditionTypes="{ 0, 0, 0, 0, 0, 0 }" - diff --git a/inputFiles/meshGeneration/multiBodyMeshGen_base.xml b/inputFiles/meshGeneration/multiBodyMeshGen_base.xml index e714f179254..51477c54cb9 100644 --- a/inputFiles/meshGeneration/multiBodyMeshGen_base.xml +++ b/inputFiles/meshGeneration/multiBodyMeshGen_base.xml @@ -41,7 +41,7 @@ diff --git a/inputFiles/multiphaseFlowFractures/deadOil_fractureMatrixFlow_edfm_base.xml b/inputFiles/multiphaseFlowFractures/deadOil_fractureMatrixFlow_edfm_base.xml index 0243011b1b0..2ac98ea35b3 100644 --- a/inputFiles/multiphaseFlowFractures/deadOil_fractureMatrixFlow_edfm_base.xml +++ b/inputFiles/multiphaseFlowFractures/deadOil_fractureMatrixFlow_edfm_base.xml @@ -90,7 +90,7 @@ diff --git a/inputFiles/phaseField/PhaseFieldFracture_DamageAndLoad.xml b/inputFiles/phaseField/PhaseFieldFracture_DamageAndLoad.xml index c24b08aa8c9..14b6d92f8a3 100644 --- a/inputFiles/phaseField/PhaseFieldFracture_DamageAndLoad.xml +++ b/inputFiles/phaseField/PhaseFieldFracture_DamageAndLoad.xml @@ -103,7 +103,7 @@ diff --git a/inputFiles/phaseField/PhaseFieldFracture_DamageOnly.xml b/inputFiles/phaseField/PhaseFieldFracture_DamageOnly.xml index e7bcab72523..99064e92686 100644 --- a/inputFiles/phaseField/PhaseFieldFracture_DamageOnly.xml +++ b/inputFiles/phaseField/PhaseFieldFracture_DamageOnly.xml @@ -105,7 +105,7 @@ diff --git a/inputFiles/phaseField/PhaseFieldFracture_Nucleation_base.xml b/inputFiles/phaseField/PhaseFieldFracture_Nucleation_base.xml index c961f5c52b3..e339684d116 100644 --- a/inputFiles/phaseField/PhaseFieldFracture_Nucleation_base.xml +++ b/inputFiles/phaseField/PhaseFieldFracture_Nucleation_base.xml @@ -67,7 +67,7 @@ diff --git a/inputFiles/phaseField/PhaseFieldFracture_SpectralSplit.xml b/inputFiles/phaseField/PhaseFieldFracture_SpectralSplit.xml index 2cb24468fd0..f7423b48112 100644 --- a/inputFiles/phaseField/PhaseFieldFracture_SpectralSplit.xml +++ b/inputFiles/phaseField/PhaseFieldFracture_SpectralSplit.xml @@ -116,7 +116,7 @@ diff --git a/inputFiles/phaseField/PhaseFieldFracture_VolDevSplit.xml b/inputFiles/phaseField/PhaseFieldFracture_VolDevSplit.xml index e077817c194..26893feb2ce 100644 --- a/inputFiles/phaseField/PhaseFieldFracture_VolDevSplit.xml +++ b/inputFiles/phaseField/PhaseFieldFracture_VolDevSplit.xml @@ -116,7 +116,7 @@ diff --git a/inputFiles/poromechanics/PoroDelftEggWellbore_base.xml b/inputFiles/poromechanics/PoroDelftEggWellbore_base.xml index 4379c94dcca..60fef34af70 100644 --- a/inputFiles/poromechanics/PoroDelftEggWellbore_base.xml +++ b/inputFiles/poromechanics/PoroDelftEggWellbore_base.xml @@ -52,7 +52,7 @@ diff --git a/inputFiles/poromechanics/PoroDruckerPragerWellbore_base.xml b/inputFiles/poromechanics/PoroDruckerPragerWellbore_base.xml index 6072828be93..2fe870777b9 100644 --- a/inputFiles/poromechanics/PoroDruckerPragerWellbore_base.xml +++ b/inputFiles/poromechanics/PoroDruckerPragerWellbore_base.xml @@ -55,7 +55,7 @@ diff --git a/inputFiles/poromechanics/PoroElasticWellbore_base.xml b/inputFiles/poromechanics/PoroElasticWellbore_base.xml index 0c1bd27ae74..635883163d1 100644 --- a/inputFiles/poromechanics/PoroElasticWellbore_base.xml +++ b/inputFiles/poromechanics/PoroElasticWellbore_base.xml @@ -50,7 +50,7 @@ diff --git a/inputFiles/poromechanics/PoroElastic_Mandel_base.xml b/inputFiles/poromechanics/PoroElastic_Mandel_base.xml index a2c25d2aa1b..d1eb25f9673 100644 --- a/inputFiles/poromechanics/PoroElastic_Mandel_base.xml +++ b/inputFiles/poromechanics/PoroElastic_Mandel_base.xml @@ -21,7 +21,7 @@ diff --git a/inputFiles/poromechanics/PoroElastic_Terzaghi_base_direct.xml b/inputFiles/poromechanics/PoroElastic_Terzaghi_base_direct.xml index aa69acd04fc..b22a64ab20a 100644 --- a/inputFiles/poromechanics/PoroElastic_Terzaghi_base_direct.xml +++ b/inputFiles/poromechanics/PoroElastic_Terzaghi_base_direct.xml @@ -47,7 +47,7 @@ diff --git a/inputFiles/poromechanics/PoroElastic_Terzaghi_base_iterative.xml b/inputFiles/poromechanics/PoroElastic_Terzaghi_base_iterative.xml index 90909cbfa39..f266af73a19 100644 --- a/inputFiles/poromechanics/PoroElastic_Terzaghi_base_iterative.xml +++ b/inputFiles/poromechanics/PoroElastic_Terzaghi_base_iterative.xml @@ -48,7 +48,7 @@ diff --git a/inputFiles/poromechanics/PoroElastic_deadoil_3ph_baker_2d_base.xml b/inputFiles/poromechanics/PoroElastic_deadoil_3ph_baker_2d_base.xml index 0d408a2dc4e..94bb5973bb2 100644 --- a/inputFiles/poromechanics/PoroElastic_deadoil_3ph_baker_2d_base.xml +++ b/inputFiles/poromechanics/PoroElastic_deadoil_3ph_baker_2d_base.xml @@ -82,7 +82,7 @@ diff --git a/inputFiles/poromechanics/PoroElastic_gravity.xml b/inputFiles/poromechanics/PoroElastic_gravity.xml index ce1a82c80c6..91c9e679224 100644 --- a/inputFiles/poromechanics/PoroElastic_gravity.xml +++ b/inputFiles/poromechanics/PoroElastic_gravity.xml @@ -81,7 +81,7 @@ diff --git a/inputFiles/poromechanics/PoroElastic_hybridHexPrism_co2_base.xml b/inputFiles/poromechanics/PoroElastic_hybridHexPrism_co2_base.xml index 865a4850f1a..85b5592eb52 100644 --- a/inputFiles/poromechanics/PoroElastic_hybridHexPrism_co2_base.xml +++ b/inputFiles/poromechanics/PoroElastic_hybridHexPrism_co2_base.xml @@ -10,7 +10,7 @@ partitionMethod="ptscotch" scale="{ 50, 50, 50 }" fieldsToImport="{ PORO, NTG, DENSITY, BULKMOD }" - fieldNamesInGEOSX="{ rockPorosity_referencePorosity, netToGross, skeleton_density, skeleton_bulkModulus }" + fieldNamesInGEOS="{ rockPorosity_referencePorosity, netToGross, skeleton_density, skeleton_bulkModulus }" file="../singlePhaseFlow/pebi3d_with_properties.vtu"/> @@ -79,7 +79,7 @@ diff --git a/inputFiles/poromechanics/PoroModifiedCamClayWellbore_base.xml b/inputFiles/poromechanics/PoroModifiedCamClayWellbore_base.xml index 39e5a33f29a..5d9149bf22e 100644 --- a/inputFiles/poromechanics/PoroModifiedCamClayWellbore_base.xml +++ b/inputFiles/poromechanics/PoroModifiedCamClayWellbore_base.xml @@ -52,7 +52,7 @@ diff --git a/inputFiles/poromechanics/PoroViscoDruckerPrager_base.xml b/inputFiles/poromechanics/PoroViscoDruckerPrager_base.xml index 301b0a41e88..58b27c73122 100644 --- a/inputFiles/poromechanics/PoroViscoDruckerPrager_base.xml +++ b/inputFiles/poromechanics/PoroViscoDruckerPrager_base.xml @@ -55,7 +55,7 @@ diff --git a/inputFiles/poromechanics/PoroViscoExtendedDruckerPrager_base.xml b/inputFiles/poromechanics/PoroViscoExtendedDruckerPrager_base.xml index c55ea123b70..7e066c4bf0d 100644 --- a/inputFiles/poromechanics/PoroViscoExtendedDruckerPrager_base.xml +++ b/inputFiles/poromechanics/PoroViscoExtendedDruckerPrager_base.xml @@ -56,7 +56,7 @@ diff --git a/inputFiles/poromechanics/PoroViscoModifiedCamClay_base.xml b/inputFiles/poromechanics/PoroViscoModifiedCamClay_base.xml index e571c953761..405d4bb3f01 100644 --- a/inputFiles/poromechanics/PoroViscoModifiedCamClay_base.xml +++ b/inputFiles/poromechanics/PoroViscoModifiedCamClay_base.xml @@ -56,7 +56,7 @@ diff --git a/inputFiles/poromechanics/faultPoroelastic_base.xml b/inputFiles/poromechanics/faultPoroelastic_base.xml index 5c69d115a5b..6b69e6836c1 100755 --- a/inputFiles/poromechanics/faultPoroelastic_base.xml +++ b/inputFiles/poromechanics/faultPoroelastic_base.xml @@ -5,7 +5,7 @@ diff --git a/inputFiles/poromechanics/nonlinearAcceleration/smallEggModel/smallEggModel.xml b/inputFiles/poromechanics/nonlinearAcceleration/smallEggModel/smallEggModel.xml index caf219bb716..277776298a8 100755 --- a/inputFiles/poromechanics/nonlinearAcceleration/smallEggModel/smallEggModel.xml +++ b/inputFiles/poromechanics/nonlinearAcceleration/smallEggModel/smallEggModel.xml @@ -69,7 +69,7 @@ file="../../../GEOSDATA/DataSets/Egg/egg_withBurdens_small.vts" regionAttribute="elementRegionMarker" fieldsToImport="{ PERM }" - fieldNamesInGEOSX="{ rockPermeability_permeability }"/> + fieldNamesInGEOS="{ rockPermeability_permeability }"/> @@ -154,22 +154,22 @@ diff --git a/inputFiles/poromechanicsFractures/ExponentialDecayPermeability_conformingFracture_base.xml b/inputFiles/poromechanicsFractures/ExponentialDecayPermeability_conformingFracture_base.xml index 7c53d0d4981..133e70876ff 100644 --- a/inputFiles/poromechanicsFractures/ExponentialDecayPermeability_conformingFracture_base.xml +++ b/inputFiles/poromechanicsFractures/ExponentialDecayPermeability_conformingFracture_base.xml @@ -82,7 +82,7 @@ + fieldNamesInGEOS="{ rockPermeability_permeability }"/> @@ -173,22 +173,22 @@ + fieldNamesInGEOS="{ rockPermeability_permeability }"/> @@ -173,22 +173,22 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/poromechanicsFractures/singlePhasePoromechanics_FaultModel_well_fim_smoke.xml b/inputFiles/poromechanicsFractures/singlePhasePoromechanics_FaultModel_well_fim_smoke.xml new file mode 100644 index 00000000000..8a0e0e30138 --- /dev/null +++ b/inputFiles/poromechanicsFractures/singlePhasePoromechanics_FaultModel_well_fim_smoke.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/poromechanicsFractures/singlePhasePoromechanics_FaultModel_well_seq_smoke.xml b/inputFiles/poromechanicsFractures/singlePhasePoromechanics_FaultModel_well_seq_smoke.xml new file mode 100644 index 00000000000..4ff5d4e8669 --- /dev/null +++ b/inputFiles/poromechanicsFractures/singlePhasePoromechanics_FaultModel_well_seq_smoke.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/poromechanicsFractures/verticalFault_ExternalMesh.vtm b/inputFiles/poromechanicsFractures/verticalFault_ExternalMesh.vtm index 14785b5f2ab..abb0265a6ca 100644 --- a/inputFiles/poromechanicsFractures/verticalFault_ExternalMesh.vtm +++ b/inputFiles/poromechanicsFractures/verticalFault_ExternalMesh.vtm @@ -5,7 +5,7 @@ name="main" file="Domain_Mesh_FaultModel.vtu" fieldsToImport="{ YoungModulus, PoissonRatio }" - fieldNamesInGEOSX="{ rock_youngModulus, rock_poissonRatio }" + fieldNamesInGEOS="{ rock_youngModulus, rock_poissonRatio }" /> diff --git a/inputFiles/relpermDriver/testRelpermDriverBCStoneII.xml b/inputFiles/relpermDriver/testRelpermDriverBCStoneII.xml index ab0c4abaaa7..80c5ab16abb 100644 --- a/inputFiles/relpermDriver/testRelpermDriverBCStoneII.xml +++ b/inputFiles/relpermDriver/testRelpermDriverBCStoneII.xml @@ -47,7 +47,7 @@ diff --git a/inputFiles/relpermDriver/testRelpermDriverTableHyst2ph.xml b/inputFiles/relpermDriver/testRelpermDriverTableHyst2ph.xml index 000003049c7..60614391abf 100644 --- a/inputFiles/relpermDriver/testRelpermDriverTableHyst2ph.xml +++ b/inputFiles/relpermDriver/testRelpermDriverTableHyst2ph.xml @@ -46,7 +46,7 @@ diff --git a/inputFiles/simplePDE/10x10x10Hex_LaplaceFEM_smoke.xml b/inputFiles/simplePDE/10x10x10Hex_LaplaceFEM_smoke.xml index eb35e4b7ccc..0709dcbfcb8 100644 --- a/inputFiles/simplePDE/10x10x10Hex_LaplaceFEM_smoke.xml +++ b/inputFiles/simplePDE/10x10x10Hex_LaplaceFEM_smoke.xml @@ -22,7 +22,7 @@ diff --git a/inputFiles/simplePDE/10x10x10Hex_LaplaceVEM_smoke.xml b/inputFiles/simplePDE/10x10x10Hex_LaplaceVEM_smoke.xml index b05378fb3ed..1c5cd08d1de 100644 --- a/inputFiles/simplePDE/10x10x10Hex_LaplaceVEM_smoke.xml +++ b/inputFiles/simplePDE/10x10x10Hex_LaplaceVEM_smoke.xml @@ -22,7 +22,7 @@ diff --git a/inputFiles/simplePDE/10x5x15Wedges_LaplaceVEM_smoke.xml b/inputFiles/simplePDE/10x5x15Wedges_LaplaceVEM_smoke.xml index 220b273e56c..fbb1ebddd32 100644 --- a/inputFiles/simplePDE/10x5x15Wedges_LaplaceVEM_smoke.xml +++ b/inputFiles/simplePDE/10x5x15Wedges_LaplaceVEM_smoke.xml @@ -22,7 +22,7 @@ diff --git a/inputFiles/simplePDE/15x5x10Tets_LaplaceVEM_smoke.xml b/inputFiles/simplePDE/15x5x10Tets_LaplaceVEM_smoke.xml index 76594883a4c..0cda8414a01 100644 --- a/inputFiles/simplePDE/15x5x10Tets_LaplaceVEM_smoke.xml +++ b/inputFiles/simplePDE/15x5x10Tets_LaplaceVEM_smoke.xml @@ -22,7 +22,7 @@ diff --git a/inputFiles/simplePDE/50x10x5Hex_LaplaceFEM_smoke.xml b/inputFiles/simplePDE/50x10x5Hex_LaplaceFEM_smoke.xml index aff5d97ec10..49913b72224 100644 --- a/inputFiles/simplePDE/50x10x5Hex_LaplaceFEM_smoke.xml +++ b/inputFiles/simplePDE/50x10x5Hex_LaplaceFEM_smoke.xml @@ -22,7 +22,7 @@ diff --git a/inputFiles/simplePDE/hybridHexPrism_LaplaceVEM_smoke.xml b/inputFiles/simplePDE/hybridHexPrism_LaplaceVEM_smoke.xml index 85f31ec5340..80e6b4d50b7 100644 --- a/inputFiles/simplePDE/hybridHexPrism_LaplaceVEM_smoke.xml +++ b/inputFiles/simplePDE/hybridHexPrism_LaplaceVEM_smoke.xml @@ -29,4 +29,3 @@ - diff --git a/inputFiles/singlePhaseFlow/3D_10x10x10_compressible_base.xml b/inputFiles/singlePhaseFlow/3D_10x10x10_compressible_base.xml index 502b8a22bd9..d9157d9b2b0 100644 --- a/inputFiles/singlePhaseFlow/3D_10x10x10_compressible_base.xml +++ b/inputFiles/singlePhaseFlow/3D_10x10x10_compressible_base.xml @@ -50,7 +50,7 @@ diff --git a/inputFiles/singlePhaseFlow/3D_10x10x10_thermalCompressible_base.xml b/inputFiles/singlePhaseFlow/3D_10x10x10_thermalCompressible_base.xml index 942ab9d95c8..1e529f1a41e 100644 --- a/inputFiles/singlePhaseFlow/3D_10x10x10_thermalCompressible_base.xml +++ b/inputFiles/singlePhaseFlow/3D_10x10x10_thermalCompressible_base.xml @@ -39,7 +39,7 @@ @@ -83,9 +83,9 @@ specificHeatCapacity="4.0e3" referenceInternalEnergy="1.1e6"/> - + defaultThermalConductivityComponents="{ 3.5, 3.5, 3.5 }"/> diff --git a/inputFiles/singlePhaseFlow/FieldCaseTutorial3_base.xml b/inputFiles/singlePhaseFlow/FieldCaseTutorial3_base.xml index d9efb08892d..6de436890ed 100644 --- a/inputFiles/singlePhaseFlow/FieldCaseTutorial3_base.xml +++ b/inputFiles/singlePhaseFlow/FieldCaseTutorial3_base.xml @@ -5,12 +5,12 @@ diff --git a/inputFiles/singlePhaseFlow/compressible_1d.xml b/inputFiles/singlePhaseFlow/compressible_1d.xml index 168809613cb..d4a937ad4b3 100644 --- a/inputFiles/singlePhaseFlow/compressible_1d.xml +++ b/inputFiles/singlePhaseFlow/compressible_1d.xml @@ -70,7 +70,7 @@ diff --git a/inputFiles/singlePhaseFlow/incompressible_1d.xml b/inputFiles/singlePhaseFlow/incompressible_1d.xml index e4f37618cd2..670099cebbf 100644 --- a/inputFiles/singlePhaseFlow/incompressible_1d.xml +++ b/inputFiles/singlePhaseFlow/incompressible_1d.xml @@ -69,7 +69,7 @@ diff --git a/inputFiles/singlePhaseFlow/incompressible_pebi3d.xml b/inputFiles/singlePhaseFlow/incompressible_pebi3d.xml index 75c3035c87e..162b2667e51 100644 --- a/inputFiles/singlePhaseFlow/incompressible_pebi3d.xml +++ b/inputFiles/singlePhaseFlow/incompressible_pebi3d.xml @@ -23,7 +23,7 @@ partitionRefinement="3" useGlobalIds="1" fieldsToImport="{ PERM, PORO, NTG }" - fieldNamesInGEOSX="{ rockPerm_permeability, rockPorosity_referencePorosity, netToGross }" + fieldNamesInGEOS="{ rockPerm_permeability, rockPorosity_referencePorosity, netToGross }" file="pebi3d_with_properties.vtu"/> @@ -68,7 +68,7 @@ diff --git a/inputFiles/singlePhaseFlow/sourceFlux_1d.xml b/inputFiles/singlePhaseFlow/sourceFlux_1d.xml index 8fdf76542f5..2cae841d4da 100644 --- a/inputFiles/singlePhaseFlow/sourceFlux_1d.xml +++ b/inputFiles/singlePhaseFlow/sourceFlux_1d.xml @@ -68,7 +68,7 @@ diff --git a/inputFiles/singlePhaseFlow/sourceFlux_2d.xml b/inputFiles/singlePhaseFlow/sourceFlux_2d.xml index a455b137720..4a0d5cf3a28 100644 --- a/inputFiles/singlePhaseFlow/sourceFlux_2d.xml +++ b/inputFiles/singlePhaseFlow/sourceFlux_2d.xml @@ -94,7 +94,7 @@ diff --git a/inputFiles/singlePhaseFlow/staircase_3d.xml b/inputFiles/singlePhaseFlow/staircase_3d.xml index 199f1a726ea..2722e20c150 100644 --- a/inputFiles/singlePhaseFlow/staircase_3d.xml +++ b/inputFiles/singlePhaseFlow/staircase_3d.xml @@ -1,6 +1,7 @@ - + + newtonMaxIter="100"/> @@ -34,7 +34,7 @@ solidInternalEnergyModelName="rockInternalEnergy_linear"/> - + - + - - - + + + + + + + @@ -125,21 +135,21 @@ setNames="{ all }" objectPath="ElementRegions/region/cb" fieldName="temperature" - scale="0"/> + scale="100"/> + scale="100"/> + scale="-20.0"/> diff --git a/inputFiles/singlePhaseFlow/thermalCompressible_2d_benchmark.xml b/inputFiles/singlePhaseFlow/thermalCompressible_2d_benchmark.xml index 68e33c33f50..c4b66910e8b 100644 --- a/inputFiles/singlePhaseFlow/thermalCompressible_2d_benchmark.xml +++ b/inputFiles/singlePhaseFlow/thermalCompressible_2d_benchmark.xml @@ -8,8 +8,8 @@ + cellBlocks="{ * }" + materialList="{ fluid, rock_linear, thermalCond_linear }"/> diff --git a/inputFiles/singlePhaseFlow/thermalCompressible_2d_smoke.xml b/inputFiles/singlePhaseFlow/thermalCompressible_2d_smoke.xml index 5fea4f7ebaa..89d35398376 100644 --- a/inputFiles/singlePhaseFlow/thermalCompressible_2d_smoke.xml +++ b/inputFiles/singlePhaseFlow/thermalCompressible_2d_smoke.xml @@ -8,8 +8,8 @@ + cellBlocks="{ * }" + materialList="{ fluid, rock_linear, thermalCond_linear }"/> diff --git a/inputFiles/singlePhaseFlow/thermalCompressible_nonLinear_2d_benchmark.xml b/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_benchmark.xml similarity index 91% rename from inputFiles/singlePhaseFlow/thermalCompressible_nonLinear_2d_benchmark.xml rename to inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_benchmark.xml index 47c273a3519..fcac937bf47 100644 --- a/inputFiles/singlePhaseFlow/thermalCompressible_nonLinear_2d_benchmark.xml +++ b/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_benchmark.xml @@ -8,8 +8,8 @@ + cellBlocks="{ * }" + materialList="{ fluid, rock_linear, thermalCond_nonLinear }"/> diff --git a/inputFiles/singlePhaseFlow/thermalCompressible_nonLinear_2d_smoke.xml b/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_smoke.xml similarity index 91% rename from inputFiles/singlePhaseFlow/thermalCompressible_nonLinear_2d_smoke.xml rename to inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_smoke.xml index e4cfc03c23b..195ceabe14c 100644 --- a/inputFiles/singlePhaseFlow/thermalCompressible_nonLinear_2d_smoke.xml +++ b/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_smoke.xml @@ -8,8 +8,8 @@ + cellBlocks="{ * }" + materialList="{ fluid, rock_linear, thermalCond_nonLinear }"/> diff --git a/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentVolumetricHeatCapacity_benchmark.xml b/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentVolumetricHeatCapacity_benchmark.xml new file mode 100644 index 00000000000..fa9af06fd2f --- /dev/null +++ b/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentVolumetricHeatCapacity_benchmark.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentVolumetricHeatCapacity_smoke.xml b/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentVolumetricHeatCapacity_smoke.xml new file mode 100644 index 00000000000..013e81c76c2 --- /dev/null +++ b/inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentVolumetricHeatCapacity_smoke.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/singlePhaseFlow/thermalSinglePhaseFlow.ats b/inputFiles/singlePhaseFlow/thermalSinglePhaseFlow.ats index cd021117e0a..886d8add60a 100644 --- a/inputFiles/singlePhaseFlow/thermalSinglePhaseFlow.ats +++ b/inputFiles/singlePhaseFlow/thermalSinglePhaseFlow.ats @@ -22,9 +22,17 @@ decks = [ check_step=20, restartcheck_params=RestartcheckParameters(**restartcheck_params)), TestDeck( - name="thermalCompressible_nonLinear_2d_smoke", + name="thermalCompressible_temperatureDependentVolumetricHeatCapacity_smoke", description= - 'non-linear thermal diffusion around a wellbore)', + 'a wellbore problem with temperature dependent volumetric heat capacity)', + partitions=((1, 1, 1), (2, 2, 1)), + restart_step=1, + check_step=2, + restartcheck_params=RestartcheckParameters(**restartcheck_params)), + TestDeck( + name="thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_smoke", + description= + 'a wellbore problem with temperature dependent thermal conductivity)', partitions=((1, 1, 1), (2, 2, 1)), restart_step=1, check_step=2, diff --git a/inputFiles/singlePhaseFlowFractures/fractureFlowWithGravity_conforming_2d_smoke.xml b/inputFiles/singlePhaseFlowFractures/fractureFlowWithGravity_conforming_2d_smoke.xml index f9ce504d5d7..9dbce69a6a6 100644 --- a/inputFiles/singlePhaseFlowFractures/fractureFlowWithGravity_conforming_2d_smoke.xml +++ b/inputFiles/singlePhaseFlowFractures/fractureFlowWithGravity_conforming_2d_smoke.xml @@ -84,7 +84,7 @@ - + diff --git a/inputFiles/solidMechanics/ExtendedDruckerPragerWellbore_base.xml b/inputFiles/solidMechanics/ExtendedDruckerPragerWellbore_base.xml index a2e0bd5cd8e..9881628d292 100644 --- a/inputFiles/solidMechanics/ExtendedDruckerPragerWellbore_base.xml +++ b/inputFiles/solidMechanics/ExtendedDruckerPragerWellbore_base.xml @@ -32,7 +32,7 @@ diff --git a/inputFiles/solidMechanics/KirschProblem_base.xml b/inputFiles/solidMechanics/KirschProblem_base.xml index 11eee1612ca..c0f724d29b0 100755 --- a/inputFiles/solidMechanics/KirschProblem_base.xml +++ b/inputFiles/solidMechanics/KirschProblem_base.xml @@ -17,7 +17,7 @@ diff --git a/inputFiles/solidMechanics/ModifiedCamClayWellbore_base.xml b/inputFiles/solidMechanics/ModifiedCamClayWellbore_base.xml index 1e216ebc48d..81ac82e3f23 100644 --- a/inputFiles/solidMechanics/ModifiedCamClayWellbore_base.xml +++ b/inputFiles/solidMechanics/ModifiedCamClayWellbore_base.xml @@ -31,7 +31,7 @@ diff --git a/inputFiles/solidMechanics/OpenWellbore.xml b/inputFiles/solidMechanics/OpenWellbore.xml index 8c7c591862d..a6dfa394f5f 100644 --- a/inputFiles/solidMechanics/OpenWellbore.xml +++ b/inputFiles/solidMechanics/OpenWellbore.xml @@ -79,7 +79,7 @@ diff --git a/inputFiles/solidMechanics/beamBending_base.xml b/inputFiles/solidMechanics/beamBending_base.xml index 83ef0821a02..764cb822641 100644 --- a/inputFiles/solidMechanics/beamBending_base.xml +++ b/inputFiles/solidMechanics/beamBending_base.xml @@ -38,12 +38,11 @@ target="/Outputs/restartOutput"/> - diff --git a/inputFiles/solidMechanics/beamBending_hybridHexPrism_smoke.xml b/inputFiles/solidMechanics/beamBending_hybridHexPrism_smoke.xml index 0c23d01b854..f0f5db09631 100644 --- a/inputFiles/solidMechanics/beamBending_hybridHexPrism_smoke.xml +++ b/inputFiles/solidMechanics/beamBending_hybridHexPrism_smoke.xml @@ -28,7 +28,7 @@ diff --git a/inputFiles/solidMechanics/benchmarks/SSLE-QS-small.xml b/inputFiles/solidMechanics/benchmarks/SSLE-QS-small.xml index 4df98119448..486f533a5bc 100644 --- a/inputFiles/solidMechanics/benchmarks/SSLE-QS-small.xml +++ b/inputFiles/solidMechanics/benchmarks/SSLE-QS-small.xml @@ -51,7 +51,7 @@ diff --git a/inputFiles/solidMechanics/benchmarks/SSLE-io.xml b/inputFiles/solidMechanics/benchmarks/SSLE-io.xml index 8a64bd59e77..5c0ecc605cf 100644 --- a/inputFiles/solidMechanics/benchmarks/SSLE-io.xml +++ b/inputFiles/solidMechanics/benchmarks/SSLE-io.xml @@ -112,7 +112,7 @@ diff --git a/inputFiles/solidMechanics/benchmarks/VerticalElasticWellbore.xml b/inputFiles/solidMechanics/benchmarks/VerticalElasticWellbore.xml index 35f4635aeb4..e17d1caa837 100644 --- a/inputFiles/solidMechanics/benchmarks/VerticalElasticWellbore.xml +++ b/inputFiles/solidMechanics/benchmarks/VerticalElasticWellbore.xml @@ -79,7 +79,7 @@ diff --git a/inputFiles/solidMechanics/elasticHollowCylinder_isotropic_smoke.xml b/inputFiles/solidMechanics/elasticHollowCylinder_isotropic_smoke.xml index 4882dd593b6..f43377dcb0b 100644 --- a/inputFiles/solidMechanics/elasticHollowCylinder_isotropic_smoke.xml +++ b/inputFiles/solidMechanics/elasticHollowCylinder_isotropic_smoke.xml @@ -10,7 +10,7 @@ diff --git a/inputFiles/solidMechanics/elasticHollowCylinder_orthotropic_smoke.xml b/inputFiles/solidMechanics/elasticHollowCylinder_orthotropic_smoke.xml index ede5290a53c..69b254072cc 100644 --- a/inputFiles/solidMechanics/elasticHollowCylinder_orthotropic_smoke.xml +++ b/inputFiles/solidMechanics/elasticHollowCylinder_orthotropic_smoke.xml @@ -10,7 +10,7 @@ diff --git a/inputFiles/solidMechanics/elasticHollowCylinder_transverseIsotropic_smoke.xml b/inputFiles/solidMechanics/elasticHollowCylinder_transverseIsotropic_smoke.xml index 96433871e09..522d21d57d6 100644 --- a/inputFiles/solidMechanics/elasticHollowCylinder_transverseIsotropic_smoke.xml +++ b/inputFiles/solidMechanics/elasticHollowCylinder_transverseIsotropic_smoke.xml @@ -10,7 +10,7 @@ diff --git a/inputFiles/solidMechanics/mechanicsWithHeterogeneousMaterials.xml b/inputFiles/solidMechanics/mechanicsWithHeterogeneousMaterials.xml index a13c81842e1..d1dfd7352b2 100644 --- a/inputFiles/solidMechanics/mechanicsWithHeterogeneousMaterials.xml +++ b/inputFiles/solidMechanics/mechanicsWithHeterogeneousMaterials.xml @@ -63,7 +63,7 @@ diff --git a/inputFiles/solidMechanics/plasticCubeReset.xml b/inputFiles/solidMechanics/plasticCubeReset.xml index 78007a7ef20..8f923860899 100644 --- a/inputFiles/solidMechanics/plasticCubeReset.xml +++ b/inputFiles/solidMechanics/plasticCubeReset.xml @@ -19,7 +19,7 @@ @@ -160,4 +160,3 @@ name="restartOutput"/> - diff --git a/inputFiles/solidMechanics/sedov_base.xml b/inputFiles/solidMechanics/sedov_base.xml index 49419832a75..fef292ad48d 100644 --- a/inputFiles/solidMechanics/sedov_base.xml +++ b/inputFiles/solidMechanics/sedov_base.xml @@ -12,7 +12,7 @@ diff --git a/inputFiles/solidMechanics/solidMechBlock.xml b/inputFiles/solidMechanics/solidMechBlock.xml index d3daec92f13..0aaf2aa0255 100644 --- a/inputFiles/solidMechanics/solidMechBlock.xml +++ b/inputFiles/solidMechanics/solidMechBlock.xml @@ -67,7 +67,7 @@ diff --git a/inputFiles/solidMechanics/viscoExtendedDruckerPrager_relaxation_base.xml b/inputFiles/solidMechanics/viscoExtendedDruckerPrager_relaxation_base.xml index a646a550529..c2e2dbf4da0 100644 --- a/inputFiles/solidMechanics/viscoExtendedDruckerPrager_relaxation_base.xml +++ b/inputFiles/solidMechanics/viscoExtendedDruckerPrager_relaxation_base.xml @@ -38,8 +38,7 @@ diff --git a/inputFiles/surfaceGeneration/DryFrac_StaticPenny_PrismElem.xml b/inputFiles/surfaceGeneration/DryFrac_StaticPenny_PrismElem.xml index ffc25136a86..f398d7beb79 100644 --- a/inputFiles/surfaceGeneration/DryFrac_StaticPenny_PrismElem.xml +++ b/inputFiles/surfaceGeneration/DryFrac_StaticPenny_PrismElem.xml @@ -84,7 +84,7 @@ diff --git a/inputFiles/thermalMultiphaseFlow/co2_thermal_obl_3d.xml b/inputFiles/thermalMultiphaseFlow/co2_thermal_obl_3d.xml index 60556a4bbe8..1fe5b4a1b17 100644 --- a/inputFiles/thermalMultiphaseFlow/co2_thermal_obl_3d.xml +++ b/inputFiles/thermalMultiphaseFlow/co2_thermal_obl_3d.xml @@ -78,7 +78,7 @@ diff --git a/inputFiles/thermalSinglePhaseFlowFractures/egsCollab_thermalFlow/egsCollab_thermalFlow_base.xml b/inputFiles/thermalSinglePhaseFlowFractures/egsCollab_thermalFlow/egsCollab_thermalFlow_base.xml index c83229e78b5..4f238dee779 100644 --- a/inputFiles/thermalSinglePhaseFlowFractures/egsCollab_thermalFlow/egsCollab_thermalFlow_base.xml +++ b/inputFiles/thermalSinglePhaseFlowFractures/egsCollab_thermalFlow/egsCollab_thermalFlow_base.xml @@ -60,9 +60,9 @@ specificHeatCapacity="4.2e6" referenceInternalEnergy="0.99"/> - + defaultThermalConductivityComponents="{ 3.81, 3.81, 3.81 }"/> diff --git a/inputFiles/thermoPoromechanicsFractures/ThermoPoroElastic_base.xml b/inputFiles/thermoPoromechanicsFractures/ThermoPoroElastic_base.xml index 1ba0e49f27f..fc20919e014 100644 --- a/inputFiles/thermoPoromechanicsFractures/ThermoPoroElastic_base.xml +++ b/inputFiles/thermoPoromechanicsFractures/ThermoPoroElastic_base.xml @@ -31,9 +31,9 @@ specificHeatCapacity="1.672e2" referenceInternalEnergy="0.001"/> - + defaultThermalConductivityComponents="{ 1, 1, 1 }"/> + fieldNamesInGEOS="{ rockPermeability_permeability }"/> @@ -236,9 +236,9 @@ specificHeatCapacity="1.672e2" referenceInternalEnergy="0.001"/> - + defaultThermalConductivityComponents="{ 10, 10, 10 }"/> diff --git a/inputFiles/triaxialDriver/triaxialDriver_base.xml b/inputFiles/triaxialDriver/triaxialDriver_base.xml index 3fb0f62fe84..efd380e39d5 100644 --- a/inputFiles/triaxialDriver/triaxialDriver_base.xml +++ b/inputFiles/triaxialDriver/triaxialDriver_base.xml @@ -139,7 +139,7 @@ diff --git a/inputFiles/wavePropagation/acous3D_Q3_firstOrder_small_base.xml b/inputFiles/wavePropagation/acous3D_Q3_firstOrder_small_base.xml index cb071a26703..e68f1e00460 100644 --- a/inputFiles/wavePropagation/acous3D_Q3_firstOrder_small_base.xml +++ b/inputFiles/wavePropagation/acous3D_Q3_firstOrder_small_base.xml @@ -32,7 +32,7 @@ diff --git a/inputFiles/wavePropagation/acous3D_Q3_small_base.xml b/inputFiles/wavePropagation/acous3D_Q3_small_base.xml index 26f0631f8fa..ee89af2f316 100644 --- a/inputFiles/wavePropagation/acous3D_Q3_small_base.xml +++ b/inputFiles/wavePropagation/acous3D_Q3_small_base.xml @@ -31,7 +31,7 @@ diff --git a/inputFiles/wavePropagation/acous3D_Q5_firstOrder_small_base.xml b/inputFiles/wavePropagation/acous3D_Q5_firstOrder_small_base.xml index 32018f54c95..4fd8f1f781e 100644 --- a/inputFiles/wavePropagation/acous3D_Q5_firstOrder_small_base.xml +++ b/inputFiles/wavePropagation/acous3D_Q5_firstOrder_small_base.xml @@ -32,7 +32,7 @@ diff --git a/inputFiles/wavePropagation/acous3D_Q5_small_base.xml b/inputFiles/wavePropagation/acous3D_Q5_small_base.xml index 0ad60b621bf..f6a8afffb11 100644 --- a/inputFiles/wavePropagation/acous3D_Q5_small_base.xml +++ b/inputFiles/wavePropagation/acous3D_Q5_small_base.xml @@ -31,7 +31,7 @@ diff --git a/inputFiles/wavePropagation/acous3D_firstOrder_small_base.xml b/inputFiles/wavePropagation/acous3D_firstOrder_small_base.xml index 90e96ffc053..8bfdbe6f218 100644 --- a/inputFiles/wavePropagation/acous3D_firstOrder_small_base.xml +++ b/inputFiles/wavePropagation/acous3D_firstOrder_small_base.xml @@ -32,7 +32,7 @@ diff --git a/inputFiles/wavePropagation/acous3D_small_base.xml b/inputFiles/wavePropagation/acous3D_small_base.xml index 694ced3e1e0..7a57de721cf 100644 --- a/inputFiles/wavePropagation/acous3D_small_base.xml +++ b/inputFiles/wavePropagation/acous3D_small_base.xml @@ -31,7 +31,7 @@ diff --git a/inputFiles/wavePropagation/acous3D_vti_smoke.xml b/inputFiles/wavePropagation/acous3D_vti_smoke.xml index ef9127fe278..4305ac12319 100644 --- a/inputFiles/wavePropagation/acous3D_vti_smoke.xml +++ b/inputFiles/wavePropagation/acous3D_vti_smoke.xml @@ -114,7 +114,7 @@ diff --git a/inputFiles/wavePropagation/benchmarks/acous3D_benchmark_base.xml b/inputFiles/wavePropagation/benchmarks/acous3D_benchmark_base.xml index d8a475ea54f..15372829ea5 100644 --- a/inputFiles/wavePropagation/benchmarks/acous3D_benchmark_base.xml +++ b/inputFiles/wavePropagation/benchmarks/acous3D_benchmark_base.xml @@ -69,7 +69,7 @@ diff --git a/inputFiles/wavePropagation/benchmarks/elas3D_benchmark_base.xml b/inputFiles/wavePropagation/benchmarks/elas3D_benchmark_base.xml index fc3b967238b..aacd50aca96 100644 --- a/inputFiles/wavePropagation/benchmarks/elas3D_benchmark_base.xml +++ b/inputFiles/wavePropagation/benchmarks/elas3D_benchmark_base.xml @@ -98,7 +98,7 @@ @@ -241,4 +241,3 @@ - diff --git a/inputFiles/wavePropagation/elas3D_DAS_smoke.xml b/inputFiles/wavePropagation/elas3D_DAS_smoke.xml index 916d9a8fc38..cac61db881f 100644 --- a/inputFiles/wavePropagation/elas3D_DAS_smoke.xml +++ b/inputFiles/wavePropagation/elas3D_DAS_smoke.xml @@ -72,7 +72,7 @@ diff --git a/inputFiles/wavePropagation/elas3D_Q3_firstOrder_small_base.xml b/inputFiles/wavePropagation/elas3D_Q3_firstOrder_small_base.xml index 9c833d44be1..aacb0be1d1b 100644 --- a/inputFiles/wavePropagation/elas3D_Q3_firstOrder_small_base.xml +++ b/inputFiles/wavePropagation/elas3D_Q3_firstOrder_small_base.xml @@ -32,7 +32,7 @@ diff --git a/inputFiles/wavePropagation/elas3D_Q3_small_base.xml b/inputFiles/wavePropagation/elas3D_Q3_small_base.xml index c8e1063beb9..13d6a186dbf 100644 --- a/inputFiles/wavePropagation/elas3D_Q3_small_base.xml +++ b/inputFiles/wavePropagation/elas3D_Q3_small_base.xml @@ -81,7 +81,7 @@ diff --git a/inputFiles/wavePropagation/elas3D_Q5_firstOrder_small_base.xml b/inputFiles/wavePropagation/elas3D_Q5_firstOrder_small_base.xml index b360569bb0e..0ce1207ed0b 100644 --- a/inputFiles/wavePropagation/elas3D_Q5_firstOrder_small_base.xml +++ b/inputFiles/wavePropagation/elas3D_Q5_firstOrder_small_base.xml @@ -32,7 +32,7 @@ diff --git a/inputFiles/wavePropagation/elas3D_Q5_small_base.xml b/inputFiles/wavePropagation/elas3D_Q5_small_base.xml index 67e137325f8..0afb065f3c3 100644 --- a/inputFiles/wavePropagation/elas3D_Q5_small_base.xml +++ b/inputFiles/wavePropagation/elas3D_Q5_small_base.xml @@ -81,7 +81,7 @@ diff --git a/inputFiles/wavePropagation/elas3D_firstOrder_small_base.xml b/inputFiles/wavePropagation/elas3D_firstOrder_small_base.xml index 7c3fa5783a6..565d48b0115 100644 --- a/inputFiles/wavePropagation/elas3D_firstOrder_small_base.xml +++ b/inputFiles/wavePropagation/elas3D_firstOrder_small_base.xml @@ -32,7 +32,7 @@ diff --git a/inputFiles/wavePropagation/elas3D_small_base.xml b/inputFiles/wavePropagation/elas3D_small_base.xml index 2f79d894055..3233345e59a 100644 --- a/inputFiles/wavePropagation/elas3D_small_base.xml +++ b/inputFiles/wavePropagation/elas3D_small_base.xml @@ -88,7 +88,7 @@ diff --git a/inputFiles/wellbore/CasedThermoElasticWellbore_ImperfectInterfaces_base.xml b/inputFiles/wellbore/CasedThermoElasticWellbore_ImperfectInterfaces_base.xml index 4cc92cc6c6c..ae8b6baea35 100644 --- a/inputFiles/wellbore/CasedThermoElasticWellbore_ImperfectInterfaces_base.xml +++ b/inputFiles/wellbore/CasedThermoElasticWellbore_ImperfectInterfaces_base.xml @@ -202,22 +202,22 @@ - + defaultThermalConductivityComponents="{ 15, 15, 15 }"/> - + defaultThermalConductivityComponents="{ 1.0, 1.0, 1.0 }"/> - + defaultThermalConductivityComponents="{ 1.66, 1.66, 1.66 }"/> - + defaultThermalConductivityComponents="{ 1.0, 1.0, 1.0 }"/> diff --git a/inputFiles/wellbore/CasedThermoElasticWellbore_base.xml b/inputFiles/wellbore/CasedThermoElasticWellbore_base.xml index 87e49a84312..e56790eff7c 100644 --- a/inputFiles/wellbore/CasedThermoElasticWellbore_base.xml +++ b/inputFiles/wellbore/CasedThermoElasticWellbore_base.xml @@ -142,17 +142,17 @@ - + defaultThermalConductivityComponents="{ 15, 15, 15 }"/> - + defaultThermalConductivityComponents="{ 1.0, 1.0, 1.0 }"/> - + defaultThermalConductivityComponents="{ 1.66, 1.66, 1.66 }"/> @@ -265,7 +265,7 @@ fieldName="casingSolid_stress" component="2" scale="573913043.5"/> - + diff --git a/inputFiles/wellbore/DeviatedPoroElasticWellbore_Drilling_base.xml b/inputFiles/wellbore/DeviatedPoroElasticWellbore_Drilling_base.xml index 787e7e42b5b..c769ceac580 100644 --- a/inputFiles/wellbore/DeviatedPoroElasticWellbore_Drilling_base.xml +++ b/inputFiles/wellbore/DeviatedPoroElasticWellbore_Drilling_base.xml @@ -45,7 +45,7 @@ diff --git a/inputFiles/wellbore/DeviatedPoroElasticWellbore_Injection_base.xml b/inputFiles/wellbore/DeviatedPoroElasticWellbore_Injection_base.xml index dbe2957d719..d329375d8ca 100644 --- a/inputFiles/wellbore/DeviatedPoroElasticWellbore_Injection_base.xml +++ b/inputFiles/wellbore/DeviatedPoroElasticWellbore_Injection_base.xml @@ -41,7 +41,7 @@ diff --git a/inputFiles/wellbore/ThermoPoroElasticWellbore_base.xml b/inputFiles/wellbore/ThermoPoroElasticWellbore_base.xml index 20aaa9ae436..44cd4c3e971 100644 --- a/inputFiles/wellbore/ThermoPoroElasticWellbore_base.xml +++ b/inputFiles/wellbore/ThermoPoroElasticWellbore_base.xml @@ -50,7 +50,7 @@ @@ -85,9 +85,9 @@ - + defaultThermalConductivityComponents="{ 6.6, 6.6, 6.6 }"/> @@ -161,6 +161,7 @@ setNames="{ zneg, zpos }"/> + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/ECP_Wellbore_geom02.xml b/inputFiles/wellboreECP/ECP_Wellbore_geom02.xml new file mode 100644 index 00000000000..dcd2f82f4d2 --- /dev/null +++ b/inputFiles/wellboreECP/ECP_Wellbore_geom02.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/ECP_Wellbore_geom03.xml b/inputFiles/wellboreECP/ECP_Wellbore_geom03.xml new file mode 100644 index 00000000000..d9e0265862c --- /dev/null +++ b/inputFiles/wellboreECP/ECP_Wellbore_geom03.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/ECP_Wellbore_geom04.xml b/inputFiles/wellboreECP/ECP_Wellbore_geom04.xml new file mode 100644 index 00000000000..f89b5a7df8c --- /dev/null +++ b/inputFiles/wellboreECP/ECP_Wellbore_geom04.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/ECP_Wellbore_geom05.xml b/inputFiles/wellboreECP/ECP_Wellbore_geom05.xml new file mode 100644 index 00000000000..b6ff8b22bfc --- /dev/null +++ b/inputFiles/wellboreECP/ECP_Wellbore_geom05.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/ECP_Wellbore_geom06.xml b/inputFiles/wellboreECP/ECP_Wellbore_geom06.xml new file mode 100644 index 00000000000..46653587fab --- /dev/null +++ b/inputFiles/wellboreECP/ECP_Wellbore_geom06.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/ECP_Wellbore_probdef.xml b/inputFiles/wellboreECP/compositionalMultiphaseFlow/ECP_Wellbore_probdef.xml new file mode 100644 index 00000000000..4b426eae484 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/ECP_Wellbore_probdef.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/co2flash.txt b/inputFiles/wellboreECP/compositionalMultiphaseFlow/co2flash.txt new file mode 100644 index 00000000000..ec46548d345 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/co2flash.txt @@ -0,0 +1 @@ +FlashModel CO2Solubility 1e6 5e7 5e5 367.15 369.15 1 0 diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level01/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level01/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..d7f365e4ac3 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level01/ECP_Wellbore_gpu.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level01/launch_frontier b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level01/launch_frontier new file mode 100644 index 00000000000..550f5402193 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level01/launch_frontier @@ -0,0 +1,13 @@ +#!/bin/bash +#SBATCH -N 1 +#SBATCH -n 1 +#SBATCH -t 1:00:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-compflow-geom01.out + +echo `date` +cmd="srun -N 1 -n 1 -c 1 --gpus-per-node=1 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 1 -y 1 -z 1 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level02/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level02/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..968c53afb99 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level02/ECP_Wellbore_gpu.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level02/launch_frontier b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level02/launch_frontier new file mode 100644 index 00000000000..15379ad037a --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level02/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 1 +#SBATCH -n 4 +#SBATCH -t 2:00:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-compflow-geom02.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 1 -n 4 -c 1 --gpus-per-node=4 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 1 -y 1 -z 4 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level03/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level03/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..299faa6e0d5 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level03/ECP_Wellbore_gpu.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level03/launch_frontier b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level03/launch_frontier new file mode 100644 index 00000000000..b64624e817e --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level03/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 4 +#SBATCH -n 32 +#SBATCH -t 2:00:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-compflow-geom03.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 4 -n 32 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 2 -y 2 -z 8 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level04/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level04/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..75790211238 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level04/ECP_Wellbore_gpu.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level04/launch_frontier b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level04/launch_frontier new file mode 100644 index 00000000000..8068a2eafb8 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level04/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 32 +#SBATCH -n 256 +#SBATCH -t 2:00:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-compflow-geom04.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 32 -n 256 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 4 -y 4 -z 16 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level05/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level05/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..bb2a7a50ffe --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level05/ECP_Wellbore_gpu.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level05/launch_frontier b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level05/launch_frontier new file mode 100644 index 00000000000..7b26b022959 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level05/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 256 +#SBATCH -n 2048 +#SBATCH -t 4:00:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-compflow-geom05.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 256 -n 2048 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 8 -y 8 -z 32 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level06/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level06/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..bdfaaf7384b --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level06/ECP_Wellbore_gpu.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/level06/launch_frontier b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level06/launch_frontier new file mode 100644 index 00000000000..e8f3c24bf51 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/level06/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 2048 +#SBATCH -n 16384 +#SBATCH -t 4:00:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-compflow-geom06.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 2048 -n 16384 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 16 -y 16 -z 64 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/pvtgas.txt b/inputFiles/wellboreECP/compositionalMultiphaseFlow/pvtgas.txt new file mode 100644 index 00000000000..6442bd866a3 --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/pvtgas.txt @@ -0,0 +1,2 @@ +DensityFun SpanWagnerCO2Density 1e6 5e7 5e5 367.15 369.15 1 +ViscosityFun FenghourCO2Viscosity 1e6 5e7 5e5 367.15 369.15 1 diff --git a/inputFiles/wellboreECP/compositionalMultiphaseFlow/pvtliquid.txt b/inputFiles/wellboreECP/compositionalMultiphaseFlow/pvtliquid.txt new file mode 100644 index 00000000000..a4b549a84ca --- /dev/null +++ b/inputFiles/wellboreECP/compositionalMultiphaseFlow/pvtliquid.txt @@ -0,0 +1,2 @@ +DensityFun PhillipsBrineDensity 1e6 5e7 5e5 367.15 369.15 1 0 +ViscosityFun PhillipsBrineViscosity 0 diff --git a/inputFiles/wellboreECP/dispatch.py b/inputFiles/wellboreECP/dispatch.py new file mode 100755 index 00000000000..63249ecf0e2 --- /dev/null +++ b/inputFiles/wellboreECP/dispatch.py @@ -0,0 +1,52 @@ +#!/opt/cray/pe/python/3.11.5/bin/python + +import argparse +import os +import sys + +def main(args): + parser = argparse.ArgumentParser() + parser.add_argument('-a','--account',required=True) + parser.add_argument('-b','--binary',required=True) + parser.add_argument('-c','--caliper',default="") + parser.add_argument('-p','--problem',required=True) + parser.add_argument('-s','--script',default="launch_frontier") + parser.add_argument('-d','--dispatch',default="sbatch") + parser.add_argument('-v','--verbosity',type=int,default=0) + parser.add_argument('-l','--levels',nargs='+') + args = parser.parse_args(args) + + if args.caliper in ("default", "def", "standard", "std"): + profiling="\"-t runtime-report,max_column_width=200,calc.inclusive,output=stdout,mpi-report\"" + else: + profiling=args.caliper + + avail_problems = [ d for d in os.listdir(os.getcwd()) if os.path.isdir(d) ] + + if args.problem not in avail_problems: + print(f"Unkown problem {args.problem}") + raise SystemExit(1) + + os.chdir(os.path.join(os.getcwd(),args.problem)) + prob_dir = os.getcwd() + + levels = list( sorted( ( d for d in os.listdir(prob_dir) if os.path.isdir(d) and d.startswith("level") ), key=lambda v: int(v[5:]) ) ) + if args.levels is not None: + args.levels = [ int(l) for l in args.levels ] + levels = [ l for l in levels if int(l[5:]) in args.levels ] + + if args.verbosity: + print(f"{levels = }") + + launch = ' '.join([args.dispatch, "-A", args.account, args.script, args.binary, profiling]) + if args.verbosity: + print(f"{launch = }") + + for level in levels: + os.chdir(level) + print(os.getcwd()) + os.system(launch) + os.chdir(prob_dir) + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/inputFiles/wellboreECP/mechanics/ECP_Wellbore_probdef.xml b/inputFiles/wellboreECP/mechanics/ECP_Wellbore_probdef.xml new file mode 100644 index 00000000000..03565ea7c62 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/ECP_Wellbore_probdef.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level01/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/mechanics/level01/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..ff1e6e2786b --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level01/ECP_Wellbore_cpu.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level01/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/mechanics/level01/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..955caa1251f --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level01/ECP_Wellbore_gpu.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level01/launch_frontier b/inputFiles/wellboreECP/mechanics/level01/launch_frontier new file mode 100644 index 00000000000..1e292da4fa3 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level01/launch_frontier @@ -0,0 +1,13 @@ +#!/bin/bash +#SBATCH -N 1 +#SBATCH -n 1 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-mechanics-geom01.out + +echo `date` +cmd="srun -N 1 -n 1 -c 1 --gpus-per-node=1 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 1 -y 1 -z 1 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/mechanics/level02/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/mechanics/level02/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..0ce1e921b86 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level02/ECP_Wellbore_cpu.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level02/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/mechanics/level02/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..42b793fd141 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level02/ECP_Wellbore_gpu.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level02/launch_frontier b/inputFiles/wellboreECP/mechanics/level02/launch_frontier new file mode 100644 index 00000000000..dc892143c51 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level02/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 1 +#SBATCH -n 8 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-mechanics-geom02.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1; +ldd ${1} +cmd="srun -N 1 -n 8 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 1 -y 1 -z 8 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/mechanics/level03/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/mechanics/level03/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..f293dbac569 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level03/ECP_Wellbore_cpu.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level03/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/mechanics/level03/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..2f45ff7d84a --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level03/ECP_Wellbore_gpu.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level03/launch_frontier b/inputFiles/wellboreECP/mechanics/level03/launch_frontier new file mode 100644 index 00000000000..ec1946ef77f --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level03/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 8 +#SBATCH -n 64 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-mechanics-geom03.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 8 -n 64 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 2 -y 2 -z 16 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/mechanics/level04/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/mechanics/level04/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..0275158d56e --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level04/ECP_Wellbore_cpu.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level04/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/mechanics/level04/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..0daa1f3b2e1 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level04/ECP_Wellbore_gpu.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level04/launch_frontier b/inputFiles/wellboreECP/mechanics/level04/launch_frontier new file mode 100644 index 00000000000..30504f5a86b --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level04/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 64 +#SBATCH -n 512 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-mechanics-geom04.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 64 -n 512 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 4 -y 4 -z 32 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/mechanics/level05/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/mechanics/level05/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..e175ad452cc --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level05/ECP_Wellbore_cpu.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level05/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/mechanics/level05/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..35793297b48 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level05/ECP_Wellbore_gpu.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level05/launch_frontier b/inputFiles/wellboreECP/mechanics/level05/launch_frontier new file mode 100644 index 00000000000..d69845ff39a --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level05/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 512 +#SBATCH -n 4096 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-mechanics-geom05.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 512 -n 4096 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 8 -y 8 -z 64 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/mechanics/level06/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/mechanics/level06/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..d1901ff9371 --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level06/ECP_Wellbore_cpu.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level06/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/mechanics/level06/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..8ebe7b9238e --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level06/ECP_Wellbore_gpu.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/mechanics/level06/launch_frontier b/inputFiles/wellboreECP/mechanics/level06/launch_frontier new file mode 100644 index 00000000000..2fd2ad14edc --- /dev/null +++ b/inputFiles/wellboreECP/mechanics/level06/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 4096 +#SBATCH -n 32768 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-mechanics-geom06.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 4096 -n 32768 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 16 -y 16 -z 128 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/postprocess.py b/inputFiles/wellboreECP/postprocess.py new file mode 100755 index 00000000000..914c1abd038 --- /dev/null +++ b/inputFiles/wellboreECP/postprocess.py @@ -0,0 +1,241 @@ +#!/opt/cray/pe/python/3.11.5/bin/python + +import matplotlib.pyplot as plt +import argparse +import glob +import sys +import re +import os + +def parse_log_file(file_path): + """Parse the log file from GEOS and extract required statistics.""" + try: + print(f"Parsing {file_path = }") + with open(file_path, 'r') as file: + data = file.read() + + except FileNotFoundError: + print(f"Error: File not found - {file_path}", file=sys.stderr) + + except Exception as e: + print(f"Error processing file {file_path}: {str(e)}", file=sys.stderr) + + # Regex patterns to extract the required information + patterns = { + 'non_linear_iters': re.compile(r'number of successful nonlinear iterations: (\d+).*number of discarded nonlinear iterations: (\d+)', re.S), + 'linear_iters': re.compile(r'number of successful linear iterations: (\d+).*number of discarded linear iterations: (\d+)', re.S), + 'applysol_time': re.compile(r'apply solution time = (\d+\.\d+) s'), + 'assemble_time': re.compile(r'assemble time = (\d+\.\d+) s'), + 'convcheck_time': re.compile(r'convergence check time = (\d+\.\d+) s'), + 'update_state_time': re.compile(r'update state time = (\d+\.\d+) s'), + 'ls_create_time': re.compile(r'linear solver create time = (\d+.\d+) s'), + 'ls_setup_time': re.compile(r'linear solver setup time = (\d+.\d+) s'), + 'ls_solve_time': re.compile(r'linear solver solve time = (\d+.\d+) s'), + 'run_time': re.compile(r'run time\s+.*\((\d+\.\d+) s\)') + } + + # Dictionary to hold the results + stats = {} + + # Extract and process all patterns + for key, pattern in patterns.items(): + if key in ['non_linear_iters', 'linear_iters']: + xmatch = pattern.search(data) + stats[key] = int(xmatch.group(1)) + int(xmatch.group(2)) if xmatch else 0 + + else: + xmatch = pattern.search(data) + stats[key] = float(xmatch.group(1)) if xmatch else 0 + + # Calculate GEOS time (run time excluding hypre time) + stats['geos_time'] = stats['run_time'] - (stats['ls_create_time'] + stats['ls_setup_time'] + stats['ls_solve_time']) + + # Calculate averages + averages = { + 'avg_geos_time': 'geos_time', + 'avg_ls_create_time': 'ls_create_time', + 'avg_ls_setup_time': 'ls_setup_time', + 'avg_ls_solve_time': 'ls_solve_time', + 'avg_ls_iters': 'linear_iters', + 'avg_run_time': 'run_time' + } + + if stats['non_linear_iters'] <= 0: + print(f"Invalid number of non-linear iterations!", file=sys.stderr) + return None + + for avg_key, total_key in averages.items(): + stats[avg_key] = stats[total_key] / stats['non_linear_iters'] + + # Store level + xmatch = re.search(r'level(\d+)', file_path) + stats['level'] = int(xmatch.group(1)) if xmatch else -1 + + return stats + +def print_results(model, results): + """Print results in markdown table format""" + if not results or not all(results): + print(f"Invalid results!", file=sys.stderr) + return + + # Setup header + headers = ["Level", "GEOS (s)", "Matrix creation (s)", "Hypre setup (s)", "Hypre solve (s)", "Total (s)", "Hypre iters"] + + # Gather all rows data including headers + data_rows = [ + headers, + *[ + [ + "{:02d}".format(result['level']), + "{:.4f}".format(result['avg_geos_time']), + "{:.4f}".format(result['avg_ls_create_time']), + "{:.4f}".format(result['avg_ls_setup_time']), + "{:.4f}".format(result['avg_ls_solve_time']), + "{:.4f}".format(result['avg_run_time']), + "{:.1f}".format(result['avg_ls_iters']), + ] + for result in results + ] + ] + + # Calculate maximum column widths + max_widths = [max(len(row[i]) for row in data_rows) for i in range(len(headers))] + + # Print header row with adjusted widths + header_row = "| " + " | ".join(header.ljust(max_widths[i]) for i, header in enumerate(headers)) + " |" + print(f"\nSummary table for {model}:\n") + print(header_row) + + # Adjust the divider line based on maximum widths + divider_line = "|" + "|".join(["-" * (max_widths[i] + 2) for i in range(len(headers))]) + "|" + print(divider_line) + + # Print each data row with adjusted widths + for row in data_rows[1:]: # Skip the header in data_rows for output + formatted_row = "| " + " | ".join(item.ljust(max_widths[i]) for i, item in enumerate(row)) + " |" + print(formatted_row) + +def plot_results(model, model_data, results, fs=16, ms=10): + if not results: + return + + plt.rcParams.update({'font.size': fs}) + fig, ax = plt.subplots(figsize=(10, 6)) + + # Extracting ranks and global DOFs + levels = [result['level'] for result in results] + ranks = [entry['ranks'] for entry in model_data if entry['level'] in levels] + global_dofs = [entry['global_dofs'] for entry in model_data if entry['level'] in levels] + + # Setting up data for plotting + geos_times = [result['avg_geos_time'] for result in results] + ls_create_times = [result['avg_ls_create_time'] for result in results] + ls_setup_times = [result['avg_ls_setup_time'] for result in results] + ls_solve_times = [result['avg_ls_solve_time'] for result in results] + total_times = [result['avg_run_time'] for result in results] + + # Plotting each metric + ax.plot(ranks, geos_times, 'o-', markersize=ms, label='GEOS') + ax.plot(ranks, ls_create_times, 's-', markersize=ms, label='Matrix Creation') + ax.plot(ranks, ls_setup_times, '^-', markersize=ms, label='Hypre Setup') + ax.plot(ranks, ls_solve_times, 'v-', markersize=ms, label='Hypre Solve') + ax.plot(ranks, total_times, 'd-', markersize=ms, label='Total') + + # Adding labels and legend + ax.set_title(f"Weak scaling - {model}", fontsize=fs+4) + ax.set_xlabel('Number of GPUs (Global DOFs)', labelpad=18, fontsize=fs+1) + ax.set_ylabel('Time (s)', labelpad=18, fontsize=fs+1) + ax.set_xscale('log', base=2) + ax.set_xticks(ranks) + ax.set_xticklabels([f"{r:,} ({d})" for r, d in zip(ranks, global_dofs)]) + ax.legend(fontsize=fs) + + # Show grid lines + ax.grid(True, which='both', linestyle='--', linewidth=0.5, color='gray') # Add gridlines with custom settings + + # Update margins + plt.tight_layout() + + # Save figure to file + figname = f"weakscal_{model}.png" + print(f"Saving figure to file {figname}...") + plt.savefig(figname, format='png', dpi=450) + + # Show the plot + plt.show() + +def find_newest_file(model, level): + """Finds the newest output file under the directory relative to a physics model and for certain problem level (mesh refinement).""" + target_dir = os.path.join(model, f"level{level:02d}") + files = glob.glob(os.path.join(target_dir, '*.out')) + if not files: + return target_dir, None + + # Extract the job ID numbers and sort the files by these IDs + suffixes = {'mechanics': 'mechanics', + 'singlePhaseFlow': 'singlePhaseFlow', + 'compositionalMultiphaseFlow': 'compflow'} + files_with_ids = [(file, int(re.search(rf"(\d+)-{suffixes[model]}", file).group(1))) for file in files] + + # Sort by the job ID number + return target_dir, max(files_with_ids, key=lambda x: x[1])[0] + +def main(): + """Process multiple input files and store results using command line arguments.""" + valid_models = ['mechanics', 'singlePhaseFlow', 'compositionalMultiphaseFlow'] + + parser = argparse.ArgumentParser() + parser.add_argument('-m', '--model', required=True, choices=valid_models, help="Physics model") + parser.add_argument('-l', '--levels', nargs='+', type=int, help="Levels to process") + args = parser.parse_args() + + # Setup problem info + problems = { + "mechanics": [ + {"level": 2, "ranks": 8, "global_dofs": "20.7M"}, + {"level": 3, "ranks": 64, "global_dofs": "162M"}, + {"level": 4, "ranks": 512, "global_dofs": "1.3B"}, + {"level": 5, "ranks": 4096, "global_dofs": "10.2B"}, + {"level": 6, "ranks": 32768, "global_dofs": "81.3B"} + ], + "singlePhaseFlow": [ + {"level": 2, "ranks": 4, "global_dofs": "6.6M"}, + {"level": 3, "ranks": 32, "global_dofs": "52.8M"}, + {"level": 4, "ranks": 256, "global_dofs": "422M"}, + {"level": 5, "ranks": 2048, "global_dofs": "3.4B"}, + {"level": 6, "ranks": 16384, "global_dofs": "27B"} + ], + "compositionalMultiphaseFlow": [ + {"level": 2, "ranks": 4, "global_dofs": "19.8M"}, + {"level": 3, "ranks": 32, "global_dofs": "153M"}, + {"level": 4, "ranks": 256, "global_dofs": "1.2B"}, + {"level": 5, "ranks": 2048, "global_dofs": "9.8B"} + ] + } + + # Set default levels if not passed in + if args.levels is None: + args.levels = [entry['level'] for entry in problems[args.model]] + + # Read log files + results = [] + file_paths = [] + for level in args.levels: + target_dir, file_path = find_newest_file(args.model, level) + if file_path: + file_paths.append(file_path) + else: + print(f"No suitable files found in {target_dir}") + + # Parse statistics + results = [parse_log_file(fp) for fp in file_paths] + + # Print summary table + print_results(args.model, results) + + # Plot results + plot_results(args.model, problems[args.model], results) + +if __name__ == "__main__": + main() diff --git a/inputFiles/wellboreECP/singlePhaseFlow/ECP_Wellbore_probdef.xml b/inputFiles/wellboreECP/singlePhaseFlow/ECP_Wellbore_probdef.xml new file mode 100644 index 00000000000..73411abc18e --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/ECP_Wellbore_probdef.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level01/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level01/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..56163cee621 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level01/ECP_Wellbore_cpu.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level01/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level01/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..81a0b3b84b6 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level01/ECP_Wellbore_gpu.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level01/launch_frontier b/inputFiles/wellboreECP/singlePhaseFlow/level01/launch_frontier new file mode 100644 index 00000000000..d31e8dd39c3 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level01/launch_frontier @@ -0,0 +1,13 @@ +#!/bin/bash +#SBATCH -N 1 +#SBATCH -n 1 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-singlePhaseFlow-geom01.out + +echo `date` +cmd="srun -N 1 -n 1 -c 1 --gpus-per-node=1 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 1 -y 1 -z 1 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level02/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level02/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..dffc9e5be37 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level02/ECP_Wellbore_cpu.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level02/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level02/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..e784ec8cf0a --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level02/ECP_Wellbore_gpu.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level02/launch_frontier b/inputFiles/wellboreECP/singlePhaseFlow/level02/launch_frontier new file mode 100644 index 00000000000..2741050a32c --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level02/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 1 +#SBATCH -n 4 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-singlePhaseFlow-geom02.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 1 -n 4 -c 1 --gpus-per-node=4 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 1 -y 1 -z 4 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level03/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level03/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..0f58cf96b36 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level03/ECP_Wellbore_cpu.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level03/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level03/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..33bc77be4fc --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level03/ECP_Wellbore_gpu.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level03/launch_frontier b/inputFiles/wellboreECP/singlePhaseFlow/level03/launch_frontier new file mode 100644 index 00000000000..b549f4c4ff5 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level03/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 4 +#SBATCH -n 32 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-singlePhaseFlow-geom03.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 4 -n 32 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 2 -y 2 -z 8 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level04/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level04/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..caf966a8b6e --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level04/ECP_Wellbore_cpu.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level04/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level04/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..69294a7faca --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level04/ECP_Wellbore_gpu.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level04/launch_frontier b/inputFiles/wellboreECP/singlePhaseFlow/level04/launch_frontier new file mode 100644 index 00000000000..80748a5e6d7 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level04/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 32 +#SBATCH -n 256 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-singlePhaseFlow-geom04.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 32 -n 256 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 4 -y 4 -z 16 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level05/ECP_Wellbore_cpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level05/ECP_Wellbore_cpu.xml new file mode 100644 index 00000000000..2b784e869dd --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level05/ECP_Wellbore_cpu.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level05/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level05/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..4bfc1ff0df2 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level05/ECP_Wellbore_gpu.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level05/launch_frontier b/inputFiles/wellboreECP/singlePhaseFlow/level05/launch_frontier new file mode 100644 index 00000000000..88572e1e96d --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level05/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 256 +#SBATCH -n 2048 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-singlePhaseFlow-geom05.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 256 -n 2048 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 8 -y 8 -z 32 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level06/ECP_Wellbore_gpu.xml b/inputFiles/wellboreECP/singlePhaseFlow/level06/ECP_Wellbore_gpu.xml new file mode 100644 index 00000000000..2cfaca7d3d5 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level06/ECP_Wellbore_gpu.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/wellboreECP/singlePhaseFlow/level06/launch_frontier b/inputFiles/wellboreECP/singlePhaseFlow/level06/launch_frontier new file mode 100644 index 00000000000..3791ac44860 --- /dev/null +++ b/inputFiles/wellboreECP/singlePhaseFlow/level06/launch_frontier @@ -0,0 +1,18 @@ +#!/bin/bash +#SBATCH -N 2048 +#SBATCH -n 16384 +#SBATCH -t 0:30:00 +#SBATCH -J geos +#SBATCH -o frontier-%j-singlePhaseFlow-geom06.out + +echo `date` +module load cpe/23.12 +module load craype-accel-amd-gfx90a +module load rocm/5.4.3 +export MPICH_GPU_SUPPORT_ENABLED=1 +ldd ${1} +cmd="srun -N 2048 -n 16384 -c 1 --gpus-per-node=8 --ntasks-per-gpu=1 --gpu-bind=closest ${1} -i ECP_Wellbore_gpu.xml -x 16 -y 16 -z 64 ${2}" +echo "${cmd}" +${cmd} +echo `date` +echo 'Done' diff --git a/scripts/SchemaToRSTDocumentation.py b/scripts/SchemaToRSTDocumentation.py index e6492853736..8a7b1a8cda7 100644 --- a/scripts/SchemaToRSTDocumentation.py +++ b/scripts/SchemaToRSTDocumentation.py @@ -1,7 +1,7 @@ import os import re -import sys -#import numpy as np +import shutil +import argparse from xml.etree import ElementTree as etree @@ -13,9 +13,11 @@ def comment(self, data): self.end(etree.Comment) -def writeTableRST(file_name, values): +def writeTableRST(type_name, file_name, title_prefix, values): + + element_header = '%s: %s' % (title_prefix, type_name) + L = [[len(x) for x in row] for row in values] - # M = tuple(np.amax(np.array(L), axis=0)) # np isn't in the docker images for our CI MAX = [None] * len(L[0]) @@ -55,7 +57,9 @@ def writeTableRST(file_name, values): # Build table with open(file_name, 'w') as f: - f.write('\n\n') + f.write('%s\n' % (element_header)) + f.write('=' * len(element_header) + '\n') + f.write('\n') f.write(boundary) f.write(formatted_lines[0]) f.write(boundary) @@ -211,107 +215,91 @@ def buildTableValues(type_map, link_string='XML', include_defaults=True): return table_values -# Config -if len(sys.argv) < 2: - print("Usage: %s " % sys.argv[0]) - sys.exit(1) -schema_dir = sys.argv[1] -schema_name = os.path.join(schema_dir, 'schema.xsd') -additional_documentation_name = os.path.join(schema_dir, 'schema.xsd.other') -complete_output = os.path.join(schema_dir, '../../docs/sphinx/CompleteXMLSchema') -output_folder = os.path.join(schema_dir, 'docs') -sphinx_path = '../../coreComponents/schema/docs' -xsd = '{http://www.w3.org/2001/XMLSchema}' - -# Parse the input/non-input schemas -parser = etree.XMLParser(target=TreeBuilderWithComments()) -include_tree = etree.parse(schema_name, parser=parser) -include_root = include_tree.getroot() -input_attribute_map = buildAttributeMap(include_root) - -parser = etree.XMLParser(target=TreeBuilderWithComments()) -include_tree = etree.parse(additional_documentation_name, parser=parser) -include_root = include_tree.getroot() -other_attribute_map = buildAttributeMap(include_root) - -# Check for non-unique (ignoring case) links -input_keys = sorted(input_attribute_map.keys()) -input_keys_lower = [k.lower() for k in input_keys] -input_keys_count = [input_keys_lower.count(k) for k in input_keys_lower] -input_repeated_keys = [input_keys[ii] for ii in range(0, len(input_keys)) if input_keys_count[ii] > 1] - -other_keys = sorted(other_attribute_map.keys()) -other_keys_lower = [k.lower() for k in other_keys] -other_keys_count = [other_keys_lower.count(k) for k in other_keys_lower] -other_repeated_keys = [other_keys[ii] for ii in range(0, len(other_keys)) if other_keys_count[ii] > 1] - -if ((len(input_repeated_keys) > 0) | (len(other_repeated_keys) > 0)): - print('Duplicate input documentation table names:') - print(input_repeated_keys) - print('Duplicate other documentation table names:') - print(other_repeated_keys) - raise ValueError('Duplicate data structure names are not allowed due to .rst limitations (case-insensitive)!') - -# Setup directory -os.system('mkdir -p %s' % (output_folder)) - -# Keep track of existing/touched files -old_files = [f for f in os.listdir(output_folder) if '.rst' in f] -touched_files = [] - -# Build documentation tables -with open('%s.rst' % (complete_output), 'w') as output_handle: - # Write the file header - output_handle.write('######################\n') - output_handle.write('Datastructure Index\n') - output_handle.write('######################\n\n') - - # Parse the input schema definitions - output_handle.write('**************************\n\n') - output_handle.write('Input Schema Definitions\n') - output_handle.write('**************************\n\n') - - output_handle.write(':download:`XML Schema <%s/../schema.xsd>`\n\n' % (sphinx_path)) - - for type_name in sorted(input_attribute_map.keys()): - # Write the individual tables - table_values = buildTableValues(input_attribute_map[type_name]) - writeTableRST('%s/%s.rst' % (output_folder, type_name), table_values) - touched_files.append('%s.rst' % (type_name)) - - # Write to the master list - element_header = 'Element: %s' % (type_name) - output_handle.write('\n.. _XML_%s:\n\n' % (type_name)) - output_handle.write('%s\n' % (element_header)) - output_handle.write('=' * len(element_header) + '\n') - output_handle.write('.. include:: %s/%s.rst\n\n' % (sphinx_path, type_name)) - - # Parse the non-input schema definitions - output_handle.write('********************************\n') - output_handle.write('Datastructure Definitions\n') - output_handle.write('********************************\n\n') - - for type_name in sorted(other_attribute_map.keys()): - # Write the individual tables - table_values = buildTableValues(other_attribute_map[type_name], - link_string='DATASTRUCTURE', - include_defaults=False) - writeTableRST('%s/%s_other.rst' % (output_folder, type_name), table_values) - touched_files.append('%s_other.rst' % (type_name)) - - # Write to the master list - element_header = 'Datastructure: %s' % (type_name) - output_handle.write('\n.. _DATASTRUCTURE_%s:\n\n' % (type_name)) - output_handle.write('%s\n' % (element_header)) - output_handle.write('=' * len(element_header) + '\n') - output_handle.write('.. include:: %s/%s_other.rst\n\n' % (sphinx_path, type_name)) - -# Check for any untouched tables -untouched_files = [] -for f in old_files: - if f not in touched_files: - untouched_files.append(f) - -if len(untouched_files): - tmp = '\n '.join(untouched_files) - raise ValueError('Obsolete autogenerated .rst table files detected:%s' % (tmp)) +def main(schema_name='schema.xsd', output_folder='./', xsd='{http://www.w3.org/2001/XMLSchema}'): + """ + Build RST Documentation Tables + """ + # Setup folders + additional_documentation_name = f'{schema_name}.other' + output_folder = os.path.abspath(os.path.expanduser(output_folder)) + datastructure_folder = os.path.join(output_folder, 'datastructure') + summary_file = os.path.join(datastructure_folder, 'CompleteXMLSchema.rst') + os.makedirs(datastructure_folder, exist_ok=True) + shutil.copy(schema_name, os.path.join(datastructure_folder, 'schema.xsd')) + shutil.copy(additional_documentation_name, os.path.join(datastructure_folder, 'schema.xsd.other')) + + # Parse the input/non-input schemas + parser = etree.XMLParser(target=TreeBuilderWithComments()) + include_tree = etree.parse(schema_name, parser=parser) + include_root = include_tree.getroot() + input_attribute_map = buildAttributeMap(include_root) + + parser = etree.XMLParser(target=TreeBuilderWithComments()) + include_tree = etree.parse(additional_documentation_name, parser=parser) + include_root = include_tree.getroot() + other_attribute_map = buildAttributeMap(include_root) + + # Check for non-unique (ignoring case) links + input_keys = sorted(input_attribute_map.keys()) + input_keys_lower = [k.lower() for k in input_keys] + input_keys_count = [input_keys_lower.count(k) for k in input_keys_lower] + input_repeated_keys = [input_keys[ii] for ii in range(0, len(input_keys)) if input_keys_count[ii] > 1] + + other_keys = sorted(other_attribute_map.keys()) + other_keys_lower = [k.lower() for k in other_keys] + other_keys_count = [other_keys_lower.count(k) for k in other_keys_lower] + other_repeated_keys = [other_keys[ii] for ii in range(0, len(other_keys)) if other_keys_count[ii] > 1] + + if ((len(input_repeated_keys) > 0) | (len(other_repeated_keys) > 0)): + print('Duplicate input documentation table names:') + print(input_repeated_keys) + print('Duplicate other documentation table names:') + print(other_repeated_keys) + raise ValueError('Duplicate data structure names are not allowed due to .rst limitations (case-insensitive)!') + + # Build documentation tables + with open(summary_file, 'w') as output_handle: + # Write the file header + output_handle.write('###################\n') + output_handle.write('Datastructure Index\n') + output_handle.write('###################\n\n') + + # Parse the input schema definitions + output_handle.write('************************\n') + output_handle.write('Input Schema Definitions\n') + output_handle.write('************************\n\n') + + output_handle.write(':download:`XML Schema `\n\n') + + for type_name in sorted(input_attribute_map.keys()): + # Write the individual tables + table_values = buildTableValues(input_attribute_map[type_name]) + writeTableRST( type_name, '%s/%s.rst' % (datastructure_folder, type_name), 'XML Element', table_values) + + # Write to the master list + output_handle.write('\n.. _XML_%s:\n\n' % (type_name)) + output_handle.write('.. include:: %s.rst\n\n' % (type_name)) + + # Parse the non-input schema definitions + output_handle.write('*************************\n') + output_handle.write('Datastructure Definitions\n') + output_handle.write('*************************\n\n') + + for type_name in sorted(other_attribute_map.keys()): + # Write the individual tables + table_values = buildTableValues(other_attribute_map[type_name], + link_string='DATASTRUCTURE', + include_defaults=False) + writeTableRST( type_name, '%s/%s_other.rst' % (datastructure_folder, type_name), 'Datastructure', table_values) + + # Write to the master list + output_handle.write('\n.. _DATASTRUCTURE_%s:\n\n' % (type_name)) + output_handle.write('.. include:: %s_other.rst\n\n' % (type_name)) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('-s', '--schema', type=str, help='GEOS schema file', default='schema.xsd') + parser.add_argument('-o', '--output', type=str, help='Output directory', default='./') + args = parser.parse_args() + main(schema_name=args.schema, output_folder=args.output) diff --git a/scripts/automatic_xml_preprocess.sh b/scripts/automatic_xml_preprocess.sh index b1cf109b943..df7fb7a3be1 100755 --- a/scripts/automatic_xml_preprocess.sh +++ b/scripts/automatic_xml_preprocess.sh @@ -9,7 +9,7 @@ COMPILED_XML_NAME_OVERRIDE="" PARAMETER_ARGS="" NEW_ARGS="" USE_PYGEOSX=1 -PYGEOS_WARNINGS=0 +PYGEOSX_WARNINGS=0 SCRIPT_DIR=$(dirname "$0") PYGEOSX=$SCRIPT_DIR/../lib/PYGEOSX/bin/python @@ -37,7 +37,7 @@ do shift ;; -w|--pygeosx-warnings) - PYGEOS_WARNINGS=$2 + PYGEOSX_WARNINGS=$2 shift ;; -h|--help) @@ -75,12 +75,12 @@ if [ "$USE_PYGEOSX" -eq "1" ] then if [ -f $PYGEOSX ] then - if [ "$PYGEOS_WARNINGS" -eq "1" ] + if [ "$PYGEOSX_WARNINGS" -eq "1" ] then echo "Using pygeosx to preprocess the xml file" fi else - if [ "$PYGEOS_WARNINGS" -eq "1" ] + if [ "$PYGEOSX_WARNINGS" -eq "1" ] then echo "Pygeosx installation not found... reverting to non-pygeosx version" fi diff --git a/scripts/ci_build_and_test_in_container.sh b/scripts/ci_build_and_test_in_container.sh index fbb33b328f9..23bff96bfa3 100755 --- a/scripts/ci_build_and_test_in_container.sh +++ b/scripts/ci_build_and_test_in_container.sh @@ -44,6 +44,10 @@ Usage: $0 The host-config. Path is relative to the root of the repository. --install-dir-basename GEOS-e42ffc1 GEOS installation basename. + --makefile + Use "Unix Makefiles" as build system generator. + --ninja + Use "Ninja" as build system generator. --no-install-schema Do not install the xsd schema. --no-run-unit-tests @@ -68,10 +72,11 @@ exit 1 or_die cd $(dirname $0)/.. # Parsing using getopt -args=$(or_die getopt -a -o h --long build-exe-only,cmake-build-type:,code-coverage,data-basename:,exchange-dir:,host-config:,install-dir-basename:,no-install-schema,no-run-unit-tests,nproc:,repository:,run-integrated-tests,sccache-credentials:,test-code-style,test-documentation,help -- "$@") +args=$(or_die getopt -a -o h --long build-exe-only,cmake-build-type:,code-coverage,data-basename:,exchange-dir:,host-config:,install-dir-basename:,makefile,ninja,no-install-schema,no-run-unit-tests,nproc:,repository:,run-integrated-tests,sccache-credentials:,test-code-style,test-documentation,help -- "$@") # Variables with default values BUILD_EXE_ONLY=false +BUILD_GENERATOR="" GEOS_INSTALL_SCHEMA=true HOST_CONFIG="host-configs/environment.cmake" RUN_UNIT_TESTS=true @@ -91,6 +96,9 @@ do RUN_UNIT_TESTS=false shift;; --cmake-build-type) CMAKE_BUILD_TYPE=$2; shift 2;; + --ninja) + BUILD_GENERATOR=$1; + shift;; --data-basename) DATA_BASENAME=$2 DATA_BASENAME_WE=${DATA_BASENAME%%.*} @@ -104,6 +112,7 @@ do --exchange-dir) DATA_EXCHANGE_DIR=$2; shift 2;; --host-config) HOST_CONFIG=$2; shift 2;; --install-dir-basename) GEOS_DIR=${GEOSX_TPL_DIR}/../$2; shift 2;; + --makefile) BUILD_GENERATOR=""; shift;; --no-install-schema) GEOS_INSTALL_SCHEMA=false; shift;; --no-run-unit-tests) RUN_UNIT_TESTS=false; shift;; --nproc) NPROC=$2; shift 2;; @@ -211,7 +220,7 @@ fi # The option `--oversubscribe` tells OpenMPI to allow more MPI ranks than the node has cores. # This is needed because our unit test `blt_mpi_smoke` is run in parallel with _hard coded_ 4 ranks. # While some of our ci nodes may have less cores available. -# +# # In case we have more powerful nodes, consider removing `--oversubscribe` and use `--use-hwthread-cpus` instead. # This will tells OpenMPI to discover the number of hardware threads on the node, # and use that as the number of slots available. (There is a distinction between threads and cores). @@ -221,7 +230,7 @@ or_die python3 scripts/config-build.py \ -bt ${CMAKE_BUILD_TYPE} \ -bp ${GEOS_BUILD_DIR} \ -ip ${GEOS_DIR} \ - --ninja \ + ${BUILD_GENERATOR} \ -DBLT_MPI_COMMAND_APPEND='"--allow-run-as-root;--oversubscribe"' \ -DGEOS_INSTALL_SCHEMA=${GEOS_INSTALL_SCHEMA} \ -DENABLE_COVERAGE=$([[ "${CODE_COVERAGE}" = true ]] && echo 1 || echo 0) \ @@ -245,10 +254,10 @@ fi # Performing the requested build. if [[ "${BUILD_EXE_ONLY}" = true ]]; then - or_die ninja -j $NPROC geosx + or_die cmake --build . -j $NPROC --target geosx else - or_die ninja -j $NPROC - or_die ninja install + or_die cmake --build . -j $NPROC + or_die cmake --install . if [[ ! -z "${DATA_BASENAME_WE}" ]]; then # Here we pack the installation. @@ -269,7 +278,7 @@ if [[ ! -z "${SCCACHE_CREDS}" ]]; then fi if [[ "${CODE_COVERAGE}" = true ]]; then - or_die ninja coreComponents_coverage + or_die cmake --build . --target coreComponents_coverage cp -r ${GEOS_BUILD_DIR}/coreComponents_coverage.info.cleaned ${GEOS_SRC_DIR}/geos_coverage.info.cleaned fi @@ -284,9 +293,11 @@ fi if [[ "${RUN_INTEGRATED_TESTS}" = true ]]; then # We split the process in two steps. First installing the environment, then running the tests. - or_die ninja ats_environment - - # The tests are not run using ninja (`ninja --verbose ats_run`) because it swallows the output while all the simulations are running. + or_die cmake --build . --target ats_environment + + # The tests are not run using cmake (`cmake --build . --verbose --target ats_run`) + # because with ninja it swallows the output while all the + # simulations are running. # We directly use the script instead... echo "Available baselines:" ls -lR /tmp/geos/baselines @@ -321,7 +332,7 @@ if [[ "${RUN_INTEGRATED_TESTS}" = true ]]; then fi # Cleaning the build directory. -or_die ninja clean +or_die cmake --build . --target clean # Clean the repository diff --git a/scripts/copyrightPrepender.py b/scripts/copyrightPrepender.py index 2155567e3e4..216f3528260 100644 --- a/scripts/copyrightPrepender.py +++ b/scripts/copyrightPrepender.py @@ -39,7 +39,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/scripts/postProcessing/SneddonValidation.py b/scripts/postProcessing/SneddonValidation.py index c49d4b4c254..ca5708d83c5 100644 --- a/scripts/postProcessing/SneddonValidation.py +++ b/scripts/postProcessing/SneddonValidation.py @@ -77,7 +77,7 @@ def main(filesPaths): # Read HDF5 hf = h5py.File(hdf5File1Path, 'r') jump = hf.get('displacementJump') - jump = np.array(jump) + jump = np.asarray(jump) aperture = jump[0, :, 0] hf = h5py.File(hdf5File1Path, 'r') diff --git a/scripts/postProcessing/plotsolution_thermalFlow.py b/scripts/postProcessing/plotsolution_thermalFlow.py index a7fc5695da3..283bc0d12af 100644 --- a/scripts/postProcessing/plotsolution_thermalFlow.py +++ b/scripts/postProcessing/plotsolution_thermalFlow.py @@ -17,21 +17,21 @@ def main(directory): # Read simulation output from HDF5 file hf = h5py.File(hdf5FilePathTemperature, 'r') timeTemperature = hf.get('temperature Time') - timeTemperature = np.array(timeTemperature) + timeTemperature = np.asarray(timeTemperature) centerTemperature = hf.get('temperature elementCenter') - centerTemperature = np.array(centerTemperature) + centerTemperature = np.asarray(centerTemperature) xcord_elm = centerTemperature[0,:,0] ycord_elm = centerTemperature[0,:,1] zcord_elm = centerTemperature[0,:,2] temperature = hf.get('temperature') - temperature = np.array(temperature) + temperature = np.asarray(temperature) print(ycord_elm) filename = "pressure_history.hdf5" hdf5FilePathPressure = os.path.join( directory, filename ) hf = h5py.File(hdf5FilePathPressure, 'r') - pressure = np.array( hf.get('pressure') ) + pressure = np.asarray( hf.get('pressure') ) t_index = [0, 1, 2, 9] tstar = [0, 100, 200, 900] @@ -57,9 +57,9 @@ def main(directory): pplist.append(ptemp) temperaturelist.append(ttemp) - xlist = np.array(xlist) - pplist = np.array(pplist) - temperaturelist = np.array(temperaturelist) + xlist = np.asarray(xlist) + pplist = np.asarray(pplist) + temperaturelist = np.asarray(temperaturelist) #Visualization diff --git a/scripts/processIntegratedTestCheckFailures.py b/scripts/processIntegratedTestCheckFailures.py index ab5183322b9..db503687f42 100644 --- a/scripts/processIntegratedTestCheckFailures.py +++ b/scripts/processIntegratedTestCheckFailures.py @@ -48,9 +48,11 @@ def findFiles(folder, extension): matchStrings = ['Error:'] # What stings to look for in order to exclude a block +print( args.exclusionStrings ) +exclusionStrings = [] #exclusionStrings = [ 'sizedFromParent', 'different shapes' ] -#exclusionStrings = [ 'sizedFromParent', 'different shapes', 'but not the' ] -exclusionStrings = ['logLevel', 'NonlinearSolverParameters', 'has a child', 'different shapes', 'different types', 'differing types'] +#exclusionStrings = [ 'but not the' ] +#exclusionStrings = ['logLevel', 'NonlinearSolverParameters', 'has a child', 'different shapes', 'different types', 'differing types'] exclusionStrings += args.exclusionStrings directory = args.directory diff --git a/scripts/repositoryStats.sh b/scripts/repositoryStats.sh new file mode 100644 index 00000000000..62b6b996909 --- /dev/null +++ b/scripts/repositoryStats.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# This script is used to get the number of line changes with time +# Usage: +# bash repositoryStats.sh +# + +months=`seq 1 12` +years=`seq 2016 2024` + +echo "Month-Year NumDevelopersMonth numDevelopers3MonthWindow NumDevelopersTotal NumCommitsMonth NumCommitsTotal NumLinesInMonth" +for year in $years +do + for month in $months + do + numLines=$(git log --since="$year-$month-01" --until="$year-$month-31" --format= --numstat | awk '{s+=$1; s+=$2} END {print s}') + #numDevelopersMonth=$(git log --since="$year-$month-01" --until="$year-$month-31" --all --pretty="%an" | sort | uniq | tr -d " ' " | xargs python3 repositoryStats_condenseDev.py) + numDevelopersMonth=$(git log --since="$year-$month-01" --until="$year-$month-31" | grep -E 'Author:|Co-authored-by:' | sed 's/^.*: //' | sed 's/<.*//' | sort | uniq | tr -d " ' " | xargs python3 repositoryStats_condenseDev.py) + + minus1month=$(date -j -v-1m -f "%Y-%m-%d" "$year-$month-15" "+%Y-%m-%d") + plus1month=$(date -j -v+1m -f "%Y-%m-%d" "$year-$month-15" "+%Y-%m-%d") + +# echo "Begin: $minus1month End: $plus1month" + + # numDevelopers3Month=$(git log --since="$minus1month" --until="$plus1month" --all --pretty="%an" | sort | uniq | tr -d " ' " | xargs python3 repositoryStats_condenseDev.py) + # numDevelopersTotal=$(git log --since="2010-01-01" --until="$year-$month-31" --all --pretty="%an" | sort | uniq | tr -d " ' " | xargs python3 repositoryStats_condenseDev.py) + numDevelopers3Month=$(git log --since="$minus1month" --until="$plus1month" | grep -E 'Author:|Co-authored-by:' | sed 's/^.*: //' | sed 's/<.*//' | sort | uniq | tr -d " ' " | xargs python3 repositoryStats_condenseDev.py) + numDevelopersTotal=$(git log --since="2010-01-01" --until="$year-$month-31" | grep -E 'Author:|Co-authored-by:' | sed 's/^.*: //' | sed 's/<.*//' | sort | uniq | tr -d " ' " | xargs python3 repositoryStats_condenseDev.py) + + numCommitsMonth=$(git rev-list --count HEAD --since="$year-$month-01" --before="$year-$month-31") + numCommitsTotal=$(git rev-list --count HEAD --since="2010-01-01" --before="$year-$month-31") + echo "$month-$year $numDevelopersMonth $numDevelopers3Month $numDevelopersTotal $numCommitsMonth $numCommitsTotal $numLines" + done +done + + diff --git a/scripts/repositoryStats_condenseDev.py b/scripts/repositoryStats_condenseDev.py new file mode 100644 index 00000000000..3146a5a1412 --- /dev/null +++ b/scripts/repositoryStats_condenseDev.py @@ -0,0 +1,321 @@ +import sys + +# +# git log --since="2010-01-01" --until="2026-11-31" --all --pretty="%an" | sort | uniq | tr -d " ' " | xargs python3 repositoryStats_condenseDev.py +# + +# Define the username mapping dictionary +username_mapping = { +"AleksNovikov" : "aleksnovikov", +"AlexandreLapene" : "alexandrelapene", +"Algiane" : "algiane", +"AlgianeFroehly" : "algianefroehly", +"AmmarAlali" : "ammaralali", +"AndreaBorio" : "andreaborio", +"AndreaFranceschini" : "andreafranceschini", +"AndreCosta" : "andrecosta", +"AndreMacieiraBragaCosta" : "andrecosta", +"andrembcosta" : "andrecosta", +"AntoineMazuyer" : "antoinemazuyer", +"mazuyer" : "antoinemazuyer", +"ArnaudDUDES" : "arnauddudes", +"arng40" : "arnauddudes", +"ArturoVargas" : "arturovargas", +"Aurelien" : "aurelien", +"acitrain" : "aurelien", +"aure-lily" : "aurelily", +"Ben" : "bencorbett", +"BenCorbett" : "bencorbett", +"BenjaminCorbett" : "bencorbett", +"BenjaminCurticeCorbett" : "bencorbett", +"BenjaminT.Liu" : "benjamintliu", +"BertrandThierry" : "bertrandthierry", +"BrianHan" : "brianhan", +"BrianManhHienHan" : "brianhan", +"CameronCrook" : "cameroncrook", +"CameronMikelCrook" : "cameroncrook", +"cmcrook5" : "cameroncrook", +"Castelletto" : "castelletto", +"Castelletto1" : "castelletto", +"NicolaCastelletto" : "castelletto", +"castelletto1" : "castelletto", +"ChaoyiWang" : "chaoyiwang", +"ChristopherSherman" : "christophersherman", +"ChrisWhite" : "chriswhite", +"DanielOsei-Kuffuor" : "danieloseikuffuor", +"david4utd" : "ruiwang", +"DicksonKachuma" : "dicksonkachuma", +"dkachuma" : "dicksonkachuma", +"FrancoisHamon" : "francoishamon", +"francoishamon" : "francoishamon", +"FanFei" : "frankfeifan", +"Fei" : "frankfeifan", +"frankfeifan" : "frankfeifan", +"fanfei" : "frankfeifan", +"fei2" : "frankfeifan", +"Gaetan" : "gaetanfuss", +"GaetanFuss" : "gaetanfuss", +"GerasimosChourdakis" : "gerasimoschourdakis", +"Guotong" : "guotongren", +"GuotongRen" : "guotongren", +"Guotong-Ren" : "guotongren", +"hannah_mairs" : "hannahmairs", +"HerveGross" : "hervegross", +"HeweiTang" : "heweitang", +"HuiWu" : "huiwu", +"IbrahimIsraa" : "ibrahimisraa", +"IgorShovkun" : "igorshovkun", +"IsaacJu" : "isaacju", +"IsaacJu-debug" : "isaacju", +"JacquesFranc" : "jacquesfranc", +"jacques" : "jacquesfranc", +"jacquesn7" : "jacquesfranc", +"jafranc" : "jacquesfranc", +"jfranc" : "jacquesfranc", +"JaisreeIyer" : "jaisreeiyer", +"JamesCorbett" : "jamescorbett", +"jay-a" : "jay-a", +"JeannePellerin" : "jeannepellerin", +"JieMeng" : "jiemeng", +"jiamin.jiang" : "jiaminjiang", +"jiemeng-total" : "jiemeng", +"jhuang2601" : "jianhuang", +"JianHUANG" : "jianhuang", +"JianHuang" : "jianhuang", +"JixiangHuang" : "jixianghuang", +"JoshuaWhite" : "joshuawhite", +"joshua-white" : "joshuawhite", +"joshwhite" : "joshuawhite", +"julia.camargo" : "juliacamargo", +"juliatcamargo" : "juliacamargo", +"BESSETJulien" : "julienrenethomasbesset", +"Julien" : "julienrenethomasbesset", +"JulienReneThomasBesset" : "julienrenethomasbesset", +"KevinJ.Dugan" : "kevinjdugan", +"labesse40" : "julienrenethomasbesset", +"liyangrock" : "liyangrock", +"LionelUntereiner" : "lioneluntereiner", +"LucasVALARCHER" : "lucasvalarcher", +"ŁukaszŁaniewski-Wołłk" : "lukaszlaniewski-wollk", +"MadonnaYoder" : "madonnayoder", +"MamadouN'diaye" : "mamadoundiaye", +"MamadouNdiaye" : "mamadoundiaye", +"mndiaye24" : "mamadoundiaye", +"MarkKhait" : "markkhait", +"mkhait" : "markkhait", +"Cusini" : "matteocusini", +"Matteo" : "matteocusini", +"MatteoCusini" : "matteocusini", +"MatteoFrigo" : "matteofrigo5", +"matteofrigo5" : "matteofrigo5", +"mfrigo" : "matteofrigo5", +"Matthias" : "matthiascremon", +"MatthiasCremon" : "matthiascremon", +"MelReyCG" : "melreycg", +"MichaelHomel" : "michaelhomel", +"MiladBader" : "miladbader", +"MohammadKarimi-Fard" : "mohammadkarimifard", +"OluwatobiQuadriRaji" : "oluwatobiquadri", +"Oluwatobi-PM" : "oluwatobiquadri", +"Ouassim" : "ouassim", +"paloma-martinez" : "palomamartinez", +"PavelTomin" : "paveltomin", +"paveltomin" : "paveltomin", +"PengchengFu" : "pengchengfu", +"PeterB.Robinson" : "peterbrobinson", +"robinspb" : "peterbrobinson", +"PhillipChacon" : "phillipchacon", +"TheLastBlockbender" : "phillipchacon", +"QuanBui" : "quanbui", +"RandolphR.Settgast" : "randolphrsettgast", +"RandolphSettgast" : "randolphrsettgast", +"RandySettgast" : "randolphrsettgast", +"UncrustifyRobot" : "randolphrsettgast", +"dependabot[bot]" : "randolphrsettgast", +"geosadmn" : "randolphrsettgast", +"rasimHZ" : "rasimhz", +"Ron-Wang" : "ronwang", +"rustem.zaydullin@totalenergies.com" : "rustemzaydullin", +"RyanARONSON(X)" : "ryanaronson", +"RyanAronson" : "ryanaronson", +"SergeyKlevtsov" : "sergeyklevtsov", +"Shabnam" : "shabnamjandaghisemnani", +"ShabnamJandaghiSemnani" : "shabnamjandaghisemnani", +"shabnamjs" : "shabnamjandaghisemnani", +"SohailWaziri" : "sohailwaziri", +"sohailwaziri" : "sohailwaziri", +"StefanoFrambati" : "stefanoframbati", +"j0405284" : "stefanoframbati", +"sframba" : "stefanoframbati", +"StefanPovolny" : "stefanpovolny", +"povolny1" : "stefanpovolny", +"stenix" : "stenix", +"Sy-TuanNguyen" : "sytuannguyen", +"sytuannguyen" : "sytuannguyen", +"TaehoKim" : "taehokim", +"kimtaeho07" : "taehokim", +"TaoJin" : "taojin", +"tbeltzun" : "tbeltzun", +"TerryLigocki" : "terryligocki", +"ThomasGAZZOLA" : "thomasgazzola", +"ThomasGazzola" : "thomasgazzola", +"TotoGaz" : "thomasgazzola", +"TomByer" : "tombyer", +"ThomasJamesByer" : "tombyer", +"tjb" : "tombyer", +"tony" : "tony", +"VictorA.P.Magri" : "victorapmagri", +"VictorA.PaludettoMagri" : "victorapmagri", +"WilliamRTobin" : "williamrtobin", +"WilliamTobin" : "williamrtobin", +"wrtobin" : "williamrtobin", +"WuHuiLLNL" : "wuhuillnl", +"XavierLacoste" : "xavierlacoste", +"YohannDudouit" : "yohanndudouit", +"YueHao" : "yuehao" +} + +inverse_username_mapping = { + "aleksnovikov":"Aleks Novikov" , + "alexandrelapene":"Alexandre Lapene" , + "algianefroehly":"Algiane Froehly" , + "ammaralali":"Ammar Alali" , + "andreaborio":"Andrea Borio" , + "andreafranceschini":"Andrea Franceschini" , + "andrecosta":"Andre Macieira Braga Costa" , + "antoinemazuyer":"Antoine Mazuyer" , + "arnauddudes":"Arnaud Dudes" , + "arturovargas":"Arturo Vargas" , + "aurelien":"Aurelien Citrain" , + "aurelily":"aure-lily" , + "bencorbett":"Benjamin Curtice Corbett" , + "benjamintliu":"Benjamin T. Liu" , + "bertrandthierry":"Bertrand Thierry" , + "brianhan":"Brian Manh Hien Han" , + "cameroncrook":"Cameron Mikel Crook" , + "castelletto":"Nicola Castelletto" , + "chaoyiwang":"Chaoyi Wang" , + "christophersherman":"Christopher Sherman" , + "chriswhite":"Chris White" , + "danieloseikuffuor":"Daniel Osei-Kuffuor" , + "ruiwang":"Rui Wang" , + "dicksonkachuma":"Dickson Kachuma" , + "francoishamon":"Francois Hamon" , + "frankfeifan":"Fan Fei" , + "gaetanfuss":"Gaetan Fuss" , + "gerasimoschourdakis":"Gerasimos Chourdakis" , + "guotongren":"Guotong" , + "guotongren":"Guotong Ren" , + "hannahmairs" : "hannah mairs", + "hervegross":"Herve Gross" , + "heweitang":"Hewei Tang" , + "huiwu":"Hui Wu" , + "ibrahimisraa":"Ibrahim Israa" , + "igorshovkun":"Igor Shovkun" , + "isaacju":"Isaac Ju" , + "jacquesfranc":"Jacques Franc" , + "jaisreeiyer":"Jaisree Iyer" , + "jamescorbett":"James Corbett" , + "jay-a":"Jay Appleton" , + "jeannepellerin":"Jeanne Pellerin" , + "jiemeng":"Jie Meng" , + "jiaminjiang":"Jiamin Jiang" , + "jianhuang":"Jian Huang" , + "jixianghuang":"Jixian Huang" , + "joshuawhite":"Joshua White" , + "juliacamargo":"Julia T. Camargo" , + "julienrenethomasbesset":"Julien Rene Thomas Besset" , + "kevinjdugan":"Kevin J. Dugan" , + "kimtaeho07":"Taeho Kim" , + "liyangrock":"Li Yang" , + "lioneluntereiner":"Lionel Untereiner" , + "lucasvalarcher":"Lucas Valarcher" , + "lukaszlaniewski-wollk":"ŁukaszŁaniewski-Wołłk" , + "madonnayoder":"Madonna Yoder" , + "mamadoundiaye":"Mamadou N'diaye" , + "markkhait":"Mark Khait" , + "matteocusini":"Matteo Cusini" , + "matteofrigo5":"Matteo Frigo" , + "matthiascremon":"Matthias Cremon" , + "melreycg":"Mel Rey" , + "michaelhomel":"Michael Homel" , + "miladbader":"Milad Bader" , + "mohammadkarimifard":"Mohammad Karimi-Fard" , + "oluwatobiquadri":"Oluwatobi Quadri Raji" , + "ouassim":"Ouassim Khebzegga" , + "palomamartinez":"Paloma Martinez" , + "paveltomin":"Pavel Tomin" , + "pengchengfu":"Pengcheng Fu" , + "peterbrobinson":"Peter B. Robinson" , + "phillipchacon":"Phillip Chacon" , + "quanbui":"Quan Bui" , + "randolphrsettgast":"Randolph R.Settgast" , + "rasimhz":"Rasim Hasanzade" , + "ronwang":"Ron Wang" , + "rustemzaydullin":"Rustem Zaydullin" , + "ryanaronson":"Ryan Aronson" , + "sergeyklevtsov":"Sergey Klevtsov" , + "shabnamjandaghisemnani":"Shabnam Jandaghi Semnani" , + "sohailwaziri":"Sohail Waziri" , + "stefanoframbati":"Stefano Frambati" , + "stefanpovolny":"Stefan Povolny" , + "stenix":"stenix" , + "sytuannguyen":"Sy-Tuan Nguyen" , + "taehokim":"TaehoKim" , + "taojin":"Tao Jin" , + "tbeltzun":"tbeltzun" , + "terryligocki":"Terry Ligocki" , + "thomasgazzola":"ThomasGazzola" , + "tombyer":"Thomas James Byer" , + "tony":"Tony ?" , + "victorapmagri":"Victor Paludetto Magri" , + "williamrtobin":"William R. Tobin" , + "wuhuillnl":"Wu Hui" , + "xavierlacoste":"Xavier Lacoste" , + "yohanndudouit":"Yohann Dudouit" , + "yuehao":"Yue Hao" +} + +def count_unique_users(usernames): + # Substitute usernames using the username mapping dictionary + #substituted_usernames = [username_mapping.get(username.strip(), username.strip()) for username in usernames] + + # sorted_username_mapping = dict(sorted(username_mapping.items(), key=lambda item: item[1])) + # for key, value in sorted_username_mapping.items(): + # print(f'{key}: {value}') + + substituted_usernames = [] + for username in usernames: + stripped_username = username.strip() + if stripped_username not in username_mapping: + raise ValueError(f"Username '{stripped_username}' not found in username_mapping") + substituted_usernames.append(username_mapping[stripped_username]) + + + # Count the number of unique usernames + unique_usernames = set(substituted_usernames) +# print ("unique_usernames:", sorted(unique_usernames)) + + for username in unique_usernames: +# print( "- username: \"" + username + "\"") + name = inverse_username_mapping[username] + splitName = name.split() + givenNames = " ".join(splitName[:-1]) + lastName = splitName[-1] + print( "- family-names: \"" + lastName + "\"") + print( " given-names: \"" + givenNames + "\"") + + num_unique_users = len(unique_usernames) + return num_unique_users + +# Example usage: +if __name__ == "__main__": + # Read usernames from command line arguments + usernames = sys.argv[1:] + #print ("usernames:", usernames) + + # Count unique users + num_unique_users = count_unique_users(usernames) + + # Output the number of unique users + print(num_unique_users) diff --git a/src/CMakeGraphVizOptions.cmake b/src/CMakeGraphVizOptions.cmake index c1445d96d92..fbce48fe7e8 100644 --- a/src/CMakeGraphVizOptions.cmake +++ b/src/CMakeGraphVizOptions.cmake @@ -1,4 +1,6 @@ -set( GRAPHVIZ_EXECUTABLES FALSE ) +set( GRAPHVIZ_EXECUTABLES TRUE ) set( GRAPHVIZ_OBJECT_LIBS TRUE ) set( GRAPHVIZ_EXTERNAL_LIBS FALSE ) -set( GRAPHVIZ_GENERATE_DEPENDERS FALSE ) \ No newline at end of file +set( GRAPHVIZ_GENERATE_DEPENDERS FALSE ) +set( GRAPHVIZ_IGNORE_TARGETS "test*;example*;benchmark*" ) +set( GRAPHVIZ_CUSTOM_TARGETS FALSE ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 99b32fb3ab1..09988abe2fd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,8 @@ -cmake_minimum_required( VERSION 3.23 ) +cmake_minimum_required( VERSION 3.24 ) # At the moment we are manually passing the cuda arch flag. -if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.23.0") - cmake_policy(SET CMP0104 OLD) # when using nvcc populate CMAKE_CUDA_ARCHITECTURES, raise error if we can't -endif() +cmake_policy(SET CMP0104 OLD) # when using nvcc populate CMAKE_CUDA_ARCHITECTURES, raise error if we can't cmake_policy(SET CMP0074 NEW) # dont ignore _ROOT env vars when searching for packages via find_package() cmake_policy(SET CMP0066 NEW) # use CMAKE__FLAGS_ for try_compile() instead of only CMAKE__FLAGS cmake_policy(SET CMP0056 NEW) # use CMAKE_EXE_LINKER_FLAGS in try_compile() in addition to CMAKE__FLAGS @@ -135,24 +133,11 @@ if( ENABLE_HIP ) list( APPEND extraComponentsLinkList blt::hip ) endif() -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND extraComponentsLinkList geosx_core ) -else() - list( APPEND extraComponentsLinkList ${geosx_core_libs} ) -endif() - blt_add_executable( NAME geosx SOURCES main/main.cpp - DEPENDS_ON ${extraComponentsLinkList} - ${externalComponentsLinkList} fmt::fmt-header-only HDF5::HDF5 ) - -# blt_print_target_properties(TARGET geosx -# CHILDREN TRUE -# PROPERTY_NAME_REGEX "LINK_LIBRARIES" -# ) - -# blt_print_target_properties(TARGET HDF5::HDF5 -# CHILDREN TRUE ) + DEPENDS_ON geosx_core + ${extraComponentsLinkList} + ${externalComponentsLinkList} ) # Seems to be required on some CMake versions (e.g. 3.16) to get enforce device linking if( ${ENABLE_HYPRE_DEVICE} STREQUAL "CUDA" ) @@ -160,8 +145,6 @@ if( ${ENABLE_HYPRE_DEVICE} STREQUAL "CUDA" ) endif() -target_include_directories( geosx PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) - # To change the runtime path during installation set_target_properties( geosx PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" ) set_target_properties( geosx PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE ) @@ -173,7 +156,7 @@ install( FILES ${CMAKE_INSTALL_PREFIX}/bin/geosx RENAME geos PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) -if( ENABLE_XML_UPDATES AND ENABLE_MPI AND UNIX AND NOT CMAKE_HOST_APPLE AND NOT ENABLE_CUDA AND NOT ENABLE_HIP ) +if( ENABLE_XML_UPDATES AND ENABLE_MPI AND UNIX AND NOT ENABLE_CUDA AND NOT ENABLE_HIP ) set(SCHEMA_DIR ${CMAKE_SOURCE_DIR}/coreComponents/schema) set(SCRIPT_DIR ${CMAKE_SOURCE_DIR}/../scripts) @@ -186,9 +169,9 @@ if( ENABLE_XML_UPDATES AND ENABLE_MPI AND UNIX AND NOT CMAKE_HOST_APPLE AND NOT COMMENT "Generating XML schema" ) - add_custom_target( geosx_update_rst_tables + add_custom_target( geosx_build_datastructure_tables ALL - COMMAND python3 ${SCRIPT_DIR}/SchemaToRSTDocumentation.py ${SCHEMA_DIR} >update_rst_tables.log 2>&1 || (cat update_rst_tables.log && exit 1) + COMMAND python3 ${SCRIPT_DIR}/SchemaToRSTDocumentation.py -s ${SCHEMA_DIR}/schema.xsd -o ${CMAKE_SOURCE_DIR}/docs/sphinx >update_rst_tables.log 2>&1 || (cat update_rst_tables.log && exit 1) WORKING_DIRECTORY ${CMAKE_BINARY_DIR} DEPENDS geosx_generate_schema COMMENT "Generating schema-dependent RST files" @@ -198,20 +181,19 @@ if( ENABLE_XML_UPDATES AND ENABLE_MPI AND UNIX AND NOT CMAKE_HOST_APPLE AND NOT ALL COMMAND bash ${SCRIPT_DIR}/validateXMLFiles.bash -g ${SCHEMA_DIR}/schema.xsd ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/../examples ${CMAKE_SOURCE_DIR}/../inputFiles WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - DEPENDS geosx_update_rst_tables + DEPENDS geosx_generate_schema COMMENT "Validating all XML files in the repository against the schema" ) + if( SPHINX_FOUND ) + blt_add_sphinx_target( geosx_docs ) + add_dependencies( geosx_docs geosx_build_datastructure_tables ) + endif() endif() if( ENABLE_PYGEOSX ) add_subdirectory( pygeosx ) endif() -if( SPHINX_FOUND ) - blt_add_sphinx_target( geosx_docs ) -endif() - - install( DIRECTORY ../examples/ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}/examples ) @@ -237,8 +219,8 @@ install( FILES ${CMAKE_BINARY_DIR}/schema.xsd ################################ # Add python environment setup ################################ -# message(WARNING "Temporarily changing the geosPythonBranch to feature/packaging") -# set(GEOS_PYTHON_PACKAGES_BRANCH "feature/packaging" CACHE STRING "" FORCE) +# message(WARNING "Temporarily changing the geosPythonBranch to bugfix/sherman/fixNumpyProd") +# set(GEOS_PYTHON_PACKAGES_BRANCH "bugfix/sherman/fixNumpyProd" CACHE STRING "" FORCE) if ( Python3_EXECUTABLE ) diff --git a/src/VERSION b/src/VERSION index 6103e22aefe..b4bba825f4a 100644 --- a/src/VERSION +++ b/src/VERSION @@ -1 +1 @@ -VERSION_ID = v1.0.1 +VERSION_ID = v1.1.0 diff --git a/src/cmake/GeosxMacros.cmake b/src/cmake/GeosxMacros.cmake index af5105678ee..d658076cb6a 100644 --- a/src/cmake/GeosxMacros.cmake +++ b/src/cmake/GeosxMacros.cmake @@ -95,3 +95,39 @@ macro( geos_add_test ) COMMAND ${arg_COMMAND} ${ARGN} ) endmacro( geos_add_test ) + + +macro( geos_decorate_link_dependencies ) + + set( options ) + set( singleValueArgs LIST ) + set( multiValueArgs DEPENDENCIES ) + + # Parse the arguments to the macro + cmake_parse_arguments( arg + "${options}" "${singleValueArgs}" "${multiValueArgs}" ${ARGN} ) + + set( staticLibs "" ) + set( otherLibs "" ) + foreach( dep ${arg_DEPENDENCIES} ) + if( NOT TARGET ${dep} ) + message( FATAL_ERROR "Dependency ${dep} not found" ) + endif() + + get_target_property( targetType ${dep} TYPE) + # message( " ${dep} targetType = ${targetType}" ) # debug + + if (targetType STREQUAL STATIC_LIBRARY) + list( APPEND staticLibs ${dep} ) + else() + list( APPEND otherLibs ${dep} ) + endif() + endforeach() + + # message( " staticLibs = ${staticLibs}" ) # debug + # message( " otherLibs = ${otherLibs}" ) # debug + + string (REPLACE ";" "," staticLibsString "${staticLibs}") + set( ${arg_LIST} "$" ${otherLibs} ) + +endmacro( geos_decorate_link_dependencies ) \ No newline at end of file diff --git a/src/cmake/GeosxOptions.cmake b/src/cmake/GeosxOptions.cmake index debe45fdf62..468e6490f57 100644 --- a/src/cmake/GeosxOptions.cmake +++ b/src/cmake/GeosxOptions.cmake @@ -4,7 +4,8 @@ message( "CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}" ) message( "CMAKE_HOST_APPLE = ${CMAKE_HOST_APPLE}" ) ### OPTIONS ### -option( GEOS_ENABLE_TESTS "" ON ) +option( GEOS_ENABLE_FPE "Enables floating point exceptions" ON ) +option( GEOS_ENABLE_TESTS "Enables unit tests" ON ) option( ENABLE_CALIPER "Enables Caliper instrumentation" OFF ) option( ENABLE_MATHPRESSO "" ON ) @@ -158,18 +159,6 @@ if( ${CMAKE_MAKE_PROGRAM} STREQUAL "ninja" OR ${CMAKE_MAKE_PROGRAM} MATCHES ".*/ set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GEOS_NINJA_FLAGS}" ) endif() - -if( CMAKE_HOST_APPLE ) -# set(GEOS_LINK_PREPEND_FLAG "-Wl,-force_load" CACHE STRING "") -# set(GEOS_LINK_POSTPEND_FLAG "" CACHE STRING "") -# elseif( ENABLE_CUDA ) -# set( GEOS_LINK_PREPEND_FLAG "-Xcompiler \\\\\"-Wl,--whole-archive\\\\\"" CACHE STRING "" ) -# set( GEOS_LINK_POSTPEND_FLAG "-Xcompiler \\\\\"-Wl,--no-whole-archive\\\\\"" CACHE STRING "" ) -else() - set( GEOS_LINK_PREPEND_FLAG "-Wl,--whole-archive" CACHE STRING "" ) - set( GEOS_LINK_POSTPEND_FLAG "-Wl,--no-whole-archive" CACHE STRING "" ) -endif() - set( GEOS_LOCALINDEX_TYPE "int" CACHE STRING "" ) if( ENABLE_HYPRE_MIXINT ) set( GEOS_GLOBALINDEX_TYPE "long long int" CACHE STRING "" ) @@ -216,6 +205,5 @@ message( "GEOS_GLOBALINDEX_TYPE_FLAG = ${GEOS_GLOBALINDEX_TYPE_FLAG}" ) message( "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}" ) -message( "GEOS_LINK_PREPEND_FLAG=${GEOS_LINK_PREPEND_FLAG}" ) -message( "GEOS_LINK_POSTPEND_FLAG=${GEOS_LINK_POSTPEND_FLAG}" ) + message( "Leaving GeosxOptions.cmake\n" ) diff --git a/src/conf.py b/src/conf.py index e54573753a0..0bcf74a68b2 100644 --- a/src/conf.py +++ b/src/conf.py @@ -49,17 +49,24 @@ config_src = os.path.join(docs_path, "GeosxConfig.hpp") config_dst = os.path.join(common_path, "GeosxConfig.hpp") - input_dirs = ["coreComponents/common", - "coreComponents/dataRepository", - "coreComponents/fileIO", - "coreComponents/linearAlgebra", - "coreComponents/mesh", - "coreComponents/managers", - "coreComponents/finiteElement/kernelInterface", - "coreComponents/mesh/MeshFields.hpp", - "coreComponents/physicsSolvers/simplePDE/LaplaceFEMKernels.hpp", - "coreComponents/physicsSolvers/solidMechanics", - "coreComponents/finiteVolume"] + input_dirs = [ + "coreComponents/common", + "coreComponents/dataRepository", + "coreComponents/fileIO", + "coreComponents/linearAlgebra", + "coreComponents/mesh", + "coreComponents/finiteElement/elementFormulations", + "coreComponents/finiteElement/kernelInterface", + "coreComponents/mesh/MeshFields.hpp", + "coreComponents/physicsSolvers", + "coreComponents/finiteVolume", + "coreComponents/functions", + "coreComponents/fieldSpecification", + "coreComponents/discretizationMethods", + "coreComponents/events", + "coreComponents/mainInterface" + ] + # Write correct ReadtheDocs path and input directories shutil.copy(doxyfile_src, doxyfile_dst) @@ -72,16 +79,18 @@ if not os.path.exists(config_dst): os.symlink(config_src, config_dst) + print("********** Running Doxygen in ReadtheDocs **********") # Call doxygen - from subprocess import call - call(['doxygen', doxyfile_dst]) + from subprocess import run + run(['doxygen', doxyfile_dst]) + print("********** Finished Running Doxygen in ReadtheDocs **********") # -- Project information ----------------------------------------------------- -project = u'GEOSX' -copyright = u'2018-2021 Lawrence Livermore National Security, The Board of Trustees of the Leland Stanford Junior University, TotalEnergies, and GEOSX Contributors.' -author = u'GEOSX Contributors' +project = u'GEOS' +copyright = u'2016-2024 Lawrence Livermore National Security LLC, 2018-2024 Total, S.A, The Board of Trustees of the Leland Stanford Junior University, 2023-2024 Chevron, 2019- GEOS/GEOSX Contributors' +author = u'GEOS/GEOSX Contributors' # The short X.Y version version = u'' @@ -142,7 +151,7 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path . -exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store', 'cmake/*'] +exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store', 'cmake/*', '**/blt/**'] todo_include_todos = True @@ -220,8 +229,8 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'GEOSX.tex', u'GEOSX Documentation', - u'Randolph Settgast', 'manual'), + (master_doc, 'GEOS.tex', u'GEOS Documentation', + u'GEOS/GEOSX Developers', 'manual'), ] @@ -230,7 +239,7 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - (master_doc, 'geosx', u'GEOSX Documentation', + (master_doc, 'geos', u'GEOS Documentation', [author], 1) ] @@ -241,8 +250,8 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'GEOSX', u'GEOSX Documentation', - author, 'GEOSX', 'One line description of project.', + (master_doc, 'GEOS', u'GEOS Documentation', + author, 'GEOS', 'GEOS simulation framework.', 'Miscellaneous'), ] diff --git a/src/coreComponents/CMakeLists.txt b/src/coreComponents/CMakeLists.txt index a58be4cdaab..d2286f907da 100644 --- a/src/coreComponents/CMakeLists.txt +++ b/src/coreComponents/CMakeLists.txt @@ -3,19 +3,20 @@ set( subdirs common codingUtilities dataRepository - schema + denseLinearAlgebra functions constitutive + schema + finiteElement mesh - denseLinearAlgebra - linearAlgebra fieldSpecification - finiteElement finiteVolume + linearAlgebra discretizationMethods + events + constitutiveDrivers fileIO physicsSolvers - events mainInterface ) unset( parallelDeps ) @@ -56,53 +57,15 @@ foreach( lib ${subdirs} ) endif() endforeach() -# if we're building full static libs and not obj_libs -if( NOT GEOS_BUILD_SHARED_LIBS ) - set( geosx_core_list "" ) - foreach( lib ${coreLibs} ) - list( APPEND geosx_core_list ${GEOS_LINK_PREPEND_FLAG} ${lib} ${GEOS_LINK_POSTPEND_FLAG} ) - endforeach() - set ( geosx_core_libs "${geosx_core_list}" CACHE INTERNAL "" ) -endif( ) - foreach( lib ${subdirs} ) add_subdirectory( ${lib} ) endforeach() -if( GEOS_BUILD_SHARED_LIBS AND GEOS_BUILD_OBJ_LIBS ) - message( "Building shared geosx_core library with object coreComponents, executables link to geosx_core" ) - blt_add_library ( NAME geosx_core - SOURCES dummy.cpp - DEPENDS_ON mainInterface physicsSolvers HDF5::HDF5 - SHARED TRUE ) - -elseif( GEOS_BUILD_SHARED_LIBS AND NOT GEOS_BUILD_OBJ_LIBS ) - message( "Building shared geosx_core library with static coreComponents, executables link to geosx_core" ) - blt_combine_static_libraries( NAME geosx_core - SOURCE_LIBS ${coreLibs} - LIB_TYPE SHARED - LINK_PREPEND ${GEOS_LINK_PREPEND_FLAG} - LINK_POSTPEND ${GEOS_LINK_POSTPEND_FLAG} ) - -elseif( NOT GEOS_BUILD_SHARED_LIBS AND GEOS_BUILD_OBJ_LIBS ) - message( "Building object coreComponents, executables link to coreComponents" ) +add_library(geosx_core INTERFACE) +if( GEOS_BUILD_SHARED_LIBS) + target_link_libraries(geosx_core INTERFACE mainInterface ) else() - message( "Building static coreComponents, executables link to coreComponents" ) -endif() - -if ( TARGET geosx_core ) - # Seems to be required on some CMake versions (e.g. 3.16) to get enforce device linking - if( ${ENABLE_HYPRE_DEVICE} STREQUAL "CUDA" ) - set_target_properties( geosx_core PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS TRUE ) - endif() - - # To install the library with the runtime path used during the building - set_target_properties( geosx_core PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE ) - - # To install the shared library - install( TARGETS geosx_core LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) - - target_include_directories( geosx_core PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) + target_link_libraries(geosx_core INTERFACE $ ) endif() geosx_add_code_checks( PREFIX coreComponents diff --git a/src/coreComponents/LvArray b/src/coreComponents/LvArray index 02ce362c009..355e8d987fb 160000 --- a/src/coreComponents/LvArray +++ b/src/coreComponents/LvArray @@ -1 +1 @@ -Subproject commit 02ce362c009f11ddb2ade0286df23408d7334c4f +Subproject commit 355e8d987fbf15c9ac07442bda28bc52a8e80480 diff --git a/src/coreComponents/codingUtilities/CMakeLists.txt b/src/coreComponents/codingUtilities/CMakeLists.txt index a85e4046907..fdccb254f5e 100644 --- a/src/coreComponents/codingUtilities/CMakeLists.txt +++ b/src/coreComponents/codingUtilities/CMakeLists.txt @@ -20,12 +20,15 @@ set( codingUtilities_sources ) set( dependencyList ${parallelDeps} common fast_float ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) blt_add_library( NAME codingUtilities SOURCES ${codingUtilities_sources} HEADERS ${codingUtilities_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) # Avoid compiling with nvcc which sometimes crashes on fast_float @@ -33,6 +36,8 @@ set_source_files_properties( Parsing.cpp PROPERTIES LANGUAGE CXX ) target_include_directories( codingUtilities PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS codingUtilities LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) + if( GEOS_ENABLE_TESTS ) add_subdirectory(tests) diff --git a/src/coreComponents/codingUtilities/EnumStrings.hpp b/src/coreComponents/codingUtilities/EnumStrings.hpp index 40930b1b222..0c6bc40065d 100644 --- a/src/coreComponents/codingUtilities/EnumStrings.hpp +++ b/src/coreComponents/codingUtilities/EnumStrings.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -179,7 +179,7 @@ struct TypeRegex< ENUM, std::enable_if_t< internal::HasEnumStrings< ENUM > > > static Regex get() { return Regex( EnumStrings< ENUM >::concat( "|" ), - "Input value must be one of { " + EnumStrings< ENUM >::concat( ", " ) + "}." ); + "Input value must be one of { " + EnumStrings< ENUM >::concat( ", " ) + " }." ); } }; diff --git a/src/coreComponents/codingUtilities/Parsing.cpp b/src/coreComponents/codingUtilities/Parsing.cpp index 91e577b3c60..3e8c970ea9f 100644 --- a/src/coreComponents/codingUtilities/Parsing.cpp +++ b/src/coreComponents/codingUtilities/Parsing.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/Parsing.hpp b/src/coreComponents/codingUtilities/Parsing.hpp index 1f6dcf36c57..645e9615198 100644 --- a/src/coreComponents/codingUtilities/Parsing.hpp +++ b/src/coreComponents/codingUtilities/Parsing.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/RTTypes.cpp b/src/coreComponents/codingUtilities/RTTypes.cpp index 52d51964af1..6fbf864d253 100644 --- a/src/coreComponents/codingUtilities/RTTypes.cpp +++ b/src/coreComponents/codingUtilities/RTTypes.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -179,8 +179,9 @@ rtTypes::RegexMapType rtTypes::createBasicTypesRegexMap() string_view const groupNameDesc = "Input value must be a string that cannot be empty and contains only upper/lower letters, digits, and the characters . - _"; string_view const groupNameRegex = "[a-zA-Z0-9.\\-_]+"; - string_view const groupNameRefDesc = "Input value must be a string that can contain only upper/lower letters, digits, and the characters . - _ / *"; - string_view const groupNameRefRegex = "[a-zA-Z0-9.\\-_/*]*"; + // to reference groups, we need to support the / for paths, and * [ ] for fnmatch patterns. + string_view const groupNameRefDesc = "Input value must be a string that can contain only upper/lower letters, digits, and the characters . - _ / * [ ]"; + string_view const groupNameRefRegex = "[a-zA-Z0-9.\\-_/*\\[\\]]*"; // Build master list of regexes diff --git a/src/coreComponents/codingUtilities/RTTypes.hpp b/src/coreComponents/codingUtilities/RTTypes.hpp index a94c6cb8236..ea1bed2bdc6 100644 --- a/src/coreComponents/codingUtilities/RTTypes.hpp +++ b/src/coreComponents/codingUtilities/RTTypes.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/SFINAE_Macros.hpp b/src/coreComponents/codingUtilities/SFINAE_Macros.hpp index 4032db8cd5f..9dfc0a9ed2a 100644 --- a/src/coreComponents/codingUtilities/SFINAE_Macros.hpp +++ b/src/coreComponents/codingUtilities/SFINAE_Macros.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/UnitTestUtilities.hpp b/src/coreComponents/codingUtilities/UnitTestUtilities.hpp index 3b82f6b0f34..7e251ffbf0a 100644 --- a/src/coreComponents/codingUtilities/UnitTestUtilities.hpp +++ b/src/coreComponents/codingUtilities/UnitTestUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/Utilities.hpp b/src/coreComponents/codingUtilities/Utilities.hpp index 41fdc9c8e46..d4951f7185b 100644 --- a/src/coreComponents/codingUtilities/Utilities.hpp +++ b/src/coreComponents/codingUtilities/Utilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/tests/CMakeLists.txt b/src/coreComponents/codingUtilities/tests/CMakeLists.txt index 33f4168e86e..1fe1863459d 100644 --- a/src/coreComponents/codingUtilities/tests/CMakeLists.txt +++ b/src/coreComponents/codingUtilities/tests/CMakeLists.txt @@ -4,8 +4,10 @@ set( testSources testParsing.cpp testUtilities.cpp ) -set( dependencyList gtest codingUtilities ${parallelDeps} ) +set( dependencyList codingUtilities ${parallelDeps} ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # Add gtest C++ based tests foreach( test ${testSources} ) @@ -13,7 +15,7 @@ foreach( test ${testSources} ) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} gtest ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) diff --git a/src/coreComponents/codingUtilities/tests/testGeosxTraits.cpp b/src/coreComponents/codingUtilities/tests/testGeosxTraits.cpp index 412aee960ea..4c3820cc249 100644 --- a/src/coreComponents/codingUtilities/tests/testGeosxTraits.cpp +++ b/src/coreComponents/codingUtilities/tests/testGeosxTraits.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/tests/testParallelTestUtilities.cpp b/src/coreComponents/codingUtilities/tests/testParallelTestUtilities.cpp index 21a6a8d1903..5dfc65c1a8c 100644 --- a/src/coreComponents/codingUtilities/tests/testParallelTestUtilities.cpp +++ b/src/coreComponents/codingUtilities/tests/testParallelTestUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/tests/testParsing.cpp b/src/coreComponents/codingUtilities/tests/testParsing.cpp index 33f3d0231d8..586697330ac 100644 --- a/src/coreComponents/codingUtilities/tests/testParsing.cpp +++ b/src/coreComponents/codingUtilities/tests/testParsing.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/tests/testUtilities.cpp b/src/coreComponents/codingUtilities/tests/testUtilities.cpp index f063d471b92..cb481fccd0e 100644 --- a/src/coreComponents/codingUtilities/tests/testUtilities.cpp +++ b/src/coreComponents/codingUtilities/tests/testUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/codingUtilities/traits.hpp b/src/coreComponents/codingUtilities/traits.hpp index a5c8d4aa187..8ab60cddd52 100644 --- a/src/coreComponents/codingUtilities/traits.hpp +++ b/src/coreComponents/codingUtilities/traits.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/BufferAllocator.cpp b/src/coreComponents/common/BufferAllocator.cpp index 4df6745f937..26d432c28c7 100644 --- a/src/coreComponents/common/BufferAllocator.cpp +++ b/src/coreComponents/common/BufferAllocator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/BufferAllocator.hpp b/src/coreComponents/common/BufferAllocator.hpp index 46421189866..7fa789efd9b 100644 --- a/src/coreComponents/common/BufferAllocator.hpp +++ b/src/coreComponents/common/BufferAllocator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/CMakeLists.txt b/src/coreComponents/common/CMakeLists.txt index 2a5f70ff960..32e5a412824 100644 --- a/src/coreComponents/common/CMakeLists.txt +++ b/src/coreComponents/common/CMakeLists.txt @@ -16,6 +16,7 @@ set( common_headers GEOS_RAJA_Interface.hpp GeosxMacros.hpp MemoryInfos.hpp + logger/Logger.hpp MpiWrapper.hpp Path.hpp Span.hpp @@ -102,18 +103,19 @@ if( ENABLE_CALIPER ) endif() endif() -set( dependencyList ${dependencyList} ) - blt_add_library( NAME common SOURCES ${common_sources} HEADERS ${common_headers} DEPENDS_ON ${dependencyList} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( common PUBLIC ${CMAKE_BINARY_DIR}/include ) target_include_directories( common PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS common LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) + if( GEOS_ENABLE_TESTS ) add_subdirectory( unitTests ) add_subdirectory( format/table/unitTests ) diff --git a/src/coreComponents/common/DataLayouts.hpp b/src/coreComponents/common/DataLayouts.hpp index 38d149a1938..2f6c53af4fc 100644 --- a/src/coreComponents/common/DataLayouts.hpp +++ b/src/coreComponents/common/DataLayouts.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/DataTypes.hpp b/src/coreComponents/common/DataTypes.hpp index 9f4c8608ff7..c458412540a 100644 --- a/src/coreComponents/common/DataTypes.hpp +++ b/src/coreComponents/common/DataTypes.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/FieldSpecificationOps.hpp b/src/coreComponents/common/FieldSpecificationOps.hpp index 684b90af9e5..534768330fd 100644 --- a/src/coreComponents/common/FieldSpecificationOps.hpp +++ b/src/coreComponents/common/FieldSpecificationOps.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/FixedSizeDeque.hpp b/src/coreComponents/common/FixedSizeDeque.hpp index 629f1d8f42e..5746419ca71 100644 --- a/src/coreComponents/common/FixedSizeDeque.hpp +++ b/src/coreComponents/common/FixedSizeDeque.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/FixedSizeDequeWithMutexes.hpp b/src/coreComponents/common/FixedSizeDequeWithMutexes.hpp index 15c0b129776..800e1e1806f 100644 --- a/src/coreComponents/common/FixedSizeDequeWithMutexes.hpp +++ b/src/coreComponents/common/FixedSizeDequeWithMutexes.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/GEOS_RAJA_Interface.hpp b/src/coreComponents/common/GEOS_RAJA_Interface.hpp index 9f7d0bde21a..3b651c9e5c6 100644 --- a/src/coreComponents/common/GEOS_RAJA_Interface.hpp +++ b/src/coreComponents/common/GEOS_RAJA_Interface.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/GeosxConfig.hpp.in b/src/coreComponents/common/GeosxConfig.hpp.in index 6942640552d..704a9ebd0ac 100644 --- a/src/coreComponents/common/GeosxConfig.hpp.in +++ b/src/coreComponents/common/GeosxConfig.hpp.in @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/GeosxMacros.hpp b/src/coreComponents/common/GeosxMacros.hpp index 7396a6cf006..f73cb2740a3 100644 --- a/src/coreComponents/common/GeosxMacros.hpp +++ b/src/coreComponents/common/GeosxMacros.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/LifoStorage.hpp b/src/coreComponents/common/LifoStorage.hpp index 6bc25ec8bbb..16ce24f0e13 100644 --- a/src/coreComponents/common/LifoStorage.hpp +++ b/src/coreComponents/common/LifoStorage.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/LifoStorageCommon.hpp b/src/coreComponents/common/LifoStorageCommon.hpp index ff31b170a7a..08c1144e9fe 100644 --- a/src/coreComponents/common/LifoStorageCommon.hpp +++ b/src/coreComponents/common/LifoStorageCommon.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/LifoStorageCuda.hpp b/src/coreComponents/common/LifoStorageCuda.hpp index 0afb560fe2a..bb03115f011 100644 --- a/src/coreComponents/common/LifoStorageCuda.hpp +++ b/src/coreComponents/common/LifoStorageCuda.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/LifoStorageHost.hpp b/src/coreComponents/common/LifoStorageHost.hpp index 3ffb202db74..f787f10a17f 100644 --- a/src/coreComponents/common/LifoStorageHost.hpp +++ b/src/coreComponents/common/LifoStorageHost.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/MemoryInfos.cpp b/src/coreComponents/common/MemoryInfos.cpp index 51213c5cfec..4ad404188e3 100644 --- a/src/coreComponents/common/MemoryInfos.cpp +++ b/src/coreComponents/common/MemoryInfos.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/MemoryInfos.hpp b/src/coreComponents/common/MemoryInfos.hpp index 90763a7f18d..a3dcc024359 100644 --- a/src/coreComponents/common/MemoryInfos.hpp +++ b/src/coreComponents/common/MemoryInfos.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/MpiWrapper.cpp b/src/coreComponents/common/MpiWrapper.cpp index 8b8a0afc6a2..f2b830e734e 100644 --- a/src/coreComponents/common/MpiWrapper.cpp +++ b/src/coreComponents/common/MpiWrapper.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/MpiWrapper.hpp b/src/coreComponents/common/MpiWrapper.hpp index 9f165e682d3..998524d3b13 100644 --- a/src/coreComponents/common/MpiWrapper.hpp +++ b/src/coreComponents/common/MpiWrapper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/MultiMutexesLock.hpp b/src/coreComponents/common/MultiMutexesLock.hpp index f338fea4478..e3142abbadc 100644 --- a/src/coreComponents/common/MultiMutexesLock.hpp +++ b/src/coreComponents/common/MultiMutexesLock.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/Path.cpp b/src/coreComponents/common/Path.cpp index 853f4557904..a983e5af3cc 100644 --- a/src/coreComponents/common/Path.cpp +++ b/src/coreComponents/common/Path.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/Path.hpp b/src/coreComponents/common/Path.hpp index 27e54f3cf03..9f768838e31 100644 --- a/src/coreComponents/common/Path.hpp +++ b/src/coreComponents/common/Path.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/PhysicsConstants.hpp b/src/coreComponents/common/PhysicsConstants.hpp index 8bc35c1b1fd..50a2384ef8c 100644 --- a/src/coreComponents/common/PhysicsConstants.hpp +++ b/src/coreComponents/common/PhysicsConstants.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/Span.hpp b/src/coreComponents/common/Span.hpp index 4623fdcdf5f..49469bf968e 100644 --- a/src/coreComponents/common/Span.hpp +++ b/src/coreComponents/common/Span.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/Stopwatch.hpp b/src/coreComponents/common/Stopwatch.hpp index c506f5190ab..9aec6f65f66 100644 --- a/src/coreComponents/common/Stopwatch.hpp +++ b/src/coreComponents/common/Stopwatch.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/Tensor.hpp b/src/coreComponents/common/Tensor.hpp index 0a13e98cdcc..602f21794e1 100644 --- a/src/coreComponents/common/Tensor.hpp +++ b/src/coreComponents/common/Tensor.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/Timer.hpp b/src/coreComponents/common/Timer.hpp index 8deac3d3cc7..f7a4b342dcc 100644 --- a/src/coreComponents/common/Timer.hpp +++ b/src/coreComponents/common/Timer.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/TimingMacros.hpp b/src/coreComponents/common/TimingMacros.hpp index 01dc0a7f880..c9935cbd1b6 100644 --- a/src/coreComponents/common/TimingMacros.hpp +++ b/src/coreComponents/common/TimingMacros.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/TypeDispatch.hpp b/src/coreComponents/common/TypeDispatch.hpp index d01ddf58637..282c9421589 100644 --- a/src/coreComponents/common/TypeDispatch.hpp +++ b/src/coreComponents/common/TypeDispatch.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/Units.cpp b/src/coreComponents/common/Units.cpp index b5a53033c71..746cd866a7c 100644 --- a/src/coreComponents/common/Units.cpp +++ b/src/coreComponents/common/Units.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/Units.hpp b/src/coreComponents/common/Units.hpp index 26b19eef555..ba35f3fb8d6 100644 --- a/src/coreComponents/common/Units.hpp +++ b/src/coreComponents/common/Units.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/format/Format.hpp b/src/coreComponents/common/format/Format.hpp index d8dcb832cf0..de5954dcc37 100644 --- a/src/coreComponents/common/format/Format.hpp +++ b/src/coreComponents/common/format/Format.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/format/StringUtilities.cpp b/src/coreComponents/common/format/StringUtilities.cpp index 0c692f6a17d..cd13ba3919e 100644 --- a/src/coreComponents/common/format/StringUtilities.cpp +++ b/src/coreComponents/common/format/StringUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -57,10 +57,10 @@ string_view trimSpaces( string_view str ) } -string removeStringAndFollowingContent( string const & str, - string const & strToRemove ) +string removeStringAndFollowingContent( string_view const str, + string_view const strToRemove ) { - string newStr = str; + string_view newStr = str; // check if the line contains the string to remove std::size_t const pos = newStr.find( strToRemove ); @@ -70,7 +70,7 @@ string removeStringAndFollowingContent( string const & str, // remove the character and everything afterwards newStr = newStr.substr( 0, pos ); } - return newStr; + return string( newStr ); } // put definition here so we can control the allowable values of T and diff --git a/src/coreComponents/common/format/StringUtilities.hpp b/src/coreComponents/common/format/StringUtilities.hpp index a03e44ac8ea..8f083816c86 100644 --- a/src/coreComponents/common/format/StringUtilities.hpp +++ b/src/coreComponents/common/format/StringUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -39,11 +39,11 @@ string toLower( string const & input ); /** * @brief Join strings or other printable objects with a delimiter. - * @tparam IT type of iterator into the range of objects to join - * @tparam S type of delimiter, usually char, char const * or string - * @param first iterator to start of the range - * @param last iterator past-the-end of the range - * @param delim delimiter used to glue together strings + * @tparam IT type of iterator into the range of objects to join + * @tparam S type of delimiter, usually char, char const * or string + * @param first iterator to start of the range + * @param last iterator past-the-end of the range + * @param delim delimiter used to glue together strings * @return a string containing input values concatenated with a delimiter */ template< typename IT, typename S = char > @@ -66,14 +66,57 @@ string join( IT first, IT last, S const & delim = S() ) * @brief Join strings or other printable objects with a delimiter. * @tparam CONTAINER type of container to join * @tparam S the type of delimiter, usually char, char const * or string - * @param cont the container to join + * @param container the container to join * @param delim delimiter used to glue together strings * @return a string containing input values concatenated with a delimiter */ template< typename CONTAINER, typename S = char > -string join( CONTAINER const & cont, S const & delim = S() ) +string join( CONTAINER const & container, S const & delim = S() ) +{ + return join( std::begin( container ), std::end( container ), delim ); +} + +/** + * @brief Join strings or other printable objects returned by a formatter functor. + * @tparam IT type of iterator into the range of objects to join + * @tparam S type of delimiter, usually char, char const * or string + * @tparam LAMBDA type of formatter functor, usually `[]( auto it ) -> string` + * @param formattingFunc formatter function to get a formattable value from a IT iterator + * @param first iterator to start of the range + * @param last iterator past-the-end of the range + * @param delim delimiter used to glue together strings + * @return a string containing input values concatenated with a delimiter + */ +template< typename IT, typename S, typename LAMBDA > +string joinLamda( IT first, IT last, S const & delim, LAMBDA formattingFunc ) +{ + if( first == last ) + { + return {}; + } + std::ostringstream oss; + oss << formattingFunc( first ); + while( ++first != last ) + { + oss << delim << formattingFunc( first ); + } + return oss.str(); +} + +/** + * @brief Join strings or other printable objects returned by a formatter functor. + * @tparam CONTAINER type of container to join + * @tparam S type of delimiter, usually char, char const * or string + * @tparam LAMBDA type of formatter functor, usually `[]( auto it ) -> string` + * @param formattingFunc formatter function to get a formattable value from an iterator of the container + * @param container container to join + * @param delim delimiter used to glue together strings + * @return a string containing input values concatenated with a delimiter + */ +template< typename CONTAINER, typename S, typename LAMBDA > +string joinLamda( CONTAINER const & container, S const & delim, LAMBDA formattingFunc ) { - return join( std::begin( cont ), std::end( cont ), delim ); + return joinLamda( std::begin( container ), std::end( container ), delim, formattingFunc ); } /** @@ -181,8 +224,8 @@ string_view trimSpaces( string_view str ); * @param[in] strToRemove the string to search for in the line * @return the new (truncated) string */ -string removeStringAndFollowingContent( string const & str, - string const & strToRemove ); +string removeStringAndFollowingContent( string_view str, + string_view strToRemove ); /** * @brief Take a string, and return a array1d with the cast values diff --git a/src/coreComponents/common/format/table/TableData.cpp b/src/coreComponents/common/format/table/TableData.cpp index c4af2bce74a..dcbec10a01a 100644 --- a/src/coreComponents/common/format/table/TableData.cpp +++ b/src/coreComponents/common/format/table/TableData.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -51,11 +51,42 @@ std::vector< string > const & TableData::getErrorMsgs() const return m_errorsMsg; } -TableData2D::Conversion1D TableData2D::buildTableData( string_view targetUnit, - string_view rowFmt, - string_view columnFmt ) const +void TableData2D::collectTableValues( arraySlice1d< real64 const > rowAxisValues, + arraySlice1d< real64 const > columnAxisValues, + arrayView1d< real64 const > values ) { - TableData2D::Conversion1D tableData1D; + integer const nX = rowAxisValues.size(); + integer const nY = columnAxisValues.size(); + + for( integer i = 0; i < nX; i++ ) + { + for( integer y = 0; y < nY; y++ ) + { + addCell( rowAxisValues[i], columnAxisValues[y], values[ y*nX + i ] ); + } + } +} + +TableData2D::TableDataHolder TableData2D::convertTable2D( arrayView1d< real64 const > const values, + units::Unit const valueUnit, + ArrayOfArraysView< real64 const > const coordinates, + string_view rowAxisDescription, + string_view columnAxisDescription ) +{ + string const rowFmt = GEOS_FMT( "{} = {{}}", rowAxisDescription ); + string const columnFmt = GEOS_FMT( "{} = {{}}", columnAxisDescription ); + + collectTableValues( coordinates[0], coordinates[1], values ); + return buildTableData( string( units::getDescription( valueUnit )), + rowFmt, + columnFmt ); +} + +TableData2D::TableDataHolder TableData2D::buildTableData( string_view targetUnit, + string_view rowFmt, + string_view columnFmt ) const +{ + TableData2D::TableDataHolder tableData1D; std::vector< size_t > rowsLength; tableData1D.headerNames.push_back( string( targetUnit ) ); diff --git a/src/coreComponents/common/format/table/TableData.hpp b/src/coreComponents/common/format/table/TableData.hpp index 005e3dda7bc..aa35f06a0f6 100644 --- a/src/coreComponents/common/format/table/TableData.hpp +++ b/src/coreComponents/common/format/table/TableData.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -20,6 +20,7 @@ #ifndef GEOS_COMMON_FORMAT_TABLE_TABLEDATA_HPP #define GEOS_COMMON_FORMAT_TABLE_TABLEDATA_HPP +#include "common/Units.hpp" #include "common/DataTypes.hpp" #include "common/format/Format.hpp" @@ -85,9 +86,10 @@ class TableData2D using ColumnType = real64; /// Struct containing conversion informations - struct Conversion1D + struct TableDataHolder { /// Vector containing all columns names + /// A header value is presented as "pressure [K] = {}" std::vector< string > headerNames; /// TableData to be built TableData tableData; @@ -103,6 +105,30 @@ class TableData2D template< typename T > void addCell( RowType rowValue, ColumnType columnValue, T const & value ); + /** + * @brief Collects all the values needed to build the table + * @param rowAxisValues Vector containing all row axis values + * @param columnAxisValues Vector containing all column axis values + * @param values Vector containing all table values + */ + void collectTableValues( arraySlice1d< real64 const > rowAxisValues, + arraySlice1d< real64 const > columnAxisValues, + arrayView1d< real64 const > values ); + + /** + * @param values Vector containing all table values + * @param valueUnit The table unit value + * @param coordinates Array containing row/column axis values + * @param rowAxisDescription The description for a row unit value + * @param columnAxisDescription The description for a column unit value + * @return A struct containing the tableData converted and all header values ; + */ + TableData2D::TableDataHolder convertTable2D( arrayView1d< real64 const > const values, + units::Unit const valueUnit, + ArrayOfArraysView< real64 const > const coordinates, + string_view rowAxisDescription, + string_view columnAxisDescription ); + /** * @return Convert and return a struct containing a 1D Table, the column names list from a TableData2D and any errors related to the table * @param dataDescription The table dataDescription shown at the top left side @@ -112,7 +138,8 @@ class TableData2D * By default it displays the axis value. * I.E to display a customized axis to show the pressures in y axis, a rowFmt value can be : "pressure [K] = {}" */ - Conversion1D buildTableData( string_view dataDescription, string_view rowFmt = "{}", string_view columnFmt = "{}" ) const; + TableDataHolder buildTableData( string_view dataDescription, + string_view rowFmt = "{}", string_view columnFmt = "{}" ) const; private: /// @brief all cell values by their [ row ][ column ] diff --git a/src/coreComponents/common/format/table/TableFormatter.cpp b/src/coreComponents/common/format/table/TableFormatter.cpp index 13956a41cd0..56f529bdcee 100644 --- a/src/coreComponents/common/format/table/TableFormatter.cpp +++ b/src/coreComponents/common/format/table/TableFormatter.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,6 +17,7 @@ * @file TableFormatter.cpp */ +#include "TableFormatter.hpp" #include #include "common/format/StringUtilities.hpp" #include "TableFormatter.hpp" @@ -67,7 +68,8 @@ string TableCSVFormatter::dataToString( TableData const & tableData ) const return oss.str(); } -string TableCSVFormatter::toString( TableData const & tableData ) const +template<> +string TableCSVFormatter::toString< TableData >( TableData const & tableData ) const { return headerToString() + dataToString( tableData ); } @@ -155,7 +157,8 @@ string TableTextFormatter::layoutToString() const return tableOutput.str(); } -string TableTextFormatter::toString( TableData const & tableData ) const +template<> +string TableTextFormatter::toString< TableData >( TableData const & tableData ) const { std::ostringstream tableOutput; string sectionSeparatingLine; @@ -403,4 +406,5 @@ void TableTextFormatter::outputSectionRows( std::vector< TableLayout::Column > c tableOutput << GEOS_FMT( "{}\n", sectionSeparatingLine ); } } + } diff --git a/src/coreComponents/common/format/table/TableFormatter.hpp b/src/coreComponents/common/format/table/TableFormatter.hpp index 21ddc8c5b11..165533445b6 100644 --- a/src/coreComponents/common/format/table/TableFormatter.hpp +++ b/src/coreComponents/common/format/table/TableFormatter.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -37,6 +37,8 @@ class TableFormatter /// Layout for a table TableLayout m_tableLayout; + TableFormatter() = default; + /** * @brief Construct a new Table Formatter from a tableLayout * @param tableLayout Contain all column names and optionnaly the table title @@ -56,6 +58,13 @@ class TableCSVFormatter : public TableFormatter { public: + /** + * @brief Construct a new Table Formatter + */ + TableCSVFormatter(): + TableFormatter( TableLayout() ) + {} + /** * @brief Construct a new Table Formatter from a tableLayout * @param tableLayout Contain all column names and optionnaly the table title @@ -80,28 +89,47 @@ class TableCSVFormatter : public TableFormatter string dataToString( TableData const & tableData ) const; /** - * @brief Convert the TableData to a table string. - * @param tableData The TableData to convert. - * @return The table string representation of the TableData. + * @brief Convert a data source to a CSV string. + * @tparam DATASOURCE The source to convert + * @param tableData The data source to convert + * @return The CSV string representation of a data source. */ - string toString( TableData const & tableData ) const; + template< typename DATASOURCE > + string toString( DATASOURCE const & tableData ) const; }; +/** + * @brief Convert the TableData to a CSV string. + * @param tableData The TableData to convert. + * @return The CSV string representation of the TableData. + */ +template<> +string TableCSVFormatter::toString< TableData >( TableData const & tableData ) const; + + /** * @brief class for log formatting */ class TableTextFormatter : public TableFormatter { - public: + + /** + * @brief Construct a new TableFormatter + */ + TableTextFormatter(): + TableFormatter( TableLayout() ) + {} + /** * @brief Construct a new TableFormatter from a tableLayout * @param tableLayout Contain all column names and optionnaly the table title */ TableTextFormatter( TableLayout const & tableLayout ); + /** * @brief Destroy the Table Text Formatter object */ @@ -113,11 +141,12 @@ class TableTextFormatter : public TableFormatter string layoutToString() const; /** - * @brief Convert the TableData to a table string. - * @param tableData The TableData to convert. + * @brief Convert a data source to a table string. + * @param tableData The data source to convert. * @return The table string representation of the TableData. */ - string toString( TableData const & tableData ) const; + template< typename DATASOURCE > + string toString( DATASOURCE const & tableData ) const; private: @@ -126,7 +155,7 @@ class TableTextFormatter : public TableFormatter /// for the extremity of a row static constexpr char m_horizontalLine = '-'; - /**F + /** * @brief Fill the vector (m_column) in tableData with values from rows stored in tableData. * @param columns Vector of columns to be filled. * @param tableData Vector containing all rows filled with values @@ -217,6 +246,14 @@ class TableTextFormatter : public TableFormatter integer const nbRows, TableLayout::Section const section ) const; }; + +/** + * @brief Convert a TableData to a table string. + * @param tableData The TableData to convert. + * @return The table string representation of the TableData. + */ +template<> +string TableTextFormatter::toString< TableData >( TableData const & tableData ) const; } #endif /* GEOS_COMMON_FORMAT_TABLE_TABLEFORMATTER_HPP */ diff --git a/src/coreComponents/common/format/table/TableLayout.cpp b/src/coreComponents/common/format/table/TableLayout.cpp index b3de6f6b917..7912baa9211 100644 --- a/src/coreComponents/common/format/table/TableLayout.cpp +++ b/src/coreComponents/common/format/table/TableLayout.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/format/table/TableLayout.hpp b/src/coreComponents/common/format/table/TableLayout.hpp index 1c4608e3ea5..4f24fa5559c 100644 --- a/src/coreComponents/common/format/table/TableLayout.hpp +++ b/src/coreComponents/common/format/table/TableLayout.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -97,6 +97,8 @@ class TableLayout string m_maxStringSize; }; + TableLayout() = default; + /** * @brief Construct a new Table object, all values in the table are centered by default * @param columnNames The names of the columns diff --git a/src/coreComponents/common/format/table/unitTests/testTable.cpp b/src/coreComponents/common/format/table/unitTests/testTable.cpp index 37c78d01db6..3663b5eae22 100644 --- a/src/coreComponents/common/format/table/unitTests/testTable.cpp +++ b/src/coreComponents/common/format/table/unitTests/testTable.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -210,9 +210,9 @@ TEST( testTable, table2DTable ) //convert string const rowFmt = GEOS_FMT( "{} = {{}}", "Temperature" ); string const columnFmt = GEOS_FMT( "{} = {{}}", "Pression" ); - TableData2D::Conversion1D tableconverted = tableData.buildTableData( "Viscosity kg*s", - rowFmt, - columnFmt ); + TableData2D::TableDataHolder tableconverted = tableData.buildTableData( "Viscosity kg*s", + rowFmt, + columnFmt ); //format TableLayout const tableLayout( tableconverted.headerNames ); @@ -248,9 +248,9 @@ TEST( testTable, table2DColumnMismatch ) //convert string const rowFmt = GEOS_FMT( "{} = {{}}", "Temperature" ); string const columnFmt = GEOS_FMT( "{} = {{}}", "Pression" ); - TableData2D::Conversion1D tableConverted = tableData.buildTableData( "Viscosity kg*s", - rowFmt, - columnFmt ); + TableData2D::TableDataHolder tableConverted = tableData.buildTableData( "Viscosity kg*s", + rowFmt, + columnFmt ); //format TableLayout const tableLayout( tableConverted.headerNames ); @@ -274,11 +274,10 @@ TEST( testTable, table2DColumnMismatch ) TEST( testTable, layoutTable ) { string filename = "fluid1_phaseModel1_PhillipsBrineDensity_table"; - //2. format + string log = GEOS_FMT( "The {} PVT table exceeding 500 rows.\nTo visualize the tables, go to the generated csv \n", filename ); TableLayout const tableLayoutInfos( {TableLayout::ColumnParam{{log}, TableLayout::Alignment::left}}, filename ); - //3. log TableTextFormatter const tableLog( tableLayoutInfos ); EXPECT_EQ( tableLog.layoutToString(), "\n-------------------------------------------------------------------------------------\n" diff --git a/src/coreComponents/common/format/unitTests/testStringUtilities.cpp b/src/coreComponents/common/format/unitTests/testStringUtilities.cpp index bbf682de8e9..94ca8bc039e 100644 --- a/src/coreComponents/common/format/unitTests/testStringUtilities.cpp +++ b/src/coreComponents/common/format/unitTests/testStringUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/initializeEnvironment.cpp b/src/coreComponents/common/initializeEnvironment.cpp index 03bf8bfcea0..ee3b826aec6 100644 --- a/src/coreComponents/common/initializeEnvironment.cpp +++ b/src/coreComponents/common/initializeEnvironment.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -98,6 +98,9 @@ void setupLvArray() #else LvArray::system::disableFloatingPointExceptions( FE_ALL_EXCEPT ); #endif + + /* Disable chai callbacks by default */ + chai::ArrayManager::getInstance()->disableCallbacks(); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreComponents/common/initializeEnvironment.hpp b/src/coreComponents/common/initializeEnvironment.hpp index 70e2b4b720b..d6364028799 100644 --- a/src/coreComponents/common/initializeEnvironment.hpp +++ b/src/coreComponents/common/initializeEnvironment.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/logger/Logger.cpp b/src/coreComponents/common/logger/Logger.cpp index c730e8168ad..bd800697524 100644 --- a/src/coreComponents/common/logger/Logger.cpp +++ b/src/coreComponents/common/logger/Logger.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/logger/Logger.hpp b/src/coreComponents/common/logger/Logger.hpp index 2988677aaa8..a10c5330b19 100644 --- a/src/coreComponents/common/logger/Logger.hpp +++ b/src/coreComponents/common/logger/Logger.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -79,6 +79,21 @@ } \ } while( false ) +/** + * @brief Conditionally log a message on screen on rank 0 without line breaking. + * @param EXP an expression that will be evaluated as a predicate + * @param msg a message to log (any expression that can be stream inserted) + */ +#define GEOS_LOG_RANK_0_IF_NLR( EXP, msg ) \ + do { \ + if( ::geos::logger::internal::rank == 0 && EXP ) \ + { \ + std::ostringstream oss; \ + oss << msg; \ + std::cout << oss.str(); \ + } \ + } while( false ) + /** * @brief Log a message on screen on rank 0. * @param msg a message to log (any expression that can be stream inserted) @@ -456,6 +471,7 @@ * @brief Output messages based on current Group's log level. * @param[in] minLevel minimum log level * @param[in] msg a message to log (any expression that can be stream inserted) + * @deprecated Will be replaced by GEOS_LOG_LEVEL_INFO */ #define GEOS_LOG_LEVEL( minLevel, msg ) GEOS_LOG_IF( this->getLogLevel() >= minLevel, msg ); @@ -463,6 +479,7 @@ * @brief Output messages (only on rank 0) based on current Group's log level. * @param[in] minLevel minimum log level * @param[in] msg a message to log (any expression that can be stream inserted) + * @deprecated Will be replaced by GEOS_LOG_LEVEL_INFO_RANK_0 */ #define GEOS_LOG_LEVEL_RANK_0( minLevel, msg ) GEOS_LOG_RANK_0_IF( this->getLogLevel() >= minLevel, msg ) @@ -470,6 +487,7 @@ * @brief Output messages (with one line per rank) based on current Group's log level. * @param[in] minLevel minimum log level * @param[in] msg a message to log (any expression that can be stream inserted) + * @deprecated Will be replaced by GEOS_LOG_LEVEL_INFO_BY_RANK */ #define GEOS_LOG_LEVEL_BY_RANK( minLevel, msg ) GEOS_LOG_RANK_IF( this->getLogLevel() >= minLevel, msg ) diff --git a/src/coreComponents/common/unitTests/testCaliperSmoke.cpp b/src/coreComponents/common/unitTests/testCaliperSmoke.cpp index 77771355819..2c3b5fa8cde 100644 --- a/src/coreComponents/common/unitTests/testCaliperSmoke.cpp +++ b/src/coreComponents/common/unitTests/testCaliperSmoke.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/unitTests/testDataTypes.cpp b/src/coreComponents/common/unitTests/testDataTypes.cpp index bd875e8d70b..b5c2a1f87ee 100644 --- a/src/coreComponents/common/unitTests/testDataTypes.cpp +++ b/src/coreComponents/common/unitTests/testDataTypes.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/unitTests/testFixedSizeDeque.cpp b/src/coreComponents/common/unitTests/testFixedSizeDeque.cpp index b9a2489b181..e5f64662e64 100644 --- a/src/coreComponents/common/unitTests/testFixedSizeDeque.cpp +++ b/src/coreComponents/common/unitTests/testFixedSizeDeque.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/unitTests/testLifoStorage.cpp b/src/coreComponents/common/unitTests/testLifoStorage.cpp index 1432137b545..f5b260b0b28 100644 --- a/src/coreComponents/common/unitTests/testLifoStorage.cpp +++ b/src/coreComponents/common/unitTests/testLifoStorage.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -120,7 +120,7 @@ void testLifoStorageBig( int elemCnt, int numberOfElementsOnDevice, int numberOf array.move( local::RAJAHelper< POLICY >::space ); LifoStorage< float, localIndex > lifo( "lifo", array, numberOfElementsOnDevice, numberOfElementsOnHost, totalNumberOfBuffers ); - for( int j = 0; j < 10; j++ ) + for( int j = 0; j < totalNumberOfBuffers; j++ ) { float * dataPointer = array.data(); @@ -128,7 +128,7 @@ void testLifoStorageBig( int elemCnt, int numberOfElementsOnDevice, int numberOf lifo.push( array ); } - for( int j = 0; j < 10; j++ ) + for( int j = 0; j < totalNumberOfBuffers; j++ ) { lifo.pop( array ); float * dataPointer = array.data(); @@ -178,29 +178,34 @@ TEST( LifoStorageTest, LifoStorageBufferOnCUDA ) TEST( LifoStorageTest, LifoStorageBufferOnCUDAlarge ) { - testLifoStorageBig< parallelDevicePolicy< > >( 1000000, 2, 3, 10000 ); + testLifoStorageBig< parallelDevicePolicy< > >( 1000000, 2, 3, 10 ); } TEST( LifoStorageTest, LifoStorageBufferOnCUDAlargeAutoSizeHost ) { - testLifoStorageBig< parallelDevicePolicy< > >( 1000000, 2, -80, 10000 ); + testLifoStorageBig< parallelDevicePolicy< > >( 1000000, 2, -80, 10 ); } TEST( LifoStorageTest, LifoStorageBufferOnCUDAlargeAutoSizeDevice ) { - testLifoStorageBig< parallelDevicePolicy< > >( 1000000, -80, 3, 10000 ); + testLifoStorageBig< parallelDevicePolicy< > >( 1000000, -80, 3, 10 ); } TEST( LifoStorageTest, LifoStorageBufferOnCUDAlargeAutoSizeBoth ) { - testLifoStorageBig< parallelDevicePolicy< > >( 1000000, -80, -80, 10000 ); + testLifoStorageBig< parallelDevicePolicy< > >( 1000000, -80, -80, 10 ); } - -TEST( LifoStorageTest, LifoStorageBufferOnCUDANoDeviceBuffer ) -{ - testLifoStorage< local::devicePolicy< 32 > >( 10, 0, 3, 10 ); -} +// The following test is disabled for now, as it produces a random assertion error +// that affects the current CI (see issue https://github.com/GEOS-DEV/GEOS/issues/3355). +// The error appears randomly on some configurations, and is probably related to the +// size-0 device buffer case that this test covers. This case should not be frequent +// in practise, but the issue should be resolved and the test reactivated as soon as +// a solution is found. +//TEST( LifoStorageTest, LifoStorageBufferOnCUDANoDeviceBuffer ) +//{ +// testLifoStorage< local::devicePolicy< 32 > >( 10, 0, 3, 10 ); +//} TEST( LifoStorageTest, LifoStorageAsyncBufferOnCUDA ) { diff --git a/src/coreComponents/common/unitTests/testTypeDispatch.cpp b/src/coreComponents/common/unitTests/testTypeDispatch.cpp index 4b0b19db0ab..414436cd46d 100644 --- a/src/coreComponents/common/unitTests/testTypeDispatch.cpp +++ b/src/coreComponents/common/unitTests/testTypeDispatch.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/common/unitTests/testUnits.cpp b/src/coreComponents/common/unitTests/testUnits.cpp index a27d979c1a2..f94a3616b5e 100644 --- a/src/coreComponents/common/unitTests/testUnits.cpp +++ b/src/coreComponents/common/unitTests/testUnits.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/CMakeLists.txt b/src/coreComponents/constitutive/CMakeLists.txt index 38304adc24c..69a953f361a 100644 --- a/src/coreComponents/constitutive/CMakeLists.txt +++ b/src/coreComponents/constitutive/CMakeLists.txt @@ -39,8 +39,6 @@ set( constitutive_headers fluid/multifluid/MultiFluidConstants.hpp fluid/multifluid/MultiFluidUtils.hpp fluid/multifluid/MultiFluidFields.hpp - fluid/multifluid/PVTDriver.hpp - fluid/multifluid/PVTDriverRunTest.hpp fluid/multifluid/blackOil/BlackOilFluidBase.hpp fluid/multifluid/blackOil/BlackOilFluid.hpp fluid/multifluid/blackOil/DeadOilFluid.hpp @@ -76,8 +74,11 @@ set( constitutive_headers fluid/multifluid/compositional/models/ComponentProperties.hpp fluid/multifluid/compositional/models/CompositionalDensity.hpp fluid/multifluid/compositional/models/ConstantViscosity.hpp + fluid/multifluid/compositional/models/CriticalVolume.hpp fluid/multifluid/compositional/models/EquationOfState.hpp fluid/multifluid/compositional/models/FunctionBase.hpp + fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.hpp + fluid/multifluid/compositional/models/ImmiscibleWaterParameters.hpp fluid/multifluid/compositional/models/LohrenzBrayClarkViscosity.hpp fluid/multifluid/compositional/models/LohrenzBrayClarkViscosityImpl.hpp fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp @@ -89,8 +90,6 @@ set( constitutive_headers fluid/multifluid/reactive/ReactiveBrineFluid.hpp fluid/multifluid/reactive/ReactiveMultiFluid.hpp fluid/multifluid/reactive/ReactiveMultiFluidFields.hpp - fluid/multifluid/reactive/ReactiveFluidDriver.hpp - fluid/multifluid/reactive/ReactiveFluidSelector.hpp fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.hpp fluid/multifluid/reactive/chemicalReactions/KineticReactions.hpp fluid/multifluid/reactive/chemicalReactions/ReactionsBase.hpp @@ -116,8 +115,6 @@ set( constitutive_headers permeability/ProppantPermeability.hpp permeability/SlipDependentPermeability.hpp permeability/WillisRichardsPermeability.hpp - relativePermeability/RelpermDriver.hpp - relativePermeability/RelpermDriverRunTest.hpp relativePermeability/BrooksCoreyBakerRelativePermeability.hpp relativePermeability/BrooksCoreyStone2RelativePermeability.hpp relativePermeability/BrooksCoreyRelativePermeability.hpp @@ -161,7 +158,6 @@ set( constitutive_headers solid/SolidModelDiscretizationOpsTransverseIsotropic.hpp solid/SolidModelDiscretizationOpsOrthotropic.hpp solid/CeramicDamage.hpp - solid/TriaxialDriver.hpp solid/porosity/PorosityFields.hpp solid/porosity/BiotPorosity.hpp solid/porosity/PorosityBase.hpp @@ -173,7 +169,7 @@ set( constitutive_headers thermalConductivity/MultiPhaseThermalConductivityFields.hpp thermalConductivity/MultiPhaseThermalConductivitySelector.hpp thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.hpp - thermalConductivity/SinglePhaseConstantThermalConductivity.hpp + thermalConductivity/SinglePhaseThermalConductivity.hpp thermalConductivity/SinglePhaseThermalConductivityBase.hpp thermalConductivity/SinglePhaseThermalConductivityFields.hpp thermalConductivity/SinglePhaseThermalConductivitySelector.hpp @@ -203,17 +199,11 @@ set( constitutive_sources dispersion/DispersionBase.cpp dispersion/LinearIsotropicDispersion.cpp fluid/multifluid/MultiFluidBase.cpp - fluid/multifluid/PVTDriver.cpp fluid/multifluid/blackOil/BlackOilFluidBase.cpp fluid/multifluid/blackOil/BlackOilFluid.cpp fluid/multifluid/blackOil/DeadOilFluid.cpp - fluid/multifluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp fluid/multifluid/blackOil/PVTOData.cpp fluid/multifluid/CO2Brine/CO2BrineFluid.cpp - fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsFluid.cpp - fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsThermalFluid.cpp - fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiFluid.cpp - fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiThermalFluid.cpp fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.cpp fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.cpp @@ -231,15 +221,15 @@ set( constitutive_sources fluid/multifluid/CO2Brine/functions/WaterDensity.cpp fluid/multifluid/compositional/models/CompositionalDensity.cpp fluid/multifluid/compositional/models/ConstantViscosity.cpp + fluid/multifluid/compositional/models/CriticalVolume.cpp + fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.cpp + fluid/multifluid/compositional/models/ImmiscibleWaterParameters.cpp fluid/multifluid/compositional/models/LohrenzBrayClarkViscosity.cpp fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.cpp fluid/multifluid/compositional/CompositionalMultiphaseFluid.cpp fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.cpp - fluid/multifluid/compositional/PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp - fluid/multifluid/compositional/PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp fluid/multifluid/reactive/ReactiveBrineFluid.cpp fluid/multifluid/reactive/ReactiveMultiFluid.cpp - fluid/multifluid/reactive/ReactiveFluidDriver.cpp fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.cpp fluid/multifluid/reactive/chemicalReactions/KineticReactions.cpp fluid/multifluid/reactive/chemicalReactions/ReactionsBase.cpp @@ -268,14 +258,6 @@ set( constitutive_sources relativePermeability/TableRelativePermeabilityHysteresis.cpp relativePermeability/VanGenuchtenBakerRelativePermeability.cpp relativePermeability/VanGenuchtenStone2RelativePermeability.cpp - relativePermeability/RelpermDriver.cpp - relativePermeability/RelpermDriverBrooksCoreyBakerRunTest.cpp - relativePermeability/RelpermDriverBrooksCoreyStone2RunTest.cpp - relativePermeability/RelpermDriverBrooksCoreyRunTest.cpp - relativePermeability/RelpermDriverVanGenuchtenBakerRunTest.cpp - relativePermeability/RelpermDriverVanGenuchtenStone2RunTest.cpp - relativePermeability/RelpermDriverTableRelativeRunTest.cpp - relativePermeability/RelpermDriverTableRelativeHysteresisRunTest.cpp solid/CompressibleSolid.cpp solid/CoupledSolidBase.cpp solid/ProppantSolid.cpp @@ -296,7 +278,6 @@ set( constitutive_sources solid/SolidBase.cpp solid/SolidInternalEnergy.cpp solid/CeramicDamage.cpp - solid/TriaxialDriver.cpp solid/porosity/BiotPorosity.cpp solid/porosity/PorosityBase.cpp solid/porosity/PressurePorosity.cpp @@ -304,11 +285,11 @@ set( constitutive_sources thermalConductivity/MultiPhaseConstantThermalConductivity.cpp thermalConductivity/MultiPhaseThermalConductivityBase.cpp thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.cpp - thermalConductivity/SinglePhaseConstantThermalConductivity.cpp + thermalConductivity/SinglePhaseThermalConductivity.cpp thermalConductivity/SinglePhaseThermalConductivityBase.cpp ) -set( dependencyList ${parallelDeps} events dataRepository functions denseLinearAlgebra ) +set( dependencyList ${parallelDeps} functions denseLinearAlgebra ) if( ENABLE_PVTPackage ) set( constitutive_headers @@ -318,22 +299,28 @@ if( ENABLE_PVTPackage ) set( constitutive_sources ${constitutive_sources} fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.cpp - fluid/multifluid/compositional/PVTDriverRunTestCompositionalMultiphaseFluid.cpp ) + ) add_subdirectory( PVTPackage ) list( APPEND dependencyList PVTPackage ) endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME constitutive SOURCES ${constitutive_sources} HEADERS ${constitutive_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( constitutive PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS constitutive LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) + if( GEOS_ENABLE_TESTS ) add_subdirectory( unitTests ) endif( ) diff --git a/src/coreComponents/constitutive/ConstitutiveBase.cpp b/src/coreComponents/constitutive/ConstitutiveBase.cpp index 5912c5036ae..2c7334239c3 100644 --- a/src/coreComponents/constitutive/ConstitutiveBase.cpp +++ b/src/coreComponents/constitutive/ConstitutiveBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -30,7 +30,8 @@ namespace constitutive ConstitutiveBase::ConstitutiveBase( string const & name, Group * const parent ): Group( name, parent ), - m_numQuadraturePoints( 1 ) + m_numQuadraturePoints( 1 ), + m_isClone( false ) { setInputFlags( InputFlags::OPTIONAL_NONUNIQUE ); } @@ -72,6 +73,11 @@ void ConstitutiveBase::allocateConstitutiveData( dataRepository::Group & parent, this->resize( parent.size() ); } +void ConstitutiveBase::setIsClone( bool const newState ) +{ + m_isClone = newState; +} + std::unique_ptr< ConstitutiveBase > ConstitutiveBase::deliverClone( string const & name, Group * const parent ) const @@ -84,6 +90,8 @@ ConstitutiveBase::deliverClone( string const & name, wrapper.copyWrapper( this->getWrapperBase( wrapper.getName() ) ); } ); + newModel->setIsClone( true ); + return newModel; } diff --git a/src/coreComponents/constitutive/ConstitutiveBase.hpp b/src/coreComponents/constitutive/ConstitutiveBase.hpp index 1c876768381..c025a58bb4b 100644 --- a/src/coreComponents/constitutive/ConstitutiveBase.hpp +++ b/src/coreComponents/constitutive/ConstitutiveBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -113,6 +113,11 @@ class ConstitutiveBase : public dataRepository::Group localIndex numQuadraturePoints() const { return m_numQuadraturePoints; } + /** + * @return true if the instance has been produced with deliverClone() + */ + bool isClone() const { return m_isClone; } + virtual std::vector< string > getSubRelationNames() const { return {}; } /** @@ -162,7 +167,16 @@ class ConstitutiveBase : public dataRepository::Group private: + /** + * @brief Set a isClone state boolean + * @param newState The state of the new constitutive model + */ + void setIsClone( bool const newState ); + localIndex m_numQuadraturePoints; + + /// Indicate if this constitutive model a clone + bool m_isClone; }; } diff --git a/src/coreComponents/constitutive/ConstitutiveManager.cpp b/src/coreComponents/constitutive/ConstitutiveManager.cpp index 5328aaf10c3..38d47321344 100644 --- a/src/coreComponents/constitutive/ConstitutiveManager.cpp +++ b/src/coreComponents/constitutive/ConstitutiveManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/ConstitutiveManager.hpp b/src/coreComponents/constitutive/ConstitutiveManager.hpp index 3962a4bbe75..fbea4c187ed 100644 --- a/src/coreComponents/constitutive/ConstitutiveManager.hpp +++ b/src/coreComponents/constitutive/ConstitutiveManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/ConstitutivePassThru.hpp b/src/coreComponents/constitutive/ConstitutivePassThru.hpp index a74a7f4dc87..decabffbb6a 100644 --- a/src/coreComponents/constitutive/ConstitutivePassThru.hpp +++ b/src/coreComponents/constitutive/ConstitutivePassThru.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -49,6 +49,7 @@ #include "permeability/ProppantPermeability.hpp" #include "permeability/SlipDependentPermeability.hpp" #include "permeability/WillisRichardsPermeability.hpp" +#include "contact/CoulombFriction.hpp" namespace geos @@ -83,6 +84,20 @@ struct ConstitutivePassThru< ElasticIsotropic > } }; +/** + * Specialization for models that derive from CoulombFriction. + */ +template<> +struct ConstitutivePassThru< CoulombFriction > +{ + template< typename LAMBDA > + static + void execute( ConstitutiveBase & constitutiveRelation, LAMBDA && lambda ) + { + ConstitutivePassThruHandler< CoulombFriction >::execute( constitutiveRelation, + std::forward< LAMBDA >( lambda ) ); + } +}; /** * Specialization for models that derive from SolidBase. diff --git a/src/coreComponents/constitutive/ConstitutivePassThruHandler.hpp b/src/coreComponents/constitutive/ConstitutivePassThruHandler.hpp index 631b32d6b2f..54dc51b24cc 100644 --- a/src/coreComponents/constitutive/ConstitutivePassThruHandler.hpp +++ b/src/coreComponents/constitutive/ConstitutivePassThruHandler.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/ExponentialRelation.hpp b/src/coreComponents/constitutive/ExponentialRelation.hpp index ff0f197872a..64866627cbd 100644 --- a/src/coreComponents/constitutive/ExponentialRelation.hpp +++ b/src/coreComponents/constitutive/ExponentialRelation.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/NullModel.cpp b/src/coreComponents/constitutive/NullModel.cpp index 732a47c53b9..7ec9e6f19c0 100644 --- a/src/coreComponents/constitutive/NullModel.cpp +++ b/src/coreComponents/constitutive/NullModel.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/NullModel.hpp b/src/coreComponents/constitutive/NullModel.hpp index 0a0635da757..e26a34b525b 100644 --- a/src/coreComponents/constitutive/NullModel.hpp +++ b/src/coreComponents/constitutive/NullModel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.cpp b/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.cpp index 6e34b636749..eab49c34049 100644 --- a/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.cpp +++ b/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.hpp b/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.hpp index 48d53d7e6a2..67f4195d31b 100644 --- a/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureBase.cpp b/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureBase.cpp index b097576cc1a..b3d7e2bba0b 100644 --- a/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureBase.cpp +++ b/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureBase.hpp b/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureBase.hpp index efe78bdd908..b63aea24aac 100644 --- a/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureBase.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureFields.hpp b/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureFields.hpp index 74b5c13998f..b9836e21f11 100644 --- a/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureFields.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/CapillaryPressureFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/JFunctionCapillaryPressure.cpp b/src/coreComponents/constitutive/capillaryPressure/JFunctionCapillaryPressure.cpp index de1a06ddf1b..1dda8c49484 100644 --- a/src/coreComponents/constitutive/capillaryPressure/JFunctionCapillaryPressure.cpp +++ b/src/coreComponents/constitutive/capillaryPressure/JFunctionCapillaryPressure.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -250,6 +250,7 @@ void JFunctionCapillaryPressure::saveConvergedRockState( arrayView2d< real64 con { permeability = convergedPermeability[ei][0][2]; } + GEOS_ERROR_IF( permeability < LvArray::NumericLimits< real64 >::epsilon, "Zero permeability in J-function capillary pressure" ); // here we compute an average of the porosity over quadrature points // this average is exact for tets, regular pyramids/wedges/hexes, or for VEM diff --git a/src/coreComponents/constitutive/capillaryPressure/JFunctionCapillaryPressure.hpp b/src/coreComponents/constitutive/capillaryPressure/JFunctionCapillaryPressure.hpp index 33395544d0c..270adb15902 100644 --- a/src/coreComponents/constitutive/capillaryPressure/JFunctionCapillaryPressure.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/JFunctionCapillaryPressure.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressure.cpp b/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressure.cpp index a5354d499a8..13d9926f49a 100644 --- a/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressure.cpp +++ b/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressure.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressure.hpp b/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressure.hpp index 35afce50906..170055d19bb 100644 --- a/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressure.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressure.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressureHelpers.cpp b/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressureHelpers.cpp index f6ee1174791..818f869f2b4 100644 --- a/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressureHelpers.cpp +++ b/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressureHelpers.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressureHelpers.hpp b/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressureHelpers.hpp index b55e4858e36..3e66d868928 100644 --- a/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressureHelpers.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/TableCapillaryPressureHelpers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.cpp b/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.cpp index a7822804573..d739e9e2d5b 100644 --- a/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.cpp +++ b/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.hpp b/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.hpp index f7512bfbc9b..17e58221279 100644 --- a/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/capillaryPressureSelector.hpp b/src/coreComponents/constitutive/capillaryPressure/capillaryPressureSelector.hpp index 987ec59bc60..ad6b69b9082 100644 --- a/src/coreComponents/constitutive/capillaryPressure/capillaryPressureSelector.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/capillaryPressureSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/capillaryPressure/layouts.hpp b/src/coreComponents/constitutive/capillaryPressure/layouts.hpp index 802c932fcc7..e66655c18b9 100644 --- a/src/coreComponents/constitutive/capillaryPressure/layouts.hpp +++ b/src/coreComponents/constitutive/capillaryPressure/layouts.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/contact/CoulombFriction.cpp b/src/coreComponents/constitutive/contact/CoulombFriction.cpp index bf9d89cb073..1199f652d7e 100644 --- a/src/coreComponents/constitutive/contact/CoulombFriction.cpp +++ b/src/coreComponents/constitutive/contact/CoulombFriction.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -73,7 +73,7 @@ void CoulombFriction::allocateConstitutiveData( Group & parent, } -CoulombFrictionUpdates CoulombFriction::createKernelWrapper() const +CoulombFrictionUpdates CoulombFriction::createKernelUpdates() const { return CoulombFrictionUpdates( m_displacementJumpThreshold, m_shearStiffness, diff --git a/src/coreComponents/constitutive/contact/CoulombFriction.hpp b/src/coreComponents/constitutive/contact/CoulombFriction.hpp index e2cd87f024f..2ed7d182536 100644 --- a/src/coreComponents/constitutive/contact/CoulombFriction.hpp +++ b/src/coreComponents/constitutive/contact/CoulombFriction.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -90,6 +90,41 @@ class CoulombFrictionUpdates : public FrictionBaseUpdates arraySlice1d< real64 const > const & tractionVector, integer & fractureState ) const override final; + GEOS_HOST_DEVICE + inline + virtual void updateTraction( arraySlice1d< real64 const > const & oldDispJump, + arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & penalty, + arraySlice1d< real64 const > const & traction, + bool const symmetric, + bool const fixedLimitTau, + real64 const normalTractionTolerance, + real64 const tangentialTractionTolerance, + real64 ( &dTraction_dDispJump )[3][3], + real64 ( &tractionNew )[3], + integer & fractureState ) const override final; + + + GEOS_HOST_DEVICE + inline + virtual void updateTractionOnly( arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & deltaDispJump, + arraySlice1d< real64 const > const & penalty, + arraySlice1d< real64 const > const & traction, + arraySlice1d< real64 > const & tractionNew ) const override final; + + GEOS_HOST_DEVICE + inline + virtual void constraintCheck( arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & deltaDispJump, + arraySlice1d< real64 > const & tractionVector, + integer const fractureState, + real64 const normalTractionTolerance, + real64 const normalDisplacementTolerance, + real64 const slidingTolerance, + real64 const slidingCheckTolerance, + integer & condConv ) const override final; + private: /// The shear stiffness real64 m_shearStiffness; @@ -155,7 +190,7 @@ class CoulombFriction : public FrictionBase * @brief Create an update kernel wrapper. * @return the wrapper */ - KernelWrapper createKernelWrapper() const; + KernelWrapper createKernelUpdates() const; protected: @@ -302,6 +337,252 @@ inline void CoulombFrictionUpdates::updateFractureState( localIndex const k, } } +GEOS_HOST_DEVICE +inline void CoulombFrictionUpdates::updateTraction( arraySlice1d< real64 const > const & oldDispJump, + arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & penalty, + arraySlice1d< real64 const > const & traction, + bool const symmetric, + bool const fixedLimitTau, + real64 const normalTractionTolerance, + real64 const tangentialTractionTolerance, + real64 ( & dTraction_dDispJump )[3][3], + real64 ( & tractionNew ) [3], + integer & fractureState ) const +{ + + using namespace fields::contact; + + real64 dLimitTangentialTractionNorm_dTraction = 0.0; + real64 limitTau = 0.0; + + // Compute the trial traction + real64 tractionTrial[ 3 ]; + tractionTrial[ 0 ] = traction[0] + penalty[0] * dispJump[0]; + tractionTrial[ 1 ] = traction[1] + penalty[1] * (dispJump[1] - oldDispJump[1]); + tractionTrial[ 2 ] = traction[2] + penalty[1] * (dispJump[2] - oldDispJump[2]); + + // Compute tangential trial traction norm + real64 const tau[2] = { tractionTrial[1], + tractionTrial[2] }; + real64 const tractionTrialNorm = LvArray::tensorOps::l2Norm< 2 >( tau ); + + // If normal tangential trial is positive (opening) + fractureState = FractureState::Stick; + if( tractionTrial[ 0 ] > normalTractionTolerance ) + { + tractionNew[0] = 0.0; + dTraction_dDispJump[0][0] = 0.0; + fractureState = FractureState::Open; + } + else + { + tractionNew[0] = tractionTrial[0]; + dTraction_dDispJump[0][0] = -penalty[ 0 ]; + } + + // Compute limit Tau + if( fixedLimitTau ) + { + limitTau = computeLimitTangentialTractionNorm( traction[0], + dLimitTangentialTractionNorm_dTraction ); + } + else + { + limitTau = computeLimitTangentialTractionNorm( tractionNew[0], + dLimitTangentialTractionNorm_dTraction ); + } + + if( tractionTrialNorm <= tangentialTractionTolerance ) + { + // It is needed for the first iteration (both t and u are equal to zero) + dTraction_dDispJump[1][1] = -penalty[1]; + dTraction_dDispJump[2][2] = -penalty[1]; + + tractionNew[1] = tractionTrial[1]; + tractionNew[2] = tractionTrial[2]; + + if( fractureState != FractureState::Open ) + fractureState = FractureState::Stick; + } + else if( limitTau <= tangentialTractionTolerance ) + { + dTraction_dDispJump[1][1] = 0.0; + dTraction_dDispJump[2][2] = 0.0; + + tractionNew[1] = (fixedLimitTau) ? tractionTrial[1] : 0.0; + tractionNew[2] = (fixedLimitTau) ? tractionTrial[2] : 0.0; + + if( fractureState != FractureState::Open ) + fractureState = FractureState::Slip; + } + else + { + // Compute psi and dpsi + //real64 const psi = std::tanh( tractionTrialNorm/limitTau ); + //real64 const dpsi = 1.0-std::pow(psi,2); + real64 const psi = ( tractionTrialNorm > limitTau) ? 1.0 : tractionTrialNorm/limitTau; + real64 const dpsi = ( tractionTrialNorm > limitTau) ? 0.0 : 1.0; + + if( fractureState != FractureState::Open ) + { + fractureState = ( tractionTrialNorm > limitTau) ? FractureState::Slip : FractureState::Stick; + } + + // Two symmetric 2x2 matrices + real64 dNormTTdgT[ 3 ]; + dNormTTdgT[ 0 ] = tractionTrial[ 1 ] * tractionTrial[ 1 ]; + dNormTTdgT[ 1 ] = tractionTrial[ 2 ] * tractionTrial[ 2 ]; + dNormTTdgT[ 2 ] = tractionTrial[ 1 ] * tractionTrial[ 2 ]; + + real64 dTdgT[ 3 ]; + dTdgT[ 0 ] = (tractionTrialNorm * tractionTrialNorm - dNormTTdgT[0]); + dTdgT[ 1 ] = (tractionTrialNorm * tractionTrialNorm - dNormTTdgT[1]); + dTdgT[ 2 ] = -dNormTTdgT[2]; + + LvArray::tensorOps::scale< 3 >( dNormTTdgT, 1. / std::pow( tractionTrialNorm, 2 ) ); + LvArray::tensorOps::scale< 3 >( dTdgT, 1. / std::pow( tractionTrialNorm, 3 ) ); + + // Compute dTdDispJump + dTraction_dDispJump[1][1] = -penalty[1] * ( + dpsi * dNormTTdgT[0] + + psi * dTdgT[0] * limitTau ); + dTraction_dDispJump[2][2] = -penalty[1] * ( + dpsi * dNormTTdgT[1] + + psi * dTdgT[1] * limitTau ); + dTraction_dDispJump[1][2] = -penalty[1] * ( + dpsi * dNormTTdgT[2] + + psi * dTdgT[2] * limitTau ); + dTraction_dDispJump[2][1] = dTraction_dDispJump[1][2]; + + if( !symmetric ) + { + // Nonsymetric term + dTraction_dDispJump[1][0] = -dTraction_dDispJump[0][0] * m_frictionCoefficient * + tractionTrial[1] * (psi/tractionTrialNorm - dpsi/limitTau); + dTraction_dDispJump[2][0] = -dTraction_dDispJump[0][0] * m_frictionCoefficient * + tractionTrial[2] * (psi/tractionTrialNorm - dpsi/limitTau); + } + + LvArray::tensorOps::scale< 3 >( tractionTrial, (psi * limitTau)/tractionTrialNorm ); + tractionNew[1] = tractionTrial[1]; + tractionNew[2] = tractionTrial[2]; + } + +} + +GEOS_HOST_DEVICE +inline void CoulombFrictionUpdates::updateTractionOnly( arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & deltaDispJump, + arraySlice1d< real64 const > const & penalty, + arraySlice1d< real64 const > const & traction, + arraySlice1d< real64 > const & tractionNew ) const +{ + + // TODO: Pass this tol as an argument or define a new class member + real64 const zero = LvArray::NumericLimits< real64 >::epsilon; + + tractionNew[0] = traction[0] + penalty[0] * dispJump[0]; + tractionNew[1] = traction[1] + penalty[1] * deltaDispJump[1]; + tractionNew[2] = traction[2] + penalty[1] * deltaDispJump[2]; + + real64 const tau[2] = { tractionNew[1], + tractionNew[2] }; + real64 const currentTau = LvArray::tensorOps::l2Norm< 2 >( tau ); + + real64 dLimitTangentialTractionNorm_dTraction = 0.0; + real64 const limitTau = computeLimitTangentialTractionNorm( tractionNew[0], + dLimitTangentialTractionNorm_dTraction ); + + // Compute psi + real64 psi; + if( limitTau < zero ) + { + psi = 1.0; + } + else + { + //psi = std::tanh(currentTau / limitTau); + psi = (currentTau > limitTau ) ? 1.0 : currentTau/limitTau; + } + + // Compute the new tangential traction + if( limitTau > zero && currentTau > zero ) + { + tractionNew[1] *= limitTau * psi / currentTau; + tractionNew[2] *= limitTau * psi / currentTau; + } + else + { + tractionNew[1] *= 0.0; + tractionNew[2] *= 0.0; + } +} + +GEOS_HOST_DEVICE +inline void CoulombFrictionUpdates::constraintCheck( arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & deltaDispJump, + arraySlice1d< real64 > const & tractionVector, + integer const fractureState, + real64 const normalTractionTolerance, + real64 const normalDisplacementTolerance, + real64 const slidingTolerance, + real64 const slidingCheckTolerance, + integer & condConv ) const +{ + + using namespace fields::contact; + + // Compute the slip + real64 const deltaDisp[2] = { deltaDispJump[1], + deltaDispJump[2] }; + + real64 const deltaDispNorm = LvArray::tensorOps::l2Norm< 2 >( deltaDisp ); + + // Compute current Tau and limit Tau + real64 const tau[2] = { tractionVector[1], + tractionVector[2] }; + real64 const currentTau = LvArray::tensorOps::l2Norm< 2 >( tau ); + + real64 dLimitTangentialTractionNorm_dTraction = 0.0; + real64 const limitTau = computeLimitTangentialTractionNorm( tractionVector[0], + dLimitTangentialTractionNorm_dTraction ); + + condConv = 0; + // Case 1: if it is open + if( tractionVector[0] >= normalTractionTolerance ) + { + if( fractureState != FractureState::Open ) + { + condConv = 1; + } + tractionVector[0] = 0.0; + tractionVector[1] = 0.0; + tractionVector[2] = 0.0; + } + else + { + // Case 2: compenetration + if(( LvArray::math::abs( dispJump[0] ) > normalDisplacementTolerance ) && + (fractureState != FractureState::Open)) + { + condConv = 2; + } + // Case 3: it is stick and dg is greater than 0 + if( fractureState == FractureState::Stick && + deltaDispNorm > slidingTolerance ) + { + condConv = 3; + } + + // Case 4: the elastic tangential traction is greater than the limit + if( currentTau > (LvArray::math::abs( limitTau ) * (1.0 + slidingCheckTolerance)) ) + { + condConv = 4; + } + } +} + } /* namespace constitutive */ } /* namespace geos */ diff --git a/src/coreComponents/constitutive/contact/FrictionBase.hpp b/src/coreComponents/constitutive/contact/FrictionBase.hpp index 13186378e42..e05923f2998 100644 --- a/src/coreComponents/constitutive/contact/FrictionBase.hpp +++ b/src/coreComponents/constitutive/contact/FrictionBase.hpp @@ -89,7 +89,81 @@ class FrictionBaseUpdates integer & fractureState ) const { GEOS_UNUSED_VAR( k, dispJump, tractionVector, fractureState ); } + /** + * @brief Update the trial traction vector ( return mapping ) + * @param[in] oldDispJump the displacement jump of the previous time step + * @param[in] dispJump the displacement jump of the current time step + * @param[in] penalty the penalty coefficients + * @param[in] traction the traction vector + * @param[in] symmetric flag to compute only the symmetric part of dTraction_dDispJump + * @param[in] fixedLimitTau flag to keep fixed the tangential stress + * @param[in] normalTractionTolerance normal traction tolerance (if tn > tol => fracture is open) + * @param[in] tangentialTractionTolerance tangential traction tolerance (if tau < tol => tau = 0) + * @param[out] dTraction_dDispJump matrix containing the derivatives of traction over the displacement jump + * @param[out] tractionNew the new traction vector + * @param[out] fractureState the fracture state + */ + GEOS_HOST_DEVICE + inline + virtual void updateTraction( arraySlice1d< real64 const > const & oldDispJump, + arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & penalty, + arraySlice1d< real64 const > const & traction, + bool const symmetric, + bool const fixedLimitTau, + real64 const normalTractionTolerance, + real64 const tangentialTractionTolerance, + real64 ( & dTraction_dDispJump )[3][3], + real64 ( & tractionNew )[3], + integer & fractureState ) const + { + GEOS_UNUSED_VAR( oldDispJump, dispJump, penalty, traction, symmetric, fixedLimitTau, + normalTractionTolerance, tangentialTractionTolerance, + dTraction_dDispJump, tractionNew, fractureState ); + } + /** + * @brief Update the traction vector only ( return mapping ) + * @param[in] dispJump the displacement jump of the current time step + * @param[in] deltaDispJump the delta displacement jump of the current time step + * @param[in] penalty the penalty coefficients + * @param[in] traction the traction vector + * @param[out] tractionNew the new traction vector + */ + GEOS_HOST_DEVICE + inline + virtual void updateTractionOnly( arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & deltaDispJump, + arraySlice1d< real64 const > const & penalty, + arraySlice1d< real64 const > const & traction, + arraySlice1d< real64 > const & tractionNew ) const + { GEOS_UNUSED_VAR( dispJump, deltaDispJump, penalty, traction, tractionNew ); } + + /** + * @brief Check for the constraint satisfaction + * @param[in] dispJump the displacement jump of the current time step + * @param[in] deltaDispJump the delta displacement jump of the current time step + * @param[in] tractionVector the traction vector + * @param[in] fractureState the fracture check + * @param[in] tolerance the tolerance + * @param[out] condConv flag indicating the result of the check + */ + GEOS_HOST_DEVICE + inline + virtual void constraintCheck( arraySlice1d< real64 const > const & dispJump, + arraySlice1d< real64 const > const & deltaDispJump, + arraySlice1d< real64 > const & tractionVector, + integer const fractureState, + real64 const normalTractionTolerance, + real64 const normalDisplacementTolerance, + real64 const slidingTolerance, + real64 const slidingCheckTolerance, + integer & condConv ) const + { + GEOS_UNUSED_VAR( dispJump, deltaDispJump, tractionVector, fractureState, + normalTractionTolerance, normalDisplacementTolerance, slidingTolerance, + slidingCheckTolerance, condConv ); + } /** * @brief Evaluate the limit tangential traction norm and return the derivative wrt normal traction diff --git a/src/coreComponents/constitutive/contact/FrictionSelector.hpp b/src/coreComponents/constitutive/contact/FrictionSelector.hpp index 70f510eb0a7..8eab7ff72dd 100644 --- a/src/coreComponents/constitutive/contact/FrictionSelector.hpp +++ b/src/coreComponents/constitutive/contact/FrictionSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/contact/FrictionlessContact.cpp b/src/coreComponents/constitutive/contact/FrictionlessContact.cpp index a74b36a76fb..e7fb6bb8ba6 100644 --- a/src/coreComponents/constitutive/contact/FrictionlessContact.cpp +++ b/src/coreComponents/constitutive/contact/FrictionlessContact.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -35,7 +35,7 @@ FrictionlessContact::FrictionlessContact( string const & name, FrictionlessContact::~FrictionlessContact() {} -FrictionlessContactUpdates FrictionlessContact::createKernelWrapper() const +FrictionlessContactUpdates FrictionlessContact::createKernelUpdates() const { return FrictionlessContactUpdates( m_displacementJumpThreshold ); } diff --git a/src/coreComponents/constitutive/contact/FrictionlessContact.hpp b/src/coreComponents/constitutive/contact/FrictionlessContact.hpp index 81aeea036d3..83e53fd8e14 100644 --- a/src/coreComponents/constitutive/contact/FrictionlessContact.hpp +++ b/src/coreComponents/constitutive/contact/FrictionlessContact.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -118,7 +118,7 @@ class FrictionlessContact : public FrictionBase * @brief Create an update kernel wrapper. * @return the wrapper */ - KernelWrapper createKernelWrapper() const; + KernelWrapper createKernelUpdates() const; /** * @struct Structure to hold scoped key names diff --git a/src/coreComponents/constitutive/contact/HydraulicApertureTable.cpp b/src/coreComponents/constitutive/contact/HydraulicApertureTable.cpp index 60c3f0ab807..b57d9e3e58e 100644 --- a/src/coreComponents/constitutive/contact/HydraulicApertureTable.cpp +++ b/src/coreComponents/constitutive/contact/HydraulicApertureTable.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/contact/HydraulicApertureTable.hpp b/src/coreComponents/constitutive/contact/HydraulicApertureTable.hpp index c1e9c47c1ce..2022e6cec5c 100644 --- a/src/coreComponents/constitutive/contact/HydraulicApertureTable.hpp +++ b/src/coreComponents/constitutive/contact/HydraulicApertureTable.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/diffusion/ConstantDiffusion.cpp b/src/coreComponents/constitutive/diffusion/ConstantDiffusion.cpp index 0ea578e7f32..d53096ba4ff 100644 --- a/src/coreComponents/constitutive/diffusion/ConstantDiffusion.cpp +++ b/src/coreComponents/constitutive/diffusion/ConstantDiffusion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/diffusion/ConstantDiffusion.hpp b/src/coreComponents/constitutive/diffusion/ConstantDiffusion.hpp index ae25a77d2ac..c482781b8bb 100644 --- a/src/coreComponents/constitutive/diffusion/ConstantDiffusion.hpp +++ b/src/coreComponents/constitutive/diffusion/ConstantDiffusion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/diffusion/DiffusionBase.cpp b/src/coreComponents/constitutive/diffusion/DiffusionBase.cpp index e87a50d5426..8bacdb7dfb5 100644 --- a/src/coreComponents/constitutive/diffusion/DiffusionBase.cpp +++ b/src/coreComponents/constitutive/diffusion/DiffusionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/diffusion/DiffusionBase.hpp b/src/coreComponents/constitutive/diffusion/DiffusionBase.hpp index a80b749242f..7bc5daed75b 100644 --- a/src/coreComponents/constitutive/diffusion/DiffusionBase.hpp +++ b/src/coreComponents/constitutive/diffusion/DiffusionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/diffusion/DiffusionFields.hpp b/src/coreComponents/constitutive/diffusion/DiffusionFields.hpp index 052a4d907d5..397f6214553 100644 --- a/src/coreComponents/constitutive/diffusion/DiffusionFields.hpp +++ b/src/coreComponents/constitutive/diffusion/DiffusionFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/diffusion/DiffusionSelector.hpp b/src/coreComponents/constitutive/diffusion/DiffusionSelector.hpp index 42634f06f40..fe077fef543 100644 --- a/src/coreComponents/constitutive/diffusion/DiffusionSelector.hpp +++ b/src/coreComponents/constitutive/diffusion/DiffusionSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/dispersion/DispersionBase.cpp b/src/coreComponents/constitutive/dispersion/DispersionBase.cpp index 416904148f4..8e15b45fe77 100644 --- a/src/coreComponents/constitutive/dispersion/DispersionBase.cpp +++ b/src/coreComponents/constitutive/dispersion/DispersionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/dispersion/DispersionBase.hpp b/src/coreComponents/constitutive/dispersion/DispersionBase.hpp index 99587459115..6ced3ca28b8 100644 --- a/src/coreComponents/constitutive/dispersion/DispersionBase.hpp +++ b/src/coreComponents/constitutive/dispersion/DispersionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/dispersion/DispersionFields.hpp b/src/coreComponents/constitutive/dispersion/DispersionFields.hpp index 66f85fc2781..0baca85dca8 100644 --- a/src/coreComponents/constitutive/dispersion/DispersionFields.hpp +++ b/src/coreComponents/constitutive/dispersion/DispersionFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/dispersion/DispersionSelector.hpp b/src/coreComponents/constitutive/dispersion/DispersionSelector.hpp index f0e5f146fef..3dda4ba2ab1 100644 --- a/src/coreComponents/constitutive/dispersion/DispersionSelector.hpp +++ b/src/coreComponents/constitutive/dispersion/DispersionSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/dispersion/LinearIsotropicDispersion.cpp b/src/coreComponents/constitutive/dispersion/LinearIsotropicDispersion.cpp index 57cf6b28e4b..5f49d1a66fd 100644 --- a/src/coreComponents/constitutive/dispersion/LinearIsotropicDispersion.cpp +++ b/src/coreComponents/constitutive/dispersion/LinearIsotropicDispersion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/dispersion/LinearIsotropicDispersion.hpp b/src/coreComponents/constitutive/dispersion/LinearIsotropicDispersion.hpp index 4ac27a5d81c..949f72e51d6 100644 --- a/src/coreComponents/constitutive/dispersion/LinearIsotropicDispersion.hpp +++ b/src/coreComponents/constitutive/dispersion/LinearIsotropicDispersion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/docs/BiotPorosity.rst b/src/coreComponents/constitutive/docs/BiotPorosity.rst index dd74e0dbbc5..e1257d14c1e 100644 --- a/src/coreComponents/constitutive/docs/BiotPorosity.rst +++ b/src/coreComponents/constitutive/docs/BiotPorosity.rst @@ -33,7 +33,7 @@ block. The following attributes are supported: -.. include:: /coreComponents/schema/docs/BiotPorosity.rst +.. include:: /docs/sphinx/datastructure/BiotPorosity.rst Example ======================= diff --git a/src/coreComponents/constitutive/docs/BlackOilFluid.rst b/src/coreComponents/constitutive/docs/BlackOilFluid.rst index a7e3fb27e68..106cd122646 100644 --- a/src/coreComponents/constitutive/docs/BlackOilFluid.rst +++ b/src/coreComponents/constitutive/docs/BlackOilFluid.rst @@ -83,7 +83,7 @@ In order to use the model, GEOS must be built with ``-DENABLE_PVTPACKAGE=ON`` (d The following attributes are supported: -.. include:: ../../../coreComponents/schema/docs/BlackOilFluid.rst +.. include:: /docs/sphinx/datastructure/BlackOilFluid.rst Supported phase names are: diff --git a/src/coreComponents/constitutive/docs/BrooksCoreyCapillaryPressure.rst b/src/coreComponents/constitutive/docs/BrooksCoreyCapillaryPressure.rst index e2820290648..e9e5ed043f9 100644 --- a/src/coreComponents/constitutive/docs/BrooksCoreyCapillaryPressure.rst +++ b/src/coreComponents/constitutive/docs/BrooksCoreyCapillaryPressure.rst @@ -47,7 +47,7 @@ node. The following attributes are supported: -.. include:: /coreComponents/schema/docs/BrooksCoreyCapillaryPressure.rst +.. include:: /docs/sphinx/datastructure/BrooksCoreyCapillaryPressure.rst Below are some comments on the model parameters: diff --git a/src/coreComponents/constitutive/docs/BrooksCoreyRelativePermeability.rst b/src/coreComponents/constitutive/docs/BrooksCoreyRelativePermeability.rst index be638c984b1..2ef89a3e981 100644 --- a/src/coreComponents/constitutive/docs/BrooksCoreyRelativePermeability.rst +++ b/src/coreComponents/constitutive/docs/BrooksCoreyRelativePermeability.rst @@ -35,7 +35,7 @@ node. The following attributes are supported: -.. include:: /coreComponents/schema/docs/BrooksCoreyRelativePermeability.rst +.. include:: /docs/sphinx/datastructure/BrooksCoreyRelativePermeability.rst Below are some comments on the model parameters. diff --git a/src/coreComponents/constitutive/docs/CO2BrineFluid.rst b/src/coreComponents/constitutive/docs/CO2BrineFluid.rst index 61ab1782578..2a3e001fc46 100644 --- a/src/coreComponents/constitutive/docs/CO2BrineFluid.rst +++ b/src/coreComponents/constitutive/docs/CO2BrineFluid.rst @@ -244,7 +244,7 @@ The models are represented by ````, ```` node in the input The following attributes are supported: -.. include:: ../../../coreComponents/schema/docs/CompressibleSinglePhaseFluid.rst +.. include:: /docs/sphinx/datastructure/CompressibleSinglePhaseFluid.rst Example ========================= diff --git a/src/coreComponents/constitutive/docs/ConstantPermeability.rst b/src/coreComponents/constitutive/docs/ConstantPermeability.rst index 6c4b065bdfc..84b0d26fe58 100644 --- a/src/coreComponents/constitutive/docs/ConstantPermeability.rst +++ b/src/coreComponents/constitutive/docs/ConstantPermeability.rst @@ -17,7 +17,7 @@ Parameters The following attributes are supported: -.. include:: /coreComponents/schema/docs/ConstantPermeability.rst +.. include:: /docs/sphinx/datastructure/ConstantPermeability.rst Example diff --git a/src/coreComponents/constitutive/docs/Constitutive.rst b/src/coreComponents/constitutive/docs/Constitutive.rst index 68279ea3774..d1441d78d7b 100644 --- a/src/coreComponents/constitutive/docs/Constitutive.rst +++ b/src/coreComponents/constitutive/docs/Constitutive.rst @@ -19,6 +19,7 @@ These models are grouped together based on their input/output interface. PermeabilityModels PorousSolids TemperatureDependentSolidVolumetricHeatCapacity + TemperatureDependentThermalConductivity In an input XML file, constitutive models are listed in the ```` block. @@ -50,7 +51,7 @@ A typical ```` and ```` block will look like: diff --git a/src/coreComponents/constitutive/docs/ExponentialDecayPermeability.rst b/src/coreComponents/constitutive/docs/ExponentialDecayPermeability.rst index c5e5889fa42..b2221a83db7 100644 --- a/src/coreComponents/constitutive/docs/ExponentialDecayPermeability.rst +++ b/src/coreComponents/constitutive/docs/ExponentialDecayPermeability.rst @@ -30,7 +30,7 @@ block. The following attributes are supported: -.. include:: /coreComponents/schema/docs/ExponentialDecayPermeability.rst +.. include:: /docs/sphinx/datastructure/ExponentialDecayPermeability.rst Example diff --git a/src/coreComponents/constitutive/docs/FluidModels.rst b/src/coreComponents/constitutive/docs/FluidModels.rst index 3b7beb6c902..445f8a82f0b 100644 --- a/src/coreComponents/constitutive/docs/FluidModels.rst +++ b/src/coreComponents/constitutive/docs/FluidModels.rst @@ -15,6 +15,4 @@ single fluids and fluid mixtures. CompositionalMultiphaseFluid - CO2BrineFluid - - PVTDriver + CO2BrineFluid \ No newline at end of file diff --git a/src/coreComponents/constitutive/docs/KozenyCarmanPermeability.rst b/src/coreComponents/constitutive/docs/KozenyCarmanPermeability.rst index 8365288ce2f..0f315a4ce9f 100644 --- a/src/coreComponents/constitutive/docs/KozenyCarmanPermeability.rst +++ b/src/coreComponents/constitutive/docs/KozenyCarmanPermeability.rst @@ -32,7 +32,7 @@ block. The following attributes are supported: -.. include:: /coreComponents/schema/docs/CarmanKozenyPermeability.rst +.. include:: /docs/sphinx/datastructure/CarmanKozenyPermeability.rst diff --git a/src/coreComponents/constitutive/docs/ParallelPlatesPermeability.rst b/src/coreComponents/constitutive/docs/ParallelPlatesPermeability.rst index 8f53bbb32a8..3169f3d0f84 100644 --- a/src/coreComponents/constitutive/docs/ParallelPlatesPermeability.rst +++ b/src/coreComponents/constitutive/docs/ParallelPlatesPermeability.rst @@ -35,7 +35,7 @@ block. The following attributes are supported: -.. include:: /coreComponents/schema/docs/ParallelPlatesPermeability.rst +.. include:: /docs/sphinx/datastructure/ParallelPlatesPermeability.rst .. _Witherspoon et al.: https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/WR016i006p01016 diff --git a/src/coreComponents/constitutive/docs/PressurePorosity.rst b/src/coreComponents/constitutive/docs/PressurePorosity.rst index 9a6fcb1d365..6659084688b 100644 --- a/src/coreComponents/constitutive/docs/PressurePorosity.rst +++ b/src/coreComponents/constitutive/docs/PressurePorosity.rst @@ -23,7 +23,7 @@ Parameters The following attributes are supported: -.. include:: /coreComponents/schema/docs/PressurePorosity.rst +.. include:: /docs/sphinx/datastructure/PressurePorosity.rst Example ======================= diff --git a/src/coreComponents/constitutive/docs/SlipDependentPermeability.rst b/src/coreComponents/constitutive/docs/SlipDependentPermeability.rst index fb47d4cd597..562728ce046 100644 --- a/src/coreComponents/constitutive/docs/SlipDependentPermeability.rst +++ b/src/coreComponents/constitutive/docs/SlipDependentPermeability.rst @@ -30,7 +30,7 @@ block. The following attributes are supported: -.. include:: /coreComponents/schema/docs/SlipDependentPermeability.rst +.. include:: /docs/sphinx/datastructure/SlipDependentPermeability.rst Example diff --git a/src/coreComponents/constitutive/docs/TableCapillaryPressure.rst b/src/coreComponents/constitutive/docs/TableCapillaryPressure.rst index 64246920f27..e420a43e51b 100644 --- a/src/coreComponents/constitutive/docs/TableCapillaryPressure.rst +++ b/src/coreComponents/constitutive/docs/TableCapillaryPressure.rst @@ -46,7 +46,7 @@ node. The following attributes are supported: -.. include:: /coreComponents/schema/docs/TableCapillaryPressure.rst +.. include:: /docs/sphinx/datastructure/TableCapillaryPressure.rst Below are some comments on the model parameters. diff --git a/src/coreComponents/constitutive/docs/TableRelativePermeability.rst b/src/coreComponents/constitutive/docs/TableRelativePermeability.rst index 1e77bf9c9c6..c7bc8285cfb 100644 --- a/src/coreComponents/constitutive/docs/TableRelativePermeability.rst +++ b/src/coreComponents/constitutive/docs/TableRelativePermeability.rst @@ -28,7 +28,7 @@ node. The following attributes are supported: -.. include:: /coreComponents/schema/docs/TableRelativePermeability.rst +.. include:: /docs/sphinx/datastructure/TableRelativePermeability.rst Below are some comments on the model parameters. diff --git a/src/coreComponents/constitutive/docs/TemperatureDependentSolidVolumetricHeatCapacity.rst b/src/coreComponents/constitutive/docs/TemperatureDependentSolidVolumetricHeatCapacity.rst index 22feb9c1b8c..3ea9510c5d5 100644 --- a/src/coreComponents/constitutive/docs/TemperatureDependentSolidVolumetricHeatCapacity.rst +++ b/src/coreComponents/constitutive/docs/TemperatureDependentSolidVolumetricHeatCapacity.rst @@ -35,7 +35,8 @@ block. The following attributes are supported: -.. include:: /coreComponents/schema/docs/TemperatureDependentSolidVolumetricHeatCapacity.rst +.. include:: /docs/sphinx/datastructure/SolidInternalEnergy.rst + Example diff --git a/src/coreComponents/constitutive/docs/TemperatureDependentThermalConductivity.rst b/src/coreComponents/constitutive/docs/TemperatureDependentThermalConductivity.rst new file mode 100644 index 00000000000..35a047ca0b9 --- /dev/null +++ b/src/coreComponents/constitutive/docs/TemperatureDependentThermalConductivity.rst @@ -0,0 +1,53 @@ +.. _TemperatureDependentThermalConductivity: + + +########################################################## +Temperature-dependent Thermal Conductivity Model +########################################################## + + +Overview +====================== + +In this model, thermal conductivity of porous medium is defined as a linear function of temperature: + +.. math:: + k = k_{0} + \frac{ dk }{ dT } (T - T_{0}) + +where + :math:`k` is the thermal conductivity at temperature T, which is a vector; + :math:`k_{0}` is the reference thermal conductivity at the reference temperature; + :math:`T_{0}` is the reference temperature; + :math:`\frac{ dk }{ dT }` is the gradient of the thermal conductivity with respect to temperature, which equals to zero for the cases with constant thermal conductivity; note that this term is also in vector form, whose components could vary with directions. + + + +Parameters +====================== + +The temperature-dependent thermal conductivity model is called in the +```` block of the input XML file. +This model must be assigned a unique name via the +``name`` attribute. +This name is used to attach the model to CellElementRegion of the physical +domain in the ```` block. + +The following attributes are supported: + +.. include:: /docs/sphinx/datastructure/SinglePhaseThermalConductivity.rst + + +Example +======================= + +.. code-block:: xml + + + ... + + ... + diff --git a/src/coreComponents/constitutive/docs/ThreePhaseRelativePermeability.rst b/src/coreComponents/constitutive/docs/ThreePhaseRelativePermeability.rst index 5aa85ef9b01..4176072e29e 100644 --- a/src/coreComponents/constitutive/docs/ThreePhaseRelativePermeability.rst +++ b/src/coreComponents/constitutive/docs/ThreePhaseRelativePermeability.rst @@ -57,7 +57,7 @@ node. The following attributes are supported: -.. include:: /coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability.rst +.. include:: /docs/sphinx/datastructure/BrooksCoreyBakerRelativePermeability.rst Below are some comments on the model parameters. diff --git a/src/coreComponents/constitutive/docs/VanGenuchtenCapillaryPressure.rst b/src/coreComponents/constitutive/docs/VanGenuchtenCapillaryPressure.rst index 8f1d3fac28b..366fc3d5d97 100644 --- a/src/coreComponents/constitutive/docs/VanGenuchtenCapillaryPressure.rst +++ b/src/coreComponents/constitutive/docs/VanGenuchtenCapillaryPressure.rst @@ -52,7 +52,7 @@ node. The following attributes are supported: -.. include:: /coreComponents/schema/docs/VanGenuchtenCapillaryPressure.rst +.. include:: /docs/sphinx/datastructure/VanGenuchtenCapillaryPressure.rst Below are some comments on the model parameters: diff --git a/src/coreComponents/constitutive/docs/WillisRichardsPermeability.rst b/src/coreComponents/constitutive/docs/WillisRichardsPermeability.rst index f3c02410953..49105b211e7 100644 --- a/src/coreComponents/constitutive/docs/WillisRichardsPermeability.rst +++ b/src/coreComponents/constitutive/docs/WillisRichardsPermeability.rst @@ -41,7 +41,7 @@ block. The following attributes are supported: -.. include:: /coreComponents/schema/docs/WillisRichardsPermeability.rst +.. include:: /docs/sphinx/datastructure/WillisRichardsPermeability.rst Example diff --git a/src/coreComponents/constitutive/docs/constitutiveDeveloperGuide.rst b/src/coreComponents/constitutive/docs/constitutiveDeveloperGuide.rst index 224903eabfc..8f1b7292122 100644 --- a/src/coreComponents/constitutive/docs/constitutiveDeveloperGuide.rst +++ b/src/coreComponents/constitutive/docs/constitutiveDeveloperGuide.rst @@ -88,7 +88,7 @@ dependency of porosity and permeability on the primary unknowns. The base class ``CoupledSolidBase`` implements some basic behaviors and is used to access a generic ``CoupledSolid`` in a physics solver: -.. literalinclude:: /coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp +.. literalinclude:: /coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.hpp :language: c++ :start-after: //START_SPHINX_INCLUDE_COUPLEDSOLID :end-before: //END_SPHINX_INCLUDE_COUPLEDSOLID diff --git a/src/coreComponents/constitutive/docs/solid/DruckerPrager.rst b/src/coreComponents/constitutive/docs/solid/DruckerPrager.rst index 51c52063308..dcb4ccafe49 100644 --- a/src/coreComponents/constitutive/docs/solid/DruckerPrager.rst +++ b/src/coreComponents/constitutive/docs/solid/DruckerPrager.rst @@ -83,7 +83,7 @@ Parameters The following attributes are supported: -.. include:: /coreComponents/schema/docs/DruckerPrager.rst +.. include:: /docs/sphinx/datastructure/DruckerPrager.rst Example ~~~~~~~~~~~~~~~ diff --git a/src/coreComponents/constitutive/docs/solid/ElasticIsotropic.rst b/src/coreComponents/constitutive/docs/solid/ElasticIsotropic.rst index bbd0cc27eb7..92dcf35daed 100644 --- a/src/coreComponents/constitutive/docs/solid/ElasticIsotropic.rst +++ b/src/coreComponents/constitutive/docs/solid/ElasticIsotropic.rst @@ -67,7 +67,7 @@ two will be internally calculated. The "default" keyword in front of certain pr is the default value adopted for a region unless the user separately specifies a heterogeneous field via the ``FieldSpecification`` mechanism. -.. include:: /coreComponents/schema/docs/ElasticIsotropic.rst +.. include:: /docs/sphinx/datastructure/ElasticIsotropic.rst Example ========================= diff --git a/src/coreComponents/constitutive/docs/solid/ElasticOrthotropic.rst b/src/coreComponents/constitutive/docs/solid/ElasticOrthotropic.rst index cf794fb2f0c..483cf8116d2 100644 --- a/src/coreComponents/constitutive/docs/solid/ElasticOrthotropic.rst +++ b/src/coreComponents/constitutive/docs/solid/ElasticOrthotropic.rst @@ -47,7 +47,7 @@ The following attributes are supported. The "default" keyword in front of certa is the default value adopted for a region unless the user separately specifies a heterogeneous field via the ``FieldSpecification`` mechanism. -.. include:: /coreComponents/schema/docs/ElasticOrthotropic.rst +.. include:: /docs/sphinx/datastructure/ElasticOrthotropic.rst Example ========================= diff --git a/src/coreComponents/constitutive/docs/solid/ElasticTransverseIsotropic.rst b/src/coreComponents/constitutive/docs/solid/ElasticTransverseIsotropic.rst index aa0cb479042..8ea11a38cd1 100644 --- a/src/coreComponents/constitutive/docs/solid/ElasticTransverseIsotropic.rst +++ b/src/coreComponents/constitutive/docs/solid/ElasticTransverseIsotropic.rst @@ -47,7 +47,7 @@ The following attributes are supported. The "default" keyword in front of certa is the default value adopted for a region unless the user separately specifies a heterogeneous field via the ``FieldSpecification`` mechanism. -.. include:: /coreComponents/schema/docs/ElasticTransverseIsotropic.rst +.. include:: /docs/sphinx/datastructure/ElasticTransverseIsotropic.rst Example ========================= diff --git a/src/coreComponents/constitutive/docs/solid/SolidModels.rst b/src/coreComponents/constitutive/docs/solid/SolidModels.rst index a62f1ce024e..de494d86bf0 100644 --- a/src/coreComponents/constitutive/docs/solid/SolidModels.rst +++ b/src/coreComponents/constitutive/docs/solid/SolidModels.rst @@ -12,7 +12,6 @@ known models. Theory Voight Plasticity - TriaxialDriver ElasticIsotropic ElasticIsotropicPressureDependent ElasticTransverseIsotropic diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.cpp index 67454b13c51..c90b6c296f6 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,6 +21,7 @@ #include "constitutive/fluid/multifluid/MultiFluidFields.hpp" #include "constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp" #include "common/Units.hpp" +#include "functions/TableFunction.hpp" namespace geos { @@ -102,6 +103,12 @@ CO2BrineFluid( string const & name, Group * const parent ): setRestartFlags( RestartFlags::NO_WRITE ). setDescription( "Names of solubility tables for each phase" ); + this->registerWrapper( viewKeyStruct::writeCSVFlagString(), &m_writeCSV ). + setInputFlag( InputFlags::OPTIONAL ). + setRestartFlags( RestartFlags::NO_WRITE ). + setDescription( "Write PVT tables into a CSV file" ). + setDefaultValue( 0 ); + // if this is a thermal model, we need to make sure that the arrays will be properly displayed and saved to restart if( isThermal() ) { @@ -228,14 +235,12 @@ void CO2BrineFluid< PHASE1, PHASE2, FLASH >::postInputInitialization() string const expectedGasPhaseNames[] = { "CO2", "co2", "gas", "Gas" }; m_p2Index = PVTFunctionHelpers::findName( m_phaseNames, expectedGasPhaseNames, viewKeyStruct::phaseNamesString() ); - createPVTModels(); } template< typename PHASE1, typename PHASE2, typename FLASH > void CO2BrineFluid< PHASE1, PHASE2, FLASH >::createPVTModels() { - // TODO: get rid of these external files and move into XML, this is too error prone // For now, to support the legacy input, we read all the input parameters at once in the arrays below, and then we create the models array1d< array1d< string > > phase1InputParams; @@ -325,10 +330,23 @@ void CO2BrineFluid< PHASE1, PHASE2, FLASH >::createPVTModels() InputError ); // then, we are ready to instantiate the phase models - m_phase1 = std::make_unique< PHASE1 >( getName() + "_phaseModel1", phase1InputParams, m_componentNames, m_componentMolarWeight, - getLogLevel() > 0 && logger::internal::rank==0 ); - m_phase2 = std::make_unique< PHASE2 >( getName() + "_phaseModel2", phase2InputParams, m_componentNames, m_componentMolarWeight, - getLogLevel() > 0 && logger::internal::rank==0 ); + bool const isClone = this->isClone(); + TableFunction::OutputOptions const pvtOutputOpts = { + !isClone && m_writeCSV,// writeCSV + !isClone && (getLogLevel() > 0 && logger::internal::rank==0), // writeInLog + }; + + m_phase1 = std::make_unique< PHASE1 >( getName() + "_phaseModel1", + phase1InputParams, + m_componentNames, + m_componentMolarWeight, + pvtOutputOpts ); + m_phase2 = std::make_unique< PHASE2 >( getName() + "_phaseModel2", + phase2InputParams, + m_componentNames, + m_componentMolarWeight, + pvtOutputOpts ); + // 2) Create the flash model if( !m_flashModelParaFile.empty()) @@ -349,12 +367,16 @@ void CO2BrineFluid< PHASE1, PHASE2, FLASH >::createPVTModels() { if( strs[1] == FLASH::catalogName() ) { + TableFunction::OutputOptions const flashOutputOpts = { + !isClone && m_writeCSV,// writeCSV + !isClone && (getLogLevel() > 0 && logger::internal::rank==0), // writeInLog + }; m_flash = std::make_unique< FLASH >( getName() + '_' + FLASH::catalogName(), strs, m_phaseNames, m_componentNames, m_componentMolarWeight, - getLogLevel() > 0 && logger::internal::rank==0 ); + flashOutputOpts ); } } else @@ -390,12 +412,18 @@ void CO2BrineFluid< PHASE1, PHASE2, FLASH >::createPVTModels() { strs[2] = m_solubilityTables[0]; } + + TableFunction::OutputOptions const flashOutputOpts = { + !isClone && m_writeCSV,// writeCSV + !isClone && (getLogLevel() >= 0 && logger::internal::rank==0), // writeInLog + }; + m_flash = std::make_unique< FLASH >( getName() + '_' + FLASH::catalogName(), strs, m_phaseNames, m_componentNames, m_componentMolarWeight, - getLogLevel() > 0 && logger::internal::rank==0 ); + flashOutputOpts ); } GEOS_THROW_IF( m_flash == nullptr, diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.hpp index 9285d4f2c0e..eb31780f4d4 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -171,6 +171,7 @@ class CO2BrineFluid : public MultiFluidBase static constexpr char const * flashModelParaFileString() { return "flashModelParaFile"; } static constexpr char const * solubilityTablesString() { return "solubilityTableNames"; } static constexpr char const * phasePVTParaFilesString() { return "phasePVTParaFiles"; } + static constexpr char const * writeCSVFlagString() { return "writeCSV"; } }; protected: @@ -181,6 +182,9 @@ class CO2BrineFluid : public MultiFluidBase private: + /** + * @brief Create a PVT Model and output them + */ void createPVTModels(); /// Names of the files defining the viscosity and density models @@ -198,6 +202,8 @@ class CO2BrineFluid : public MultiFluidBase /// Index of the gas phase integer m_p2Index; + /// Output csv file containing informations about PVT + integer m_writeCSV; /// Brine constitutive models std::unique_ptr< PHASE1 > m_phase1; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PhaseModel.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PhaseModel.hpp index d3bdc762b0e..9c398939b62 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PhaseModel.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PhaseModel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -20,6 +20,8 @@ #ifndef GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_CO2BRINE_PHASEMODEL_HPP_ #define GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_CO2BRINE_PHASEMODEL_HPP_ +#include "functions/TableFunction.hpp" + namespace geos { @@ -54,27 +56,28 @@ struct PhaseModel * @param[in] inputParams input parameters read from files * @param[in] componentNames names of the components * @param[in] componentMolarWeight molar weights of the components + * @param[in] pvtOutputOpts A structure containing generated table output options */ PhaseModel( string const & phaseModelName, array1d< array1d< string > > const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ) + TableFunction::OutputOptions const pvtOutputOpts ) : density( phaseModelName + "_" + Density::catalogName(), inputParams[InputParamOrder::DENSITY], componentNames, componentMolarWeight, - printTable ), + pvtOutputOpts ), viscosity( phaseModelName + "_" + Viscosity::catalogName(), inputParams[InputParamOrder::VISCOSITY], componentNames, componentMolarWeight, - printTable ), + pvtOutputOpts ), enthalpy( phaseModelName + "_" + Enthalpy::catalogName(), inputParams[InputParamOrder::ENTHALPY], componentNames, componentMolarWeight, - printTable ) + pvtOutputOpts ) {} /// The phase density model diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/BrineEnthalpy.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/BrineEnthalpy.cpp index 9be9db8ac8a..5edd296fd51 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/BrineEnthalpy.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/BrineEnthalpy.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -192,7 +192,7 @@ BrineEnthalpy::BrineEnthalpy( string const & name, string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): PVTFunctionBase( name, componentNames, componentMolarWeight ) @@ -205,13 +205,12 @@ BrineEnthalpy::BrineEnthalpy( string const & name, m_CO2EnthalpyTable = makeCO2EnthalpyTable( inputParams, m_functionName, FunctionManager::getInstance() ); m_brineEnthalpyTable = makeBrineEnthalpyTable( inputParams, m_functionName, FunctionManager::getInstance() ); - if( printTable ) - { - m_CO2EnthalpyTable->print( m_CO2EnthalpyTable->getName() ); - m_brineEnthalpyTable->print( m_brineEnthalpyTable->getName() ); - } + + m_CO2EnthalpyTable->outputPVTTableData( pvtOutputOpts ); + m_brineEnthalpyTable->outputPVTTableData( pvtOutputOpts ); } + void BrineEnthalpy::checkTablesParameters( real64 const pressure, real64 const temperature ) const { @@ -233,8 +232,6 @@ BrineEnthalpy::createKernelWrapper() const m_waterIndex ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, BrineEnthalpy, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/BrineEnthalpy.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/BrineEnthalpy.hpp index cc0978206c0..2e000d40f97 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/BrineEnthalpy.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/BrineEnthalpy.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -92,7 +92,7 @@ class BrineEnthalpy : public PVTFunctionBase string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); static string catalogName() { return "BrineEnthalpy"; } @@ -144,7 +144,7 @@ void BrineEnthalpyUpdate::compute( real64 const & pressure, arraySlice1d< real64, USD3 > const & dValue, bool useMass ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; real64 const input[2] = { pressure, temperature }; real64 brineEnthalpy_dTemperature = 0.0; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.cpp index 8bae9da6bd3..227f5a93912 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.hpp index 32936f78fc4..534c9d1f1d2 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Enthalpy.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Enthalpy.cpp index 2bb308086e6..01683a9dd64 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Enthalpy.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Enthalpy.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -257,7 +257,7 @@ CO2Enthalpy::CO2Enthalpy( string const & name, string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): PVTFunctionBase( name, componentNames, componentMolarWeight ) @@ -266,8 +266,9 @@ CO2Enthalpy::CO2Enthalpy( string const & name, m_CO2Index = PVTFunctionHelpers::findName( componentNames, expectedCO2ComponentNames, "componentNames" ); m_CO2EnthalpyTable = makeCO2EnthalpyTable( inputParams, m_functionName, FunctionManager::getInstance() ); - if( printTable ) - m_CO2EnthalpyTable->print( m_CO2EnthalpyTable->getName() ); + + m_CO2EnthalpyTable->outputPVTTableData( pvtOutputOpts ); + m_CO2EnthalpyTable->outputPVTTableData( pvtOutputOpts ); } @@ -309,8 +310,6 @@ CO2Enthalpy::createKernelWrapper() const m_CO2Index ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, CO2Enthalpy, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Enthalpy.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Enthalpy.hpp index 41aaa3ea1d5..034ad20475a 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Enthalpy.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Enthalpy.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -80,7 +80,7 @@ class CO2Enthalpy : public PVTFunctionBase string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); static string catalogName() { return "CO2Enthalpy"; } @@ -131,7 +131,7 @@ void CO2EnthalpyUpdate::compute( real64 const & pressure, { GEOS_UNUSED_VAR( phaseComposition, dPhaseComposition ); - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; real64 const input[2] = { pressure, temperature }; real64 CO2EnthalpyDeriv[2]{}; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Solubility.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Solubility.cpp index 77d27b1a883..131fdb60ed9 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Solubility.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Solubility.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -221,7 +221,7 @@ CO2Solubility::CO2Solubility( string const & name, string_array const & phaseNames, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): FlashModelBase( name, componentNames, componentMolarWeight ) @@ -257,11 +257,9 @@ CO2Solubility::CO2Solubility( string const & name, std::tie( m_CO2SolubilityTable, m_WaterVapourisationTable ) = makeSolubilityTables( m_modelName, inputParams, solubilityModel ); - if( printTable ) - { - m_CO2SolubilityTable->print( m_CO2SolubilityTable->getName() ); - m_WaterVapourisationTable->print( m_WaterVapourisationTable->getName() ); - } + m_CO2SolubilityTable->outputPVTTableData( pvtOutputOpts ); + m_WaterVapourisationTable->outputPVTTableData( pvtOutputOpts ); + } void CO2Solubility::checkTablesParameters( real64 const pressure, diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Solubility.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Solubility.hpp index d69edc81041..fe24e1e0270 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Solubility.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2Solubility.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,10 +21,10 @@ #define GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_CO2BRINE_FUNCTIONS_CO2SOLUBILITY_HPP_ #include "FlashModelBase.hpp" - #include "constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp" #include "constitutive/fluid/multifluid/Layouts.hpp" #include "constitutive/fluid/multifluid/MultiFluidUtils.hpp" +#include "fileIO/Outputs/OutputBase.hpp" #include "functions/TableFunction.hpp" namespace geos @@ -42,8 +42,8 @@ class CO2SolubilityUpdate final : public FlashModelBaseUpdate { public: - using PhaseProp = MultiFluidVar< real64, 3, multifluid::LAYOUT_PHASE, multifluid::LAYOUT_PHASE_DC >; - using PhaseComp = MultiFluidVar< real64, 4, multifluid::LAYOUT_PHASE_COMP, multifluid::LAYOUT_PHASE_COMP_DC >; + using PhaseProp = MultiFluidVar< real64, 3, constitutive::multifluid::LAYOUT_PHASE, constitutive::multifluid::LAYOUT_PHASE_DC >; + using PhaseComp = MultiFluidVar< real64, 4, constitutive::multifluid::LAYOUT_PHASE_COMP, constitutive::multifluid::LAYOUT_PHASE_COMP_DC >; CO2SolubilityUpdate( arrayView1d< real64 const > const & componentMolarWeight, TableFunction const & CO2SolubilityTable, @@ -117,7 +117,7 @@ class CO2Solubility : public FlashModelBase string_array const & phaseNames, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); static string catalogName() { return "CO2Solubility"; } @@ -167,7 +167,7 @@ CO2SolubilityUpdate::compute( real64 const & pressure, PhaseProp::SliceType const phaseFraction, PhaseComp::SliceType const phaseCompFraction ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // Solubility of CO2 is read from the tables in the form of moles of CO2 per kg of water // Solubility of water is read from the tables in the form of moles of water per kg of CO2 diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilityDuanSun.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilityDuanSun.cpp index 4546e1381ae..7defd458bd4 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilityDuanSun.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilityDuanSun.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -32,14 +32,14 @@ namespace PVTProps namespace { -constexpr real64 P_Pa_f = 1e+5; -constexpr real64 P_c = 73.773 * P_Pa_f; -constexpr real64 T_c = 304.1282; -constexpr real64 Rgas = constants::gasConstant; -constexpr real64 V_c = Rgas*T_c/P_c; +inline constexpr real64 P_Pa_f = 1e+5; +inline constexpr real64 P_c = 73.773 * P_Pa_f; +inline constexpr real64 T_c = 304.1282; +inline constexpr real64 Rgas = constants::gasConstant; +inline constexpr real64 V_c = Rgas*T_c/P_c; // these coefficients are in Table (A1) of Duan and Sun (2003) -constexpr real64 acoef[] = +inline constexpr real64 acoef[15] = { 8.99288497e-2, -4.94783127e-1, 4.77922245e-2, 1.03808883e-2, -2.82516861e-2, 9.49887563e-2, 5.20600880e-4, -2.93540971e-4, -1.77265112e-3, -2.51101973e-5, 8.93353441e-5, 7.88998563e-5, -1.66727022e-2, 1.398, 2.96e-2 }; @@ -65,7 +65,7 @@ real64 co2EOS( real64 const & T, real64 const & P, real64 const & V_r ) real64 PWater( real64 const & T ) { // these coefficients are defined in Table (B1) of Duan and Sun (2003) - constexpr real64 ccoef[] = { -38.640844, 5.8948420, 59.876516, 26.654627, 10.637097 }; + static constexpr real64 ccoef[5] = { -38.640844, 5.8948420, 59.876516, 26.654627, 10.637097 }; // H2O critical pressure (bars) real64 const P_c_w = 220.85; @@ -92,18 +92,36 @@ real64 logF( real64 const & T, real64 const & P, real64 const & V_r ) real64 const T_r = units::convertCToK( T ) / T_c; real64 const Z = P_r * V_r/T_r; + real64 const inv_T_r = 1.0/T_r; + real64 const inv_T_r2 = inv_T_r*inv_T_r; + real64 const inv_T_r3 = inv_T_r2*inv_T_r; + real64 const inv_V_r = 1.0/V_r; + real64 const inv_V_r2 = inv_V_r*inv_V_r; + real64 const inv_V_r3 = inv_V_r2*inv_V_r; + real64 const inv_V_r4 = inv_V_r3*inv_V_r; + real64 const inv_V_r5 = inv_V_r4*inv_V_r; + // fugacity coefficient of CO2, equation (A6) of Duan and Sun (2003) real64 const log_f = Z - 1 - log( Z ) + - ( acoef[0] + acoef[1]/T_r/T_r + acoef[2]/T_r/T_r/T_r )/V_r - + ( acoef[3] + acoef[4]/T_r/T_r + acoef[5]/T_r/T_r/T_r )/2.0/V_r/V_r - + ( acoef[6] + acoef[7]/T_r/T_r + acoef[8]/T_r/T_r/T_r )/4.0/V_r/V_r/V_r/V_r - + ( acoef[9] + acoef[10]/T_r/T_r + acoef[11]/T_r/T_r/T_r )/5.0/V_r/V_r/V_r/V_r/V_r - + acoef[12]/2.0/T_r/T_r/T_r/acoef[14] * ( acoef[13] + 1.0 - (acoef[13] + 1.0 + acoef[14]/V_r/V_r) * exp( -acoef[14]/V_r/V_r ) ); + ( acoef[0] + acoef[1]*inv_T_r2 + acoef[2]*inv_T_r3 )*inv_V_r + + ( acoef[3] + acoef[4]*inv_T_r2 + acoef[5]*inv_T_r3 )*0.5*inv_V_r2 + + ( acoef[6] + acoef[7]*inv_T_r2 + acoef[8]*inv_T_r3 )*0.25*inv_V_r4 + + ( acoef[9] + acoef[10]*inv_T_r2 + acoef[11]*inv_T_r3 )*0.2*inv_V_r5 + + acoef[12]*0.5*inv_T_r3/acoef[14] * ( acoef[13] + 1.0 - (acoef[13] + 1.0 + acoef[14]*inv_V_r2) * exp( -acoef[14]*inv_V_r2 ) ); + //This causes a divide by zero FPE when using clang14 on ruby + // real64 const log_f = Z - 1 - log( Z ) + + // ( acoef[0] + acoef[1]/T_r/T_r + acoef[2]/T_r/T_r/T_r )/V_r + // + ( acoef[3] + acoef[4]/T_r/T_r + acoef[5]/T_r/T_r/T_r )/2.0/V_r/V_r + // + ( acoef[6] + acoef[7]/T_r/T_r + acoef[8]/T_r/T_r/T_r )/4.0/V_r/V_r/V_r/V_r + // + ( acoef[9] + acoef[10]/T_r/T_r + acoef[11]/T_r/T_r/T_r )/5.0/V_r/V_r/V_r/V_r/V_r + // + acoef[12]/2.0/T_r/T_r/T_r/acoef[14] * ( acoef[13] + 1.0 - (acoef[13] + 1.0 + acoef[14]/V_r/V_r) * exp( + // -acoef[14]/V_r/V_r ) ); + return log_f; } -real64 Par( real64 const & T, real64 const & P, real64 const * cc ) +real64 Par( real64 const & T, real64 const & P, real64 const (&cc)[11] ) { // "equation for the parameters", see equation (7) of Duan and Sun (2003) real64 x = cc[0] @@ -162,11 +180,11 @@ void calculateCO2Solubility( string const & functionName, array1d< real64 > const & values ) { // Interaction parameters, see Table 2 of Duan and Sun (2003) - constexpr real64 mu[] = + static constexpr real64 mu[11] = { 28.9447706, -0.0354581768, -4770.67077, 1.02782768e-5, 33.8126098, 9.04037140e-3, -1.14934031e-3, -0.307405726, -0.0907301486, 9.32713393e-4, 0 }; - constexpr real64 lambda[] = { -0.411370585, 6.07632013e-4, 97.5347708, 0, 0, 0, 0, -0.0237622469, 0.0170656236, 0, 1.41335834e-5 }; - constexpr real64 zeta[] = { 3.36389723e-4, -1.98298980e-5, 0, 0, 0, 0, 0, 2.12220830e-3, -5.24873303e-3, 0, 0 }; + static constexpr real64 lambda[11] = { -0.411370585, 6.07632013e-4, 97.5347708, 0, 0, 0, 0, -0.0237622469, 0.0170656236, 0, 1.41335834e-5 }; + static constexpr real64 zeta[11] = { 3.36389723e-4, -1.98298980e-5, 0, 0, 0, 0, 0, 2.12220830e-3, -5.24873303e-3, 0, 0 }; localIndex const nPressures = tableCoords.nPressures(); localIndex const nTemperatures = tableCoords.nTemperatures(); diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilityDuanSun.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilityDuanSun.hpp index 677f6c61450..9b918c8be5f 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilityDuanSun.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilityDuanSun.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilitySpycherPruess.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilitySpycherPruess.cpp index dfd7ed7add3..f9ce8006fc9 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilitySpycherPruess.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilitySpycherPruess.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilitySpycherPruess.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilitySpycherPruess.hpp index 6310bf49224..1f612890a9a 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilitySpycherPruess.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2SolubilitySpycherPruess.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.cpp index 8713454505c..7ba7020fa9e 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -38,7 +38,7 @@ EzrokhiBrineDensity::EzrokhiBrineDensity( string const & name, string_array const & inputPara, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): PVTFunctionBase( name, componentNames, componentMolarWeight ) @@ -52,11 +52,9 @@ EzrokhiBrineDensity::EzrokhiBrineDensity( string const & name, makeCoefficients( inputPara ); m_waterSatDensityTable = PureWaterProperties::makeSaturationDensityTable( m_functionName, FunctionManager::getInstance() ); m_waterSatPressureTable = PureWaterProperties::makeSaturationPressureTable( m_functionName, FunctionManager::getInstance() ); - if( printTable ) - { - m_waterSatDensityTable->print( m_waterSatDensityTable->getName() ); - m_waterSatPressureTable->print( m_waterSatPressureTable->getName() ); - } + + m_waterSatPressureTable->outputPVTTableData( pvtOutputOpts ); + m_waterSatDensityTable->outputPVTTableData( pvtOutputOpts ); } void EzrokhiBrineDensity::makeCoefficients( string_array const & inputPara ) @@ -103,8 +101,6 @@ EzrokhiBrineDensity::createKernelWrapper() const m_coef2 ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, EzrokhiBrineDensity, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // end namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.hpp index 17a084355c2..5942eff4f0a 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineDensity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -109,7 +109,7 @@ class EzrokhiBrineDensity : public PVTFunctionBase string_array const & inputPara, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); virtual ~EzrokhiBrineDensity() override = default; @@ -173,7 +173,7 @@ void EzrokhiBrineDensityUpdate::compute( real64 const & pressure, bool useMass ) const { constexpr integer numDof = 4; - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; real64 waterSatDensity_dTemperature = 0.0; real64 waterSatPressure_dTemperature = 0.0; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineViscosity.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineViscosity.cpp index 6b7ac1ed990..c300237899a 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineViscosity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineViscosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -38,7 +38,7 @@ EzrokhiBrineViscosity::EzrokhiBrineViscosity( string const & name, string_array const & inputPara, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): PVTFunctionBase( name, componentNames, componentMolarWeight ) @@ -51,8 +51,8 @@ EzrokhiBrineViscosity::EzrokhiBrineViscosity( string const & name, makeCoefficients( inputPara ); m_waterViscosityTable = PureWaterProperties::makeSaturationViscosityTable( m_functionName, FunctionManager::getInstance() ); - if( printTable ) - m_waterViscosityTable->print( m_waterViscosityTable->getName() ); + + m_waterViscosityTable->outputPVTTableData( pvtOutputOpts ); } void EzrokhiBrineViscosity::makeCoefficients( string_array const & inputPara ) @@ -94,8 +94,6 @@ EzrokhiBrineViscosity::createKernelWrapper() const m_coef2 ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, EzrokhiBrineViscosity, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // end namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineViscosity.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineViscosity.hpp index 6a8c66be0c3..7140a4ca41c 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineViscosity.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/EzrokhiBrineViscosity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -98,7 +98,7 @@ class EzrokhiBrineViscosity : public PVTFunctionBase string_array const & inputPara, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); virtual ~EzrokhiBrineViscosity() override = default; @@ -158,7 +158,7 @@ void EzrokhiBrineViscosityUpdate::compute( real64 const & pressure, { GEOS_UNUSED_VAR( pressure, useMass ); - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; real64 waterVisc_dTemperature = 0.0; real64 const waterVisc = m_waterViscosityTable.compute( &temperature, &waterVisc_dTemperature ); diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FenghourCO2Viscosity.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FenghourCO2Viscosity.cpp index f79cd790427..11bc6522254 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FenghourCO2Viscosity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FenghourCO2Viscosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -142,14 +142,14 @@ FenghourCO2Viscosity::FenghourCO2Viscosity( string const & name, string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ) + TableFunction::OutputOptions const pvtOutputOpts ) : PVTFunctionBase( name, componentNames, componentMolarWeight ) { m_CO2ViscosityTable = makeViscosityTable( inputParams, m_functionName, FunctionManager::getInstance() ); - if( printTable ) - m_CO2ViscosityTable->print( m_CO2ViscosityTable->getName() ); + + m_CO2ViscosityTable->outputPVTTableData( pvtOutputOpts ); } void FenghourCO2Viscosity::checkTablesParameters( real64 const pressure, @@ -166,8 +166,6 @@ FenghourCO2Viscosity::createKernelWrapper() const *m_CO2ViscosityTable ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, FenghourCO2Viscosity, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // end namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FenghourCO2Viscosity.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FenghourCO2Viscosity.hpp index 3f9dd756f00..ea490882910 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FenghourCO2Viscosity.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FenghourCO2Viscosity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -76,7 +76,7 @@ class FenghourCO2Viscosity : public PVTFunctionBase string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); virtual ~FenghourCO2Viscosity() override = default; @@ -125,7 +125,7 @@ void FenghourCO2ViscosityUpdate::compute( real64 const & pressure, dPhaseComposition, useMass ); - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; real64 const input[2] = { pressure, temperature }; real64 densityDeriv[2]{}; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FlashModelBase.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FlashModelBase.hpp index afa90c08979..acef1ec1ab0 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FlashModelBase.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/FlashModelBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -78,19 +78,6 @@ class FlashModelBase virtual ~FlashModelBase() = default; - using CatalogInterface = dataRepository::CatalogInterface< FlashModelBase, - string const &, - string_array const &, - string_array const &, - string_array const &, - array1d< real64 > const &, - bool const >; - static typename CatalogInterface::CatalogType & getCatalog() - { - static CatalogInterface::CatalogType catalog; - return catalog; - } - virtual string getCatalogName() const = 0; /** diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/NoOpPVTFunction.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/NoOpPVTFunction.hpp index 688fe9ae3e8..c647a071f79 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/NoOpPVTFunction.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/NoOpPVTFunction.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -71,12 +71,12 @@ class NoOpPVTFunction : public PVTFunctionBase string_array const & inputPara, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ) + TableFunction::OutputOptions const pvtOutputOpts ) : PVTFunctionBase( name, componentNames, componentMolarWeight ) { - GEOS_UNUSED_VAR( inputPara, printTable ); + GEOS_UNUSED_VAR( inputPara, pvtOutputOpts ); } virtual ~NoOpPVTFunction() override = default; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionBase.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionBase.hpp index 783e3976405..135d7c899c4 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionBase.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -113,17 +113,6 @@ class PVTFunctionBase virtual ~PVTFunctionBase() = default; - using CatalogInterface = dataRepository::CatalogInterface< PVTFunctionBase, - string const &, - array1d< string > const &, - array1d< string > const &, - array1d< real64 > const &, - bool const >; - static typename CatalogInterface::CatalogType & getCatalog() - { - static CatalogInterface::CatalogType catalog; - return catalog; - } virtual string getCatalogName() const = 0; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.cpp index dd445557884..a05497483eb 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp index 1d93b628265..9dde0d4cf39 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp index 6122bc4ef61..017f5ab92f8 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -177,7 +177,7 @@ PhillipsBrineDensity::PhillipsBrineDensity( string const & name, string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): PVTFunctionBase( name, componentNames, componentMolarWeight ) @@ -189,8 +189,8 @@ PhillipsBrineDensity::PhillipsBrineDensity( string const & name, m_waterIndex = PVTFunctionHelpers::findName( componentNames, expectedWaterComponentNames, "componentNames" ); m_brineDensityTable = makeDensityTable( inputParams, m_functionName, FunctionManager::getInstance() ); - if( printTable ) - m_brineDensityTable->print( m_brineDensityTable->getName() ); + + m_brineDensityTable->outputPVTTableData( pvtOutputOpts ); } PhillipsBrineDensity::KernelWrapper @@ -209,8 +209,6 @@ void PhillipsBrineDensity::checkTablesParameters( real64 const pressure, m_brineDensityTable->checkCoord( temperature, 1 ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, PhillipsBrineDensity, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.hpp index 8d5dbe22103..fbfa037be96 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -86,7 +86,7 @@ class PhillipsBrineDensity : public PVTFunctionBase string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); static string catalogName() { return "PhillipsBrineDensity"; } @@ -136,7 +136,7 @@ void PhillipsBrineDensityUpdate::compute( real64 const & pressure, arraySlice1d< real64, USD3 > const & dValue, bool useMass ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // this method implements the method proposed by E. Garcia (2001) diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.cpp index c8836f67143..8dd96a8a82d 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -37,15 +37,15 @@ PhillipsBrineViscosity::PhillipsBrineViscosity( string const & name, string_array const & inputPara, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): PVTFunctionBase( name, componentNames, componentMolarWeight ) { m_waterViscosityTable = PureWaterProperties::makeSaturationViscosityTable( m_functionName, FunctionManager::getInstance() ); - if( printTable ) - m_waterViscosityTable->print( m_waterViscosityTable->getName() ); makeCoefficients( inputPara ); + + m_waterViscosityTable->outputPVTTableData( pvtOutputOpts ); } void PhillipsBrineViscosity::makeCoefficients( string_array const & inputPara ) @@ -92,8 +92,6 @@ PhillipsBrineViscosity::createKernelWrapper() const m_coef1 ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, PhillipsBrineViscosity, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // end namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.hpp index 14dd9c2c65c..bdb6bfa0f5a 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineViscosity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -84,7 +84,7 @@ class PhillipsBrineViscosity : public PVTFunctionBase string_array const & inputPara, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); virtual ~PhillipsBrineViscosity() override = default; @@ -140,7 +140,7 @@ void PhillipsBrineViscosityUpdate::compute( real64 const & pressure, dPhaseComposition, useMass ); - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // compute the viscosity of pure water as a function of temperature real64 dPureWaterVisc_dTemperature; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.cpp index e6f0364e012..a3cb6458b94 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.hpp index bd7f990b215..872983ce8b8 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/SpanWagnerCO2Density.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/SpanWagnerCO2Density.cpp index e8787ccd427..0ef520014a0 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/SpanWagnerCO2Density.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/SpanWagnerCO2Density.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -279,7 +279,7 @@ SpanWagnerCO2Density::SpanWagnerCO2Density( string const & name, string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): PVTFunctionBase( name, componentNames, componentMolarWeight ) @@ -288,8 +288,8 @@ SpanWagnerCO2Density::SpanWagnerCO2Density( string const & name, m_CO2Index = PVTFunctionHelpers::findName( componentNames, expectedCO2ComponentNames, "componentNames" ); m_CO2DensityTable = makeDensityTable( inputParams, m_functionName, FunctionManager::getInstance() ); - if( printTable ) - m_CO2DensityTable->print( m_CO2DensityTable->getName() ); + + m_CO2DensityTable->outputPVTTableData( pvtOutputOpts ); } void SpanWagnerCO2Density::checkTablesParameters( real64 const pressure, @@ -307,8 +307,6 @@ SpanWagnerCO2Density::createKernelWrapper() const m_CO2Index ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, SpanWagnerCO2Density, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/SpanWagnerCO2Density.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/SpanWagnerCO2Density.hpp index e68d2ea01d2..f729064fcf0 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/SpanWagnerCO2Density.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/SpanWagnerCO2Density.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -81,7 +81,7 @@ class SpanWagnerCO2Density : public PVTFunctionBase string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); static string catalogName() { return "SpanWagnerCO2Density"; } @@ -135,7 +135,7 @@ void SpanWagnerCO2DensityUpdate::compute( real64 const & pressure, { GEOS_UNUSED_VAR( phaseComposition, dPhaseComposition ); - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; real64 const input[2] = { pressure, temperature }; real64 densityDeriv[2]{}; diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/WaterDensity.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/WaterDensity.cpp index 4c0d3dada34..41a047c11b5 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/WaterDensity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/WaterDensity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -37,15 +37,15 @@ WaterDensity::WaterDensity( string const & name, string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ): + TableFunction::OutputOptions const pvtOutputOpts ): PVTFunctionBase( name, componentNames, componentMolarWeight ) { GEOS_UNUSED_VAR( inputParams ); m_waterDensityTable = PureWaterProperties::makeSaturationDensityTable( m_functionName, FunctionManager::getInstance() ); - if( printTable ) - m_waterDensityTable->print( m_waterDensityTable->getName() ); + + m_waterDensityTable->outputPVTTableData( pvtOutputOpts ); } void WaterDensity::checkTablesParameters( real64 const pressure, @@ -62,8 +62,6 @@ WaterDensity::createKernelWrapper() const *m_waterDensityTable ); } -REGISTER_CATALOG_ENTRY( PVTFunctionBase, WaterDensity, string const &, string_array const &, string_array const &, array1d< real64 > const &, bool const ) - } // namespace PVTProps } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/WaterDensity.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/WaterDensity.hpp index 96e1eecf0e0..36cd4932661 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/WaterDensity.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/WaterDensity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -76,7 +76,7 @@ class WaterDensity : public PVTFunctionBase string_array const & inputParams, string_array const & componentNames, array1d< real64 > const & componentMolarWeight, - bool const printTable ); + TableFunction::OutputOptions const pvtOutputOpts ); static string catalogName() { return "WaterDensity"; } virtual string getCatalogName() const final { return catalogName(); } @@ -118,7 +118,7 @@ void WaterDensityUpdate::compute( real64 const & pressure, { GEOS_UNUSED_VAR( phaseComposition, dPhaseComposition, useMass ); - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; real64 const input[2] = { pressure, temperature }; real64 densityDeriv[2]{}; diff --git a/src/coreComponents/constitutive/fluid/multifluid/Layouts.hpp b/src/coreComponents/constitutive/fluid/multifluid/Layouts.hpp index 5bdc55d2a46..626f988104e 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/Layouts.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/Layouts.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidBase.cpp b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidBase.cpp index 16cb5903adc..a0d1157a022 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidBase.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidBase.hpp b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidBase.hpp index 825fac729af..802f9a921bf 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidBase.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -128,67 +128,67 @@ class MultiFluidBase : public ConstitutiveBase */ void setMassFlag( bool const flag ) { m_useMass = flag; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseFraction() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseFraction() const { return m_phaseFraction.value; } - arrayView4d< real64 const, multifluid::USD_PHASE_DC > dPhaseFraction() const + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > dPhaseFraction() const { return m_phaseFraction.derivs; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseDensity() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseDensity() const { return m_phaseDensity.value; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseDensity_n() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseDensity_n() const { return m_phaseDensity_n; } - arrayView4d< real64 const, multifluid::USD_PHASE_DC > dPhaseDensity() const + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > dPhaseDensity() const { return m_phaseDensity.derivs; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseMassDensity() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseMassDensity() const { return m_phaseMassDensity.value; } - arrayView4d< real64 const, multifluid::USD_PHASE_DC > dPhaseMassDensity() const + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > dPhaseMassDensity() const { return m_phaseMassDensity.derivs; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseViscosity() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseViscosity() const { return m_phaseViscosity.value; } - arrayView4d< real64 const, multifluid::USD_PHASE_DC > dPhaseViscosity() const + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > dPhaseViscosity() const { return m_phaseViscosity.derivs; } - arrayView4d< real64 const, multifluid::USD_PHASE_COMP > phaseCompFraction() const + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > phaseCompFraction() const { return m_phaseCompFraction.value; } - arrayView4d< real64 const, multifluid::USD_PHASE_COMP > phaseCompFraction_n() const + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > phaseCompFraction_n() const { return m_phaseCompFraction_n; } - arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > dPhaseCompFraction() const + arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > dPhaseCompFraction() const { return m_phaseCompFraction.derivs; } - arrayView2d< real64 const, multifluid::USD_FLUID > totalDensity() const + arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > totalDensity() const { return m_totalDensity.value; } - arrayView2d< real64 const, multifluid::USD_FLUID > totalDensity_n() const + arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > totalDensity_n() const { return m_totalDensity_n; } - arrayView3d< real64 const, multifluid::USD_FLUID_DC > dTotalDensity() const + arrayView3d< real64 const, constitutive::multifluid::USD_FLUID_DC > dTotalDensity() const { return m_totalDensity.derivs; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseEnthalpy() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseEnthalpy() const { return m_phaseEnthalpy.value; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseEnthalpy_n() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseEnthalpy_n() const { return m_phaseEnthalpy_n; } - arrayView4d< real64 const, multifluid::USD_PHASE_DC > dPhaseEnthalpy() const + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > dPhaseEnthalpy() const { return m_phaseEnthalpy.derivs; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseInternalEnergy() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseInternalEnergy() const { return m_phaseInternalEnergy.value; } - arrayView3d< real64 const, multifluid::USD_PHASE > phaseInternalEnergy_n() const + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseInternalEnergy_n() const { return m_phaseInternalEnergy_n; } - arrayView4d< real64 const, multifluid::USD_PHASE_DC > dPhaseInternalEnergy() const + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > dPhaseInternalEnergy() const { return m_phaseInternalEnergy.derivs; } /** @@ -222,9 +222,9 @@ class MultiFluidBase : public ConstitutiveBase public: - using PhaseProp = MultiFluidVar< real64, 3, multifluid::LAYOUT_PHASE, multifluid::LAYOUT_PHASE_DC >; - using PhaseComp = MultiFluidVar< real64, 4, multifluid::LAYOUT_PHASE_COMP, multifluid::LAYOUT_PHASE_COMP_DC >; - using FluidProp = MultiFluidVar< real64, 2, multifluid::LAYOUT_FLUID, multifluid::LAYOUT_FLUID_DC >; + using PhaseProp = MultiFluidVar< real64, 3, constitutive::multifluid::LAYOUT_PHASE, constitutive::multifluid::LAYOUT_PHASE_DC >; + using PhaseComp = MultiFluidVar< real64, 4, constitutive::multifluid::LAYOUT_PHASE_COMP, constitutive::multifluid::LAYOUT_PHASE_COMP_DC >; + using FluidProp = MultiFluidVar< real64, 2, constitutive::multifluid::LAYOUT_FLUID, constitutive::multifluid::LAYOUT_FLUID_DC >; public: class KernelWrapper @@ -271,28 +271,28 @@ class MultiFluidBase : public ConstitutiveBase GEOS_FORCE_INLINE integer numPhases() const { return LvArray::integerConversion< integer >( m_phaseFraction.value.size( 2 ) ); } - GEOS_HOST_DEVICE arrayView3d< real64 const, multifluid::USD_PHASE > phaseFraction() const + GEOS_HOST_DEVICE arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseFraction() const { return m_phaseFraction.value; } - GEOS_HOST_DEVICE arrayView3d< real64 const, multifluid::USD_PHASE > phaseDensity() const + GEOS_HOST_DEVICE arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseDensity() const { return m_phaseDensity.value; } - GEOS_HOST_DEVICE arrayView3d< real64 const, multifluid::USD_PHASE > phaseMassDensity() const + GEOS_HOST_DEVICE arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseMassDensity() const { return m_phaseMassDensity.value; } - GEOS_HOST_DEVICE arrayView3d< real64 const, multifluid::USD_PHASE > phaseViscosity() const + GEOS_HOST_DEVICE arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseViscosity() const { return m_phaseViscosity.value; } - GEOS_HOST_DEVICE arrayView4d< real64 const, multifluid::USD_PHASE_COMP > phaseCompFraction() const + GEOS_HOST_DEVICE arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > phaseCompFraction() const { return m_phaseCompFraction.value; } - GEOS_HOST_DEVICE arrayView2d< real64 const, multifluid::USD_FLUID > totalDensity() const + GEOS_HOST_DEVICE arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > totalDensity() const { return m_totalDensity.value; } - GEOS_HOST_DEVICE arrayView3d< real64 const, multifluid::USD_PHASE > phaseEnthalpy() const + GEOS_HOST_DEVICE arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseEnthalpy() const { return m_phaseEnthalpy.value; } - GEOS_HOST_DEVICE arrayView3d< real64 const, multifluid::USD_PHASE > phaseInternalEnergy() const + GEOS_HOST_DEVICE arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > phaseInternalEnergy() const { return m_phaseInternalEnergy.value; } /** @@ -318,13 +318,13 @@ class MultiFluidBase : public ConstitutiveBase real64 const pressure, real64 const temperature, arraySlice1d< real64 const, compflow::USD_COMP - 1 > const & composition, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseFraction, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseDensity, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseMassDensity, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseViscosity, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseEnthalpy, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseInternalEnergy, - arraySlice2d< real64, multifluid::USD_PHASE_COMP-2 > const & phaseCompFraction, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseFraction, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseDensity, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseMassDensity, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseViscosity, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseEnthalpy, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseInternalEnergy, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_COMP-2 > const & phaseCompFraction, real64 & totalDensity ); protected: @@ -404,8 +404,8 @@ class MultiFluidBase : public ConstitutiveBase template< integer maxNumComp, integer maxNumPhase > GEOS_HOST_DEVICE void convertToMassFractions( real64 const (&phaseMolecularWeight)[maxNumPhase], - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseFrac, - arraySlice2d< real64, multifluid::USD_PHASE_COMP - 2 > const phaseCompFrac ) const; + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseFrac, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_COMP - 2 > const phaseCompFrac ) const; /** * @brief Utility function to convert mole fractions to mass fractions and keep derivatives @@ -432,10 +432,10 @@ class MultiFluidBase : public ConstitutiveBase real64 const (&dPhaseMolecularWeight)[maxNumPhase][maxNumComp+2], PhaseProp::SliceType const phaseFrac, PhaseComp::SliceType const phaseCompFrac, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseDens, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseVisc, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const; + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseDens, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseVisc, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const; /** * @brief Utility function to compute the internal energy from pressure, enthalpy, and density @@ -450,10 +450,10 @@ class MultiFluidBase : public ConstitutiveBase template< integer maxNumComp, integer maxNumPhase > GEOS_HOST_DEVICE void computeInternalEnergy( real64 const & pressure, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseFrac, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseMassDens, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseEnthalpy, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseInternalEnergy ) const; + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseFrac, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseMassDens, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseEnthalpy, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseInternalEnergy ) const; /** * @brief Utility function to compute the internal energy from pressure, enthalpy, and density and keep derivatives @@ -480,8 +480,8 @@ class MultiFluidBase : public ConstitutiveBase */ template< integer maxNumComp, integer maxNumPhase > GEOS_HOST_DEVICE - void computeTotalDensity( arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseFrac, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseDens, + void computeTotalDensity( arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseFrac, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseDens, real64 & totalDens ) const; /** @@ -523,7 +523,7 @@ class MultiFluidBase : public ConstitutiveBase real64 totalCompressibility( integer const i, integer const q ) const { real64 const totalFluidDensity = totalDensity()( i, q ); - real64 const dTotalFluidDensity_dP = m_totalDensity.derivs( i, q, multifluid::DerivativeOffset::dP ); + real64 const dTotalFluidDensity_dP = m_totalDensity.derivs( i, q, constitutive::multifluid::DerivativeOffset::dP ); return 0.0 < totalFluidDensity ? dTotalFluidDensity_dP / totalFluidDensity : 0.0; } @@ -600,10 +600,10 @@ class MultiFluidBase : public ConstitutiveBase void computeDerivativesWrtMassFractions( real64 const (&dCompMoleFrac_dCompMassFrac)[maxNumComp][maxNumComp], PhaseProp::SliceType const phaseFrac, PhaseComp::SliceType const phaseCompFrac, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseDens, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseVisc, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const; + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseDens, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseVisc, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const; /** * @brief Main compute function to update properties in a cell with derivatives (used in Newton iterations) @@ -693,11 +693,11 @@ class MultiFluidBase : public ConstitutiveBase // backup data - array3d< real64, multifluid::LAYOUT_PHASE > m_phaseDensity_n; - array3d< real64, multifluid::LAYOUT_PHASE > m_phaseEnthalpy_n; - array3d< real64, multifluid::LAYOUT_PHASE > m_phaseInternalEnergy_n; - array4d< real64, multifluid::LAYOUT_PHASE_COMP > m_phaseCompFraction_n; - array2d< real64, multifluid::LAYOUT_FLUID > m_totalDensity_n; + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > m_phaseDensity_n; + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > m_phaseEnthalpy_n; + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > m_phaseInternalEnergy_n; + array4d< real64, constitutive::multifluid::LAYOUT_PHASE_COMP > m_phaseCompFraction_n; + array2d< real64, constitutive::multifluid::LAYOUT_FLUID > m_totalDensity_n; }; @@ -708,13 +708,13 @@ MultiFluidBase::KernelWrapper::computeValues( FLUIDWRAPPER const fluidWrapper, real64 const pressure, real64 const temperature, arraySlice1d< real64 const, compflow::USD_COMP - 1 > const & composition, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseFraction, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseDensity, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseMassDensity, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseViscosity, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseEnthalpy, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const & phaseInternalEnergy, - arraySlice2d< real64, multifluid::USD_PHASE_COMP-2 > const & phaseCompFraction, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseFraction, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseDensity, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseMassDensity, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseViscosity, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseEnthalpy, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const & phaseInternalEnergy, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_COMP-2 > const & phaseCompFraction, real64 & totalDensity ) { integer constexpr maxNumPhase = MAX_NUM_PHASES; @@ -726,9 +726,9 @@ MultiFluidBase::KernelWrapper::computeValues( FLUIDWRAPPER const fluidWrapper, // Allocate data for derivatives. All properties of the same type will use the same memory // space for the derivatives. The derivatives returned will clearly be garbage but the values // should be correct. - StackArray< real64, 4, maxNumDof * maxNumPhase, multifluid::LAYOUT_PHASE_DC > dPhaseProp( 1, 1, numPhase, numComp+2 ); - StackArray< real64, 5, maxNumDof * maxNumComp * maxNumPhase, multifluid::LAYOUT_PHASE_COMP_DC > dPhaseComp( 1, 1, numPhase, numComp, numComp+2 ); - StackArray< real64, 3, maxNumDof, multifluid::LAYOUT_FLUID_DC > dFluidProp( 1, 1, numComp+2 ); + StackArray< real64, 4, maxNumDof * maxNumPhase, constitutive::multifluid::LAYOUT_PHASE_DC > dPhaseProp( 1, 1, numPhase, numComp+2 ); + StackArray< real64, 5, maxNumDof * maxNumComp * maxNumPhase, constitutive::multifluid::LAYOUT_PHASE_COMP_DC > dPhaseComp( 1, 1, numPhase, numComp, numComp+2 ); + StackArray< real64, 3, maxNumDof, constitutive::multifluid::LAYOUT_FLUID_DC > dFluidProp( 1, 1, numComp+2 ); // Wrap the output in multi variable objects PhaseProp::SliceType phaseFractionWrapper { phaseFraction, dPhaseProp[0][0] }; @@ -808,8 +808,8 @@ GEOS_FORCE_INLINE void MultiFluidBase::KernelWrapper:: convertToMassFractions( real64 const (&phaseMolecularWeight)[maxNumPhase], - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseFrac, - arraySlice2d< real64, multifluid::USD_PHASE_COMP - 2 > const phaseCompFrac ) const + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseFrac, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_COMP - 2 > const phaseCompFrac ) const { using namespace multifluid; @@ -854,10 +854,10 @@ MultiFluidBase::KernelWrapper:: real64 const (&dPhaseMolecularWeight)[maxNumPhase][maxNumComp+2], PhaseProp::SliceType const phaseFrac, PhaseComp::SliceType const phaseCompFrac, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseDens, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseVisc, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseDens, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseVisc, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const { convertToPhaseMassFractions( phaseMolecularWeight, dPhaseMolecularWeight, @@ -884,7 +884,7 @@ MultiFluidBase::KernelWrapper:: real64 const (&dPhaseMolecularWeight)[maxNumPhase][maxNumDof], PhaseProp::SliceType const phaseFrac ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const numPhase = numPhases(); integer const numComp = numComponents(); @@ -939,7 +939,7 @@ MultiFluidBase::KernelWrapper:: PhaseProp::SliceType const phaseFrac, PhaseComp::SliceType const phaseCompFrac ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const numPhase = numPhases(); integer const numComp = numComponents(); @@ -985,12 +985,12 @@ MultiFluidBase::KernelWrapper:: computeDerivativesWrtMassFractions( real64 const (&dCompMoleFrac_dCompMassFrac)[maxNumComp][maxNumComp], PhaseProp::SliceType const phaseFrac, PhaseComp::SliceType const phaseCompFrac, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseDens, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseVisc, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, - arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseDens, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseVisc, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, + arraySlice2d< real64, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const numPhase = numPhases(); integer const numComp = numComponents(); @@ -1017,10 +1017,10 @@ GEOS_FORCE_INLINE void MultiFluidBase::KernelWrapper:: computeInternalEnergy( real64 const & pressure, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseFrac, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseMassDens, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseEnthalpy, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseInternalEnergy ) const + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseFrac, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseMassDens, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseEnthalpy, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseInternalEnergy ) const { using namespace multifluid; @@ -1087,8 +1087,8 @@ template< integer maxNumComp, integer maxNumPhase > GEOS_HOST_DEVICE inline void MultiFluidBase::KernelWrapper:: - computeTotalDensity( arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseFrac, - arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseDens, + computeTotalDensity( arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseFrac, + arraySlice1d< real64, constitutive::multifluid::USD_PHASE - 2 > const phaseDens, real64 & totalDens ) const { using namespace multifluid; @@ -1119,7 +1119,7 @@ MultiFluidBase::KernelWrapper:: PhaseProp::SliceType const phaseDensity, FluidProp::SliceType const totalDensity ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const numComp = numComponents(); integer const numPhase = numPhases(); diff --git a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidConstants.hpp b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidConstants.hpp index 6d94ba2c422..191d49a90bb 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidConstants.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidConstants.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidFields.hpp b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidFields.hpp index d73639350a0..4983406b17a 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidFields.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidSelector.hpp b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidSelector.hpp index 470720f3617..7d54ed3e3c4 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidSelector.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -37,7 +37,7 @@ namespace constitutive { template< typename LAMBDA > -void constitutiveUpdatePassThru( MultiFluidBase const & fluid, +void constitutiveUpdatePassThru( constitutive::MultiFluidBase const & fluid, LAMBDA && lambda ) { ConstitutivePassThruHandler< DeadOilFluid, @@ -59,7 +59,7 @@ void constitutiveUpdatePassThru( MultiFluidBase const & fluid, } template< typename LAMBDA > -void constitutiveUpdatePassThru( MultiFluidBase & fluid, +void constitutiveUpdatePassThru( constitutive::MultiFluidBase & fluid, LAMBDA && lambda ) { ConstitutivePassThruHandler< DeadOilFluid, @@ -117,7 +117,7 @@ struct ComponentSelector< camp::idx_seq< Is ... > > } template< bool THERMAL = false, typename LAMBDA = NoOpFunc > -void constitutiveComponentUpdatePassThru( MultiFluidBase & fluidBase, +void constitutiveComponentUpdatePassThru( constitutive::MultiFluidBase & fluidBase, integer const numComps, LAMBDA && lambda ) { diff --git a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidUtils.hpp b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidUtils.hpp index 3bccb811d38..68283ef38c5 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidUtils.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidUtils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp index 5daaa66f6d9..4a4118c1cbf 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.hpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.hpp index 29ff379ea41..112c677bad3 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -142,7 +142,7 @@ class BlackOilFluid : public BlackOilFluidBase void computeDensitiesViscosities( bool const needDerivs, real64 const pressure, real64 const composition[NC_BO], - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const & phaseFrac, + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const & phaseFrac, PhaseProp::SliceType const & phaseDens, PhaseProp::SliceType const & phaseMassDens, PhaseProp::SliceType const & phaseVisc, @@ -253,7 +253,7 @@ class BlackOilFluid : public BlackOilFluidBase real64 const dBo_dPres, real64 const dBo_dComp[HNC_BO], real64 & dens, - arraySlice1d< real64, multifluid::USD_PHASE_DC - 3 > const & dDens ) const; + arraySlice1d< real64, constitutive::multifluid::USD_PHASE_DC - 3 > const & dDens ) const; /// Data needed to update the oil phase properties PVTOData::KernelWrapper m_PVTOView; @@ -415,7 +415,7 @@ BlackOilFluid::KernelWrapper:: PhaseProp::SliceType const & phaseFraction, PhaseComp::SliceType const & phaseCompFraction ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; using PT = BlackOilFluid::PhaseType; integer const ipOil = m_phaseOrder[PT::OIL]; @@ -563,14 +563,14 @@ BlackOilFluid::KernelWrapper:: computeDensitiesViscosities( bool const needDerivs, real64 const pressure, real64 const composition[NC_BO], - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const & phaseFrac, + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const & phaseFrac, PhaseProp::SliceType const & phaseDens, PhaseProp::SliceType const & phaseMassDens, PhaseProp::SliceType const & phaseVisc, real64 phaseMolecularWeight[NP_BO], real64 dPhaseMolecularWeight[NP_BO][NC_BO+2] ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; using PT = BlackOilFluid::PhaseType; integer const ipOil = m_phaseOrder[PT::OIL]; @@ -905,9 +905,9 @@ BlackOilFluid::KernelWrapper:: real64 const dBo_dPres, real64 const dBo_dComp[HNC_BO], real64 & dens, - arraySlice1d< real64, multifluid::USD_PHASE_DC - 3 > const & dDens ) const + arraySlice1d< real64, constitutive::multifluid::USD_PHASE_DC - 3 > const & dDens ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; using PT = BlackOilFluid::PhaseType; real64 const oilDens = (useMass)? m_PVTOView.m_surfaceMassDensity[PT::OIL]: diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluidBase.cpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluidBase.cpp index e31fa7bb339..0e86a3e7777 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluidBase.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluidBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluidBase.hpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluidBase.hpp index 03a6aadba67..dbca6083fca 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluidBase.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluidBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/DeadOilFluid.cpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/DeadOilFluid.cpp index 390e756f5fd..91162808882 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/DeadOilFluid.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/DeadOilFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/DeadOilFluid.hpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/DeadOilFluid.hpp index 361f15aa343..69311e692f2 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/DeadOilFluid.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/DeadOilFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -161,7 +161,7 @@ DeadOilFluid::KernelWrapper:: computeDensities( real64 const pressure, PhaseProp::SliceType const & phaseMassDens ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; LvArray::forValuesInSlice( phaseMassDens.derivs, []( real64 & val ){ val = 0.0; } ); @@ -207,7 +207,7 @@ DeadOilFluid::KernelWrapper:: computeViscosities( real64 const pressure, PhaseProp::SliceType const & phaseVisc ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; LvArray::forValuesInSlice( phaseVisc.derivs, []( real64 & val ){ val = 0.0; } ); @@ -255,7 +255,7 @@ DeadOilFluid::KernelWrapper:: { GEOS_UNUSED_VAR( temperature, phaseEnthalpy, phaseInternalEnergy ); - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const nComps = numComponents(); integer const nPhases = numPhases(); diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTOData.cpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTOData.cpp index eee1929c68e..1a36a2e124b 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTOData.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTOData.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTOData.hpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTOData.hpp index bcc002ff0f7..cec6671cb93 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTOData.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTOData.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.cpp index c90f0fe9366..aa91a802388 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -196,6 +196,8 @@ CompositionalMultiphaseFluid< FLASH, PHASE1, PHASE2, PHASE3 >::deliverClone( str Group * const parent ) const { std::unique_ptr< ConstitutiveBase > clone = MultiFluidBase::deliverClone( name, parent ); + CompositionalMultiphaseFluid & newFluid = dynamicCast< CompositionalMultiphaseFluid & >( *clone ); + newFluid.createModels(); return clone; } diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.hpp index 5e37c4ab479..a8f846aac39 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.cpp index 176d051f0f3..0edd0113625 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.hpp index 85bb218a6f3..e6fa1574e55 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -188,7 +188,7 @@ CompositionalMultiphaseFluidPVTPackage::KernelWrapper:: GEOS_UNUSED_VAR( totalDensity ); #else - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer constexpr maxNumComp = MultiFluidBase::MAX_NUM_COMPONENTS; integer constexpr maxNumPhase = MultiFluidBase::MAX_NUM_PHASES; diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.cpp index 40002e84e48..1ef2d44b8f7 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.hpp index bcf0e5c482e..1567f4b4c46 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -421,7 +421,7 @@ convertDerivativesToTotalMoleFraction( integer const numComps, arraySlice1d< real64, USD2 > const & dProperty, arraySlice1d< real64 > const & workSpace ) { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const numDofs = numComps + 2; for( integer kc = 0; kc < numDofs; ++kc ) { diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CompositionalProperties.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CompositionalProperties.hpp index ccf48b312b9..d58252d405f 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CompositionalProperties.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CompositionalProperties.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CompositionalPropertiesImpl.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CompositionalPropertiesImpl.hpp index dfe817fc894..d7ac72c2912 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CompositionalPropertiesImpl.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CompositionalPropertiesImpl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel.hpp index d992157f521..ac6d7efc240 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/FugacityCalculator.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/FugacityCalculator.hpp index 3ef3cf25b5f..758a4e8ec89 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/FugacityCalculator.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/FugacityCalculator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/KValueInitialization.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/KValueInitialization.hpp index 59d50b60eba..7135d944906 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/KValueInitialization.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/KValueInitialization.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -64,39 +64,6 @@ struct KValueInitialization } } - /** - * @brief Calculate gas-liquid k-values near the convergence pressure - * @param[in] numComps number of components - * @param[in] pressure pressure - * @param[in] temperature temperature - * @param[in] componentProperties The compositional component properties - * @param[out] kValues the calculated k-values - **/ - template< integer USD > - GEOS_HOST_DEVICE - GEOS_FORCE_INLINE - static void - computeConstantLiquidKvalue( integer const numComps, - real64 const pressure, - real64 const temperature, - ComponentProperties::KernelWrapper const & componentProperties, - arraySlice1d< real64, USD > const & kValues ) - { - GEOS_UNUSED_VAR( pressure, temperature ); - arrayView1d< real64 const > const & criticalPressure = componentProperties.m_componentCriticalPressure; - real64 averagePressure = 0.0; // Average pressure - for( integer ic = 0; ic < numComps; ++ic ) - { - averagePressure += criticalPressure[ic]; - } - averagePressure /= numComps; - constexpr real64 kValueGap = 0.01; - for( integer ic = 0; ic < numComps; ++ic ) - { - kValues[ic] = criticalPressure[ic] < averagePressure ? 1.0/(1.0 + kValueGap) : 1.0/(1.0 - kValueGap); - } - } - /** * @brief Calculate water-gas k-value * @param[in] pressure pressure diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/NegativeTwoPhaseFlash.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/NegativeTwoPhaseFlash.hpp index be61c18688d..f492995b1ad 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/NegativeTwoPhaseFlash.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/NegativeTwoPhaseFlash.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -32,15 +32,12 @@ namespace geos namespace constitutive { - -using namespace multifluid; - namespace compositional { struct NegativeTwoPhaseFlash { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; public: /** @@ -177,7 +174,7 @@ struct NegativeTwoPhaseFlash * @param[out] fugacityRatios the fugacity rations * @return The error */ - template< integer USD > + template< integer USD1, integer USD2 > GEOS_HOST_DEVICE static real64 computeFugacityRatio( integer const numComps, @@ -187,34 +184,32 @@ struct NegativeTwoPhaseFlash ComponentProperties::KernelWrapper const & componentProperties, EquationOfStateType const liquidEos, EquationOfStateType const vapourEos, - arraySlice1d< real64 const, USD > const & kValues, + arraySlice1d< real64 const, USD1 > const & kValues, arraySlice1d< integer const > const & presentComponents, real64 & vapourPhaseMoleFraction, - arraySlice1d< real64, USD > const & liquidComposition, - arraySlice1d< real64, USD > const & vapourComposition, + arraySlice1d< real64, USD2 > const & liquidComposition, + arraySlice1d< real64, USD2 > const & vapourComposition, arraySlice1d< real64 > const & logLiquidFugacity, arraySlice1d< real64 > const & logVapourFugacity, arraySlice1d< real64 > const & fugacityRatios ); /** * @brief Solve the lineat system for the derivatives of the flash - * @param[in] A the coefficient matrix - * @param[in] b the rhs - * @param[out] x the solution + * @param[in/out] A the coefficient matrix. Destroyed after call + * @param[in/out] X the rhs and solution * @return @c true if the problem is well solved @c false otherwise */ + template< int USD > GEOS_HOST_DEVICE - static bool solveLinearSystem( arraySlice2d< real64 const > const & A, - arraySlice1d< real64 const > const & b, - arraySlice1d< real64 > const & x ) + static bool solveLinearSystem( arraySlice2d< real64, USD > const & A, + arraySlice2d< real64, USD > const & X ) { #if defined(GEOS_DEVICE_COMPILE) GEOS_UNUSED_VAR( A ); - GEOS_UNUSED_VAR( b ); - GEOS_UNUSED_VAR( x ); + GEOS_UNUSED_VAR( X ); return false; #else - BlasLapackLA::solveLinearSystem( A, b, x ); + BlasLapackLA::solveLinearSystem( A, X ); return true; #endif } @@ -262,9 +257,6 @@ bool NegativeTwoPhaseFlash::compute( integer const numComps, } } - bool kValueReset = true; - constexpr real64 boundsTolerance = 1.0e-3; - if( needInitialisation ) { KValueInitialization::computeWilsonGasLiquidKvalue( numComps, @@ -276,8 +268,6 @@ bool NegativeTwoPhaseFlash::compute( integer const numComps, auto const presentComponents = componentIndices.toSliceConst(); - real64 const initialVapourFraction = RachfordRice::solve( kVapourLiquid.toSliceConst(), composition, presentComponents ); - bool converged = false; for( localIndex iterationCount = 0; iterationCount < MultiFluidConstants::maxSSIIterations; ++iterationCount ) { @@ -306,23 +296,9 @@ bool NegativeTwoPhaseFlash::compute( integer const numComps, } // Update K-values - if( (vapourPhaseMoleFraction < -boundsTolerance || 1.0-vapourPhaseMoleFraction < -boundsTolerance) - && 0.2 < LvArray::math::abs( vapourPhaseMoleFraction-initialVapourFraction ) - && !kValueReset ) - { - KValueInitialization::computeConstantLiquidKvalue( numComps, - pressure, - temperature, - componentProperties, - kVapourLiquid ); - kValueReset = true; - } - else + for( integer ic = 0; ic < numComps; ++ic ) { - for( integer ic = 0; ic < numComps; ++ic ) - { - kVapourLiquid[ic] *= exp( fugacityRatios[ic] ); - } + kVapourLiquid[ic] *= exp( fugacityRatios[ic] ); } } @@ -435,12 +411,11 @@ void NegativeTwoPhaseFlash::computeDerivatives( constexpr integer maxNumVals = 2*MultiFluidConstants::MAX_NUM_COMPONENTS+1; integer const numVals = 2*numComps; - stackArray1d< real64, maxNumVals > b( numVals + 1 ); - stackArray1d< real64, maxNumVals > x( numVals + 1 ); - stackArray2d< real64, maxNumVals * maxNumVals > A( numVals + 1, numVals + 1 ); + StackArray< real64, 2, maxNumVals * maxNumVals, MatrixLayout::COL_MAJOR_PERM > A( numVals + 1, numVals + 1 ); + StackArray< real64, 2, maxNumVals * maxNumVals, MatrixLayout::COL_MAJOR_PERM > X( numVals + 1, numVals + 1 ); LvArray::forValuesInSlice( A.toSlice(), setZero ); - LvArray::forValuesInSlice( b.toSlice(), setZero ); + LvArray::forValuesInSlice( X.toSlice(), setZero ); for( integer ic = 0; ic < numComps; ++ic ) { @@ -472,50 +447,47 @@ void NegativeTwoPhaseFlash::computeDerivatives( A( e, xi ) = -1.0; A( e, yi ) = 1.0; } + // Pressure and temperature derivatives - for( integer const pc : {Deriv::dP, Deriv::dT} ) + for( integer ic = 0; ic < numComps; ++ic ) { - for( integer ic = 0; ic < numComps; ++ic ) - { - real64 const phiL = exp( logLiquidFugacity( ic ) ); - real64 const phiV = exp( logVapourFugacity( ic ) ); - b( ic ) = 0.0; - b( ic + numComps ) = -liquidComposition[ic] * phiL * logLiquidFugacityDerivs( ic, pc ) - + vapourComposition[ic] * phiV * logVapourFugacityDerivs( ic, pc ); - } - b( numVals ) = 0.0; - solveLinearSystem( A, b, x ); - for( integer ic = 0; ic < numComps; ++ic ) - { - liquidCompositionDerivs( ic, pc ) = x( ic ); - vapourCompositionDerivs( ic, pc ) = x( ic + numComps ); - } - vapourFractionDerivs( pc ) = x( numVals ); + real64 const phiL = -liquidComposition[ic] * exp( logLiquidFugacity( ic ) ); + real64 const phiV = vapourComposition[ic] * exp( logVapourFugacity( ic ) ); + X( ic + numComps, Deriv::dP ) = phiL * logLiquidFugacityDerivs( ic, Deriv::dP ) + + phiV * logVapourFugacityDerivs( ic, Deriv::dP ); + X( ic + numComps, Deriv::dT ) = phiL * logLiquidFugacityDerivs( ic, Deriv::dT ) + + phiV * logVapourFugacityDerivs( ic, Deriv::dT ); } + // Composition derivatives for( integer kc = 0; kc < numComps; ++kc ) { - integer const pc = Deriv::dC + kc; + integer const idof = Deriv::dC + kc; for( integer ic = 0; ic < numComps; ++ic ) { - b( ic ) = -composition[ic]; - b( ic + numComps ) = 0.0; + X( ic, idof ) = -composition[ic]; } - b( kc ) += 1.0; - b( numVals ) = 0.0; - solveLinearSystem( A, b, x ); + X( kc, idof ) += 1.0; + } + + // Solve linear system + solveLinearSystem( A.toSlice(), X.toSlice() ); + + // Fill in the derivatives + for( integer idof = 0; idof < numDofs; ++idof ) + { for( integer ic = 0; ic < numComps; ++ic ) { - liquidCompositionDerivs( ic, pc ) = x( ic ); - vapourCompositionDerivs( ic, pc ) = x( ic + numComps ); + liquidCompositionDerivs( ic, idof ) = X( ic, idof ); + vapourCompositionDerivs( ic, idof ) = X( ic + numComps, idof ); } - vapourFractionDerivs( pc ) = x( numVals ); + vapourFractionDerivs( idof ) = X( numVals, idof ); } } } -template< integer USD > +template< integer USD1, integer USD2 > GEOS_HOST_DEVICE real64 NegativeTwoPhaseFlash::computeFugacityRatio( integer const numComps, @@ -525,11 +497,11 @@ real64 NegativeTwoPhaseFlash::computeFugacityRatio( ComponentProperties::KernelWrapper const & componentProperties, EquationOfStateType const liquidEos, EquationOfStateType const vapourEos, - arraySlice1d< real64 const, USD > const & kValues, + arraySlice1d< real64 const, USD1 > const & kValues, arraySlice1d< integer const > const & presentComponents, real64 & vapourPhaseMoleFraction, - arraySlice1d< real64, USD > const & liquidComposition, - arraySlice1d< real64, USD > const & vapourComposition, + arraySlice1d< real64, USD2 > const & liquidComposition, + arraySlice1d< real64, USD2 > const & vapourComposition, arraySlice1d< real64 > const & logLiquidFugacity, arraySlice1d< real64 > const & logVapourFugacity, arraySlice1d< real64 > const & fugacityRatios ) diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/RachfordRice.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/RachfordRice.hpp index aaf71b93089..f12b715cbe7 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/RachfordRice.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/RachfordRice.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/StabilityTest.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/StabilityTest.hpp index d322a3a993d..95577d6a2c4 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/StabilityTest.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/StabilityTest.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -52,7 +52,7 @@ struct StabilityTest * @param[out] kValues the k-values estimated from the stationary points * @return a flag indicating that 2 stationary points have been found */ - template< integer USD1 > + template< integer USD1, integer USD2 > GEOS_HOST_DEVICE static bool compute( integer const numComps, real64 const pressure, @@ -61,25 +61,23 @@ struct StabilityTest ComponentProperties::KernelWrapper const & componentProperties, EquationOfStateType const & equationOfState, real64 & tangentPlaneDistance, - arraySlice1d< real64 > const & kValues ) + arraySlice1d< real64, USD2 > const & kValues ) { constexpr integer numTrials = 2; // Trial compositions - stackArray1d< real64, maxNumComps > logFugacity( numComps ); - stackArray1d< real64, maxNumComps > normalizedComposition( numComps ); - stackArray2d< real64, numTrials *maxNumComps > trialComposition( numTrials, numComps ); - stackArray1d< real64, maxNumComps > logTrialComposition( numComps ); - stackArray1d< real64, maxNumComps > hyperplane( numComps ); // h-parameter + stackArray2d< real64, 4*maxNumComps > workSpace( 4, numComps ); + arraySlice1d< real64 > logFugacity = workSpace[0]; + arraySlice1d< real64 > normalizedComposition = workSpace[1]; + arraySlice1d< real64 > logTrialComposition = workSpace[2]; + arraySlice1d< real64 > hyperplane = workSpace[3]; // h-parameter stackArray1d< integer, maxNumComps > availableComponents( numComps ); calculatePresentComponents( numComps, composition, availableComponents ); auto const presentComponents = availableComponents.toSliceConst(); + LvArray::forValuesInSlice( workSpace.toSlice(), []( real64 & a ){ a = 0.0; } ); + // Calculate the hyperplane parameter // h_i = log( z_i ) + log( phi_i ) - for( integer ic = 0; ic < numComps; ++ic ) - { - hyperplane[ic] = 0.0; - } FugacityCalculator::computeLogFugacity( numComps, pressure, temperature, @@ -99,43 +97,21 @@ struct StabilityTest componentProperties, kValues ); - for( integer ic = 0; ic < numComps; ++ic ) - { - trialComposition( 0, ic ) = composition[ic] / kValues[ic]; - trialComposition( 1, ic ) = composition[ic] * kValues[ic]; - } - - integer numberOfStationaryPoints = 0; tangentPlaneDistance = LvArray::NumericLimits< real64 >::max; for( integer trialIndex = 0; trialIndex < numTrials; ++trialIndex ) { - for( integer ic = 0; ic < numComps; ++ic ) - { - normalizedComposition[ic] = trialComposition( trialIndex, ic ); - } - normalizeComposition( numComps, normalizedComposition.toSlice() ); - - FugacityCalculator::computeLogFugacity( numComps, - pressure, - temperature, - normalizedComposition.toSliceConst(), - componentProperties, - equationOfState, - logFugacity ); + // Initialise next sample + real64 const alpha = static_cast< real64 >(trialIndex)/(numTrials-1); for( integer const ic : presentComponents ) { - logTrialComposition[ic] = LvArray::math::log( trialComposition( trialIndex, ic ) ); + normalizedComposition[ic] = composition[ic]*(alpha * kValues[ic] + (1.0 - alpha) / kValues[ic]); + logTrialComposition[ic] = LvArray::math::log( normalizedComposition[ic] ); } + for( localIndex iterationCount = 0; iterationCount < MultiFluidConstants::maxSSIIterations; ++iterationCount ) { - for( integer const ic : presentComponents ) - { - logTrialComposition[ic] = hyperplane[ic] - logFugacity[ic]; - trialComposition( trialIndex, ic ) = LvArray::math::exp( logTrialComposition[ic] ); - normalizedComposition[ic] = trialComposition( trialIndex, ic ); - } - normalizeComposition( numComps, normalizedComposition.toSlice() ); - + // Normalise the composition and calculate the fugacity + real64 const totalMoles = normalizeComposition( numComps, normalizedComposition ); FugacityCalculator::computeLogFugacity( numComps, pressure, temperature, @@ -144,6 +120,22 @@ struct StabilityTest equationOfState, logFugacity ); + // Calculate the TPD + real64 tpd = 0.0; + for( integer const ic : presentComponents ) + { + tpd += composition[ic] + totalMoles * normalizedComposition[ic] * (logTrialComposition[ic] + logFugacity[ic] - hyperplane[ic] - 1.0); + } + if( tpd < tangentPlaneDistance ) + { + tangentPlaneDistance = tpd; + } + if( tangentPlaneDistance < -MultiFluidConstants::fugacityTolerance ) + { + break; + } + + // Check stationarity real64 error = 0.0; for( integer const ic : presentComponents ) { @@ -151,32 +143,24 @@ struct StabilityTest error += (dG*dG); } error = LvArray::math::sqrt( error ); - if( error < MultiFluidConstants::fugacityTolerance ) { - // Calculate modified tangent plane distance (Michelsen, 1982b) of trial composition relative to input composition - real64 tpd = 1.0; - for( integer const ic : presentComponents ) - { - tpd += trialComposition( trialIndex, ic ) * (logTrialComposition[ic] + logFugacity[ic] - hyperplane[ic] - 1.0); - } - if( tpd < tangentPlaneDistance ) - { - tangentPlaneDistance = tpd; - } - numberOfStationaryPoints++; break; } + + // Update to next step + for( integer const ic : presentComponents ) + { + logTrialComposition[ic] = hyperplane[ic] - logFugacity[ic]; + normalizedComposition[ic] = LvArray::math::exp( logTrialComposition[ic] ); + } } - } - if( numberOfStationaryPoints == numTrials ) - { - for( integer const ic : presentComponents ) + if( tangentPlaneDistance < -MultiFluidConstants::fugacityTolerance ) { - kValues[ic] = trialComposition( 1, ic ) / trialComposition( 0, ic ); + break; } } - return numberOfStationaryPoints == numTrials; + return true; } private: diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ComponentProperties.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ComponentProperties.hpp index e11290a280b..2d92185454f 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ComponentProperties.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ComponentProperties.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -56,6 +56,7 @@ class ComponentProperties final /** * Data accessors */ + arrayView1d< string > const & getComponentName() const { return m_componentNames; } arrayView1d< real64 > const & getComponentMolarWeight() const { return m_componentMolarWeight; } arrayView1d< real64 > const & getComponentCriticalPressure() const { return m_componentCriticalPressure; } arrayView1d< real64 > const & getComponentCriticalTemperature() const { return m_componentCriticalTemperature; } diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CompositionalDensity.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CompositionalDensity.cpp index 227ff77ffff..6fe6b1a11e7 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CompositionalDensity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CompositionalDensity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CompositionalDensity.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CompositionalDensity.hpp index 4851da980fd..9fce5bdd029 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CompositionalDensity.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CompositionalDensity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ConstantViscosity.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ConstantViscosity.cpp index 2b6f05510bf..76c565f51a7 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ConstantViscosity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ConstantViscosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ConstantViscosity.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ConstantViscosity.hpp index 236f430b9a1..d7fabd362d6 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ConstantViscosity.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ConstantViscosity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CriticalVolume.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CriticalVolume.cpp new file mode 100644 index 00000000000..e62ddefe077 --- /dev/null +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/CriticalVolume.cpp @@ -0,0 +1,92 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file CriticalVolume.cpp + */ + +#include "CriticalVolume.hpp" +#include "ComponentProperties.hpp" + +#include "constitutive/fluid/multifluid/MultiFluidBase.hpp" + +namespace geos +{ + +namespace constitutive +{ + +namespace compositional +{ + +CriticalVolume::CriticalVolume( std::unique_ptr< ModelParameters > parameters ): + ModelParameters( std::move( parameters ) ) +{} + +std::unique_ptr< ModelParameters > CriticalVolume::create( std::unique_ptr< ModelParameters > parameters ) +{ + if( parameters && parameters->get< CriticalVolume >() != nullptr ) + { + return parameters; + } + return std::make_unique< CriticalVolume >( std::move( parameters ) ); +} + +void CriticalVolume::registerParametersImpl( MultiFluidBase * fluid ) +{ + fluid->registerWrapper( viewKeyStruct::componentCriticalVolumeString(), &m_componentCriticalVolume ). + setInputFlag( dataRepository::InputFlags::OPTIONAL ). + setDescription( "Component critical volumes" ); +} + +void CriticalVolume::postInputInitializationImpl( MultiFluidBase const * fluid, + ComponentProperties const & componentProperties ) +{ + integer const numComponents = fluid->numFluidComponents(); + + if( m_componentCriticalVolume.empty() ) + { + m_componentCriticalVolume.resize( numComponents ); + + arrayView1d< real64 > const & componentCriticalPressure = componentProperties.getComponentCriticalPressure(); + arrayView1d< real64 > const & componentCriticalTemperature = componentProperties.getComponentCriticalTemperature(); + + calculateCriticalVolume( numComponents, + componentCriticalPressure, + componentCriticalTemperature, + m_componentCriticalVolume ); + } + + GEOS_THROW_IF_NE_MSG( m_componentCriticalVolume.size(), numComponents, + GEOS_FMT( "{}: invalid number of values in attribute '{}'", fluid->getFullName(), + viewKeyStruct::componentCriticalVolumeString() ), + InputError ); +} + +void CriticalVolume::calculateCriticalVolume( integer const numComponents, + arrayView1d< const real64 > const criticalPressure, + arrayView1d< const real64 > const criticalTemperature, + arrayView1d< real64 > const criticalVolume ) +{ + for( integer ic=0; ic parameters ); + ~CriticalVolume() override = default; + + static std::unique_ptr< ModelParameters > create( std::unique_ptr< ModelParameters > parameters ); + + array1d< real64 > m_componentCriticalVolume; + +protected: + void registerParametersImpl( MultiFluidBase * fluid ) override; + + void postInputInitializationImpl( MultiFluidBase const * fluid, ComponentProperties const & componentProperties ) override; + + struct viewKeyStruct + { + static constexpr char const * componentCriticalVolumeString() { return "componentCriticalVolume"; } + }; + + /** + * @brief Estimate critical volumes using Ihmels' (2010) correlation + * @details reference: http://dx.doi.org/10.1021/je100167w + * @param[in] numComponents The number of components + * @param[in] criticalPressure The component critical pressures + * @param[in] criticalTemperature The component critical temperatures + * @param[in] criticalVolume The component critical volumes + */ + static void calculateCriticalVolume( integer const numComponents, + arrayView1d< const real64 > const criticalPressure, + arrayView1d< const real64 > const criticalTemperature, + arrayView1d< real64 > const criticalVolume ); +}; + +} // end namespace compositional + +} // end namespace constitutive + +} // end namespace geos + +#endif //GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_CRITICALVOLUME_HPP_ diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/EquationOfState.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/EquationOfState.hpp index 40ba0fb80a3..dd6b3d294c7 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/EquationOfState.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/EquationOfState.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -62,6 +62,11 @@ class EquationOfState : public ModelParameters return std::make_unique< EquationOfState >( std::move( parameters ) ); } + struct viewKeyStruct + { + static constexpr char const * equationsOfStateString() { return "equationsOfState"; } + }; + string_array m_equationsOfStateNames; protected: @@ -90,11 +95,6 @@ class EquationOfState : public ModelParameters EnumStrings< EquationOfStateType >::fromString( eos ); } } - - struct viewKeyStruct - { - static constexpr char const * equationsOfStateString() { return "equationsOfState"; } - }; }; } // end namespace compositional diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/FunctionBase.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/FunctionBase.hpp index f32e388c9ad..60d15385144 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/FunctionBase.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/FunctionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.cpp new file mode 100644 index 00000000000..62fafd82953 --- /dev/null +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.cpp @@ -0,0 +1,104 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2024 Total, S.A + * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2023-2024 Chevron + * Copyright (c) 2019- GEOS/GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file ImmiscibleWaterFlashModel.cpp + */ + +#include "ImmiscibleWaterFlashModel.hpp" +#include "ImmiscibleWaterParameters.hpp" +#include "EquationOfState.hpp" + +namespace geos +{ + +namespace constitutive +{ + +namespace compositional +{ + +// Naming conventions +string ImmiscibleWaterFlashModel::catalogName() +{ + return "ThreePhase"; +} + +ImmiscibleWaterFlashModel::ImmiscibleWaterFlashModel( string const & name, + ComponentProperties const & componentProperties, + ModelParameters const & modelParameters ): + FunctionBase( name, componentProperties ), + m_parameters( modelParameters ) +{ + m_waterComponentIndex = ImmiscibleWaterParameters::getWaterComponentIndex( componentProperties ); +} + +ImmiscibleWaterFlashModel::KernelWrapper +ImmiscibleWaterFlashModel::createKernelWrapper() const +{ + constexpr integer liquidIndex = 0; + constexpr integer vapourIndex = 1; + constexpr integer aqueousIndex = 2; + EquationOfState const * equationOfState = m_parameters.get< EquationOfState >(); + EquationOfStateType const liquidEos = EnumStrings< EquationOfStateType >::fromString( equationOfState->m_equationsOfStateNames[liquidIndex] ); + EquationOfStateType const vapourEos = EnumStrings< EquationOfStateType >::fromString( equationOfState->m_equationsOfStateNames[vapourIndex] ); + + array1d< real64 > componentCriticalVolume( m_componentProperties.getNumberOfComponents()); + + return KernelWrapper( m_componentProperties.getNumberOfComponents(), + liquidIndex, + vapourIndex, + aqueousIndex, + m_waterComponentIndex, + liquidEos, + vapourEos, + componentCriticalVolume ); +} + +ImmiscibleWaterFlashModelUpdate::ImmiscibleWaterFlashModelUpdate( + integer const numComponents, + integer const liquidIndex, + integer const vapourIndex, + integer const aqueousIndex, + integer const waterComponentIndex, + EquationOfStateType const liquidEos, + EquationOfStateType const vapourEos, + arrayView1d< real64 const > const componentCriticalVolume ): + m_twoPhaseModel( numComponents, + liquidIndex, + vapourIndex, + liquidEos, + vapourEos, + componentCriticalVolume ), + m_numComponents( numComponents ), + m_liquidIndex( liquidIndex ), + m_vapourIndex( vapourIndex ), + m_aquoesIndex( aqueousIndex ), + m_waterComponentIndex( waterComponentIndex ) +{} + +std::unique_ptr< ModelParameters > +ImmiscibleWaterFlashModel::createParameters( std::unique_ptr< ModelParameters > parameters ) +{ + auto params = NegativeTwoPhaseFlashModel::createParameters( std::move( parameters ) ); + params = ImmiscibleWaterParameters::create( std::move( params ) ); + return params; +} + +} // end namespace compositional + +} // namespace constitutive + +} // end namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.hpp new file mode 100644 index 00000000000..96b213940c1 --- /dev/null +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.hpp @@ -0,0 +1,212 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2024 Total, S.A + * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2023-2024 Chevron + * Copyright (c) 2019- GEOS/GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file ImmiscibleWaterFlashModel.hpp + */ + +#ifndef GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_IMMISCIBLEWATERFLASHMODEL_HPP_ +#define GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_IMMISCIBLEWATERFLASHMODEL_HPP_ + +#include "FunctionBase.hpp" +#include "EquationOfState.hpp" + +#include "constitutive/fluid/multifluid/Layouts.hpp" +#include "constitutive/fluid/multifluid/MultiFluidUtils.hpp" +#include "NegativeTwoPhaseFlashModel.hpp" + +namespace geos +{ + +namespace constitutive +{ + +namespace compositional +{ + +class ModelParameters; + +class ImmiscibleWaterFlashModelUpdate final : public FunctionBaseUpdate +{ +private: + static constexpr integer maxNumComps = MultiFluidConstants::MAX_NUM_COMPONENTS; +public: + + using PhaseProp = NegativeTwoPhaseFlashModelUpdate::PhaseProp; + using PhaseComp = NegativeTwoPhaseFlashModelUpdate::PhaseComp; + using Deriv = multifluid::DerivativeOffset; + + ImmiscibleWaterFlashModelUpdate( integer const numComponents, + integer const liquidIndex, + integer const vapourIndex, + integer const aqueousIndex, + integer const waterComponentIndex, + EquationOfStateType const liquidEos, + EquationOfStateType const vapourEos, + arrayView1d< real64 const > const componentCriticalVolume ); + + // Mark as a 3-phase flash + GEOS_HOST_DEVICE + static constexpr integer getNumberOfPhases() { return 3; } + + template< int USD1, int USD2 > + GEOS_HOST_DEVICE + void compute( ComponentProperties::KernelWrapper const & componentProperties, + real64 const & pressure, + real64 const & temperature, + arraySlice1d< real64 const, USD1 > const & compFraction, + arraySlice2d< real64, USD2 > const & kValues, + PhaseProp::SliceType const phaseFraction, + PhaseComp::SliceType const phaseCompFraction ) const; + +private: + template< int USD > + GEOS_FORCE_INLINE + GEOS_HOST_DEVICE + void convertCompositionDerivatives( real64 const hcMoleFraction, + arraySlice1d< real64 const > const & composition, + arraySlice1d< real64, USD > const & derivatives ) const + { + real64 dvdzi = 0.0; + for( integer ic = 0; ic < m_numComponents; ++ic ) + { + dvdzi += derivatives[Deriv::dC+ic] * composition[ic]; + } + for( integer ic = 0; ic < m_numComponents; ++ic ) + { + derivatives[Deriv::dC+ic] /= hcMoleFraction; + } + derivatives[Deriv::dC+m_waterComponentIndex] = dvdzi / hcMoleFraction; + } + +private: + NegativeTwoPhaseFlashModel::KernelWrapper const m_twoPhaseModel; + integer const m_numComponents; + integer const m_liquidIndex; + integer const m_vapourIndex; + integer const m_aquoesIndex; + integer const m_waterComponentIndex; +}; + +class ImmiscibleWaterFlashModel : public FunctionBase +{ +public: + ImmiscibleWaterFlashModel( string const & name, + ComponentProperties const & componentProperties, + ModelParameters const & modelParameters ); + + static string catalogName(); + + FunctionType functionType() const override + { + return FunctionType::FLASH; + } + + /// Type of kernel wrapper for in-kernel update + using KernelWrapper = ImmiscibleWaterFlashModelUpdate; + + /** + * @brief Create an update kernel wrapper. + * @return the wrapper + */ + KernelWrapper createKernelWrapper() const; + + // Create parameters unique to this model + static std::unique_ptr< ModelParameters > createParameters( std::unique_ptr< ModelParameters > parameters ); + +private: + ModelParameters const & m_parameters; + integer m_waterComponentIndex{-1}; +}; + +template< int USD1, int USD2 > +GEOS_HOST_DEVICE +void ImmiscibleWaterFlashModelUpdate::compute( ComponentProperties::KernelWrapper const & componentProperties, + real64 const & pressure, + real64 const & temperature, + arraySlice1d< real64 const, USD1 > const & compFraction, + arraySlice2d< real64, USD2 > const & kValues, + PhaseProp::SliceType const phaseFraction, + PhaseComp::SliceType const phaseCompFraction ) const +{ + LvArray::forValuesInSlice( phaseFraction.value, setZero ); + LvArray::forValuesInSlice( phaseFraction.derivs, setZero ); + LvArray::forValuesInSlice( phaseCompFraction.value, setZero ); + LvArray::forValuesInSlice( phaseCompFraction.derivs, setZero ); + + // Water phase + phaseFraction.value[m_aquoesIndex] = compFraction[m_waterComponentIndex]; + phaseFraction.derivs( m_aquoesIndex, Deriv::dC + m_waterComponentIndex ) = 1.0; + phaseCompFraction.value( m_aquoesIndex, m_waterComponentIndex ) = 1.0; + + // Total hydrocarbon mole fraction + real64 const z_hc = 1.0 - compFraction[m_waterComponentIndex]; + + if( z_hc < MultiFluidConstants::minForSpeciesPresence ) + { + // Single phase water + real64 const constantComposition = 1.0 / (m_numComponents - 1); + for( integer ic = 0; ic < m_numComponents; ++ic ) + { + phaseCompFraction.value( m_liquidIndex, ic ) = constantComposition; + phaseCompFraction.value( m_vapourIndex, ic ) = constantComposition; + } + phaseCompFraction.value( m_liquidIndex, m_waterComponentIndex ) = 0.0; + phaseCompFraction.value( m_vapourIndex, m_waterComponentIndex ) = 0.0; + } + else + { + // Hydrocarbon phases + + // Calculate normalised hyrdocarbon composition + stackArray1d< real64, maxNumComps > composition( m_numComponents ); + for( integer ic = 0; ic < m_numComponents; ++ic ) + { + composition[ic] = compFraction[ic] / z_hc; + } + composition[m_waterComponentIndex] = 0.0; + + // Perform negative two-phase flash + m_twoPhaseModel.compute( componentProperties, + pressure, + temperature, + composition.toSliceConst(), + kValues, + phaseFraction, + phaseCompFraction ); + + for( integer const phaseIndex : {m_liquidIndex, m_vapourIndex} ) + { + real64 const v = phaseFraction.value[phaseIndex]; + phaseFraction.value[phaseIndex] *= z_hc; + LvArray::forValuesInSlice( phaseFraction.derivs[phaseIndex], [&]( real64 & a ){ a *= z_hc; } ); + convertCompositionDerivatives( z_hc, composition.toSliceConst(), phaseFraction.derivs[phaseIndex] ); + phaseFraction.derivs( phaseIndex, Deriv::dC+m_waterComponentIndex ) = -v; + + for( integer ic = 0; ic < m_numComponents; ++ic ) + { + convertCompositionDerivatives( z_hc, composition.toSliceConst(), phaseCompFraction.derivs[phaseIndex][ic] ); + } + } + } +} + +} // end namespace compositional + +} // end namespace constitutive + +} // end namespace geos + +#endif //GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_IMMISCIBLEWATERFLASHMODEL_HPP_ diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterParameters.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterParameters.cpp new file mode 100644 index 00000000000..87c1d659435 --- /dev/null +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterParameters.cpp @@ -0,0 +1,89 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2024 Total, S.A + * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2023-2024 Chevron + * Copyright (c) 2019- GEOS/GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file ImmiscibleWaterParameters.cpp + */ + +#include "ImmiscibleWaterParameters.hpp" +#include "ComponentProperties.hpp" +#include "constitutive/fluid/multifluid/MultiFluidBase.hpp" +#include "dataRepository/InputFlags.hpp" +#include "common/format/StringUtilities.hpp" + +namespace geos +{ + +namespace constitutive +{ + +namespace compositional +{ + +ImmiscibleWaterParameters::ImmiscibleWaterParameters( std::unique_ptr< ModelParameters > parameters ): + ModelParameters( std::move( parameters ) ) +{} + +std::unique_ptr< ModelParameters > +ImmiscibleWaterParameters::create( std::unique_ptr< ModelParameters > parameters ) +{ + if( parameters && parameters->get< ImmiscibleWaterParameters >() != nullptr ) + { + return parameters; + } + return std::make_unique< ImmiscibleWaterParameters >( std::move( parameters ) ); +} + +integer ImmiscibleWaterParameters::getWaterComponentIndex( ComponentProperties const & componentProperties ) +{ + auto componentNames = componentProperties.getComponentName(); + integer const numComps = componentNames.size(); + for( integer ic = 0; ic < numComps; ++ic ) + { + string const compName = stringutilities::toLower( componentNames[ic] ); + if( compName == waterComponentName ) + { + return ic; + } + } + return -1; +} + +void ImmiscibleWaterParameters::registerParametersImpl( MultiFluidBase * fluid ) +{ + GEOS_UNUSED_VAR( fluid ); +} + +void ImmiscibleWaterParameters::postInputInitializationImpl( MultiFluidBase const * fluid, + ComponentProperties const & componentProperties ) +{ + integer const waterIndex = fluid->getWaterPhaseIndex(); + GEOS_THROW_IF_LT_MSG( waterIndex, 0, + GEOS_FMT( "{}: water phase not found '{}'", fluid->getFullName(), + MultiFluidBase::viewKeyStruct::phaseNamesString() ), + InputError ); + + integer const h2oIndex = getWaterComponentIndex( componentProperties ); + GEOS_THROW_IF_LT_MSG( h2oIndex, 0, + GEOS_FMT( "{}: water component not found '{}'", fluid->getFullName(), + MultiFluidBase::viewKeyStruct::componentNamesString() ), + InputError ); +} + +} // end namespace compositional + +} // end namespace constitutive + +} // end namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterParameters.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterParameters.hpp new file mode 100644 index 00000000000..9404e565f83 --- /dev/null +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterParameters.hpp @@ -0,0 +1,59 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2024 Total, S.A + * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2023-2024 Chevron + * Copyright (c) 2019- GEOS/GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file ImmiscibleWaterParameters.hpp + */ + +#ifndef GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_IMMISCIBLEWATERPARAMETERS_HPP_ +#define GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_IMMISCIBLEWATERPARAMETERS_HPP_ + +#include "ModelParameters.hpp" +#include "common/DataTypes.hpp" + +namespace geos +{ + +namespace constitutive +{ + +namespace compositional +{ + +class ImmiscibleWaterParameters : public ModelParameters +{ + static constexpr char const * waterComponentName = "h2o"; + +public: + ImmiscibleWaterParameters( std::unique_ptr< ModelParameters > parameters ); + ~ImmiscibleWaterParameters() override = default; + + static std::unique_ptr< ModelParameters > create( std::unique_ptr< ModelParameters > parameters ); + + static integer getWaterComponentIndex( ComponentProperties const & componentProperties ); + +protected: + void registerParametersImpl( MultiFluidBase * fluid ) override; + + void postInputInitializationImpl( MultiFluidBase const * fluid, ComponentProperties const & componentProperties ) override; +}; + +} // end namespace compositional + +} // end namespace constitutive + +} // end namespace geos + +#endif //GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_IMMISCIBLEWATERPARAMETERS_HPP_ diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosity.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosity.cpp index ff353033d20..615e24ab9c1 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -18,6 +18,7 @@ */ #include "LohrenzBrayClarkViscosity.hpp" +#include "CriticalVolume.hpp" #include "constitutive/fluid/multifluid/Layouts.hpp" #include "constitutive/fluid/multifluid/MultiFluidConstants.hpp" #include "constitutive/fluid/multifluid/MultiFluidBase.hpp" @@ -42,7 +43,7 @@ LohrenzBrayClarkViscosity::LohrenzBrayClarkViscosity( string const & name, integer const phaseIndex, ModelParameters const & modelParameters ): FunctionBase( name, componentProperties ), - m_parameters( modelParameters.get< Parameters >() ) + m_parameters( modelParameters ) { GEOS_UNUSED_VAR( phaseIndex ); } @@ -50,8 +51,10 @@ LohrenzBrayClarkViscosity::LohrenzBrayClarkViscosity( string const & name, LohrenzBrayClarkViscosity::KernelWrapper LohrenzBrayClarkViscosity::createKernelWrapper() const { - auto const mixingType = EnumStrings< LohrenzBrayClarkViscosityUpdate::MixingType >::fromString( m_parameters->m_componentMixingType ); - return KernelWrapper( mixingType, m_parameters->m_componentCriticalVolume ); + Parameters const * parameters = m_parameters.get< Parameters >(); + CriticalVolume const * criticalVolume = m_parameters.get< CriticalVolume >(); + auto const mixingType = EnumStrings< LohrenzBrayClarkViscosityUpdate::MixingType >::fromString( parameters->m_componentMixingType ); + return KernelWrapper( mixingType, criticalVolume->m_componentCriticalVolume ); } std::unique_ptr< ModelParameters > @@ -61,7 +64,7 @@ LohrenzBrayClarkViscosity::createParameters( std::unique_ptr< ModelParameters > { return parameters; } - return std::make_unique< Parameters >( std::move( parameters ) ); + return std::make_unique< Parameters >( CriticalVolume::create( std::move( parameters )) ); } LohrenzBrayClarkViscosity::Parameters::Parameters( std::unique_ptr< ModelParameters > parameters ): @@ -73,10 +76,6 @@ LohrenzBrayClarkViscosity::Parameters::Parameters( std::unique_ptr< ModelParamet void LohrenzBrayClarkViscosity::Parameters::registerParametersImpl( MultiFluidBase * fluid ) { - fluid->registerWrapper( viewKeyStruct::componentCriticalVolumeString(), &m_componentCriticalVolume ). - setInputFlag( dataRepository::InputFlags::OPTIONAL ). - setDescription( "Component critical volumes" ); - fluid->registerWrapper( viewKeyStruct::componentMixingTypeString(), &m_componentMixingType ). setInputFlag( dataRepository::InputFlags::OPTIONAL ). setApplyDefaultValue( m_componentMixingType ). @@ -87,42 +86,11 @@ void LohrenzBrayClarkViscosity::Parameters::registerParametersImpl( MultiFluidBa void LohrenzBrayClarkViscosity::Parameters::postInputInitializationImpl( MultiFluidBase const * fluid, ComponentProperties const & componentProperties ) { - integer const numComponents = fluid->numFluidComponents(); - - if( m_componentCriticalVolume.empty() ) - { - m_componentCriticalVolume.resize( numComponents ); - - arrayView1d< real64 > const & componentCriticalPressure = componentProperties.getComponentCriticalPressure(); - arrayView1d< real64 > const & componentCriticalTemperature = componentProperties.getComponentCriticalTemperature(); - - calculateCriticalVolume( numComponents, - componentCriticalPressure, - componentCriticalTemperature, - m_componentCriticalVolume ); - } - - GEOS_THROW_IF_NE_MSG( m_componentCriticalVolume.size(), numComponents, - GEOS_FMT( "{}: invalid number of values in attribute '{}'", fluid->getFullName(), - viewKeyStruct::componentCriticalVolumeString() ), - InputError ); - + GEOS_UNUSED_VAR( fluid, componentProperties ); // If the value is invalid, this will throw EnumStrings< LohrenzBrayClarkViscosityUpdate::MixingType >::fromString( m_componentMixingType ); } -void LohrenzBrayClarkViscosity::Parameters::calculateCriticalVolume( - integer const numComponents, - arrayView1d< const real64 > const criticalPressure, - arrayView1d< const real64 > const criticalTemperature, - arrayView1d< real64 > const criticalVolume ) -{ - for( integer ic=0; ic m_componentCriticalVolume; private: void registerParametersImpl( MultiFluidBase * fluid ) override; @@ -304,29 +305,15 @@ class LohrenzBrayClarkViscosity : public FunctionBase struct viewKeyStruct { - static constexpr char const * componentCriticalVolumeString() { return "componentCriticalVolume"; } static constexpr char const * componentMixingTypeString() { return "viscosityMixingRule"; } }; - - /** - * @brief Estimate critical volumes using Ihmels' (2010) correlation - * @details reference: http://dx.doi.org/10.1021/je100167w - * @param[in] numComponents The number of components - * @param[in] criticalPressure The component critical pressures - * @param[in] criticalTemperature The component critical temperatures - * @param[in] criticalVolume The component critical volumes - */ - static void calculateCriticalVolume( integer const numComponents, - arrayView1d< const real64 > const criticalPressure, - arrayView1d< const real64 > const criticalTemperature, - arrayView1d< real64 > const criticalVolume ); }; // Create parameters unique to this model static std::unique_ptr< ModelParameters > createParameters( std::unique_ptr< ModelParameters > parameters ); private: - Parameters const * m_parameters{}; + ModelParameters const & m_parameters; }; /// Declare strings associated with enumeration values. diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosityImpl.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosityImpl.hpp index 77b624b50a2..1a1999e78ba 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosityImpl.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosityImpl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -136,7 +136,7 @@ void LohrenzBrayClarkViscosityUpdate::computePhaseDiluteViscosity_HerningZippere real64 & phaseViscosity, arraySlice1d< real64, USD2 > const & dPhaseViscosity ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; GEOS_UNUSED_VAR( temperature ); real64 A = 0.0; @@ -175,7 +175,7 @@ void LohrenzBrayClarkViscosityUpdate::computePhaseDiluteViscosity_Wilke( integer real64 & phaseViscosity, arraySlice1d< real64, USD2 > const & dPhaseViscosity ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; GEOS_UNUSED_VAR( temperature ); // compute the "phi" interaction matrix (and its temperature derivatives) @@ -256,7 +256,7 @@ void LohrenzBrayClarkViscosityUpdate::computePhaseDiluteViscosity_Brokaw( intege real64 & phaseViscosity, arraySlice1d< real64, USD2 > const & dPhaseViscosity ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; GEOS_UNUSED_VAR( temperature ); // Compute the "phi" interaction matrix (constant, as only function of molecular weights) @@ -324,7 +324,7 @@ void LohrenzBrayClarkViscosityUpdate::computePhaseViscosity_LohrenzBrayClark( in real64 & phaseViscosity, arraySlice1d< real64, USD2 > const & dPhaseViscosity ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // Compute phase pseudo properties via Kay's mixing rule real64 phaseCriticalPressure = 0.0; real64 phaseCriticalTemperature = 0.0; diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ModelParameters.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ModelParameters.hpp index 498f35810a2..922e1ef877c 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ModelParameters.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/ModelParameters.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -20,6 +20,9 @@ #ifndef GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_MODELPARAMETERS_HPP_ #define GEOS_CONSTITUTIVE_FLUID_MULTIFLUID_COMPOSITIONAL_MODELS_MODELPARAMETERS_HPP_ +#include +#include "common/GeosxMacros.hpp" + namespace geos { diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.cpp index 0ba841e2e44..12d0e5ba541 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -18,6 +18,8 @@ */ #include "NegativeTwoPhaseFlashModel.hpp" +#include "EquationOfState.hpp" +#include "CriticalVolume.hpp" namespace geos { @@ -37,19 +39,27 @@ string NegativeTwoPhaseFlashModel::catalogName() NegativeTwoPhaseFlashModel::NegativeTwoPhaseFlashModel( string const & name, ComponentProperties const & componentProperties, ModelParameters const & modelParameters ): - FunctionBase( name, componentProperties ) -{ - m_parameters = modelParameters.get< EquationOfState >(); -} + FunctionBase( name, componentProperties ), + m_parameters( modelParameters ) +{} NegativeTwoPhaseFlashModel::KernelWrapper NegativeTwoPhaseFlashModel::createKernelWrapper() const { constexpr integer liquidIndex = 0; constexpr integer vapourIndex = 1; - EquationOfStateType const liquidEos = EnumStrings< EquationOfStateType >::fromString( m_parameters->m_equationsOfStateNames[liquidIndex] ); - EquationOfStateType const vapourEos = EnumStrings< EquationOfStateType >::fromString( m_parameters->m_equationsOfStateNames[vapourIndex] ); - return KernelWrapper( m_componentProperties.getNumberOfComponents(), liquidIndex, vapourIndex, liquidEos, vapourEos ); + EquationOfState const * equationOfState = m_parameters.get< EquationOfState >(); + EquationOfStateType const liquidEos = EnumStrings< EquationOfStateType >::fromString( equationOfState->m_equationsOfStateNames[liquidIndex] ); + EquationOfStateType const vapourEos = EnumStrings< EquationOfStateType >::fromString( equationOfState->m_equationsOfStateNames[vapourIndex] ); + + CriticalVolume const * criticalVolume = m_parameters.get< CriticalVolume >(); + + return KernelWrapper( m_componentProperties.getNumberOfComponents(), + liquidIndex, + vapourIndex, + liquidEos, + vapourEos, + criticalVolume->m_componentCriticalVolume ); } NegativeTwoPhaseFlashModelUpdate::NegativeTwoPhaseFlashModelUpdate( @@ -57,18 +67,22 @@ NegativeTwoPhaseFlashModelUpdate::NegativeTwoPhaseFlashModelUpdate( integer const liquidIndex, integer const vapourIndex, EquationOfStateType const liquidEos, - EquationOfStateType const vapourEos ): + EquationOfStateType const vapourEos, + arrayView1d< real64 const > const componentCriticalVolume ): m_numComponents( numComponents ), m_liquidIndex( liquidIndex ), m_vapourIndex( vapourIndex ), m_liquidEos( liquidEos ), - m_vapourEos( vapourEos ) + m_vapourEos( vapourEos ), + m_componentCriticalVolume( componentCriticalVolume ) {} std::unique_ptr< ModelParameters > NegativeTwoPhaseFlashModel::createParameters( std::unique_ptr< ModelParameters > parameters ) { - return EquationOfState::create( std::move( parameters ) ); + std::unique_ptr< ModelParameters > params = EquationOfState::create( std::move( parameters ) ); + params = CriticalVolume::create( std::move( params ) ); + return params; } } // end namespace compositional diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp index 32300637aea..c1696c2a635 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -25,6 +25,7 @@ #include "constitutive/fluid/multifluid/Layouts.hpp" #include "constitutive/fluid/multifluid/MultiFluidUtils.hpp" +#include "constitutive/fluid/multifluid/compositional/functions/StabilityTest.hpp" #include "constitutive/fluid/multifluid/compositional/functions/NegativeTwoPhaseFlash.hpp" namespace geos @@ -36,20 +37,23 @@ namespace constitutive namespace compositional { -class EquationOfState; +class ModelParameters; class NegativeTwoPhaseFlashModelUpdate final : public FunctionBaseUpdate { public: + using PhaseProp = MultiFluidVar< real64, 3, constitutive::multifluid::LAYOUT_PHASE, constitutive::multifluid::LAYOUT_PHASE_DC >; + using PhaseComp = MultiFluidVar< real64, 4, constitutive::multifluid::LAYOUT_PHASE_COMP, constitutive::multifluid::LAYOUT_PHASE_COMP_DC >; + using Deriv = constitutive::multifluid::DerivativeOffset; - using PhaseProp = MultiFluidVar< real64, 3, multifluid::LAYOUT_PHASE, multifluid::LAYOUT_PHASE_DC >; - using PhaseComp = MultiFluidVar< real64, 4, multifluid::LAYOUT_PHASE_COMP, multifluid::LAYOUT_PHASE_COMP_DC >; + static constexpr real64 stabilityTolerance = MultiFluidConstants::fugacityTolerance; NegativeTwoPhaseFlashModelUpdate( integer const numComponents, integer const liquidIndex, integer const vapourIndex, EquationOfStateType const liquidEos, - EquationOfStateType const vapourEos ); + EquationOfStateType const vapourEos, + arrayView1d< real64 const > const componentCriticalVolume ); // Mark as a 2-phase flash GEOS_HOST_DEVICE @@ -67,36 +71,73 @@ class NegativeTwoPhaseFlashModelUpdate final : public FunctionBaseUpdate { integer const numDofs = 2 + m_numComponents; - // Iterative solve to converge flash - bool const flashStatus = NegativeTwoPhaseFlash::compute( m_numComponents, - pressure, - temperature, - compFraction, - componentProperties, - m_liquidEos, - m_vapourEos, - kValues, - phaseFraction.value[m_vapourIndex], - phaseCompFraction.value[m_liquidIndex], - phaseCompFraction.value[m_vapourIndex] ); - GEOS_ERROR_IF( !flashStatus, - GEOS_FMT( "Negative two phase flash failed to converge at pressure {:.5e} and temperature {:.3f}", - pressure, temperature )); - - // Calculate derivatives - NegativeTwoPhaseFlash::computeDerivatives( m_numComponents, - pressure, - temperature, - compFraction, - componentProperties, - m_liquidEos, - m_vapourEos, - phaseFraction.value[m_vapourIndex], - phaseCompFraction.value[m_liquidIndex].toSliceConst(), - phaseCompFraction.value[m_vapourIndex].toSliceConst(), - phaseFraction.derivs[m_vapourIndex], - phaseCompFraction.derivs[m_liquidIndex], - phaseCompFraction.derivs[m_vapourIndex] ); + // Perform stability test to check that we have 2 phases + real64 tangentPlaneDistance = 0.0; + bool const stabilityStatus = StabilityTest::compute( m_numComponents, + pressure, + temperature, + compFraction, + componentProperties, + m_liquidEos, + tangentPlaneDistance, + kValues[0] ); + GEOS_ERROR_IF( !stabilityStatus, + GEOS_FMT( "Stability test failed at pressure {:.5e} and temperature {:.3f}", pressure, temperature )); + + if( tangentPlaneDistance < -stabilityTolerance ) + { + // Unstable mixture + // Iterative solve to converge flash + bool const flashStatus = NegativeTwoPhaseFlash::compute( m_numComponents, + pressure, + temperature, + compFraction, + componentProperties, + m_liquidEos, + m_vapourEos, + kValues, + phaseFraction.value[m_vapourIndex], + phaseCompFraction.value[m_liquidIndex], + phaseCompFraction.value[m_vapourIndex] ); + + GEOS_ERROR_IF( !flashStatus, + GEOS_FMT( "Negative two phase flash failed to converge at pressure {:.5e} and temperature {:.3f}", + pressure, temperature )); + + // Calculate derivatives + NegativeTwoPhaseFlash::computeDerivatives( m_numComponents, + pressure, + temperature, + compFraction, + componentProperties, + m_liquidEos, + m_vapourEos, + phaseFraction.value[m_vapourIndex], + phaseCompFraction.value[m_liquidIndex].toSliceConst(), + phaseCompFraction.value[m_vapourIndex].toSliceConst(), + phaseFraction.derivs[m_vapourIndex], + phaseCompFraction.derivs[m_liquidIndex], + phaseCompFraction.derivs[m_vapourIndex] ); + } + else + { + // Stable mixture - simply label + calculateLiCorrelation( componentProperties, + temperature, + compFraction, + phaseFraction.value[m_vapourIndex] ); + + LvArray::forValuesInSlice( phaseFraction.derivs[m_vapourIndex], setZero ); + LvArray::forValuesInSlice( phaseCompFraction.derivs[m_liquidIndex], setZero ); + LvArray::forValuesInSlice( phaseCompFraction.derivs[m_vapourIndex], setZero ); + for( integer ic = 0; ic < m_numComponents; ++ic ) + { + phaseCompFraction.value( m_vapourIndex, ic ) = compFraction[ic]; + phaseCompFraction.value( m_liquidIndex, ic ) = compFraction[ic]; + phaseCompFraction.derivs( m_vapourIndex, ic, Deriv::dC + ic ) = 1.0; + phaseCompFraction.derivs( m_liquidIndex, ic, Deriv::dC + ic ) = 1.0; + } + } // Complete by calculating liquid phase fraction phaseFraction.value[m_liquidIndex] = 1.0 - phaseFraction.value[m_vapourIndex]; @@ -106,12 +147,40 @@ class NegativeTwoPhaseFlashModelUpdate final : public FunctionBaseUpdate } } + template< int USD > + GEOS_HOST_DEVICE + void calculateLiCorrelation( ComponentProperties::KernelWrapper const & componentProperties, + real64 const & temperature, + arraySlice1d< real64 const, USD > const & composition, + real64 & vapourFraction ) const + { + real64 sumVz = 0.0; + real64 sumVzt = 0.0; + arrayView1d< real64 const > const & criticalTemperature = componentProperties.m_componentCriticalTemperature; + for( integer ic = 0; ic < m_numComponents; ++ic ) + { + real64 const Vz = m_componentCriticalVolume[ic] * composition[ic]; + sumVz += Vz; + sumVzt += Vz * criticalTemperature[ic]; + } + real64 const pseudoCritTemperature = sumVzt / sumVz; + if( pseudoCritTemperature < temperature ) + { + vapourFraction = 1.0; + } + else + { + vapourFraction = 0.0; + } + } + private: integer const m_numComponents; integer const m_liquidIndex; integer const m_vapourIndex; EquationOfStateType const m_liquidEos; EquationOfStateType const m_vapourEos; + arrayView1d< real64 const > const m_componentCriticalVolume; }; class NegativeTwoPhaseFlashModel : public FunctionBase @@ -141,7 +210,7 @@ class NegativeTwoPhaseFlashModel : public FunctionBase static std::unique_ptr< ModelParameters > createParameters( std::unique_ptr< ModelParameters > parameters ); private: - EquationOfState const * m_parameters{}; + ModelParameters const & m_parameters; }; } // end namespace compositional diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NullModel.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NullModel.hpp index 1a619cfcf88..9226dda9343 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NullModel.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NullModel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/PhaseModel.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/PhaseModel.hpp index 4b3213d84a2..bf13c8d01ab 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/PhaseModel.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/PhaseModel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveBrineFluid.cpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveBrineFluid.cpp index 1cb850d3b40..fa2dc6eb819 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveBrineFluid.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveBrineFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -20,6 +20,7 @@ #include "constitutive/fluid/multifluid/MultiFluidFields.hpp" #include "constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp" +#include "constitutive/ConstitutiveManager.hpp" #include "common/Units.hpp" namespace geos @@ -69,6 +70,12 @@ ReactiveBrineFluid( string const & name, Group * const parent ): setRestartFlags( RestartFlags::NO_WRITE ). setDescription( "Names of the files defining the parameters of the viscosity and density models" ); + this->registerWrapper( viewKeyStruct::writeCSVFlagString(), &m_writeCSV ). + setApplyDefaultValue( 0 ). + setInputFlag( InputFlags::OPTIONAL ). + setRestartFlags( RestartFlags::NO_WRITE ). + setDescription( "Write PVT tables into a CSV file" ); + // if this is a thermal model, we need to make sure that the arrays will be properly displayed and saved to restart if( isThermal() ) { @@ -94,6 +101,7 @@ std::unique_ptr< ConstitutiveBase > ReactiveBrineFluid< PHASE > :: deliverClone( string const & name, Group * const parent ) const { + std::unique_ptr< ConstitutiveBase > clone = ReactiveMultiFluid::deliverClone( name, parent ); ReactiveBrineFluid & newConstitutiveRelation = dynamicCast< ReactiveBrineFluid & >( *clone ); @@ -129,7 +137,6 @@ void ReactiveBrineFluid< PHASE > ::postInputInitialization() template< typename PHASE > void ReactiveBrineFluid< PHASE > ::createPVTModels() { - // TODO: get rid of these external files and move into XML, this is too error prone // For now, to support the legacy input, we read all the input parameters at once in the arrays below, and then we create the models array1d< array1d< string > > phase1InputParams; @@ -193,9 +200,15 @@ void ReactiveBrineFluid< PHASE > ::createPVTModels() GEOS_FMT( "{}: PVT model {} not found in input files", getFullName(), PHASE::Enthalpy::catalogName() ), InputError ); + bool const isClone = this->isClone(); + TableFunction::OutputOptions const pvtOutputOpts = { + !isClone && m_writeCSV,// writeCSV + !isClone && (getLogLevel() >= 0 && logger::internal::rank==0), // writeInLog + }; + // then, we are ready to instantiate the phase models m_phase = std::make_unique< PHASE >( getName() + "_phaseModel1", phase1InputParams, m_componentNames, m_componentMolarWeight, - getLogLevel() > 0 && logger::internal::rank==0 ); + pvtOutputOpts ); } template< typename PHASE > diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveBrineFluid.hpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveBrineFluid.hpp index bf7040d8cb4..9ba08387cf6 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveBrineFluid.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveBrineFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -152,6 +152,7 @@ class ReactiveBrineFluid : public ReactiveMultiFluid struct viewKeyStruct : ReactiveMultiFluid::viewKeyStruct { static constexpr char const * phasePVTParaFilesString() { return "phasePVTParaFiles"; } + static constexpr char const * writeCSVFlagString() { return "writeCSV"; } }; protected: @@ -160,11 +161,17 @@ class ReactiveBrineFluid : public ReactiveMultiFluid private: + /** + * @brief Create a PVT Model and output them + */ void createPVTModels(); /// Names of the files defining the viscosity and density models path_array m_phasePVTParaFiles; + /// Output csv file containing informations about PVT + integer m_writeCSV; + /// Brine constitutive models std::unique_ptr< PHASE > m_phase; diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidSelector.hpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidSelector.hpp index 307d7a6dab0..c322d6a3fb5 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidSelector.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluid.cpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluid.cpp index fcb3a6e61c5..7e66577b671 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluid.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluid.hpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluid.hpp index 4fd8f6c9fb3..460f45c2c35 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluid.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -189,13 +189,13 @@ class ReactiveMultiFluid : public MultiFluidBase std::unique_ptr< chemicalReactions::KineticReactions > m_kineticReactions; - array2d< real64, multifluid::LAYOUT_FLUID > m_primarySpeciesConcentration; + array2d< real64, constitutive::multifluid::LAYOUT_FLUID > m_primarySpeciesConcentration; - array2d< real64, multifluid::LAYOUT_FLUID > m_secondarySpeciesConcentration; + array2d< real64, constitutive::multifluid::LAYOUT_FLUID > m_secondarySpeciesConcentration; - array2d< real64, multifluid::LAYOUT_FLUID > m_primarySpeciesTotalConcentration; + array2d< real64, constitutive::multifluid::LAYOUT_FLUID > m_primarySpeciesTotalConcentration; - array2d< real64, multifluid::LAYOUT_FLUID > m_kineticReactionRates; + array2d< real64, constitutive::multifluid::LAYOUT_FLUID > m_kineticReactionRates; }; inline void diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluidFields.hpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluidFields.hpp index 65b609f1e7e..83fda798442 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluidFields.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveMultiFluidFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.cpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.cpp index d98b9b7c1dc..7c5bc5b162b 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.hpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.hpp index dfb3f4fcbea..ecd3a28633d 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/EquilibriumReactions.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/KineticReactions.cpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/KineticReactions.cpp index 8b21bd86df6..7a17afc8666 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/KineticReactions.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/KineticReactions.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/KineticReactions.hpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/KineticReactions.hpp index 22f0ef1b0fa..05f82ae4d64 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/KineticReactions.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/KineticReactions.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/ReactionsBase.cpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/ReactionsBase.cpp index 899c4322778..3b8f8a6db28 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/ReactionsBase.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/ReactionsBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/ReactionsBase.hpp b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/ReactionsBase.hpp index ed5f67b8154..35c084290c1 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/ReactionsBase.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/reactive/chemicalReactions/ReactionsBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/CompressibleSinglePhaseFluid.cpp b/src/coreComponents/constitutive/fluid/singlefluid/CompressibleSinglePhaseFluid.cpp index 353fa69abcd..28550afbfc6 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/CompressibleSinglePhaseFluid.cpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/CompressibleSinglePhaseFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/CompressibleSinglePhaseFluid.hpp b/src/coreComponents/constitutive/fluid/singlefluid/CompressibleSinglePhaseFluid.hpp index 6155265b287..d4c545b002e 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/CompressibleSinglePhaseFluid.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/CompressibleSinglePhaseFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluid.cpp b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluid.cpp index b0f9fc5b2dd..38f067be667 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluid.cpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluid.hpp b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluid.hpp index 76579665d1f..3d621f888d0 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluid.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidBase.cpp b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidBase.cpp index fa7a07322ad..778d9a752ab 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidBase.cpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidBase.hpp b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidBase.hpp index 5356b3d5910..761e0c63a28 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidBase.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidFields.hpp b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidFields.hpp index 82981ebece3..fd8a69196fd 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidFields.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidSelector.hpp b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidSelector.hpp index 92aa8bc821c..f7e39e26b73 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidSelector.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ParticleFluidSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.cpp b/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.cpp index 35892c14bad..4c59aeb37ba 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.cpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.hpp b/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.hpp index 22ac6bed8d5..0a9c1610635 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidBase.cpp b/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidBase.cpp index 170e7800a47..e9870a759a4 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidBase.cpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidBase.hpp b/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidBase.hpp index 28f7c574676..d5f63c8dedb 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidBase.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidFields.hpp b/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidFields.hpp index 7a0dc182027..61949828116 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidFields.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidSelector.hpp b/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidSelector.hpp index 5b33c887c63..cdb7103fd1a 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidSelector.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/SingleFluidSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidBase.cpp b/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidBase.cpp index 284692521c9..c51906552a5 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidBase.cpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidBase.hpp b/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidBase.hpp index fcc24a0f7fb..2ab967932c9 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidBase.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidFields.hpp b/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidFields.hpp index ec918c41e5a..fe45d82982f 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidFields.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidSelector.hpp b/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidSelector.hpp index be026cb79c2..731c0856eec 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidSelector.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/SlurryFluidSelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ThermalCompressibleSinglePhaseFluid.cpp b/src/coreComponents/constitutive/fluid/singlefluid/ThermalCompressibleSinglePhaseFluid.cpp index 5815c2f7a47..181af8bcba2 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ThermalCompressibleSinglePhaseFluid.cpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ThermalCompressibleSinglePhaseFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ThermalCompressibleSinglePhaseFluid.hpp b/src/coreComponents/constitutive/fluid/singlefluid/ThermalCompressibleSinglePhaseFluid.hpp index 59f65081225..01d7a802e6d 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ThermalCompressibleSinglePhaseFluid.hpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ThermalCompressibleSinglePhaseFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.cpp b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.cpp index 189fffb985d..598f0851e5a 100644 --- a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.cpp +++ b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp index a0e583a308f..56215dd6df5 100644 --- a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/ConstantPermeability.cpp b/src/coreComponents/constitutive/permeability/ConstantPermeability.cpp index c0653de3d5b..798bc79bb9a 100644 --- a/src/coreComponents/constitutive/permeability/ConstantPermeability.cpp +++ b/src/coreComponents/constitutive/permeability/ConstantPermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/ConstantPermeability.hpp b/src/coreComponents/constitutive/permeability/ConstantPermeability.hpp index 48e62f39982..70954cf1e22 100644 --- a/src/coreComponents/constitutive/permeability/ConstantPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/ConstantPermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/ExponentialDecayPermeability.cpp b/src/coreComponents/constitutive/permeability/ExponentialDecayPermeability.cpp index e4559758a0a..31ecf701137 100644 --- a/src/coreComponents/constitutive/permeability/ExponentialDecayPermeability.cpp +++ b/src/coreComponents/constitutive/permeability/ExponentialDecayPermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/ExponentialDecayPermeability.hpp b/src/coreComponents/constitutive/permeability/ExponentialDecayPermeability.hpp index b51d42f51e4..df2136e18dd 100644 --- a/src/coreComponents/constitutive/permeability/ExponentialDecayPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/ExponentialDecayPermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/ParallelPlatesPermeability.cpp b/src/coreComponents/constitutive/permeability/ParallelPlatesPermeability.cpp index afe5ba8e927..65b42bb0103 100644 --- a/src/coreComponents/constitutive/permeability/ParallelPlatesPermeability.cpp +++ b/src/coreComponents/constitutive/permeability/ParallelPlatesPermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/ParallelPlatesPermeability.hpp b/src/coreComponents/constitutive/permeability/ParallelPlatesPermeability.hpp index b96ab7c6632..0f42a319307 100644 --- a/src/coreComponents/constitutive/permeability/ParallelPlatesPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/ParallelPlatesPermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/PermeabilityBase.cpp b/src/coreComponents/constitutive/permeability/PermeabilityBase.cpp index c85c2efb10c..949adb86f97 100644 --- a/src/coreComponents/constitutive/permeability/PermeabilityBase.cpp +++ b/src/coreComponents/constitutive/permeability/PermeabilityBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/PermeabilityBase.hpp b/src/coreComponents/constitutive/permeability/PermeabilityBase.hpp index 1ba7774c1c5..6c7cb62bdd9 100644 --- a/src/coreComponents/constitutive/permeability/PermeabilityBase.hpp +++ b/src/coreComponents/constitutive/permeability/PermeabilityBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/PermeabilityFields.hpp b/src/coreComponents/constitutive/permeability/PermeabilityFields.hpp index 863b108592e..cafb94fb3ee 100644 --- a/src/coreComponents/constitutive/permeability/PermeabilityFields.hpp +++ b/src/coreComponents/constitutive/permeability/PermeabilityFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/PressurePermeability.cpp b/src/coreComponents/constitutive/permeability/PressurePermeability.cpp index b10676acb64..625b4af4c38 100644 --- a/src/coreComponents/constitutive/permeability/PressurePermeability.cpp +++ b/src/coreComponents/constitutive/permeability/PressurePermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/PressurePermeability.hpp b/src/coreComponents/constitutive/permeability/PressurePermeability.hpp index d2ae5db4231..28ad3559670 100644 --- a/src/coreComponents/constitutive/permeability/PressurePermeability.hpp +++ b/src/coreComponents/constitutive/permeability/PressurePermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/ProppantPermeability.cpp b/src/coreComponents/constitutive/permeability/ProppantPermeability.cpp index fa9b1b5d49c..b9a72df93bc 100644 --- a/src/coreComponents/constitutive/permeability/ProppantPermeability.cpp +++ b/src/coreComponents/constitutive/permeability/ProppantPermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/ProppantPermeability.hpp b/src/coreComponents/constitutive/permeability/ProppantPermeability.hpp index 4d5ac39eb82..3c81228d217 100644 --- a/src/coreComponents/constitutive/permeability/ProppantPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/ProppantPermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/SlipDependentPermeability.cpp b/src/coreComponents/constitutive/permeability/SlipDependentPermeability.cpp index 0daa99a4a77..ca69e02561e 100644 --- a/src/coreComponents/constitutive/permeability/SlipDependentPermeability.cpp +++ b/src/coreComponents/constitutive/permeability/SlipDependentPermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/SlipDependentPermeability.hpp b/src/coreComponents/constitutive/permeability/SlipDependentPermeability.hpp index 2a4e6e6b19b..b7d52617a64 100644 --- a/src/coreComponents/constitutive/permeability/SlipDependentPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/SlipDependentPermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/WillisRichardsPermeability.cpp b/src/coreComponents/constitutive/permeability/WillisRichardsPermeability.cpp index 35bf742fc14..9be8d42e3b2 100644 --- a/src/coreComponents/constitutive/permeability/WillisRichardsPermeability.cpp +++ b/src/coreComponents/constitutive/permeability/WillisRichardsPermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/permeability/WillisRichardsPermeability.hpp b/src/coreComponents/constitutive/permeability/WillisRichardsPermeability.hpp index a524ca5cc8c..d1d6a846745 100644 --- a/src/coreComponents/constitutive/permeability/WillisRichardsPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/WillisRichardsPermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.cpp index c15cc574149..b43afd85521 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.hpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.hpp index 584dffca25a..57181e7f726 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.hpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -40,9 +40,9 @@ class BrooksCoreyBakerRelativePermeabilityUpdate final : public RelativePermeabi real64 const volFracScale, arrayView1d< integer const > const & phaseTypes, arrayView1d< integer const > const & phaseOrder, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseTrappedVolFrac ) + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac ) : RelativePermeabilityBaseUpdate( phaseTypes, phaseOrder, phaseRelPerm, @@ -58,9 +58,9 @@ class BrooksCoreyBakerRelativePermeabilityUpdate final : public RelativePermeabi GEOS_HOST_DEVICE void compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE virtual void update( localIndex const k, @@ -164,9 +164,9 @@ GEOS_HOST_DEVICE inline void BrooksCoreyBakerRelativePermeabilityUpdate:: compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { LvArray::forValuesInSlice( dPhaseRelPerm_dPhaseVolFrac, []( real64 & val ){ val = 0.0; } ); diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.cpp index aecdbe4abcb..458a0fc23b1 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.hpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.hpp index 38908ea028a..e4fc6195e7e 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.hpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -37,9 +37,9 @@ class BrooksCoreyRelativePermeabilityUpdate final : public RelativePermeabilityB real64 const volFracScale, arrayView1d< integer const > const & phaseTypes, arrayView1d< integer const > const & phaseOrder, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseTrappedVolFrac ) + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac ) : RelativePermeabilityBaseUpdate( phaseTypes, phaseOrder, phaseRelPerm, @@ -53,9 +53,9 @@ class BrooksCoreyRelativePermeabilityUpdate final : public RelativePermeabilityB GEOS_HOST_DEVICE void compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE virtual void update( localIndex const k, @@ -125,9 +125,9 @@ GEOS_HOST_DEVICE inline void BrooksCoreyRelativePermeabilityUpdate:: compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { LvArray::forValuesInSlice( dPhaseRelPerm_dPhaseVolFrac, []( real64 & val ){ val = 0.0; } ); diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.cpp index 94af64dd9af..f7bf08c0f4f 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.hpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.hpp index a73d7894d54..99e6caff614 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.hpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -40,9 +40,9 @@ class BrooksCoreyStone2RelativePermeabilityUpdate final : public RelativePermeab real64 const volFracScale, arrayView1d< integer const > const & phaseTypes, arrayView1d< integer const > const & phaseOrder, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseTrappedVolFrac ) + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac ) : RelativePermeabilityBaseUpdate( phaseTypes, phaseOrder, phaseRelPerm, @@ -58,9 +58,9 @@ class BrooksCoreyStone2RelativePermeabilityUpdate final : public RelativePermeab GEOS_HOST_DEVICE void compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE virtual void update( localIndex const k, @@ -162,9 +162,9 @@ GEOS_HOST_DEVICE inline void BrooksCoreyStone2RelativePermeabilityUpdate:: compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { LvArray::forValuesInSlice( dPhaseRelPerm_dPhaseVolFrac, []( real64 & val ){ val = 0.0; } ); diff --git a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityBase.cpp b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityBase.cpp index 6918a3de6d9..093dd9a52fd 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityBase.cpp +++ b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityBase.hpp b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityBase.hpp index 00f8f9a5be1..da634a6ac48 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityBase.hpp +++ b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -58,7 +58,7 @@ class RelativePermeabilityBaseUpdate */ GEOS_HOST_DEVICE - arrayView3d< real64 const, relperm::USD_RELPERM > relperm() const + arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > relperm() const { return m_phaseRelPerm; } /** @@ -87,9 +87,9 @@ class RelativePermeabilityBaseUpdate RelativePermeabilityBaseUpdate( arrayView1d< integer const > const & phaseTypes, arrayView1d< integer const > const & phaseOrder, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseTrappedVolFrac ) + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac ) : m_phaseTypes( phaseTypes ), m_phaseOrder( phaseOrder ), m_phaseRelPerm( phaseRelPerm ), @@ -99,10 +99,10 @@ class RelativePermeabilityBaseUpdate arrayView1d< integer const > m_phaseTypes; arrayView1d< integer const > m_phaseOrder; - arrayView3d< real64, relperm::USD_RELPERM > m_phaseRelPerm; - arrayView4d< real64, relperm::USD_RELPERM_DS > m_dPhaseRelPerm_dPhaseVolFrac; + arrayView3d< real64, constitutive::relperm::USD_RELPERM > m_phaseRelPerm; + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > m_dPhaseRelPerm_dPhaseVolFrac; - arrayView3d< real64, relperm::USD_RELPERM > m_phaseTrappedVolFrac; + arrayView3d< real64, constitutive::relperm::USD_RELPERM > m_phaseTrappedVolFrac; private: GEOS_HOST_DEVICE @@ -157,10 +157,10 @@ class RelativePermeabilityBase : public ConstitutiveBase arrayView1d< string const > phaseNames() const { return m_phaseNames; } - arrayView3d< real64 const, relperm::USD_RELPERM > phaseTrappedVolFraction() const { return m_phaseTrappedVolFrac; } + arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > phaseTrappedVolFraction() const { return m_phaseTrappedVolFrac; } - arrayView3d< real64 const, relperm::USD_RELPERM > phaseRelPerm() const { return m_phaseRelPerm; } - arrayView4d< real64 const, relperm::USD_RELPERM_DS > dPhaseRelPerm_dPhaseVolFraction() const { return m_dPhaseRelPerm_dPhaseVolFrac; } + arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > phaseRelPerm() const { return m_phaseRelPerm; } + arrayView4d< real64 const, constitutive::relperm::USD_RELPERM_DS > dPhaseRelPerm_dPhaseVolFraction() const { return m_dPhaseRelPerm_dPhaseVolFrac; } arrayView1d< integer const > getPhaseOrder() const { return m_phaseOrder; } virtual arrayView1d< real64 const > getPhaseMinVolumeFraction() const = 0; @@ -213,10 +213,10 @@ class RelativePermeabilityBase : public ConstitutiveBase protected: // output quantities - array3d< real64, relperm::LAYOUT_RELPERM > m_phaseRelPerm; - array3d< real64, relperm::LAYOUT_RELPERM > m_phaseRelPerm_n; - array4d< real64, relperm::LAYOUT_RELPERM_DS > m_dPhaseRelPerm_dPhaseVolFrac; - array3d< real64, relperm::LAYOUT_RELPERM > m_phaseTrappedVolFrac; + array3d< real64, constitutive::relperm::LAYOUT_RELPERM > m_phaseRelPerm; + array3d< real64, constitutive::relperm::LAYOUT_RELPERM > m_phaseRelPerm_n; + array4d< real64, constitutive::relperm::LAYOUT_RELPERM_DS > m_dPhaseRelPerm_dPhaseVolFrac; + array3d< real64, constitutive::relperm::LAYOUT_RELPERM > m_phaseTrappedVolFrac; }; diff --git a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityFields.hpp b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityFields.hpp index 5944dfa453a..d4aad3b60e0 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityFields.hpp +++ b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityInterpolators.hpp b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityInterpolators.hpp index 2b91a498afb..eae8eb8b394 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityInterpolators.hpp +++ b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilityInterpolators.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -60,7 +60,7 @@ struct Baker real64 const & goRelPerm, real64 const & dGoRelPerm_dOilVolFrac, real64 & threePhaseRelPerm, - arraySlice1d< real64, relperm::USD_RELPERM_DS - 3 > const & dThreePhaseRelPerm_dVolFrac ) + arraySlice1d< real64, constitutive::relperm::USD_RELPERM_DS - 3 > const & dThreePhaseRelPerm_dVolFrac ) { using PT = RelativePermeabilityBase::PhaseType; integer const ipWater = phaseOrder[PT::WATER]; @@ -148,7 +148,7 @@ struct Stone2 real64 const & gRelPerm, real64 const & dGRelPerm_dGasVolFrac, real64 & threePhaseRelPerm, - arraySlice1d< real64, relperm::USD_RELPERM_DS - 3 > const & dThreePhaseRelPerm_dVolFrac ) + arraySlice1d< real64, constitutive::relperm::USD_RELPERM_DS - 3 > const & dThreePhaseRelPerm_dVolFrac ) { using PT = RelativePermeabilityBase::PhaseType; diff --git a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilitySelector.hpp b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilitySelector.hpp index 4f4f1622661..6ee5cd3d31d 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelativePermeabilitySelector.hpp +++ b/src/coreComponents/constitutive/relativePermeability/RelativePermeabilitySelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -51,7 +51,7 @@ void constitutiveUpdatePassThru( RelativePermeabilityBase const & relPerm, BrooksCoreyBakerRelativePermeability, BrooksCoreyStone2RelativePermeability, TableRelativePermeability, - TableRelativePermeabilityHysteresis, + constitutive::TableRelativePermeabilityHysteresis, VanGenuchtenBakerRelativePermeability, VanGenuchtenStone2RelativePermeability >::execute( relPerm, std::forward< LAMBDA >( lambda ) ); } @@ -64,7 +64,7 @@ void constitutiveUpdatePassThru( RelativePermeabilityBase & relPerm, BrooksCoreyBakerRelativePermeability, BrooksCoreyStone2RelativePermeability, TableRelativePermeability, - TableRelativePermeabilityHysteresis, + constitutive::TableRelativePermeabilityHysteresis, VanGenuchtenBakerRelativePermeability, VanGenuchtenStone2RelativePermeability >::execute( relPerm, std::forward< LAMBDA >( lambda ) ); } diff --git a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeability.cpp index 131d71c2baa..26bd464c4ac 100644 --- a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeability.hpp b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeability.hpp index 81ebbe2d5a0..89ad0cc0460 100644 --- a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeability.hpp +++ b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -73,31 +73,31 @@ class TableRelativePermeability : public RelativePermeabilityBase arrayView1d< integer const > const & phaseTypes, arrayView1d< integer const > const & phaseOrder, ThreePhaseInterpolator const & threePhaseInterpolator, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseTrappedVolFrac ); + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac ); GEOS_HOST_DEVICE void computeTwoPhase( integer const ipWetting, integer const ipNonWetting, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE void computeThreePhase( integer const ipWetting, integer const ipInter, integer const ipNonWetting, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE void compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE virtual void update( localIndex const k, @@ -190,8 +190,8 @@ TableRelativePermeability::KernelWrapper:: computeTwoPhase( integer const ipWetting, integer const ipNonWetting, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { using TPT = TableRelativePermeability::TwoPhasePairPhaseType; @@ -216,8 +216,8 @@ TableRelativePermeability::KernelWrapper:: integer const ipInter, integer const ipNonWetting, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { real64 interRelPerm_wi = 0; // oil rel perm using two-phase gas-oil data real64 dInterRelPerm_wi_dInterVolFrac = 0; // derivative w.r.t to So @@ -295,9 +295,9 @@ GEOS_HOST_DEVICE inline void TableRelativePermeability::KernelWrapper:: compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { LvArray::forValuesInSlice( dPhaseRelPerm_dPhaseVolFrac, []( real64 & val ){ val = 0.0; } ); diff --git a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHelpers.cpp b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHelpers.cpp index fbe56c0138c..ab8fa7e3749 100644 --- a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHelpers.cpp +++ b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHelpers.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHelpers.hpp b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHelpers.hpp index 362f687c681..bb220ab6bdc 100644 --- a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHelpers.hpp +++ b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHelpers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHysteresis.cpp b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHysteresis.cpp index e55d7886024..4eb224bb5e2 100644 --- a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHysteresis.cpp +++ b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHysteresis.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -22,7 +22,6 @@ #include "constitutive/relativePermeability/RelativePermeabilityFields.hpp" #include "constitutive/relativePermeability/TableRelativePermeabilityHelpers.hpp" #include "functions/FunctionManager.hpp" -#include "constitutive/relativePermeability/RelpermDriver.hpp" namespace geos { diff --git a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHysteresis.hpp b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHysteresis.hpp index 9b50ca2fdf4..1ecd09e95f7 100644 --- a/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHysteresis.hpp +++ b/src/coreComponents/constitutive/relativePermeability/TableRelativePermeabilityHysteresis.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -135,9 +135,9 @@ class TableRelativePermeabilityHysteresis : public RelativePermeabilityBase real64 const & waterOilRelPermMaxValue, arrayView2d< real64 const, compflow::USD_PHASE > const & phaseMinHistoricalVolFraction, arrayView2d< real64 const, compflow::USD_PHASE > const & phaseMaxHistoricalVolFraction, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseTrappedVolFrac, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac ); + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac, + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac ); /** * @brief Function updating the relperm (and derivative) for a phase using the drainage table @@ -256,10 +256,10 @@ class TableRelativePermeabilityHysteresis : public RelativePermeabilityBase arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMaxHistoricalVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMinHistoricalVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, arraySlice2d< real64, - relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; /** * @brief Function updating all the phase relperms (and derivatives) for three-phase flow @@ -281,10 +281,10 @@ class TableRelativePermeabilityHysteresis : public RelativePermeabilityBase arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMaxHistoricalVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMinHistoricalVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, arraySlice2d< real64, - relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; /** * @brief Main function updating all the phase relperms (and derivatives) @@ -298,9 +298,9 @@ class TableRelativePermeabilityHysteresis : public RelativePermeabilityBase void compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMaxHistoricalVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMinHistoricalVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE virtual void update( localIndex const k, @@ -780,12 +780,12 @@ TableRelativePermeabilityHysteresis::KernelWrapper:: arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMaxHistoricalVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMinHistoricalVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { - using TPT = TableRelativePermeabilityHysteresis::TwoPhasePairPhaseType; - using IPT = TableRelativePermeabilityHysteresis::ImbibitionPhasePairPhaseType; + using TPT = constitutive::TableRelativePermeabilityHysteresis::TwoPhasePairPhaseType; + using IPT = constitutive::TableRelativePermeabilityHysteresis::ImbibitionPhasePairPhaseType; // ---------- wetting rel perm if( !m_phaseHasHysteresis[IPT::WETTING] || @@ -870,17 +870,17 @@ TableRelativePermeabilityHysteresis::KernelWrapper:: arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMaxHistoricalVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMinHistoricalVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { real64 interRelPerm_wi = 0; // oil rel perm using two-phase gas-oil data real64 dInterRelPerm_wi_dInterVolFrac = 0; // derivative w.r.t to So real64 interRelPerm_nwi = 0; // oil rel perm using two-phase gas-oil data real64 dInterRelPerm_nwi_dInterVolFrac = 0; // derivative w.r.t to So - using TPT = TableRelativePermeabilityHysteresis::ThreePhasePairPhaseType; - using IPT = TableRelativePermeabilityHysteresis::ImbibitionPhasePairPhaseType; + using TPT = constitutive::TableRelativePermeabilityHysteresis::ThreePhasePairPhaseType; + using IPT = constitutive::TableRelativePermeabilityHysteresis::ImbibitionPhasePairPhaseType; // 1) Wetting and intermediate phase relative permeabilities using two-phase wetting-intermediate data @@ -1013,9 +1013,9 @@ TableRelativePermeabilityHysteresis::KernelWrapper:: compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMaxHistoricalVolFraction, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseMinHistoricalVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { LvArray::forValuesInSlice( dPhaseRelPerm_dPhaseVolFrac, []( real64 & val ) { val = 0.0; } ); diff --git a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.cpp index 2a769a7dbd5..b690d9abcfe 100644 --- a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.hpp b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.hpp index 2ac9e4ce0b6..88ac8c2eafc 100644 --- a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.hpp +++ b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -40,9 +40,9 @@ class VanGenuchtenBakerRelativePermeabilityUpdate final : public RelativePermeab real64 const volFracScale, arrayView1d< integer const > const & phaseTypes, arrayView1d< integer const > const & phaseOrder, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseTrappedVolFrac ) + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac ) : RelativePermeabilityBaseUpdate( phaseTypes, phaseOrder, phaseRelPerm, @@ -58,9 +58,9 @@ class VanGenuchtenBakerRelativePermeabilityUpdate final : public RelativePermeab GEOS_HOST_DEVICE void compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE virtual void update( localIndex const k, @@ -162,9 +162,9 @@ GEOS_HOST_DEVICE inline void VanGenuchtenBakerRelativePermeabilityUpdate:: compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { LvArray::forValuesInSlice( dPhaseRelPerm_dPhaseVolFrac, []( real64 & val ){ val = 0.0; } ); diff --git a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.cpp index 0f61f3528ad..816b4639ace 100644 --- a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.hpp b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.hpp index 2753175bfd7..9896b892950 100644 --- a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.hpp +++ b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -40,9 +40,9 @@ class VanGenuchtenStone2RelativePermeabilityUpdate final : public RelativePermea real64 const volFracScale, arrayView1d< integer const > const & phaseTypes, arrayView1d< integer const > const & phaseOrder, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, - arrayView3d< real64, relperm::USD_RELPERM > const & phaseTrappedVolFrac ) + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, + arrayView3d< real64, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac ) : RelativePermeabilityBaseUpdate( phaseTypes, phaseOrder, phaseRelPerm, @@ -58,9 +58,9 @@ class VanGenuchtenStone2RelativePermeabilityUpdate final : public RelativePermea GEOS_HOST_DEVICE void compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const; GEOS_HOST_DEVICE virtual void update( localIndex const k, @@ -163,9 +163,9 @@ GEOS_HOST_DEVICE inline void VanGenuchtenStone2RelativePermeabilityUpdate:: compute( arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & phaseVolFraction, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, - arraySlice1d< real64, relperm::USD_RELPERM - 2 > const & phaseRelPerm, - arraySlice2d< real64, relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseTrappedVolFrac, + arraySlice1d< real64, constitutive::relperm::USD_RELPERM - 2 > const & phaseRelPerm, + arraySlice2d< real64, constitutive::relperm::USD_RELPERM_DS - 2 > const & dPhaseRelPerm_dPhaseVolFrac ) const { LvArray::forValuesInSlice( dPhaseRelPerm_dPhaseVolFrac, []( real64 & val ){ val = 0.0; } ); diff --git a/src/coreComponents/constitutive/relativePermeability/layouts.hpp b/src/coreComponents/constitutive/relativePermeability/layouts.hpp index 16a8c6c2a97..54c2e307a30 100644 --- a/src/coreComponents/constitutive/relativePermeability/layouts.hpp +++ b/src/coreComponents/constitutive/relativePermeability/layouts.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/CeramicDamage.cpp b/src/coreComponents/constitutive/solid/CeramicDamage.cpp index 5cb32401d0c..77cc069f45b 100644 --- a/src/coreComponents/constitutive/solid/CeramicDamage.cpp +++ b/src/coreComponents/constitutive/solid/CeramicDamage.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/CeramicDamage.hpp b/src/coreComponents/constitutive/solid/CeramicDamage.hpp index 660360e458f..e53fb9c4eb7 100644 --- a/src/coreComponents/constitutive/solid/CeramicDamage.hpp +++ b/src/coreComponents/constitutive/solid/CeramicDamage.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/CompressibleSolid.cpp b/src/coreComponents/constitutive/solid/CompressibleSolid.cpp index efcad2165f7..2366d66654b 100644 --- a/src/coreComponents/constitutive/solid/CompressibleSolid.cpp +++ b/src/coreComponents/constitutive/solid/CompressibleSolid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/CompressibleSolid.hpp b/src/coreComponents/constitutive/solid/CompressibleSolid.hpp index 8a6620186ae..0fc8464a260 100644 --- a/src/coreComponents/constitutive/solid/CompressibleSolid.hpp +++ b/src/coreComponents/constitutive/solid/CompressibleSolid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/CoupledSolid.hpp b/src/coreComponents/constitutive/solid/CoupledSolid.hpp index 84ee74fb11b..e255738fd22 100644 --- a/src/coreComponents/constitutive/solid/CoupledSolid.hpp +++ b/src/coreComponents/constitutive/solid/CoupledSolid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/CoupledSolidBase.cpp b/src/coreComponents/constitutive/solid/CoupledSolidBase.cpp index bc3ae992802..70cdb0f1a3c 100644 --- a/src/coreComponents/constitutive/solid/CoupledSolidBase.cpp +++ b/src/coreComponents/constitutive/solid/CoupledSolidBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/CoupledSolidBase.hpp b/src/coreComponents/constitutive/solid/CoupledSolidBase.hpp index 4b7656e8daa..0facab675ca 100644 --- a/src/coreComponents/constitutive/solid/CoupledSolidBase.hpp +++ b/src/coreComponents/constitutive/solid/CoupledSolidBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/Damage.cpp b/src/coreComponents/constitutive/solid/Damage.cpp index cee1a0260e7..46f64f49621 100644 --- a/src/coreComponents/constitutive/solid/Damage.cpp +++ b/src/coreComponents/constitutive/solid/Damage.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/Damage.hpp b/src/coreComponents/constitutive/solid/Damage.hpp index d8fd9b3cac3..53eb7b6b1b4 100644 --- a/src/coreComponents/constitutive/solid/Damage.hpp +++ b/src/coreComponents/constitutive/solid/Damage.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DamageSpectral.cpp b/src/coreComponents/constitutive/solid/DamageSpectral.cpp index 3cf1ca7c7b8..995870109c1 100644 --- a/src/coreComponents/constitutive/solid/DamageSpectral.cpp +++ b/src/coreComponents/constitutive/solid/DamageSpectral.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DamageSpectral.hpp b/src/coreComponents/constitutive/solid/DamageSpectral.hpp index 10439797fed..6e2fe29a2b2 100644 --- a/src/coreComponents/constitutive/solid/DamageSpectral.hpp +++ b/src/coreComponents/constitutive/solid/DamageSpectral.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -29,8 +29,6 @@ #define QUADRATIC_DISSIPATION 0 -using namespace LvArray; - namespace geos { namespace constitutive diff --git a/src/coreComponents/constitutive/solid/DamageSpectralUtilities.hpp b/src/coreComponents/constitutive/solid/DamageSpectralUtilities.hpp index bd0584af82c..ebd09c0defe 100644 --- a/src/coreComponents/constitutive/solid/DamageSpectralUtilities.hpp +++ b/src/coreComponents/constitutive/solid/DamageSpectralUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DamageVolDev.cpp b/src/coreComponents/constitutive/solid/DamageVolDev.cpp index eb123a7a73c..5b739797f08 100644 --- a/src/coreComponents/constitutive/solid/DamageVolDev.cpp +++ b/src/coreComponents/constitutive/solid/DamageVolDev.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DamageVolDev.hpp b/src/coreComponents/constitutive/solid/DamageVolDev.hpp index 3db1120707a..5121efd3264 100644 --- a/src/coreComponents/constitutive/solid/DamageVolDev.hpp +++ b/src/coreComponents/constitutive/solid/DamageVolDev.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DelftEgg.cpp b/src/coreComponents/constitutive/solid/DelftEgg.cpp index 5797ca7c1db..c0067b98c74 100644 --- a/src/coreComponents/constitutive/solid/DelftEgg.cpp +++ b/src/coreComponents/constitutive/solid/DelftEgg.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DelftEgg.hpp b/src/coreComponents/constitutive/solid/DelftEgg.hpp index 978933ce0d9..aa0d523b96e 100644 --- a/src/coreComponents/constitutive/solid/DelftEgg.hpp +++ b/src/coreComponents/constitutive/solid/DelftEgg.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/Deprecated/PoreVolumeCompressibleSolid.cpp b/src/coreComponents/constitutive/solid/Deprecated/PoreVolumeCompressibleSolid.cpp index fe42be1bb1e..d5dd8ae8571 100644 --- a/src/coreComponents/constitutive/solid/Deprecated/PoreVolumeCompressibleSolid.cpp +++ b/src/coreComponents/constitutive/solid/Deprecated/PoreVolumeCompressibleSolid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/Deprecated/PoreVolumeCompressibleSolid.hpp b/src/coreComponents/constitutive/solid/Deprecated/PoreVolumeCompressibleSolid.hpp index a69d0b113a0..41fea87e3a0 100644 --- a/src/coreComponents/constitutive/solid/Deprecated/PoreVolumeCompressibleSolid.hpp +++ b/src/coreComponents/constitutive/solid/Deprecated/PoreVolumeCompressibleSolid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/Deprecated/PoroElastic.cpp b/src/coreComponents/constitutive/solid/Deprecated/PoroElastic.cpp index 0674e48d5ce..45e3b5d0163 100644 --- a/src/coreComponents/constitutive/solid/Deprecated/PoroElastic.cpp +++ b/src/coreComponents/constitutive/solid/Deprecated/PoroElastic.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/Deprecated/PoroElastic.hpp b/src/coreComponents/constitutive/solid/Deprecated/PoroElastic.hpp index 98c25a52e48..730c7366741 100644 --- a/src/coreComponents/constitutive/solid/Deprecated/PoroElastic.hpp +++ b/src/coreComponents/constitutive/solid/Deprecated/PoroElastic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DruckerPrager.cpp b/src/coreComponents/constitutive/solid/DruckerPrager.cpp index 02c9ca51f7b..31f5eadde37 100644 --- a/src/coreComponents/constitutive/solid/DruckerPrager.cpp +++ b/src/coreComponents/constitutive/solid/DruckerPrager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DruckerPrager.hpp b/src/coreComponents/constitutive/solid/DruckerPrager.hpp index 2551c3b679c..559b2574a6f 100644 --- a/src/coreComponents/constitutive/solid/DruckerPrager.hpp +++ b/src/coreComponents/constitutive/solid/DruckerPrager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DruckerPragerExtended.cpp b/src/coreComponents/constitutive/solid/DruckerPragerExtended.cpp index 601f4add769..589017c137b 100644 --- a/src/coreComponents/constitutive/solid/DruckerPragerExtended.cpp +++ b/src/coreComponents/constitutive/solid/DruckerPragerExtended.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DruckerPragerExtended.hpp b/src/coreComponents/constitutive/solid/DruckerPragerExtended.hpp index 465fc8fd262..3ee5589a467 100644 --- a/src/coreComponents/constitutive/solid/DruckerPragerExtended.hpp +++ b/src/coreComponents/constitutive/solid/DruckerPragerExtended.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DuvautLionsSolid.cpp b/src/coreComponents/constitutive/solid/DuvautLionsSolid.cpp index c419186830e..e6de4db060a 100644 --- a/src/coreComponents/constitutive/solid/DuvautLionsSolid.cpp +++ b/src/coreComponents/constitutive/solid/DuvautLionsSolid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/DuvautLionsSolid.hpp b/src/coreComponents/constitutive/solid/DuvautLionsSolid.hpp index 6f2a392191a..aea9de6e248 100644 --- a/src/coreComponents/constitutive/solid/DuvautLionsSolid.hpp +++ b/src/coreComponents/constitutive/solid/DuvautLionsSolid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp b/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp index eb6ee291755..0567a493b3f 100644 --- a/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp +++ b/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ElasticIsotropic.hpp b/src/coreComponents/constitutive/solid/ElasticIsotropic.hpp index bfac7f8c2dd..b6388f8e907 100644 --- a/src/coreComponents/constitutive/solid/ElasticIsotropic.hpp +++ b/src/coreComponents/constitutive/solid/ElasticIsotropic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ElasticIsotropicPressureDependent.cpp b/src/coreComponents/constitutive/solid/ElasticIsotropicPressureDependent.cpp index 120b3018002..fc6221a64fa 100644 --- a/src/coreComponents/constitutive/solid/ElasticIsotropicPressureDependent.cpp +++ b/src/coreComponents/constitutive/solid/ElasticIsotropicPressureDependent.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ElasticIsotropicPressureDependent.hpp b/src/coreComponents/constitutive/solid/ElasticIsotropicPressureDependent.hpp index 1b911e37f85..3718765d3b2 100644 --- a/src/coreComponents/constitutive/solid/ElasticIsotropicPressureDependent.hpp +++ b/src/coreComponents/constitutive/solid/ElasticIsotropicPressureDependent.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ElasticOrthotropic.cpp b/src/coreComponents/constitutive/solid/ElasticOrthotropic.cpp index c1e6572d7f4..53ec491e631 100644 --- a/src/coreComponents/constitutive/solid/ElasticOrthotropic.cpp +++ b/src/coreComponents/constitutive/solid/ElasticOrthotropic.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ElasticOrthotropic.hpp b/src/coreComponents/constitutive/solid/ElasticOrthotropic.hpp index 9197da0d1db..8b2de4284a5 100644 --- a/src/coreComponents/constitutive/solid/ElasticOrthotropic.hpp +++ b/src/coreComponents/constitutive/solid/ElasticOrthotropic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ElasticTransverseIsotropic.cpp b/src/coreComponents/constitutive/solid/ElasticTransverseIsotropic.cpp index 2aacdfd5f49..5e96b28a251 100644 --- a/src/coreComponents/constitutive/solid/ElasticTransverseIsotropic.cpp +++ b/src/coreComponents/constitutive/solid/ElasticTransverseIsotropic.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ElasticTransverseIsotropic.hpp b/src/coreComponents/constitutive/solid/ElasticTransverseIsotropic.hpp index 87e55a0acb9..0e5f53fe2b3 100644 --- a/src/coreComponents/constitutive/solid/ElasticTransverseIsotropic.hpp +++ b/src/coreComponents/constitutive/solid/ElasticTransverseIsotropic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/InvariantDecompositions.hpp b/src/coreComponents/constitutive/solid/InvariantDecompositions.hpp index 0d833f0e514..fed49ad74f7 100644 --- a/src/coreComponents/constitutive/solid/InvariantDecompositions.hpp +++ b/src/coreComponents/constitutive/solid/InvariantDecompositions.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ModifiedCamClay.cpp b/src/coreComponents/constitutive/solid/ModifiedCamClay.cpp index 7e1f8d8495f..f5dfae8f624 100644 --- a/src/coreComponents/constitutive/solid/ModifiedCamClay.cpp +++ b/src/coreComponents/constitutive/solid/ModifiedCamClay.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ModifiedCamClay.hpp b/src/coreComponents/constitutive/solid/ModifiedCamClay.hpp index 1d537829c7c..8098ed1a851 100644 --- a/src/coreComponents/constitutive/solid/ModifiedCamClay.hpp +++ b/src/coreComponents/constitutive/solid/ModifiedCamClay.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/PerfectlyPlastic.cpp b/src/coreComponents/constitutive/solid/PerfectlyPlastic.cpp index e37da9ce328..e7425e97c0c 100644 --- a/src/coreComponents/constitutive/solid/PerfectlyPlastic.cpp +++ b/src/coreComponents/constitutive/solid/PerfectlyPlastic.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/PerfectlyPlastic.hpp b/src/coreComponents/constitutive/solid/PerfectlyPlastic.hpp index ecd19e68df1..58531b5fa8b 100644 --- a/src/coreComponents/constitutive/solid/PerfectlyPlastic.hpp +++ b/src/coreComponents/constitutive/solid/PerfectlyPlastic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/PorousSolid.cpp b/src/coreComponents/constitutive/solid/PorousSolid.cpp index 45527e04213..b4641e0b863 100644 --- a/src/coreComponents/constitutive/solid/PorousSolid.cpp +++ b/src/coreComponents/constitutive/solid/PorousSolid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/PorousSolid.hpp b/src/coreComponents/constitutive/solid/PorousSolid.hpp index 0d7567bf019..92502fd947c 100644 --- a/src/coreComponents/constitutive/solid/PorousSolid.hpp +++ b/src/coreComponents/constitutive/solid/PorousSolid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/PropertyConversions.hpp b/src/coreComponents/constitutive/solid/PropertyConversions.hpp index 6119995d621..232004c7388 100644 --- a/src/coreComponents/constitutive/solid/PropertyConversions.hpp +++ b/src/coreComponents/constitutive/solid/PropertyConversions.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ProppantSolid.cpp b/src/coreComponents/constitutive/solid/ProppantSolid.cpp index 975da1852d5..60fae0f7796 100644 --- a/src/coreComponents/constitutive/solid/ProppantSolid.cpp +++ b/src/coreComponents/constitutive/solid/ProppantSolid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/ProppantSolid.hpp b/src/coreComponents/constitutive/solid/ProppantSolid.hpp index 394ecd9083b..ef3f596fb39 100644 --- a/src/coreComponents/constitutive/solid/ProppantSolid.hpp +++ b/src/coreComponents/constitutive/solid/ProppantSolid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidBase.cpp b/src/coreComponents/constitutive/solid/SolidBase.cpp index 41ac8776c4b..88985c4c710 100644 --- a/src/coreComponents/constitutive/solid/SolidBase.cpp +++ b/src/coreComponents/constitutive/solid/SolidBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidBase.hpp b/src/coreComponents/constitutive/solid/SolidBase.hpp index 54c281731f4..cbcf7ffaca8 100644 --- a/src/coreComponents/constitutive/solid/SolidBase.hpp +++ b/src/coreComponents/constitutive/solid/SolidBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidInternalEnergy.cpp b/src/coreComponents/constitutive/solid/SolidInternalEnergy.cpp index da98b275657..ccd670cd40c 100644 --- a/src/coreComponents/constitutive/solid/SolidInternalEnergy.cpp +++ b/src/coreComponents/constitutive/solid/SolidInternalEnergy.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidInternalEnergy.hpp b/src/coreComponents/constitutive/solid/SolidInternalEnergy.hpp index e257cdb6ff2..49dde48bb02 100644 --- a/src/coreComponents/constitutive/solid/SolidInternalEnergy.hpp +++ b/src/coreComponents/constitutive/solid/SolidInternalEnergy.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOps.hpp b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOps.hpp index 47be2037a9f..710449b0a19 100644 --- a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOps.hpp +++ b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOps.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsFullyAnisotroipic.hpp b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsFullyAnisotroipic.hpp index dbf1ca64346..a3e3ccb715e 100644 --- a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsFullyAnisotroipic.hpp +++ b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsFullyAnisotroipic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsIsotropic.hpp b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsIsotropic.hpp index 8532358c494..27cdf14073b 100644 --- a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsIsotropic.hpp +++ b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsIsotropic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsOrthotropic.hpp b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsOrthotropic.hpp index 9b117a096c2..435802503b9 100644 --- a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsOrthotropic.hpp +++ b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsOrthotropic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsTransverseIsotropic.hpp b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsTransverseIsotropic.hpp index 9424a68460d..e4a6f6d75b9 100644 --- a/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsTransverseIsotropic.hpp +++ b/src/coreComponents/constitutive/solid/SolidModelDiscretizationOpsTransverseIsotropic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/SolidUtilities.hpp b/src/coreComponents/constitutive/solid/SolidUtilities.hpp index 045e1b92269..59cd1c79a91 100644 --- a/src/coreComponents/constitutive/solid/SolidUtilities.hpp +++ b/src/coreComponents/constitutive/solid/SolidUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/BiotPorosity.cpp b/src/coreComponents/constitutive/solid/porosity/BiotPorosity.cpp index d949fa07e8c..ca0bcfc2a2e 100644 --- a/src/coreComponents/constitutive/solid/porosity/BiotPorosity.cpp +++ b/src/coreComponents/constitutive/solid/porosity/BiotPorosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/BiotPorosity.hpp b/src/coreComponents/constitutive/solid/porosity/BiotPorosity.hpp index 39f04818ef9..1e7087744f7 100644 --- a/src/coreComponents/constitutive/solid/porosity/BiotPorosity.hpp +++ b/src/coreComponents/constitutive/solid/porosity/BiotPorosity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/PorosityBase.cpp b/src/coreComponents/constitutive/solid/porosity/PorosityBase.cpp index f700fa7c4f3..4665e9a78be 100644 --- a/src/coreComponents/constitutive/solid/porosity/PorosityBase.cpp +++ b/src/coreComponents/constitutive/solid/porosity/PorosityBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/PorosityBase.hpp b/src/coreComponents/constitutive/solid/porosity/PorosityBase.hpp index 2fff8f32b8f..2f5486e73a0 100644 --- a/src/coreComponents/constitutive/solid/porosity/PorosityBase.hpp +++ b/src/coreComponents/constitutive/solid/porosity/PorosityBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/PorosityFields.hpp b/src/coreComponents/constitutive/solid/porosity/PorosityFields.hpp index 84509da2768..835a15ec859 100644 --- a/src/coreComponents/constitutive/solid/porosity/PorosityFields.hpp +++ b/src/coreComponents/constitutive/solid/porosity/PorosityFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/PressurePorosity.cpp b/src/coreComponents/constitutive/solid/porosity/PressurePorosity.cpp index 5626e2dccc6..37b79e20fdf 100644 --- a/src/coreComponents/constitutive/solid/porosity/PressurePorosity.cpp +++ b/src/coreComponents/constitutive/solid/porosity/PressurePorosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/PressurePorosity.hpp b/src/coreComponents/constitutive/solid/porosity/PressurePorosity.hpp index e526543a72b..10b896a40ef 100644 --- a/src/coreComponents/constitutive/solid/porosity/PressurePorosity.hpp +++ b/src/coreComponents/constitutive/solid/porosity/PressurePorosity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/ProppantPorosity.cpp b/src/coreComponents/constitutive/solid/porosity/ProppantPorosity.cpp index 48e9875761f..cf6f62a5059 100644 --- a/src/coreComponents/constitutive/solid/porosity/ProppantPorosity.cpp +++ b/src/coreComponents/constitutive/solid/porosity/ProppantPorosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/solid/porosity/ProppantPorosity.hpp b/src/coreComponents/constitutive/solid/porosity/ProppantPorosity.hpp index a9114db79d1..49256bbfd80 100644 --- a/src/coreComponents/constitutive/solid/porosity/ProppantPorosity.hpp +++ b/src/coreComponents/constitutive/solid/porosity/ProppantPorosity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseConstantThermalConductivity.cpp b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseConstantThermalConductivity.cpp index cb0f118fe49..b7a78462ce5 100644 --- a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseConstantThermalConductivity.cpp +++ b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseConstantThermalConductivity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseConstantThermalConductivity.hpp b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseConstantThermalConductivity.hpp index 1ece6881d5b..e819bd9a5dd 100644 --- a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseConstantThermalConductivity.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseConstantThermalConductivity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityBase.cpp b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityBase.cpp index 1e99c0a29b1..5754a2960ce 100644 --- a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityBase.cpp +++ b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityBase.hpp b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityBase.hpp index 77b7543c810..96c70739b2f 100644 --- a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityBase.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityFields.hpp b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityFields.hpp index eddb8f90168..98107f4f134 100644 --- a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityFields.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivityFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivitySelector.hpp b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivitySelector.hpp index 28e9fd85607..c1036ea94ce 100644 --- a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivitySelector.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseThermalConductivitySelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.cpp b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.cpp index a4cfebf897e..f88f92a932c 100644 --- a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.cpp +++ b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.hpp b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.hpp index 5a03ec9165e..5e0844f1178 100644 --- a/src/coreComponents/constitutive/thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/MultiPhaseVolumeWeightedThermalConductivity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseConstantThermalConductivity.cpp b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseConstantThermalConductivity.cpp deleted file mode 100644 index 235e7bf528f..00000000000 --- a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseConstantThermalConductivity.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - * ------------------------------------------------------------------------------------------------------------ - * SPDX-License-Identifier: LGPL-2.1-only - * - * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC - * Copyright (c) 2018-2024 Total, S.A - * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron - * Copyright (c) 2019- GEOS/GEOSX Contributors - * All rights reserved - * - * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. - * ------------------------------------------------------------------------------------------------------------ - */ - -/** - * @file SinglePhaseConstantThermalConductivity.cpp - */ - -#include "SinglePhaseConstantThermalConductivity.hpp" - -namespace geos -{ - -using namespace dataRepository; - -namespace constitutive -{ - -SinglePhaseConstantThermalConductivity::SinglePhaseConstantThermalConductivity( string const & name, Group * const parent ): - SinglePhaseThermalConductivityBase( name, parent ) -{ - registerWrapper( viewKeyStruct::thermalConductivityComponentsString(), &m_thermalConductivityComponents ). - setInputFlag( InputFlags::REQUIRED ). - setRestartFlags( RestartFlags::NO_WRITE ). - setDescription( "xx, yy, and zz components of a diagonal thermal conductivity tensor [J/(s.m.K)]" ); -} - -std::unique_ptr< ConstitutiveBase > -SinglePhaseConstantThermalConductivity::deliverClone( string const & name, - Group * const parent ) const -{ - return SinglePhaseThermalConductivityBase::deliverClone( name, parent ); -} - -void SinglePhaseConstantThermalConductivity::initializeRockFluidState( arrayView2d< real64 const > const & initialPorosity ) const -{ - for( localIndex ei = 0; ei < initialPorosity.size( 0 ); ++ei ) - { - // NOTE: enforcing 1 quadrature point - for( localIndex q = 0; q < 1; ++q ) - { - m_effectiveConductivity[ei][q][0] = m_thermalConductivityComponents[0]; - m_effectiveConductivity[ei][q][1] = m_thermalConductivityComponents[1]; - m_effectiveConductivity[ei][q][2] = m_thermalConductivityComponents[2]; - } - } -} - -void SinglePhaseConstantThermalConductivity::update( arrayView2d< real64 const > const & initialPorosity ) const -{ - real64 thermalConductivityComponents[3]; - for( int i = 0; i<3; ++i ) - { - thermalConductivityComponents[i] = m_thermalConductivityComponents[i]; - } - arrayView3d< real64 > const effectiveConductivity = m_effectiveConductivity; - - forAll< parallelDevicePolicy<> >( initialPorosity.size( 0 ), [=] GEOS_HOST_DEVICE ( localIndex const ei ) - { - // NOTE: enforcing 1 quadrature point - for( localIndex q = 0; q < 1; ++q ) - { - effectiveConductivity[ei][q][0] = thermalConductivityComponents[0]; - effectiveConductivity[ei][q][1] = thermalConductivityComponents[1]; - effectiveConductivity[ei][q][2] = thermalConductivityComponents[2]; - } - } ); -} - -void SinglePhaseConstantThermalConductivity::allocateConstitutiveData( dataRepository::Group & parent, - localIndex const numConstitutivePointsPerParentIndex ) -{ - SinglePhaseThermalConductivityBase::allocateConstitutiveData( parent, numConstitutivePointsPerParentIndex ); -} - -void SinglePhaseConstantThermalConductivity::postInputInitialization() -{ - GEOS_THROW_IF( m_thermalConductivityComponents[0] <= 0 || - m_thermalConductivityComponents[1] <= 0 || - m_thermalConductivityComponents[2] <= 0, - GEOS_FMT( "{}: the components of the thermal conductivity tensor must be strictly positive", - getFullName() ), - InputError ); -} - -REGISTER_CATALOG_ENTRY( ConstitutiveBase, SinglePhaseConstantThermalConductivity, string const &, Group * const ) - -} // namespace constitutive - -} // namespace geos diff --git a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivity.cpp b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivity.cpp new file mode 100644 index 00000000000..aad8dcb5187 --- /dev/null +++ b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivity.cpp @@ -0,0 +1,134 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2024 Total, S.A + * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2023-2024 Chevron + * Copyright (c) 2019- GEOS/GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file SinglePhaseThermalConductivity.cpp + */ + +#include "SinglePhaseThermalConductivity.hpp" + +namespace geos +{ + +using namespace dataRepository; + +namespace constitutive +{ + +SinglePhaseThermalConductivity::SinglePhaseThermalConductivity( string const & name, Group * const parent ): + SinglePhaseThermalConductivityBase( name, parent ) +{ + registerWrapper( viewKeyStruct::defaultThermalConductivityComponentsString(), &m_defaultThermalConductivityComponents ). + setInputFlag( InputFlags::REQUIRED ). + setRestartFlags( RestartFlags::NO_WRITE ). + setDescription( "xx, yy, and zz diagonal components of the default thermal conductivity tensor [J/(s.m.K)]" ); + + registerWrapper( viewKeyStruct::thermalConductivityGradientComponentsString(), &m_thermalConductivityGradientComponents ). + setInputFlag( InputFlags::OPTIONAL ). + setApplyDefaultValue( {0.0, 0.0, 0.0} ). + setDescription( "xx, yy, and zz diagonal components of the thermal conductivity gradient tensor w.r.t. temperature [J/(s.m.K^2)]" ); + + registerWrapper( viewKeyStruct::referenceTemperatureString(), &m_referenceTemperature ). + setInputFlag( InputFlags::OPTIONAL ). + setApplyDefaultValue( 0.0 ). + setDescription( "The reference temperature at which the conductivity components are equal to the default values" ); +} + +std::unique_ptr< ConstitutiveBase > +SinglePhaseThermalConductivity::deliverClone( string const & name, + Group * const parent ) const +{ + return SinglePhaseThermalConductivityBase::deliverClone( name, parent ); +} + +void SinglePhaseThermalConductivity::initializeRockFluidState( arrayView2d< real64 const > const & initialPorosity ) const +{ + arrayView3d< real64 > dEffectiveConductivity_dT = m_dEffectiveConductivity_dT.toView(); + arrayView3d< real64 > effectiveConductivity = m_effectiveConductivity.toView(); + R1Tensor const defaultThermalConductivityComponents = m_defaultThermalConductivityComponents; + R1Tensor const thermalConductivityGradientComponents = m_thermalConductivityGradientComponents; + + forAll< parallelDevicePolicy<> >( initialPorosity.size( 0 ), [=] GEOS_HOST_DEVICE ( localIndex const ei ) + { + // NOTE: enforcing 1 quadrature point + for( localIndex q = 0; q < 1; ++q ) + { + effectiveConductivity[ei][q][0] = defaultThermalConductivityComponents[0]; + effectiveConductivity[ei][q][1] = defaultThermalConductivityComponents[1]; + effectiveConductivity[ei][q][2] = defaultThermalConductivityComponents[2]; + + dEffectiveConductivity_dT[ei][q][0] = thermalConductivityGradientComponents[0]; + dEffectiveConductivity_dT[ei][q][1] = thermalConductivityGradientComponents[1]; + dEffectiveConductivity_dT[ei][q][2] = thermalConductivityGradientComponents[2]; + } + } ); +} + +void SinglePhaseThermalConductivity::updateFromTemperature( arrayView1d< real64 const > const & temperature ) const +{ + arrayView3d< real64 > dEffectiveConductivity_dT = m_dEffectiveConductivity_dT.toView(); + arrayView3d< real64 > effectiveConductivity = m_effectiveConductivity.toView(); + R1Tensor const defaultThermalConductivityComponents = m_defaultThermalConductivityComponents; + R1Tensor const thermalConductivityGradientComponents = m_thermalConductivityGradientComponents; + real64 const referenceTemperature = m_referenceTemperature; + + forAll< parallelDevicePolicy<> >( temperature.size( 0 ), [=] GEOS_HOST_DEVICE ( localIndex const ei ) + { + for( localIndex q = 0; q < 1; ++q ) + { + + real64 const deltaTemperature = temperature[ei] - referenceTemperature; + + effectiveConductivity[ei][q][0] = defaultThermalConductivityComponents[0] + thermalConductivityGradientComponents[0] * deltaTemperature; + effectiveConductivity[ei][q][1] = defaultThermalConductivityComponents[1] + thermalConductivityGradientComponents[1] * deltaTemperature; + effectiveConductivity[ei][q][2] = defaultThermalConductivityComponents[2] + thermalConductivityGradientComponents[2] * deltaTemperature; + + for( localIndex i=0; i<=2; i++ ) + { + if( effectiveConductivity[ei][q][i] <1e-2 ) + { + effectiveConductivity[ei][q][i] = 1e-2; // W/m/K To avoid negative conductivity + } + } + + dEffectiveConductivity_dT[ei][q][0] = thermalConductivityGradientComponents[0]; + dEffectiveConductivity_dT[ei][q][1] = thermalConductivityGradientComponents[1]; + dEffectiveConductivity_dT[ei][q][2] = thermalConductivityGradientComponents[2]; + } + } ); +} + +void SinglePhaseThermalConductivity::allocateConstitutiveData( dataRepository::Group & parent, + localIndex const numConstitutivePointsPerParentIndex ) +{ + SinglePhaseThermalConductivityBase::allocateConstitutiveData( parent, numConstitutivePointsPerParentIndex ); +} + +void SinglePhaseThermalConductivity::postInputInitialization() +{ + GEOS_THROW_IF( m_defaultThermalConductivityComponents[0] <= 0 || + m_defaultThermalConductivityComponents[1] <= 0 || + m_defaultThermalConductivityComponents[2] <= 0, + GEOS_FMT( "{}: the components of the default thermal conductivity tensor must be strictly positive", + getFullName() ), + InputError ); + +} + +REGISTER_CATALOG_ENTRY( ConstitutiveBase, SinglePhaseThermalConductivity, string const &, Group * const ) + +} // namespace constitutive + +} // namespace geos diff --git a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseConstantThermalConductivity.hpp b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivity.hpp similarity index 60% rename from src/coreComponents/constitutive/thermalConductivity/SinglePhaseConstantThermalConductivity.hpp rename to src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivity.hpp index 214e386db88..fa6d7623ef8 100644 --- a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseConstantThermalConductivity.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,11 +14,11 @@ */ /** - * @file SinglePhaseConstantThermalConductivity.hpp + * @file SinglePhaseThermalConductivity.hpp */ -#ifndef GEOS_CONSTITUTIVE_SINGLEPHASE_THERMALCONDUCTIVITY_CONSTANTTHERMALCONDUCTIVITY_HPP_ -#define GEOS_CONSTITUTIVE_SINGLEPHASE_THERMALCONDUCTIVITY_CONSTANTTHERMALCONDUCTIVITY_HPP_ +#ifndef GEOS_CONSTITUTIVE_SINGLEPHASE_THERMALCONDUCTIVITY_THERMALCONDUCTIVITY_HPP_ +#define GEOS_CONSTITUTIVE_SINGLEPHASE_THERMALCONDUCTIVITY_THERMALCONDUCTIVITY_HPP_ #include "constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.hpp" @@ -31,7 +31,7 @@ namespace constitutive /** * @brief The update class for constant thermal conductivity (does not do anything) */ -class SinglePhaseConstantThermalConductivityUpdate : public SinglePhaseThermalConductivityBaseUpdate +class SinglePhaseThermalConductivityUpdate : public SinglePhaseThermalConductivityBaseUpdate { public: @@ -40,8 +40,10 @@ class SinglePhaseConstantThermalConductivityUpdate : public SinglePhaseThermalCo * @param effectiveConductivity the array of cell-wise effective conductivities in the subregion * the subregion */ - SinglePhaseConstantThermalConductivityUpdate( arrayView3d< real64 > const & effectiveConductivity ) - : SinglePhaseThermalConductivityBaseUpdate( effectiveConductivity ) + SinglePhaseThermalConductivityUpdate( arrayView3d< real64 > const & effectiveConductivity, + arrayView3d< real64 > const & dEffectiveConductivity_dT ) + : SinglePhaseThermalConductivityBaseUpdate( effectiveConductivity, + dEffectiveConductivity_dT ) {} GEOS_HOST_DEVICE @@ -55,7 +57,7 @@ class SinglePhaseConstantThermalConductivityUpdate : public SinglePhaseThermalCo /** * @brief The class for constant thermal conductivity */ -class SinglePhaseConstantThermalConductivity : public SinglePhaseThermalConductivityBase +class SinglePhaseThermalConductivity : public SinglePhaseThermalConductivityBase { public: @@ -64,7 +66,7 @@ class SinglePhaseConstantThermalConductivity : public SinglePhaseThermalConducti * @param[in] name the name of the class * @param[in] parent pointer to the parent Group */ - SinglePhaseConstantThermalConductivity( string const & name, Group * const parent ); + SinglePhaseThermalConductivity( string const & name, Group * const parent ); std::unique_ptr< ConstitutiveBase > deliverClone( string const & name, Group * const parent ) const override; @@ -72,18 +74,16 @@ class SinglePhaseConstantThermalConductivity : public SinglePhaseThermalConducti virtual void allocateConstitutiveData( dataRepository::Group & parent, localIndex const numConstitutivePointsPerParentIndex ) override; - static string catalogName() { return "SinglePhaseConstantThermalConductivity"; } + static string catalogName() { return "SinglePhaseThermalConductivity"; } virtual string getCatalogName() const override { return catalogName(); } - virtual void initializeRockFluidState( arrayView2d< real64 const > const & initialPorosity ) const override final; - virtual void update( arrayView2d< real64 const > const & porosity ) const override final; - + virtual void updateFromTemperature( arrayView1d< real64 const > const & temperature ) const override final; /// Type of kernel wrapper for in-kernel update - using KernelWrapper = SinglePhaseConstantThermalConductivityUpdate; + using KernelWrapper = SinglePhaseThermalConductivityUpdate; /** * @brief Create an update kernel wrapper. @@ -91,12 +91,15 @@ class SinglePhaseConstantThermalConductivity : public SinglePhaseThermalConducti */ KernelWrapper createKernelWrapper() const { - return KernelWrapper( m_effectiveConductivity ); + return KernelWrapper( m_effectiveConductivity, + m_dEffectiveConductivity_dT ); } struct viewKeyStruct : public SinglePhaseThermalConductivityBase::viewKeyStruct { - static constexpr char const * thermalConductivityComponentsString() { return "thermalConductivityComponents"; } + static constexpr char const * defaultThermalConductivityComponentsString() { return "defaultThermalConductivityComponents"; } + static constexpr char const * thermalConductivityGradientComponentsString() { return "thermalConductivityGradientComponents"; } + static constexpr char const * referenceTemperatureString() { return "referenceTemperature"; } } viewKeys; protected: @@ -105,8 +108,14 @@ class SinglePhaseConstantThermalConductivity : public SinglePhaseThermalConducti private: - /// default thermal conductivity in the subRegion - R1Tensor m_thermalConductivityComponents; + /// Default thermal conductivity components in the subRegion + R1Tensor m_defaultThermalConductivityComponents; + + /// Thermal conductivity gradient components in the subRegion + R1Tensor m_thermalConductivityGradientComponents; + + /// Reference temperature + real64 m_referenceTemperature; }; diff --git a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.cpp b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.cpp index 1a2b3db708d..d4760a4d871 100644 --- a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.cpp +++ b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -33,6 +33,7 @@ SinglePhaseThermalConductivityBase::SinglePhaseThermalConductivityBase( string c : ConstitutiveBase( name, parent ) { registerField( fields::thermalconductivity::effectiveConductivity{}, &m_effectiveConductivity ); + registerField( fields::thermalconductivity::dEffectiveConductivity_dT{}, &m_dEffectiveConductivity_dT ); } void SinglePhaseThermalConductivityBase::postInputInitialization() @@ -40,6 +41,7 @@ void SinglePhaseThermalConductivityBase::postInputInitialization() ConstitutiveBase::postInputInitialization(); m_effectiveConductivity.resize( 0, 0, 3 ); + m_dEffectiveConductivity_dT.resize( 0, 0, 3 ); } void SinglePhaseThermalConductivityBase::allocateConstitutiveData( dataRepository::Group & parent, @@ -47,6 +49,7 @@ void SinglePhaseThermalConductivityBase::allocateConstitutiveData( dataRepositor { // NOTE: enforcing 1 quadrature point m_effectiveConductivity.resize( 0, 1, 3 ); + m_dEffectiveConductivity_dT.resize( 0, 1, 3 ); ConstitutiveBase::allocateConstitutiveData( parent, numConstitutivePointsPerParentIndex ); } diff --git a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.hpp b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.hpp index cccc537dc99..c0037f04751 100644 --- a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -56,16 +56,18 @@ class SinglePhaseThermalConductivityBaseUpdate /** * @brief Constructor for the class performing the thermal conductivity updates * @param effectiveConductivity the array of cell-wise effective conductivities in the subregion - * @param dEffectiveConductivity_dPhaseVolFrac the array of cell-wise derivatives of effective conductivities wrt phase vol fractions in - * the subregion */ - SinglePhaseThermalConductivityBaseUpdate( arrayView3d< real64 > const & effectiveConductivity ) - : m_effectiveConductivity( effectiveConductivity ) + SinglePhaseThermalConductivityBaseUpdate( arrayView3d< real64 > const & effectiveConductivity, + arrayView3d< real64 > const & dEffectiveConductivity_dT ) + : m_effectiveConductivity( effectiveConductivity ), + m_dEffectiveConductivity_dT( dEffectiveConductivity_dT ) {} /// View on the cell-wise effective conductivities arrayView3d< real64 > m_effectiveConductivity; + /// View on the derivative of effective conductivities w.r.t. temperature + arrayView3d< real64 > m_dEffectiveConductivity_dT; private: /** @@ -125,12 +127,25 @@ class SinglePhaseThermalConductivityBase : public ConstitutiveBase virtual void update( arrayView2d< real64 const > const & porosity ) const { GEOS_UNUSED_VAR( porosity ); } + /** + * @brief Update the thermal conductivity state + * @param[in] temperature the temperature field + */ + virtual void updateFromTemperature( arrayView1d< real64 const > const & temperature ) const + { GEOS_UNUSED_VAR( temperature ); } + /** * @brief Getter for the effective conductivities in the subRegion * @return an arrayView of effective conductivities */ arrayView3d< real64 const > effectiveConductivity() const { return m_effectiveConductivity; } + /** + * @brief Getter for the derivative of effective conductivities in the subRegion w.r.t. temperature + * @return an arrayView of derivative of effective conductivities w.r.t. temperature + */ + arrayView3d< real64 const > dEffectiveConductivity_dT() const { return m_dEffectiveConductivity_dT; } + private: /** @@ -147,6 +162,8 @@ class SinglePhaseThermalConductivityBase : public ConstitutiveBase /// cell-wise effective conductivities in the subregion array3d< real64 > m_effectiveConductivity; + /// Derivative of effective conductivities w.r.t. temperature + array3d< real64 > m_dEffectiveConductivity_dT; }; } // namespace constitutive diff --git a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityFields.hpp b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityFields.hpp index b785e73e331..267183f85c3 100644 --- a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityFields.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivityFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivitySelector.hpp b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivitySelector.hpp index 7131e53bf94..689dc17d22b 100644 --- a/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivitySelector.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/SinglePhaseThermalConductivitySelector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,7 +21,7 @@ #define GEOS_CONSTITUTIVE_SINGLEPHASE_THERMALCONDUCTIVITY_THERMALCONDUCTIVITYSELECTOR_HPP #include "constitutive/ConstitutivePassThruHandler.hpp" -#include "constitutive/thermalConductivity/SinglePhaseConstantThermalConductivity.hpp" +#include "constitutive/thermalConductivity/SinglePhaseThermalConductivity.hpp" namespace geos { @@ -33,14 +33,14 @@ template< typename LAMBDA > void constitutiveUpdatePassThru( SinglePhaseThermalConductivityBase const & thermalConductivity, LAMBDA && lambda ) { - ConstitutivePassThruHandler< SinglePhaseConstantThermalConductivity >::execute( thermalConductivity, std::forward< LAMBDA >( lambda ) ); + ConstitutivePassThruHandler< SinglePhaseThermalConductivity >::execute( thermalConductivity, std::forward< LAMBDA >( lambda ) ); } template< typename LAMBDA > void constitutiveUpdatePassThru( SinglePhaseThermalConductivityBase & thermalConductivity, LAMBDA && lambda ) { - ConstitutivePassThruHandler< SinglePhaseConstantThermalConductivity >::execute( thermalConductivity, std::forward< LAMBDA >( lambda ) ); + ConstitutivePassThruHandler< SinglePhaseThermalConductivity >::execute( thermalConductivity, std::forward< LAMBDA >( lambda ) ); } } // namespace constitutive diff --git a/src/coreComponents/constitutive/thermalConductivity/ThermalConductivityFields.hpp b/src/coreComponents/constitutive/thermalConductivity/ThermalConductivityFields.hpp index 23772a447f6..52d85814310 100644 --- a/src/coreComponents/constitutive/thermalConductivity/ThermalConductivityFields.hpp +++ b/src/coreComponents/constitutive/thermalConductivity/ThermalConductivityFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -40,6 +40,14 @@ DECLARE_FIELD( effectiveConductivity, WRITE_AND_READ, "Effective conductivity" ); +DECLARE_FIELD( dEffectiveConductivity_dT, + "dEffectiveConductivity_dT", + array3d< real64 >, + 0, + LEVEL_3, + WRITE_AND_READ, + "Derivative of effective conductivity w.r.t. temperature" ); + DECLARE_FIELD( rockThermalConductivity, "rockThermalConductivity", array3d< real64 >, diff --git a/src/coreComponents/constitutive/unitTests/CMakeLists.txt b/src/coreComponents/constitutive/unitTests/CMakeLists.txt index a4d541ee37b..d357ad9290c 100644 --- a/src/coreComponents/constitutive/unitTests/CMakeLists.txt +++ b/src/coreComponents/constitutive/unitTests/CMakeLists.txt @@ -7,6 +7,7 @@ set( gtest_geosx_tests testDruckerPrager.cpp testElasticIsotropic.cpp testKValueInitialization.cpp + testImmiscibleWaterFlashModel.cpp testLohrenzBrayClarkViscosity.cpp testModifiedCamClay.cpp testMultiFluidSelector.cpp diff --git a/src/coreComponents/constitutive/unitTests/TestFluid.hpp b/src/coreComponents/constitutive/unitTests/TestFluid.hpp index 5713310cbec..18f8393ec14 100644 --- a/src/coreComponents/constitutive/unitTests/TestFluid.hpp +++ b/src/coreComponents/constitutive/unitTests/TestFluid.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -67,9 +67,14 @@ class TestFluid static std::unique_ptr< TestFluid< NC > > create( std::array< integer, NC > const & components ) { std::unique_ptr< TestFluid< NC > > testFluid( new TestFluid() ); - for( integer ic = 0; ic < NC; ++ic ) + const std::unordered_map< integer, string > componentNames = { + {Fluid::H2O, "H2O"}, {Fluid::CO2, "CO2"}, {Fluid::N2, "N2"}, {Fluid::H2S, "H2S"}, + {Fluid::C1, "CH4"}, {Fluid::C2, "C2H6"}, {Fluid::C3, "C3H8"}, {Fluid::C4, "C4H10"}, + {Fluid::C5, "C5H12"}, {Fluid::C8, "C8H18"}, {Fluid::C10, "C10+"}, + }; + for( integer const ic : components ) { - testFluid->componentNames.emplace_back( GEOS_FMT( "COMP{}", ic+1 )); + testFluid->componentNames.emplace_back( componentNames.at( ic ) ); } createArray( testFluid->criticalPressure, components, Fluid::Pc, Fluid::data ); createArray( testFluid->criticalTemperature, components, Fluid::Tc, Fluid::data ); diff --git a/src/coreComponents/constitutive/unitTests/TestFluidUtilities.hpp b/src/coreComponents/constitutive/unitTests/TestFluidUtilities.hpp index 822a8a25070..d9824534902 100644 --- a/src/coreComponents/constitutive/unitTests/TestFluidUtilities.hpp +++ b/src/coreComponents/constitutive/unitTests/TestFluidUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testCompositionalDensity.cpp b/src/coreComponents/constitutive/unitTests/testCompositionalDensity.cpp index 9c3c2fbcfc4..5c787084189 100644 --- a/src/coreComponents/constitutive/unitTests/testCompositionalDensity.cpp +++ b/src/coreComponents/constitutive/unitTests/testCompositionalDensity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testCompositionalProperties.cpp b/src/coreComponents/constitutive/unitTests/testCompositionalProperties.cpp index 386d015f5d1..b4f0ff4e4d4 100644 --- a/src/coreComponents/constitutive/unitTests/testCompositionalProperties.cpp +++ b/src/coreComponents/constitutive/unitTests/testCompositionalProperties.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testCubicEOS.cpp b/src/coreComponents/constitutive/unitTests/testCubicEOS.cpp index 405e6bcf22e..8a0c0de0d44 100644 --- a/src/coreComponents/constitutive/unitTests/testCubicEOS.cpp +++ b/src/coreComponents/constitutive/unitTests/testCubicEOS.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testDamageUtilities.cpp b/src/coreComponents/constitutive/unitTests/testDamageUtilities.cpp index 34b8ffe29e9..ee8eee252b9 100644 --- a/src/coreComponents/constitutive/unitTests/testDamageUtilities.cpp +++ b/src/coreComponents/constitutive/unitTests/testDamageUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testDruckerPrager.cpp b/src/coreComponents/constitutive/unitTests/testDruckerPrager.cpp index bb7fdc39241..06d8292f9a7 100644 --- a/src/coreComponents/constitutive/unitTests/testDruckerPrager.cpp +++ b/src/coreComponents/constitutive/unitTests/testDruckerPrager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testElasticIsotropic.cpp b/src/coreComponents/constitutive/unitTests/testElasticIsotropic.cpp index 667c8ddd66c..b514a16eca2 100644 --- a/src/coreComponents/constitutive/unitTests/testElasticIsotropic.cpp +++ b/src/coreComponents/constitutive/unitTests/testElasticIsotropic.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testImmiscibleWaterFlashModel.cpp b/src/coreComponents/constitutive/unitTests/testImmiscibleWaterFlashModel.cpp new file mode 100644 index 00000000000..36716b44831 --- /dev/null +++ b/src/coreComponents/constitutive/unitTests/testImmiscibleWaterFlashModel.cpp @@ -0,0 +1,376 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2024 Total, S.A + * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2023-2024 Chevron + * Copyright (c) 2019- GEOS/GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +// Source includes +#include "codingUtilities/UnitTestUtilities.hpp" +#include "constitutive/fluid/multifluid/MultiFluidUtils.hpp" +#include "constitutive/fluid/multifluid/compositional/models/EquationOfState.hpp" +#include "constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.hpp" +#include "TestFluid.hpp" +#include "TestFluidUtilities.hpp" + +using namespace geos::constitutive; +using namespace geos::constitutive::compositional; + +namespace geos +{ +namespace testing +{ + +constexpr integer numTestComps = 3; + +template< integer NC > +using FlashData = std::tuple< + real64 const, // pressure + real64 const, // temperature + Feed< NC > const, // phase composition + real64 const, // expected liquid fraction + real64 const, // expected vapour fraction + real64 const, // expected aqueous fraction + Feed< numTestComps > const, // expected liquid mole fractions + Feed< numTestComps > const, // expected vapour mole fractions + Feed< numTestComps > const // expected aqueous mole fractions + >; + +template< integer NC > +struct FluidData {}; + +template<> +struct FluidData< 3 > +{ + static constexpr integer testComponents[numTestComps] = {0, 1, 2}; + static std::unique_ptr< TestFluid< 3 > > createFluid() + { + auto fluid = TestFluid< 3 >::create( {Fluid::C1, Fluid::C10, Fluid::H2O} ); + const std::array< real64 const, 3 > bics = { 0.25, 0.0, 0.0 }; + fluid->setBinaryCoefficients( bics ); + return fluid; + } +}; + +template<> +struct FluidData< 9 > +{ + static constexpr integer testComponents[numTestComps] = {0, 2, 8}; + static std::unique_ptr< TestFluid< 9 > > createFluid() + { + auto fluid = TestFluid< 9 >::create( {Fluid::H2O, Fluid::CO2, Fluid::N2, Fluid::C5, Fluid::C2, Fluid::C3, Fluid::C4, Fluid::C5, Fluid::C10} ); + const std::array< real64 const, 36 > bics = { + 0.01, 0, 0.003732, 0, 0.01, 0, 0, 0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0.01, 0, 0.028, 0.01, 0.01, 0, 0, 0.01, 0, 0.04532, 0.01, 0.01, 0, 0, 0 + }; + fluid->setBinaryCoefficients( bics ); + return fluid; + } +}; + +template< integer NC > +class ImmiscibleWaterFlashModelTestFixture : public ::testing::TestWithParam< FlashData< NC > > +{ + static constexpr real64 relTol = 1.0e-5; + static constexpr real64 absTol = 1.0e-7; + static constexpr integer numPhases = 3; + static constexpr integer numComps = NC; + static constexpr integer numDofs = NC + 2; + using Deriv = geos::constitutive::multifluid::DerivativeOffset; + using PhasePropSlice = ImmiscibleWaterFlashModelUpdate::PhaseProp::SliceType; + using PhaseCompSlice = ImmiscibleWaterFlashModelUpdate::PhaseComp::SliceType; + +public: + ImmiscibleWaterFlashModelTestFixture() + : m_fluid( FluidData< NC >::createFluid() ) + { + ComponentProperties const & componentProperties = this->m_fluid->getComponentProperties(); + + m_parameters = ImmiscibleWaterFlashModel::createParameters( std::move( m_parameters ) ); + + auto * equationOfState = const_cast< EquationOfState * >(m_parameters->get< EquationOfState >()); + string const eosName = EnumStrings< EquationOfStateType >::toString( EquationOfStateType::PengRobinson ); + equationOfState->m_equationsOfStateNames.emplace_back( eosName ); + equationOfState->m_equationsOfStateNames.emplace_back( eosName ); + equationOfState->m_equationsOfStateNames.emplace_back( eosName ); + + m_flash = std::make_unique< ImmiscibleWaterFlashModel >( "FlashModel", componentProperties, *m_parameters ); + } + + ~ImmiscibleWaterFlashModelTestFixture() = default; + + void testFlash( FlashData< NC > const & data ) + { + real64 const pressure = std::get< 0 >( data ); + real64 const temperature = std::get< 1 >( data ); + stackArray1d< real64, numComps > composition; + TestFluid< NC >::createArray( composition, std::get< 2 >( data )); + + real64 const expectedPhaseFraction[numPhases] = {std::get< 3 >( data ), std::get< 4 >( data ), std::get< 5 >( data )}; + Feed< numTestComps > const expectedPhaseComponentFraction[numPhases] = {std::get< 6 >( data ), std::get< 7 >( data ), std::get< 8 >( data ) }; + + stackArray2d< real64, (numPhases-1)*numComps > kValues( numPhases-1, numComps ); + LvArray::forValuesInSlice( kValues.toSlice(), []( real64 & v ){ v = 0.0; } ); + + StackArray< real64, 3, numPhases, multifluid::LAYOUT_PHASE > phaseFractionData( 1, 1, numPhases ); + StackArray< real64, 4, numPhases *numDofs, multifluid::LAYOUT_PHASE_DC > dPhaseFractionData( 1, 1, numPhases, numDofs ); + StackArray< real64, 4, numPhases *numComps, multifluid::LAYOUT_PHASE_COMP > phaseComponentFractionData( 1, 1, numPhases, numComps ); + StackArray< real64, 5, numPhases *numComps *numDofs, multifluid::LAYOUT_PHASE_COMP_DC > dPhaseComponentFractionData( 1, 1, numPhases, numComps, numDofs ); + + auto phaseFraction = phaseFractionData[0][0]; + auto dPhaseFraction = dPhaseFractionData[0][0]; + auto phaseComponentFraction = phaseComponentFractionData[0][0]; + auto dPhaseComponentFraction = dPhaseComponentFractionData[0][0]; + + auto componentProperties = m_fluid->createKernelWrapper(); + auto flashKernelWrapper = m_flash->createKernelWrapper(); + + flashKernelWrapper.compute( componentProperties, + pressure, + temperature, + composition.toSliceConst(), + kValues.toSlice(), + PhasePropSlice( phaseFraction, dPhaseFraction ), + PhaseCompSlice( phaseComponentFraction, dPhaseComponentFraction ) ); + + for( integer ip = 0; ip < numPhases; ip++ ) + { + checkRelativeError( phaseFraction[ip], expectedPhaseFraction[ip], relTol, absTol ); + for( integer i = 0; i < numTestComps; ++i ) + { + integer const ic = FluidData< numComps >::testComponents[i]; + checkRelativeError( phaseComponentFraction[ip][ic], expectedPhaseComponentFraction[ip][i], relTol, absTol ); + } + } + } + + void testFlashDerivatives( FlashData< NC > const & data ) + { + // Number of output values from each flash calculation + constexpr integer numValues = numPhases * (1 + numComps); + + real64 const pressure = std::get< 0 >( data ); + real64 const temperature = std::get< 1 >( data ); + stackArray1d< real64, numComps > composition; + TestFluid< NC >::createArray( composition, std::get< 2 >( data )); + + stackArray2d< real64, (numPhases-1)*numComps > kValues( numPhases-1, numComps ); + LvArray::forValuesInSlice( kValues.toSlice(), []( real64 & v ){ v = 0.0; } ); + + StackArray< real64, 3, numPhases, multifluid::LAYOUT_PHASE > phaseFractionData( 1, 1, numPhases ); + StackArray< real64, 4, numPhases *numDofs, multifluid::LAYOUT_PHASE_DC > dPhaseFractionData( 1, 1, numPhases, numDofs ); + StackArray< real64, 4, numPhases *numComps, multifluid::LAYOUT_PHASE_COMP > phaseComponentFractionData( 1, 1, numPhases, numComps ); + StackArray< real64, 5, numPhases *numComps *numDofs, multifluid::LAYOUT_PHASE_COMP_DC > dPhaseComponentFractionData( 1, 1, numPhases, numComps, numDofs ); + + auto phaseFraction = phaseFractionData[0][0]; + auto dPhaseFraction = dPhaseFractionData[0][0]; + auto phaseComponentFraction = phaseComponentFractionData[0][0]; + auto dPhaseComponentFraction = dPhaseComponentFractionData[0][0]; + + stackArray1d< real64, numValues > derivatives( numValues ); + + auto componentProperties = m_fluid->createKernelWrapper(); + auto flashKernelWrapper = m_flash->createKernelWrapper(); + + flashKernelWrapper.compute( componentProperties, + pressure, + temperature, + composition.toSliceConst(), + kValues.toSlice(), + PhasePropSlice( phaseFraction, dPhaseFraction ), + PhaseCompSlice( phaseComponentFraction, dPhaseComponentFraction ) ); + + // Combine derivatives into a single output + auto const concatDerivatives = []( integer const kc, auto & derivs, auto const & phaseFractionDerivs, auto const & phaseComponentFractionDerivs ){ + integer j = 0; + for( integer ip = 0; ip < numPhases; ++ip ) + { + derivs[j++] = phaseFractionDerivs( ip, kc ); + for( integer ic = 0; ic < numComps; ++ic ) + { + derivs[j++] = phaseComponentFractionDerivs( ip, ic, kc ); + } + } + }; + + auto const evaluateFlash = [&]( real64 const p, real64 const t, auto const & zmf, auto & values ){ + StackArray< real64, 3, numPhases, multifluid::LAYOUT_PHASE > displacedPhaseFractionData( 1, 1, numPhases ); + StackArray< real64, 4, numPhases *numDofs, multifluid::LAYOUT_PHASE_DC > displacedPhaseFractionDerivsData( 1, 1, numPhases, numDofs ); + StackArray< real64, 4, numPhases *numComps, multifluid::LAYOUT_PHASE_COMP > displacedPhaseComponentFractionData( 1, 1, numPhases, numComps ); + StackArray< real64, 5, numPhases *numComps *numDofs, multifluid::LAYOUT_PHASE_COMP_DC > displacedPhaseComponentFractionDerivsData( 1, 1, numPhases, numComps, numDofs ); + + auto displacedPhaseFraction = displacedPhaseFractionData[0][0]; + auto displacedPhaseFractionDerivs = displacedPhaseFractionDerivsData[0][0]; + auto displacedPhaseComponentFraction = displacedPhaseComponentFractionData[0][0]; + auto displacedPhaseComponentFractionDerivs = displacedPhaseComponentFractionDerivsData[0][0]; + + flashKernelWrapper.compute( componentProperties, + p, + t, + zmf, + kValues.toSlice(), + PhasePropSlice( displacedPhaseFraction, displacedPhaseFractionDerivs ), + PhaseCompSlice( displacedPhaseComponentFraction, displacedPhaseComponentFractionDerivs ) ); + integer j = 0; + for( integer ip = 0; ip < numPhases; ++ip ) + { + values[j++] = displacedPhaseFraction[ip]; + for( integer ic = 0; ic < numComps; ++ic ) + { + values[j++] = displacedPhaseComponentFraction( ip, ic ); + } + } + }; + + // Test against numerically calculated values + // --- Pressure derivatives --- + concatDerivatives( Deriv::dP, derivatives, dPhaseFraction, dPhaseComponentFraction ); + real64 const dp = 1.0e-4 * pressure; + geos::testing::internal::testNumericalDerivative< numValues >( + pressure, dp, derivatives, + [&]( real64 const p, auto & values ) { + evaluateFlash( p, temperature, composition.toSliceConst(), values ); + } ); + + // -- Temperature derivative + concatDerivatives( Deriv::dT, derivatives, dPhaseFraction, dPhaseComponentFraction ); + real64 const dT = 1.0e-6 * temperature; + geos::testing::internal::testNumericalDerivative< numValues >( + temperature, dT, derivatives, + [&]( real64 const t, auto & values ) { + evaluateFlash( pressure, t, composition.toSliceConst(), values ); + } ); + + // -- Composition derivatives derivative + real64 const dz = 1.0e-7; + for( integer const ic : FluidData< numComps >::testComponents ) + { + real64 sumZ = 0.0; + for( integer jc = 0; jc < numComps; ++jc ) + { + sumZ += composition[jc]; + } + sumZ -= composition[ic]; + if( sumZ < absTol ) + { + continue; + } + concatDerivatives( Deriv::dC+ic, derivatives, dPhaseFraction, dPhaseComponentFraction ); + geos::testing::internal::testNumericalDerivative< numValues >( + 0.0, dz, derivatives, + [&]( real64 const z, auto & values ) { + stackArray1d< real64, numComps > zmf( numComps ); + for( integer jc = 0; jc < numComps; ++jc ) + { + zmf[jc] = composition[jc]; + } + zmf[ic] += z; + evaluateFlash( pressure, temperature, zmf.toSliceConst(), values ); + } ); + } + } + +protected: + std::unique_ptr< TestFluid< NC > > m_fluid{}; + std::unique_ptr< ImmiscibleWaterFlashModel > m_flash{}; + std::unique_ptr< ModelParameters > m_parameters{}; +}; + +using ImmiscibleWaterFlashModel3 = ImmiscibleWaterFlashModelTestFixture< 3 >; +using ImmiscibleWaterFlashModel9 = ImmiscibleWaterFlashModelTestFixture< 9 >; + +TEST_P( ImmiscibleWaterFlashModel3, testFlash ) +{ + testFlash( GetParam() ); +} +TEST_P( ImmiscibleWaterFlashModel3, testFlashDerivatives ) +{ + testFlashDerivatives( GetParam() ); +} + +TEST_P( ImmiscibleWaterFlashModel9, testFlash ) +{ + testFlash( GetParam() ); +} +TEST_P( ImmiscibleWaterFlashModel9, testFlashDerivatives ) +{ + testFlashDerivatives( GetParam() ); +} + +//------------------------------------------------------------------------------- +// Data +//------------------------------------------------------------------------------- +/* UNCRUSTIFY-OFF */ + +INSTANTIATE_TEST_SUITE_P( + ImmiscibleWaterFlashModel, ImmiscibleWaterFlashModel3, + ::testing::Values( + FlashData<3>{1.0e+05, 293.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 293.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 293.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+05, 313.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 313.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 313.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+05, 353.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 353.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 353.15, {0.000000, 0.000000, 1.000000}, 0.000000, 0.000000, 1.000000, {0.500000, 0.500000, 0.000000}, {0.500000, 0.500000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+05, 293.15, {0.300000, 0.300000, 0.400000}, 0.300217, 0.299783, 0.400000, {0.000723, 0.999277, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 293.15, {0.300000, 0.300000, 0.400000}, 0.302162, 0.297838, 0.400000, {0.007157, 0.992843, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 293.15, {0.300000, 0.300000, 0.400000}, 0.320811, 0.279189, 0.400000, {0.064871, 0.935129, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+05, 313.15, {0.300000, 0.300000, 0.400000}, 0.300236, 0.299764, 0.400000, {0.000787, 0.999213, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 313.15, {0.300000, 0.300000, 0.400000}, 0.302354, 0.297646, 0.400000, {0.007785, 0.992215, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 313.15, {0.300000, 0.300000, 0.400000}, 0.322797, 0.277203, 0.400000, {0.070623, 0.929377, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+05, 353.15, {0.300000, 0.300000, 0.400000}, 0.300271, 0.299729, 0.400000, {0.000919, 0.999081, 0.000000}, {0.999982, 0.000018, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 353.15, {0.300000, 0.300000, 0.400000}, 0.302753, 0.297247, 0.400000, {0.009094, 0.990906, 0.000000}, {0.999998, 0.000002, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 353.15, {0.300000, 0.300000, 0.400000}, 0.326941, 0.273059, 0.400000, {0.082404, 0.917596, 0.000000}, {0.999999, 0.000001, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+05, 293.15, {0.200000, 0.800000, 0.000000}, 0.800579, 0.199421, 0.000000, {0.000723, 0.999277, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 293.15, {0.200000, 0.800000, 0.000000}, 0.805767, 0.194233, 0.000000, {0.007157, 0.992843, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 293.15, {0.200000, 0.800000, 0.000000}, 0.855497, 0.144503, 0.000000, {0.064871, 0.935129, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+05, 313.15, {0.200000, 0.800000, 0.000000}, 0.800630, 0.199370, 0.000000, {0.000787, 0.999213, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 313.15, {0.200000, 0.800000, 0.000000}, 0.806277, 0.193723, 0.000000, {0.007785, 0.992215, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 313.15, {0.200000, 0.800000, 0.000000}, 0.860791, 0.139209, 0.000000, {0.070623, 0.929377, 0.000000}, {1.000000, 0.000000, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+05, 353.15, {0.200000, 0.800000, 0.000000}, 0.800732, 0.199268, 0.000000, {0.000919, 0.999081, 0.000000}, {0.999982, 0.000018, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+06, 353.15, {0.200000, 0.800000, 0.000000}, 0.807341, 0.192659, 0.000000, {0.009094, 0.990906, 0.000000}, {0.999998, 0.000002, 0.000000}, {0.000000, 0.000000, 1.000000}}, + FlashData<3>{1.0e+07, 353.15, {0.200000, 0.800000, 0.000000}, 0.871843, 0.128157, 0.000000, {0.082404, 0.917596, 0.000000}, {0.999999, 0.000001, 0.000000}, {0.000000, 0.000000, 1.000000}} + ) +); + +INSTANTIATE_TEST_SUITE_P( + ImmiscibleWaterFlashModel, ImmiscibleWaterFlashModel9, + ::testing::Values( + FlashData<9>{1.0e+06, 293.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.198828, 0.792172, 0.009000, {0.000000, 0.011551, 0.850986}, {0.000000, 0.672081, 0.000000}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+07, 293.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.307007, 0.683993, 0.009000, {0.000000, 0.111647, 0.551128}, {0.000000, 0.731621, 0.000000}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+08, 293.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.991000, 0.000000, 0.009000, {0.000000, 0.539556, 0.170737}, {0.000000, 0.539556, 0.170737}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+06, 313.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.190493, 0.800507, 0.009000, {0.000000, 0.010985, 0.888223}, {0.000000, 0.665337, 0.000000}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+07, 313.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.288620, 0.702380, 0.009000, {0.000000, 0.106713, 0.586237}, {0.000000, 0.717418, 0.000001}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+08, 313.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.991000, 0.000000, 0.009000, {0.000000, 0.539556, 0.170737}, {0.000000, 0.539556, 0.170737}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+06, 353.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.181787, 0.809213, 0.009000, {0.000000, 0.010453, 0.930750}, {0.000000, 0.658417, 0.000003}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+07, 353.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.261660, 0.729340, 0.009000, {0.000000, 0.101277, 0.646622}, {0.000000, 0.696794, 0.000007}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+08, 353.15, {0.009000, 0.003000, 0.534700, 0.114600, 0.087900, 0.045600, 0.020900, 0.015100, 0.169200}, 0.947424, 0.043576, 0.009000, {0.000000, 0.529993, 0.178339}, {0.000000, 0.747468, 0.005438}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+06, 293.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.120388, 0.479612, 0.400000, {0.000000, 0.011551, 0.850996}, {0.000000, 0.672084, 0.000000}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+07, 293.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.185888, 0.414112, 0.400000, {0.000000, 0.111648, 0.551139}, {0.000000, 0.731628, 0.000000}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+08, 293.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.600000, 0.000000, 0.400000, {0.000000, 0.539550, 0.170750}, {0.000000, 0.539550, 0.170750}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+06, 313.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.115342, 0.484658, 0.400000, {0.000000, 0.010985, 0.888229}, {0.000000, 0.665341, 0.000000}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+07, 313.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.174755, 0.425245, 0.400000, {0.000000, 0.106714, 0.586247}, {0.000000, 0.717425, 0.000001}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+08, 313.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.600000, 0.000000, 0.400000, {0.000000, 0.539550, 0.170750}, {0.000000, 0.539550, 0.170750}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+06, 353.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.110071, 0.489929, 0.400000, {0.000000, 0.010453, 0.930753}, {0.000000, 0.658421, 0.000003}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+07, 353.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.158432, 0.441568, 0.400000, {0.000000, 0.101278, 0.646630}, {0.000000, 0.696800, 0.000007}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+08, 353.15, {0.400000, 0.001820, 0.323730, 0.069380, 0.053220, 0.027610, 0.012650, 0.009140, 0.102450}, 0.573644, 0.026356, 0.400000, {0.000000, 0.529997, 0.178345}, {0.000000, 0.747479, 0.005437}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+06, 313.15, {1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000}, 0.000000, 0.000000, 1.000000, {0.000000, 0.125000, 0.125000}, {0.000000, 0.125000, 0.125000}, {1.000000, 0.000000, 0.000000}}, + FlashData<9>{1.0e+08, 353.15, {1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000}, 0.000000, 0.000000, 1.000000, {0.000000, 0.125000, 0.125000}, {0.000000, 0.125000, 0.125000}, {1.000000, 0.000000, 0.000000}} + ) +); + +/* UNCRUSTIFY-ON */ + +} // testing + +} // geos diff --git a/src/coreComponents/constitutive/unitTests/testKValueInitialization.cpp b/src/coreComponents/constitutive/unitTests/testKValueInitialization.cpp index f9de4dbf948..7fde1b28d6d 100644 --- a/src/coreComponents/constitutive/unitTests/testKValueInitialization.cpp +++ b/src/coreComponents/constitutive/unitTests/testKValueInitialization.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testLohrenzBrayClarkViscosity.cpp b/src/coreComponents/constitutive/unitTests/testLohrenzBrayClarkViscosity.cpp index 1d332dd2e62..f74d3c78a26 100644 --- a/src/coreComponents/constitutive/unitTests/testLohrenzBrayClarkViscosity.cpp +++ b/src/coreComponents/constitutive/unitTests/testLohrenzBrayClarkViscosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -15,8 +15,8 @@ // Source includes #include "codingUtilities/UnitTestUtilities.hpp" -#include "constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel.hpp" #include "constitutive/fluid/multifluid/compositional/models/CompositionalDensity.hpp" +#include "constitutive/fluid/multifluid/compositional/models/CriticalVolume.hpp" #include "constitutive/fluid/multifluid/compositional/models/LohrenzBrayClarkViscosity.hpp" #include "TestFluid.hpp" #include "TestFluidUtilities.hpp" @@ -72,7 +72,7 @@ class LohrenzBrayClarkViscosityTestFixture : public ::testing::TestWithParam< V m_parameters = CompositionalDensity::createParameters( std::make_unique< ModelParameters >() ); m_parameters = LohrenzBrayClarkViscosity::createParameters( std::move( m_parameters ) ); - auto * parameters = const_cast< LohrenzBrayClarkViscosity::Parameters * >(m_parameters->get< LohrenzBrayClarkViscosity::Parameters >()); + auto * parameters = const_cast< CriticalVolume * >(m_parameters->get< CriticalVolume >()); parameters->m_componentCriticalVolume.resize( NC ); TestFluid< 9 >::populateArray( parameters->m_componentCriticalVolume, this->m_fluid->criticalVolume ); diff --git a/src/coreComponents/constitutive/unitTests/testModifiedCamClay.cpp b/src/coreComponents/constitutive/unitTests/testModifiedCamClay.cpp index 8aceabd8b9b..7507a986d2c 100644 --- a/src/coreComponents/constitutive/unitTests/testModifiedCamClay.cpp +++ b/src/coreComponents/constitutive/unitTests/testModifiedCamClay.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testNegativeTwoPhaseFlash.cpp b/src/coreComponents/constitutive/unitTests/testNegativeTwoPhaseFlash.cpp index 28ac0c4714b..05db5efdac7 100644 --- a/src/coreComponents/constitutive/unitTests/testNegativeTwoPhaseFlash.cpp +++ b/src/coreComponents/constitutive/unitTests/testNegativeTwoPhaseFlash.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testNegativeTwoPhaseFlash9Comp.cpp b/src/coreComponents/constitutive/unitTests/testNegativeTwoPhaseFlash9Comp.cpp index bbf24832e94..afb9644ba24 100644 --- a/src/coreComponents/constitutive/unitTests/testNegativeTwoPhaseFlash9Comp.cpp +++ b/src/coreComponents/constitutive/unitTests/testNegativeTwoPhaseFlash9Comp.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testParticleFluidEnums.cpp b/src/coreComponents/constitutive/unitTests/testParticleFluidEnums.cpp index 140c71e6745..48ea052e2cc 100644 --- a/src/coreComponents/constitutive/unitTests/testParticleFluidEnums.cpp +++ b/src/coreComponents/constitutive/unitTests/testParticleFluidEnums.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testPropertyConversions.cpp b/src/coreComponents/constitutive/unitTests/testPropertyConversions.cpp index 817b541d970..86cb9470651 100644 --- a/src/coreComponents/constitutive/unitTests/testPropertyConversions.cpp +++ b/src/coreComponents/constitutive/unitTests/testPropertyConversions.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testRachfordRice.cpp b/src/coreComponents/constitutive/unitTests/testRachfordRice.cpp index 7a58389669d..8b771529ac6 100644 --- a/src/coreComponents/constitutive/unitTests/testRachfordRice.cpp +++ b/src/coreComponents/constitutive/unitTests/testRachfordRice.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/unitTests/testStabilityTest2Comp.cpp b/src/coreComponents/constitutive/unitTests/testStabilityTest2Comp.cpp index f0d0d6c2161..a3f200202e8 100644 --- a/src/coreComponents/constitutive/unitTests/testStabilityTest2Comp.cpp +++ b/src/coreComponents/constitutive/unitTests/testStabilityTest2Comp.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -118,8 +118,8 @@ INSTANTIATE_TEST_SUITE_P( ::testing::Values( StabilityData{ 1.00000e+06, 297.15, 0.2, 1.1102230e-16 }, StabilityData{ 1.00000e+06, 353.15, 0.2, -2.2204460e-16 }, - StabilityData{ 5.00000e+06, 297.15, 0.2, -1.0438517e+00 }, - StabilityData{ 5.00000e+06, 353.15, 0.2, -2.0228439e-03 }, + StabilityData{ 5.00000e+06, 297.15, 0.2, -1.0160710e+00 }, + StabilityData{ 5.00000e+06, 353.15, 0.2, -1.4627298e-03 }, StabilityData{ 2.00000e+07, 297.15, 0.2, -3.3306691e-16 }, StabilityData{ 2.00000e+07, 353.15, 0.2, -6.6613381e-16 } ) @@ -130,8 +130,8 @@ INSTANTIATE_TEST_SUITE_P( ::testing::Values( StabilityData{ 1.00000e+06, 297.15, 0.2, -2.2204460e-16 }, StabilityData{ 1.00000e+06, 353.15, 0.2, -3.3306691e-16 }, - StabilityData{ 5.00000e+06, 297.15, 0.2, -1.0966021e+00 }, - StabilityData{ 5.00000e+06, 353.15, 0.2, -3.6652014e-03 }, + StabilityData{ 5.00000e+06, 297.15, 0.2, -1.0780446e+00 }, + StabilityData{ 5.00000e+06, 353.15, 0.2, -3.1421339e-03 }, StabilityData{ 2.00000e+07, 297.15, 0.2, -2.4424907e-15 }, StabilityData{ 2.00000e+07, 353.15, 0.2, -7.7715612e-16 } ) diff --git a/src/coreComponents/constitutive/unitTests/testStabilityTest9Comp.cpp b/src/coreComponents/constitutive/unitTests/testStabilityTest9Comp.cpp index b36366f9261..0a1289223ab 100644 --- a/src/coreComponents/constitutive/unitTests/testStabilityTest9Comp.cpp +++ b/src/coreComponents/constitutive/unitTests/testStabilityTest9Comp.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -199,66 +199,66 @@ TEST_P( SoaveRedlichKwong, testStabilityWithFlash ) INSTANTIATE_TEST_SUITE_P( StabilityTest, PengRobinson, ::testing::Values( - FlashData(1.0e+05, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.668360e+03), - FlashData(1.0e+05, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.245873e+03), - FlashData(1.0e+05, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.881300e+01), - FlashData(1.0e+05, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.448854e+00), - FlashData(1.0e+05, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 0.000000e+00), - FlashData(1.0e+06, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.507053e+00), - FlashData(1.0e+06, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.731470e+00), - FlashData(1.0e+06, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.384422e+02), - FlashData(1.0e+06, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.459664e+01), - FlashData(1.0e+06, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.775558e-17), - FlashData(5.0e+06, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.004630e-01), - FlashData(5.0e+06, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.575407e-01), - FlashData(5.0e+06, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.677416e-01), - FlashData(5.0e+06, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.922930e+00), - FlashData(5.0e+06, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.455769e-03), - FlashData(1.0e+07, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.477463e-01), - FlashData(1.0e+07, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.779360e-01), - FlashData(1.0e+07, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.512251e-01), - FlashData(1.0e+07, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.680029e-01), - FlashData(1.0e+07, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.019289e-02), - FlashData(5.0e+07, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.304512e-15), - FlashData(5.0e+07, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -4.440892e-16), - FlashData(5.0e+07, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.436896e-16), - FlashData(5.0e+07, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.220446e-16), - FlashData(5.0e+07, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -4.996004e-16), - FlashData(1.0e+08, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.082467e-15), - FlashData(1.0e+08, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.415534e-15), - FlashData(1.0e+08, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.582068e-15), - FlashData(1.0e+08, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 3.608225e-16), - FlashData(1.0e+08, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.942890e-16), - FlashData(1.0e+05, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.667936e+03), - FlashData(1.0e+05, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.245689e+03), - FlashData(1.0e+05, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.881008e+01), - FlashData(1.0e+05, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.448537e+00), - FlashData(1.0e+05, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 0.000000e+00), - FlashData(1.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.445375e+00), - FlashData(1.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.673207e+00), - FlashData(1.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.382509e+02), - FlashData(1.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.457261e+01), - FlashData(1.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 0.000000e+00), - FlashData(5.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -8.873231e-01), - FlashData(5.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.449008e-01), - FlashData(5.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.617734e-01), - FlashData(5.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.846717e+00), - FlashData(5.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -4.736791e-03), - FlashData(1.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.414763e-01), - FlashData(1.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.717543e-01), - FlashData(1.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.468894e-01), - FlashData(1.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.660116e-01), - FlashData(1.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.931470e-02), - FlashData(5.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.359224e-15), - FlashData(5.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 4.996004e-16), - FlashData(5.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.054712e-15), - FlashData(5.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.165734e-15), - FlashData(5.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 8.326673e-17), - FlashData(1.0e+08, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.913536e-15), - FlashData(1.0e+08, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.137979e-15), - FlashData(1.0e+08, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 5.273559e-16), - FlashData(1.0e+08, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.275957e-15), - FlashData(1.0e+08, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 6.383782e-16), + FlashData(1.0e+05, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.654557e+03), + FlashData(1.0e+05, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -8.451746e+02), + FlashData(1.0e+05, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.648191e+01), + FlashData(1.0e+05, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.373702e+00), + FlashData(1.0e+05, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.862294e-16), + FlashData(1.0e+06, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.805742e-04), + FlashData(1.0e+06, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.731794e-03), + FlashData(1.0e+06, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.307138e+02), + FlashData(1.0e+06, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.249650e+01), + FlashData(1.0e+06, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.695692e-16), + FlashData(5.0e+06, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -7.864345e-06), + FlashData(5.0e+06, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.661303e-05), + FlashData(5.0e+06, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -7.751816e-02), + FlashData(5.0e+06, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.922828e+00), + FlashData(5.0e+06, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.133069e-03), + FlashData(1.0e+07, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.468194e-01), + FlashData(1.0e+07, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.220020e-01), + FlashData(1.0e+07, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.940155e-03), + FlashData(1.0e+07, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.633758e-02), + FlashData(1.0e+07, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.432557e-03), + FlashData(5.0e+07, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.555613e-15), + FlashData(5.0e+07, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.189698e-16), + FlashData(5.0e+07, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.824334e-16), + FlashData(5.0e+07, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.014082e-16), + FlashData(5.0e+07, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -7.242471e-16), + FlashData(1.0e+08, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.409965e-15), + FlashData(1.0e+08, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.459838e-15), + FlashData(1.0e+08, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.031795e-15), + FlashData(1.0e+08, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -4.224052e-16), + FlashData(1.0e+08, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.127570e-17), + FlashData(1.0e+05, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.654444e+03), + FlashData(1.0e+05, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -8.451167e+02), + FlashData(1.0e+05, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.648008e+01), + FlashData(1.0e+05, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.373450e+00), + FlashData(1.0e+05, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.353084e-16), + FlashData(1.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.937707e-04), + FlashData(1.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.529252e-03), + FlashData(1.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.304552e+02), + FlashData(1.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.246200e+01), + FlashData(1.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.498002e-16), + FlashData(5.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.584882e-05), + FlashData(5.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.710689e-05), + FlashData(5.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -7.513597e-02), + FlashData(5.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.846606e+00), + FlashData(5.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.388927e-03), + FlashData(1.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.436556e-01), + FlashData(1.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.200479e-01), + FlashData(1.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.516862e-03), + FlashData(1.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.407883e-02), + FlashData(1.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -8.400914e-03), + FlashData(5.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.453834e-15), + FlashData(5.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 1.543904e-16), + FlashData(5.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.550044e-16), + FlashData(5.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.092077e-15), + FlashData(5.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.786765e-16), + FlashData(1.0e+08, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -4.206704e-15), + FlashData(1.0e+08, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.204834e-15), + FlashData(1.0e+08, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 4.354156e-16), + FlashData(1.0e+08, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.236059e-15), + FlashData(1.0e+08, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.765422e-17), FlashData(1.0e+05, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+05, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+05, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), @@ -266,215 +266,215 @@ INSTANTIATE_TEST_SUITE_P( FlashData(1.0e+05, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+06, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+06, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 3.330669e-16), + FlashData(1.0e+06, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+06, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+06, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.440892e-16), + FlashData(5.0e+06, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(5.0e+06, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(5.0e+06, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), + FlashData(5.0e+06, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+06, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(5.0e+06, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+07, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), - FlashData(1.0e+07, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.332268e-15), + FlashData(1.0e+07, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+07, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+07, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+07, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+07, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(5.0e+07, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), - FlashData(5.0e+07, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.776357e-15), - FlashData(5.0e+07, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(5.0e+07, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 3.330669e-16), - FlashData(5.0e+07, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(1.0e+08, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 4.440892e-16), - FlashData(1.0e+08, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 4.440892e-16), - FlashData(1.0e+08, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+08, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), + FlashData(1.0e+07, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+07, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+07, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+07, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+07, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+07, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+08, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+08, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+08, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+08, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+08, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -5.329071e-15), - FlashData(1.0e+05, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 7.105427e-15), - FlashData(1.0e+05, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -8.881784e-16), - FlashData(1.0e+05, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.776357e-15), + FlashData(1.0e+05, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+05, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+05, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+05, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(1.0e+05, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(1.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.776357e-15), - FlashData(1.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 3.552714e-15), - FlashData(1.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -3.552714e-15), - FlashData(1.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), - FlashData(1.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -8.881784e-16), + FlashData(1.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(5.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(5.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -5.329071e-15), + FlashData(5.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(5.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(5.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(5.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(1.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 3.552714e-15), - FlashData(1.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -5.329071e-15), - FlashData(1.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), + FlashData(1.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(1.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(1.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.332268e-15), - FlashData(5.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 5.329071e-15), - FlashData(5.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.776357e-15), - FlashData(5.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), + FlashData(1.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(5.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(5.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 4.440892e-16), - FlashData(1.0e+08, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 5.329071e-15), + FlashData(5.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+08, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(1.0e+08, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(1.0e+08, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), - FlashData(1.0e+08, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), + FlashData(1.0e+08, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+08, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(1.0e+08, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(1.0e+05, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), + FlashData(1.0e+05, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), FlashData(1.0e+05, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+05, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+05, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), FlashData(1.0e+05, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), FlashData(1.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), FlashData(1.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.440892e-16), - FlashData(1.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(5.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), - FlashData(5.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(5.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.775558e-16), - FlashData(5.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.775558e-16), - FlashData(1.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), - FlashData(1.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -8.326673e-16), - FlashData(5.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(5.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 3.330669e-16), - FlashData(5.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(5.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+08, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -8.881784e-16), - FlashData(1.0e+08, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-16), - FlashData(1.0e+08, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 7.771561e-16), - FlashData(1.0e+08, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+08, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+05, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.704736e+01), - FlashData(1.0e+05, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.003960e+01), - FlashData(1.0e+05, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.110182e+01), - FlashData(1.0e+05, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.167750e+01), - FlashData(1.0e+05, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.110223e-16), - FlashData(1.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -9.425147e-01), - FlashData(1.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.253370e+00), - FlashData(1.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.421698e+00), + FlashData(1.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.775558e-16), + FlashData(1.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.996004e-16), + FlashData(1.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), + FlashData(5.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.775558e-16), + FlashData(5.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), + FlashData(5.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.330669e-16), + FlashData(5.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), + FlashData(5.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), + FlashData(1.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), + FlashData(1.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.996004e-16), + FlashData(1.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), + FlashData(1.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), + FlashData(1.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), + FlashData(5.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.165734e-15), + FlashData(5.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), + FlashData(5.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), + FlashData(5.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), + FlashData(5.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), + FlashData(1.0e+08, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.054712e-15), + FlashData(1.0e+08, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.665335e-16), + FlashData(1.0e+08, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-16), + FlashData(1.0e+08, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), + FlashData(1.0e+08, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), + FlashData(1.0e+05, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.574938e+01), + FlashData(1.0e+05, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.788764e+01), + FlashData(1.0e+05, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.980440e+01), + FlashData(1.0e+05, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.152737e+01), + FlashData(1.0e+05, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 5.551115e-17), + FlashData(1.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -8.611610e-01), + FlashData(1.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.103151e+00), + FlashData(1.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.526750e+00), FlashData(1.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.845663e+00), FlashData(1.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -5.551115e-17), - FlashData(5.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.332268e-15), - FlashData(5.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.110223e-15), - FlashData(5.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -9.882070e-02), - FlashData(5.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.113573e-01), - FlashData(5.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.077533e-01), - FlashData(1.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.275158e-15), - FlashData(1.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.440892e-16), - FlashData(1.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 3.996803e-15), - FlashData(1.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.110223e-16), - FlashData(1.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.205757e-02), - FlashData(5.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 2.609024e-15), - FlashData(5.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.054712e-15), - FlashData(5.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.720046e-15), - FlashData(5.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.554312e-15), - FlashData(5.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.665335e-16), - FlashData(1.0e+08, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.998401e-15), - FlashData(1.0e+08, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.720046e-15), - FlashData(1.0e+08, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.276756e-15), - FlashData(1.0e+08, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.440892e-16), - FlashData(1.0e+08, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -6.661338e-16), - FlashData(1.0e+05, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+05, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), - FlashData(1.0e+06, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 0.000000e+00), + FlashData(5.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.996004e-16), + FlashData(5.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -9.882069e-02), + FlashData(5.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.113572e-01), + FlashData(5.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -6.662307e-02), + FlashData(1.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.609024e-15), + FlashData(1.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.831069e-15), + FlashData(1.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 8.881784e-16), + FlashData(1.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.776357e-15), + FlashData(1.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.536058e-02), + FlashData(5.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.665335e-16), + FlashData(5.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 9.436896e-16), + FlashData(5.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.609024e-15), + FlashData(5.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -5.551115e-17), + FlashData(5.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.440892e-16), + FlashData(1.0e+08, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.831868e-15), + FlashData(1.0e+08, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.608225e-15), + FlashData(1.0e+08, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.440892e-16), + FlashData(1.0e+08, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 2.164935e-15), + FlashData(1.0e+08, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -9.992007e-16), + FlashData(1.0e+05, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110206e-16), + FlashData(1.0e+05, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110206e-16), + FlashData(1.0e+05, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 3.388132e-21), + FlashData(1.0e+05, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 3.388132e-21), + FlashData(1.0e+05, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110189e-16), + FlashData(1.0e+06, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.098348e-16), + FlashData(1.0e+06, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.103430e-16), + FlashData(1.0e+06, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.694066e-21), + FlashData(1.0e+06, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.330449e-16), FlashData(1.0e+06, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(5.0e+06, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(5.0e+06, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(5.0e+06, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(5.0e+06, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+07, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+07, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(1.0e+07, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(1.0e+07, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(1.0e+07, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+07, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+07, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -6.661338e-16), - FlashData(5.0e+07, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), - FlashData(5.0e+07, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.330669e-16), - FlashData(5.0e+07, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+08, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), - FlashData(1.0e+08, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -8.881784e-16), - FlashData(1.0e+08, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+08, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.330669e-16), - FlashData(1.0e+08, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16) + FlashData(5.0e+06, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110189e-16), + FlashData(5.0e+06, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.254148e-16), + FlashData(5.0e+06, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.218888e-16), + FlashData(5.0e+06, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220412e-16), + FlashData(5.0e+06, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110189e-16), + FlashData(1.0e+07, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.259383e-17), + FlashData(1.0e+07, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.032879e-20), + FlashData(1.0e+07, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110189e-16), + FlashData(1.0e+07, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.694066e-21), + FlashData(1.0e+07, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220429e-16), + FlashData(5.0e+07, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220599e-16), + FlashData(5.0e+07, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -8.266076e-16), + FlashData(5.0e+07, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220463e-16), + FlashData(5.0e+07, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.440858e-16), + FlashData(5.0e+07, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.111900e-16), + FlashData(1.0e+08, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220463e-16), + FlashData(1.0e+08, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.925937e-16), + FlashData(1.0e+08, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.198447e-16), + FlashData(1.0e+08, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.541336e-16), + FlashData(1.0e+08, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.223851e-16) ) ); INSTANTIATE_TEST_SUITE_P( StabilityTest, SoaveRedlichKwong, ::testing::Values( - FlashData(1.0e+05, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.340952e+03), - FlashData(1.0e+05, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.523837e+03), - FlashData(1.0e+05, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.181331e+01), - FlashData(1.0e+05, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.678230e+00), - FlashData(1.0e+05, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.775558e-17), - FlashData(1.0e+06, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.676592e+00), - FlashData(1.0e+06, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.892215e+00), - FlashData(1.0e+06, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.543862e+02), - FlashData(1.0e+06, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.627522e+01), - FlashData(1.0e+06, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 0.000000e+00), - FlashData(5.0e+06, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.322679e-01), - FlashData(5.0e+06, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.886802e-01), - FlashData(5.0e+06, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.004309e+00), - FlashData(5.0e+06, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.584734e+00), - FlashData(5.0e+06, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.238911e-02), - FlashData(1.0e+07, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.605851e-01), - FlashData(1.0e+07, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.907913e-01), - FlashData(1.0e+07, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.671620e-01), - FlashData(1.0e+07, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.904301e-01), - FlashData(1.0e+07, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.614633e-02), - FlashData(5.0e+07, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.273559e-16), - FlashData(5.0e+07, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.159340e-16), - FlashData(5.0e+07, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 8.326673e-17), - FlashData(5.0e+07, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.081668e-15), - FlashData(5.0e+07, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.159340e-16), - FlashData(1.0e+08, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.110223e-15), - FlashData(1.0e+08, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.165734e-15), - FlashData(1.0e+08, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.551115e-16), - FlashData(1.0e+08, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 4.163336e-16), - FlashData(1.0e+08, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.383782e-16), - FlashData(1.0e+05, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.340423e+03), - FlashData(1.0e+05, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.523613e+03), - FlashData(1.0e+05, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.181013e+01), - FlashData(1.0e+05, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.677900e+00), - FlashData(1.0e+05, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -8.326673e-17), - FlashData(1.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.611739e+00), - FlashData(1.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.831153e+00), - FlashData(1.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.541747e+02), - FlashData(1.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.624997e+01), - FlashData(1.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.551115e-17), - FlashData(5.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.183708e-01), - FlashData(5.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.753463e-01), - FlashData(5.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.976633e-01), - FlashData(5.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.515763e+00), - FlashData(5.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.164655e-02), - FlashData(1.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.538864e-01), - FlashData(1.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.842051e-01), - FlashData(1.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.624915e-01), - FlashData(1.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.880849e-01), - FlashData(1.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.514356e-02), - FlashData(5.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.415534e-15), - FlashData(5.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -7.494005e-16), - FlashData(5.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 9.159340e-16), - FlashData(5.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 9.436896e-16), - FlashData(5.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.942890e-16), - FlashData(1.0e+08, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -7.771561e-16), - FlashData(1.0e+08, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 1.387779e-16), - FlashData(1.0e+08, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.828671e-16), - FlashData(1.0e+08, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 1.193490e-15), - FlashData(1.0e+08, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.942890e-16), + FlashData(1.0e+05, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.814994e+03), + FlashData(1.0e+05, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.241583e+02), + FlashData(1.0e+05, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.828694e+01), + FlashData(1.0e+05, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.557644e+00), + FlashData(1.0e+05, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.736526e-16), + FlashData(1.0e+06, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.257797e-03), + FlashData(1.0e+06, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.641615e-03), + FlashData(1.0e+06, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.511074e+02), + FlashData(1.0e+06, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.482449e+01), + FlashData(1.0e+06, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.509209e-16), + FlashData(5.0e+06, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.708694e-05), + FlashData(5.0e+06, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.932987e-04), + FlashData(5.0e+06, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.840385e-02), + FlashData(5.0e+06, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.584587e+00), + FlashData(5.0e+06, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.029479e-02), + FlashData(1.0e+07, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.674182e-01), + FlashData(1.0e+07, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.444982e-01), + FlashData(1.0e+07, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.201703e-03), + FlashData(1.0e+07, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.402326e-02), + FlashData(1.0e+07, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.715992e-02), + FlashData(5.0e+07, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.502339e-15), + FlashData(5.0e+07, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -8.907805e-16), + FlashData(5.0e+07, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.071532e-16), + FlashData(5.0e+07, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.840219e-16), + FlashData(5.0e+07, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.379446e-16), + FlashData(1.0e+08, 2.8815e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.673141e-15), + FlashData(1.0e+08, 2.9715e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -8.729996e-16), + FlashData(1.0e+08, 3.5315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 5.551115e-17), + FlashData(1.0e+08, 3.9315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 6.977925e-16), + FlashData(1.0e+08, 5.7315e+02, {0.00900, 0.00300, 0.53470, 0.11460, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.179612e-15), + FlashData(1.0e+05, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.814881e+03), + FlashData(1.0e+05, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -9.241007e+02), + FlashData(1.0e+05, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.828513e+01), + FlashData(1.0e+05, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.557396e+00), + FlashData(1.0e+05, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.769418e-16), + FlashData(1.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.170713e-03), + FlashData(1.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.444682e-03), + FlashData(1.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.508509e+02), + FlashData(1.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.479052e+01), + FlashData(1.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.179612e-16), + FlashData(5.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.705802e-05), + FlashData(5.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.542653e-04), + FlashData(5.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.637320e-02), + FlashData(5.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.515601e+00), + FlashData(5.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.953021e-02), + FlashData(1.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.633584e-01), + FlashData(1.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.416234e-01), + FlashData(1.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -4.840113e-03), + FlashData(1.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -5.210515e-02), + FlashData(1.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.603198e-02), + FlashData(5.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -2.909131e-15), + FlashData(5.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.826664e-15), + FlashData(5.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 3.972517e-16), + FlashData(5.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -8.812395e-16), + FlashData(5.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -6.002143e-16), + FlashData(1.0e+08, 2.8815e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -3.093012e-15), + FlashData(1.0e+08, 2.9715e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -1.975850e-15), + FlashData(1.0e+08, 3.5315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 9.055257e-16), + FlashData(1.0e+08, 3.9315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, 8.396062e-16), + FlashData(1.0e+08, 5.7315e+02, {0.00000, 0.00000, 0.53770, 0.12360, 0.08790, 0.04560, 0.02090, 0.01510, 0.16920}, -4.961309e-16), FlashData(1.0e+05, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+05, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+05, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), @@ -485,146 +485,146 @@ INSTANTIATE_TEST_SUITE_P( FlashData(1.0e+06, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+06, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+06, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.440892e-16), - FlashData(5.0e+06, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 4.440892e-16), + FlashData(5.0e+06, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+06, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(5.0e+06, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), + FlashData(5.0e+06, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(5.0e+06, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+07, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -8.881784e-16), - FlashData(1.0e+07, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 8.881784e-16), - FlashData(1.0e+07, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 6.661338e-16), - FlashData(1.0e+07, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), + FlashData(1.0e+07, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+07, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+07, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+07, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+07, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+07, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-15), - FlashData(5.0e+07, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 4.440892e-16), - FlashData(5.0e+07, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.440892e-16), + FlashData(5.0e+07, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+07, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+07, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(5.0e+07, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(5.0e+07, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+08, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 8.881784e-16), - FlashData(1.0e+08, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.776357e-15), - FlashData(1.0e+08, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -6.661338e-16), - FlashData(1.0e+08, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+08, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+05, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), - FlashData(1.0e+05, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.776357e-15), + FlashData(1.0e+08, 2.8815e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+08, 2.9715e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+08, 3.5315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+08, 3.9315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+08, 5.7315e+02, {1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+05, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+05, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(1.0e+05, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(1.0e+05, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 4.440892e-15), + FlashData(1.0e+05, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(1.0e+05, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(1.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -3.552714e-15), - FlashData(1.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), - FlashData(1.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -4.440892e-15), - FlashData(1.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 8.881784e-16), - FlashData(1.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -2.664535e-15), - FlashData(5.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.421085e-14), - FlashData(5.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -5.329071e-15), + FlashData(1.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+06, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+06, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(5.0e+06, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), - FlashData(5.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -8.881784e-16), - FlashData(5.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 8.881784e-16), - FlashData(1.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 8.881784e-15), - FlashData(1.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), - FlashData(1.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -1.776357e-15), - FlashData(1.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -8.881784e-16), - FlashData(1.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, -8.881784e-16), - FlashData(5.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 8.881784e-15), - FlashData(5.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 3.552714e-15), - FlashData(5.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.776357e-15), - FlashData(5.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.776357e-15), - FlashData(5.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 4.440892e-16), - FlashData(1.0e+08, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 5.329071e-15), - FlashData(1.0e+08, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.776357e-15), - FlashData(1.0e+08, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 1.776357e-15), - FlashData(1.0e+08, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 8.881784e-16), + FlashData(5.0e+06, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+06, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+07, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+07, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+07, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+07, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(5.0e+07, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+08, 2.8815e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+08, 2.9715e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+08, 3.5315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), + FlashData(1.0e+08, 3.9315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(1.0e+08, 5.7315e+02, {0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000}, 0.000000e+00), FlashData(1.0e+05, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), - FlashData(1.0e+05, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 3.330669e-16), - FlashData(1.0e+05, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+05, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), + FlashData(1.0e+05, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.775558e-16), + FlashData(1.0e+05, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), + FlashData(1.0e+05, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.775558e-16), FlashData(1.0e+05, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(1.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.665335e-16), FlashData(1.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), - FlashData(1.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), - FlashData(5.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), - FlashData(5.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.330669e-16), - FlashData(5.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110223e-16), + FlashData(1.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), + FlashData(1.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), + FlashData(5.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.775558e-16), + FlashData(5.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(5.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.440892e-16), + FlashData(5.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), FlashData(5.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-16), - FlashData(1.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), + FlashData(1.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -6.106227e-16), + FlashData(1.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.885781e-16), FlashData(1.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), - FlashData(1.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -4.440892e-16), - FlashData(1.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.330669e-16), - FlashData(5.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -8.326673e-16), - FlashData(5.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(5.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.885781e-16), - FlashData(5.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), - FlashData(1.0e+08, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-16), + FlashData(1.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.885781e-16), + FlashData(1.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), + FlashData(5.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -6.106227e-16), + FlashData(5.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -9.436896e-16), + FlashData(5.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -3.885781e-16), + FlashData(5.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), + FlashData(5.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), + FlashData(1.0e+08, 2.8815e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 5.551115e-17), FlashData(1.0e+08, 2.9715e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-16), - FlashData(1.0e+08, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -8.881784e-16), - FlashData(1.0e+08, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), - FlashData(1.0e+08, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -5.551115e-17), - FlashData(1.0e+05, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.685339e+01), - FlashData(1.0e+05, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.983114e+01), - FlashData(1.0e+05, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.069141e+01), - FlashData(1.0e+05, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.232891e+01), + FlashData(1.0e+08, 3.5315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -9.436896e-16), + FlashData(1.0e+08, 3.9315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), + FlashData(1.0e+08, 5.7315e+02, {0.50000, 0.00000, 0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.665335e-16), + FlashData(1.0e+05, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.547585e+01), + FlashData(1.0e+05, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.757647e+01), + FlashData(1.0e+05, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.891242e+01), + FlashData(1.0e+05, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.206762e+01), FlashData(1.0e+05, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.220446e-16), - FlashData(1.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -9.169123e-01), - FlashData(1.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.225912e+00), - FlashData(1.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.372920e+00), + FlashData(1.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -8.275766e-01), + FlashData(1.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.064839e+00), + FlashData(1.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.425766e+00), FlashData(1.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.771453e+00), - FlashData(1.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.885781e-16), - FlashData(5.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 2.886580e-15), - FlashData(5.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 8.881784e-16), - FlashData(5.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -8.067043e-02), - FlashData(5.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.893772e-01), - FlashData(5.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.360564e-01), - FlashData(1.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.220446e-15), - FlashData(1.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.554312e-15), - FlashData(1.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.440892e-15), - FlashData(1.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 2.220446e-15), - FlashData(1.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.378407e-02), - FlashData(5.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.720046e-15), - FlashData(5.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.220446e-16), - FlashData(5.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.054712e-15), - FlashData(5.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -6.661338e-16), - FlashData(5.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 0.000000e+00), - FlashData(1.0e+08, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.998401e-15), - FlashData(1.0e+08, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -6.106227e-16), - FlashData(1.0e+08, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.720846e-15), - FlashData(1.0e+08, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.440892e-16), - FlashData(1.0e+08, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.330669e-16), - FlashData(1.0e+05, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+05, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+06, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(5.0e+06, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(5.0e+06, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+06, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+07, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+07, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+07, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+07, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(1.0e+07, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(5.0e+07, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(5.0e+07, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220446e-16), - FlashData(5.0e+07, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), - FlashData(5.0e+07, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(5.0e+07, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+08, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -6.661338e-16), - FlashData(1.0e+08, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 2.220446e-16), - FlashData(1.0e+08, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), - FlashData(1.0e+08, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00), - FlashData(1.0e+08, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 0.000000e+00) + FlashData(1.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.330669e-16), + FlashData(5.0e+06, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.052314e-15), + FlashData(5.0e+06, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.554312e-15), + FlashData(5.0e+06, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -8.067042e-02), + FlashData(5.0e+06, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.893771e-01), + FlashData(5.0e+06, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.938871e-02), + FlashData(1.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.552714e-15), + FlashData(1.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 1.831868e-15), + FlashData(1.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.440892e-16), + FlashData(1.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.110223e-16), + FlashData(1.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -3.809697e-02), + FlashData(5.0e+07, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.498801e-15), + FlashData(5.0e+07, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 3.608225e-15), + FlashData(5.0e+07, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, 3.053113e-15), + FlashData(5.0e+07, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.609823e-15), + FlashData(5.0e+07, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -5.551115e-17), + FlashData(1.0e+08, 2.8815e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.276756e-15), + FlashData(1.0e+08, 2.9715e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -2.886580e-15), + FlashData(1.0e+08, 3.5315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -8.326673e-16), + FlashData(1.0e+08, 3.9315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -1.720846e-15), + FlashData(1.0e+08, 5.7315e+02, {0.50000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.50000}, -4.440892e-16), + FlashData(1.0e+05, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220395e-16), + FlashData(1.0e+05, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110071e-16), + FlashData(1.0e+05, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110206e-16), + FlashData(1.0e+05, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110189e-16), + FlashData(1.0e+05, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110189e-16), + FlashData(1.0e+06, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.206961e-16), + FlashData(1.0e+06, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.108224e-16), + FlashData(1.0e+06, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110240e-16), + FlashData(1.0e+06, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -8.470329e-21), + FlashData(1.0e+06, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110223e-16), + FlashData(5.0e+06, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.706067e-16), + FlashData(5.0e+06, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110189e-16), + FlashData(5.0e+06, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110206e-16), + FlashData(5.0e+06, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.113577e-16), + FlashData(5.0e+06, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 3.388132e-21), + FlashData(1.0e+07, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220412e-16), + FlashData(1.0e+07, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.694066e-21), + FlashData(1.0e+07, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110189e-16), + FlashData(1.0e+07, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.192985e-16), + FlashData(1.0e+07, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220429e-16), + FlashData(5.0e+07, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220243e-16), + FlashData(5.0e+07, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.524659e-20), + FlashData(5.0e+07, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110206e-16), + FlashData(5.0e+07, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.220260e-16), + FlashData(5.0e+07, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.108190e-16), + FlashData(1.0e+08, 2.8815e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -6.661135e-16), + FlashData(1.0e+08, 2.9715e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.110375e-16), + FlashData(1.0e+08, 3.5315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -2.995007e-16), + FlashData(1.0e+08, 3.9315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, 1.110240e-16), + FlashData(1.0e+08, 5.7315e+02, {0.00001, 0.00000, 0.99999, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000}, -1.105768e-16) ) ); diff --git a/src/coreComponents/constitutive/unitTests/testTriaxial.cpp b/src/coreComponents/constitutive/unitTests/testTriaxial.cpp index 6cdc9f64237..009d7727d9a 100644 --- a/src/coreComponents/constitutive/unitTests/testTriaxial.cpp +++ b/src/coreComponents/constitutive/unitTests/testTriaxial.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutiveDrivers/CMakeLists.txt b/src/coreComponents/constitutiveDrivers/CMakeLists.txt new file mode 100644 index 00000000000..41e4a946d28 --- /dev/null +++ b/src/coreComponents/constitutiveDrivers/CMakeLists.txt @@ -0,0 +1,57 @@ +# +# Specify all headers +# +set( constitutiveDrivers_headers + fluid/multiFluid/PVTDriver.hpp + fluid/multiFluid/PVTDriverRunTest.hpp + fluid/multiFluid/reactive/ReactiveFluidDriver.hpp + relativePermeability/RelpermDriver.hpp + relativePermeability/RelpermDriverRunTest.hpp + solid/TriaxialDriver.hpp + ) +# +# Specify all sources +# +set( constitutiveDrivers_sources + fluid/multiFluid/PVTDriver.cpp + fluid/multiFluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp + fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsFluid.cpp + fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsThermalFluid.cpp + fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiFluid.cpp + fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiThermalFluid.cpp + fluid/multiFluid/compositional/PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp + fluid/multiFluid/compositional/PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp + fluid/multiFluid/reactive/ReactiveFluidDriver.cpp + relativePermeability/RelpermDriver.cpp + relativePermeability/RelpermDriverBrooksCoreyBakerRunTest.cpp + relativePermeability/RelpermDriverBrooksCoreyStone2RunTest.cpp + relativePermeability/RelpermDriverBrooksCoreyRunTest.cpp + relativePermeability/RelpermDriverVanGenuchtenBakerRunTest.cpp + relativePermeability/RelpermDriverVanGenuchtenStone2RunTest.cpp + relativePermeability/RelpermDriverTableRelativeRunTest.cpp + relativePermeability/RelpermDriverTableRelativeHysteresisRunTest.cpp + solid/TriaxialDriver.cpp + ) + +set( dependencyList ${parallelDeps} constitutive events ) + +if( ENABLE_PVTPackage ) + set( constitutiveDrivers_sources + ${constitutiveDrivers_sources} + fluid/multiFluid/compositional/PVTDriverRunTestCompositionalMultiphaseFluid.cpp + ) +endif() + +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + +blt_add_library( NAME constitutiveDrivers + SOURCES ${constitutiveDrivers_sources} + HEADERS ${constitutiveDrivers_headers} + DEPENDS_ON ${decoratedDependencies} + OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} + ) + +target_include_directories( constitutiveDrivers PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS constitutiveDrivers LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/constitutiveDrivers/docs/ConstitutiveDrivers.rst b/src/coreComponents/constitutiveDrivers/docs/ConstitutiveDrivers.rst new file mode 100644 index 00000000000..8ad6a17ca83 --- /dev/null +++ b/src/coreComponents/constitutiveDrivers/docs/ConstitutiveDrivers.rst @@ -0,0 +1,13 @@ +.. _ConstitutiveDrivers: + +Constitutive Drivers +============================================ +To test and calibrate constitutive models, GEOS provides a set of drivers that can be used to run simulations with specific input parameters. +These drivers are designed to facilitate the exploration of various constitutive behaviors and to validate the models against known benchmarks. + +.. toctree:: + :maxdepth: 1 + + PVTDriver + + TriaxialDriver diff --git a/src/coreComponents/constitutive/docs/PVTDriver.rst b/src/coreComponents/constitutiveDrivers/docs/PVTDriver.rst similarity index 99% rename from src/coreComponents/constitutive/docs/PVTDriver.rst rename to src/coreComponents/constitutiveDrivers/docs/PVTDriver.rst index ae9563480c1..eaa849ea060 100644 --- a/src/coreComponents/constitutive/docs/PVTDriver.rst +++ b/src/coreComponents/constitutiveDrivers/docs/PVTDriver.rst @@ -80,7 +80,7 @@ Parameters ---------- The key XML parameters for the PVTDriver are summarized in the following table: -.. include:: /coreComponents/schema/docs/PVTDriver.rst +.. include:: /docs/sphinx/datastructure/PVTDriver.rst Output Format ------------- diff --git a/src/coreComponents/constitutive/docs/solid/TriaxialDriver.rst b/src/coreComponents/constitutiveDrivers/docs/TriaxialDriver.rst similarity index 98% rename from src/coreComponents/constitutive/docs/solid/TriaxialDriver.rst rename to src/coreComponents/constitutiveDrivers/docs/TriaxialDriver.rst index 8ddede6ba58..ced93bc86f7 100644 --- a/src/coreComponents/constitutive/docs/solid/TriaxialDriver.rst +++ b/src/coreComponents/constitutiveDrivers/docs/TriaxialDriver.rst @@ -21,7 +21,7 @@ XML Structure ------------- A typical XML file to run the triaxial driver will have the following key elements. We present the whole file first, before digging into the individual blocks. -.. literalinclude:: ../../../unitTests/constitutiveTests/testTriaxial_druckerPragerExtended.xml +.. literalinclude:: ../../unitTests/constitutiveTests/testTriaxial_druckerPragerExtended.xml :language: xml The first thing to note is that the XML structure is identical to a standard GEOS input deck. In fact, once the constitutive block is calibrated, one could start adding solver and discretization blocks to the same file to create a proper field simulation. This makes it easy to go back and forth between calibration and simulation. @@ -32,7 +32,7 @@ Internally, the triaxial driver uses a simple form of time-stepping to advance t The key parameters for the TriaxialDriver are: -.. include:: /coreComponents/schema/docs/TriaxialDriver.rst +.. include:: /docs/sphinx/datastructure/TriaxialDriver.rst .. note:: diff --git a/src/coreComponents/constitutive/docs/solid/TriaxialDriver.svg b/src/coreComponents/constitutiveDrivers/docs/TriaxialDriver.svg similarity index 100% rename from src/coreComponents/constitutive/docs/solid/TriaxialDriver.svg rename to src/coreComponents/constitutiveDrivers/docs/TriaxialDriver.svg diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiFluid.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiFluid.cpp similarity index 89% rename from src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiFluid.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiFluid.cpp index 37e0092277e..fb0ab379189 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiFluid.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -13,7 +13,7 @@ * ------------------------------------------------------------------------------------------------------------ */ -#include "constitutive/fluid/multifluid/PVTDriverRunTest.hpp" +#include "constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp" #include "constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.hpp" namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiThermalFluid.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiThermalFluid.cpp similarity index 89% rename from src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiThermalFluid.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiThermalFluid.cpp index a42c0773420..a27cfb29699 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiThermalFluid.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrineEzrokhiThermalFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -13,7 +13,7 @@ * ------------------------------------------------------------------------------------------------------------ */ -#include "constitutive/fluid/multifluid/PVTDriverRunTest.hpp" +#include "constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp" #include "constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.hpp" namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsFluid.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsFluid.cpp similarity index 89% rename from src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsFluid.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsFluid.cpp index a7fe70a0b0d..145b2faae17 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsFluid.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -13,7 +13,7 @@ * ------------------------------------------------------------------------------------------------------------ */ -#include "constitutive/fluid/multifluid/PVTDriverRunTest.hpp" +#include "constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp" #include "constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.hpp" namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsThermalFluid.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsThermalFluid.cpp similarity index 89% rename from src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsThermalFluid.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsThermalFluid.cpp index 4536efa96f5..d6f41b1bf52 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsThermalFluid.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/CO2Brine/PVTDriverRunTestCO2BrinePhillipsThermalFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -13,7 +13,7 @@ * ------------------------------------------------------------------------------------------------------------ */ -#include "constitutive/fluid/multifluid/PVTDriverRunTest.hpp" +#include "constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp" #include "constitutive/fluid/multifluid/CO2Brine/CO2BrineFluid.hpp" namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/PVTDriver.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.cpp similarity index 99% rename from src/coreComponents/constitutive/fluid/multifluid/PVTDriver.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.cpp index 8a987d2168b..47150da347f 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/PVTDriver.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -24,7 +24,7 @@ #include "constitutive/fluid/multifluid/MultiFluidBase.hpp" #include "constitutive/fluid/multifluid/MultiFluidSelector.hpp" #include "constitutive/fluid/multifluid/MultiFluidConstants.hpp" -#include "fileIO/Outputs/OutputBase.hpp" +//#include "fileIO/Outputs/OutputBase.hpp" #include "functions/FunctionManager.hpp" #include "functions/TableFunction.hpp" #include "common/format/StringUtilities.hpp" diff --git a/src/coreComponents/constitutive/fluid/multifluid/PVTDriver.hpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.hpp similarity index 99% rename from src/coreComponents/constitutive/fluid/multifluid/PVTDriver.hpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.hpp index 958c9fdfac3..dda67dac39c 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/PVTDriver.hpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/PVTDriverRunTest.hpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp similarity index 99% rename from src/coreComponents/constitutive/fluid/multifluid/PVTDriverRunTest.hpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp index 5a8594a34cc..0a0254b196f 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/PVTDriverRunTest.hpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp similarity index 91% rename from src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp index 86ae569e672..829f310e773 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/blackOil/PVTDriverRunTestDeadOilFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,7 +17,7 @@ * PVTDriverRunTestDeadOilFluid.cpp */ -#include "constitutive/fluid/multifluid/PVTDriverRunTest.hpp" +#include "constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp" #include "constitutive/fluid/multifluid/blackOil/DeadOilFluid.hpp" #include "constitutive/fluid/multifluid/blackOil/BlackOilFluid.hpp" diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalMultiphaseFluid.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalMultiphaseFluid.cpp similarity index 90% rename from src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalMultiphaseFluid.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalMultiphaseFluid.cpp index 95d7805133b..dbf4cf32eef 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalMultiphaseFluid.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalMultiphaseFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,7 +17,7 @@ * PVTDriverRunTestCompositionalMultiphaseFluid.cpp */ -#include "constitutive/fluid/multifluid/PVTDriverRunTest.hpp" +#include "constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp" #include "constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidPVTPackage.hpp" namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp similarity index 90% rename from src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp index 5e3a7da05d5..821b98d216e 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,7 +17,7 @@ * PVTDriverRunTestCompositionalTwoPhaseConstantViscosity.cpp */ -#include "constitutive/fluid/multifluid/PVTDriverRunTest.hpp" +#include "constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp" #include "constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.hpp" namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp similarity index 90% rename from src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp index f1c85834b70..ba69e1f711d 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/compositional/PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,7 +17,7 @@ * PVTDriverRunTestCompositionalTwoPhaseLohrenzBrayClarkViscosity.cpp */ -#include "constitutive/fluid/multifluid/PVTDriverRunTest.hpp" +#include "constitutiveDrivers/fluid/multiFluid/PVTDriverRunTest.hpp" #include "constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.hpp" namespace geos diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidDriver.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.cpp similarity index 99% rename from src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidDriver.cpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.cpp index 7c95359f28a..8c2cc1f083f 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidDriver.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -18,7 +18,6 @@ */ #include "ReactiveFluidDriver.hpp" -#include "fileIO/Outputs/OutputBase.hpp" #include "constitutive/fluid/multifluid/CO2Brine/functions/PureWaterProperties.hpp" #include "functions/TableFunction.hpp" #include "functions/FunctionManager.hpp" diff --git a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidDriver.hpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.hpp similarity index 94% rename from src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidDriver.hpp rename to src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.hpp index 5f8ff2f2597..57f273e3b1e 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/reactive/ReactiveFluidDriver.hpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -32,8 +32,6 @@ namespace geos { -using namespace constitutive; - /** * @class ReactiveFluidDriver * @@ -114,7 +112,8 @@ class ReactiveFluidDriver : public TaskBase enum columnKeys { TIME, PRES, TEMP }; ///< Enumeration of "input" column keys for readability - static constexpr real64 m_baselineTol = MultiFluidConstants::baselineTolerance; ///< Comparison tolerance for baseline results + static constexpr real64 m_baselineTol = constitutive::MultiFluidConstants::baselineTolerance; ///< Comparison tolerance for baseline + ///< results }; } /* namespace geos */ diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriver.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.cpp similarity index 99% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriver.cpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.cpp index e2d684d74ca..75c701977d9 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriver.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriver.hpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.hpp similarity index 99% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriver.hpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.hpp index 890d453dc9f..b2516879f99 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriver.hpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyBakerRunTest.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyBakerRunTest.cpp similarity index 88% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyBakerRunTest.cpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyBakerRunTest.cpp index c46982327aa..578a3d59522 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyBakerRunTest.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyBakerRunTest.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,7 +14,7 @@ */ #include "RelpermDriverRunTest.hpp" -#include "BrooksCoreyBakerRelativePermeability.hpp" +#include "constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.hpp" namespace geos diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyRunTest.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyRunTest.cpp similarity index 88% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyRunTest.cpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyRunTest.cpp index 6fb6f873dbc..7e492550302 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyRunTest.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyRunTest.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,7 +14,7 @@ */ #include "RelpermDriverRunTest.hpp" -#include "BrooksCoreyRelativePermeability.hpp" +#include "constitutive/relativePermeability/BrooksCoreyRelativePermeability.hpp" namespace geos diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyStone2RunTest.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyStone2RunTest.cpp similarity index 88% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyStone2RunTest.cpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyStone2RunTest.cpp index 57efb4ff67a..c1ca451cdc2 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriverBrooksCoreyStone2RunTest.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverBrooksCoreyStone2RunTest.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,7 +14,7 @@ */ #include "RelpermDriverRunTest.hpp" -#include "BrooksCoreyStone2RelativePermeability.hpp" +#include "constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.hpp" namespace geos diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriverRunTest.hpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverRunTest.hpp similarity index 90% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriverRunTest.hpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverRunTest.hpp index a6fe4f06212..7187ae8feb9 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriverRunTest.hpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverRunTest.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -16,19 +16,18 @@ #ifndef GEOS_RELPERMDRIVERRUNTEST_HPP_ #define GEOS_RELPERMDRIVERRUNTEST_HPP_ -#include "constitutive/relativePermeability/RelpermDriver.hpp" +#include "constitutiveDrivers/relativePermeability/RelpermDriver.hpp" #include "constitutive/relativePermeability/RelativePermeabilityFields.hpp" -#include "layouts.hpp" +#include "constitutive/relativePermeability/layouts.hpp" namespace geos { -using namespace constitutive; - //specific to Hysteresis template< typename RELPERM_TYPE > -std::enable_if_t< std::is_same< TableRelativePermeabilityHysteresis, RELPERM_TYPE >::value, void > +std::enable_if_t< std::is_same< constitutive::TableRelativePermeabilityHysteresis, + RELPERM_TYPE >::value, void > RelpermDriver::runTest( RELPERM_TYPE & relperm, const arrayView2d< real64 > & table ) { @@ -37,7 +36,7 @@ RelpermDriver::runTest( RELPERM_TYPE & relperm, // create kernel wrapper - typename TableRelativePermeabilityHysteresis::KernelWrapper const kernelWrapper = relperm.createKernelWrapper(); + typename constitutive::TableRelativePermeabilityHysteresis::KernelWrapper const kernelWrapper = relperm.createKernelWrapper(); // set saturation to user specified feed // it is more convenient to provide input in molar, so perform molar to mass conversion here @@ -91,15 +90,15 @@ RelpermDriver::runTest( RELPERM_TYPE & relperm, arrayView2d< real64 const, compflow::USD_PHASE > const saturation = saturationValues.toViewConst(); - auto const & phaseHasHysteresis = relperm.template getReference< array1d< integer > >( TableRelativePermeabilityHysteresis::viewKeyStruct::phaseHasHysteresisString()); + auto const & phaseHasHysteresis = relperm.template getReference< array1d< integer > >( constitutive::TableRelativePermeabilityHysteresis::viewKeyStruct::phaseHasHysteresisString()); arrayView2d< real64, compflow::USD_PHASE > phaseMaxHistoricalVolFraction = relperm.template getField< fields::relperm::phaseMaxHistoricalVolFraction >().reference(); arrayView2d< real64, compflow::USD_PHASE > phaseMinHistoricalVolFraction = relperm.template getField< fields::relperm::phaseMinHistoricalVolFraction >().reference(); arrayView1d< real64 > const drainagePhaseMinVolFraction = relperm.template getReference< array1d< real64 > >( - TableRelativePermeabilityHysteresis::viewKeyStruct::drainagePhaseMinVolumeFractionString()); + constitutive::TableRelativePermeabilityHysteresis::viewKeyStruct::drainagePhaseMinVolumeFractionString()); arrayView1d< real64 > const drainagePhaseMaxVolFraction = relperm.template getReference< array1d< real64 > >( - TableRelativePermeabilityHysteresis::viewKeyStruct::drainagePhaseMaxVolumeFractionString()); + constitutive::TableRelativePermeabilityHysteresis::viewKeyStruct::drainagePhaseMaxVolumeFractionString()); //setting for drainage { @@ -165,7 +164,7 @@ RelpermDriver::runTest( RELPERM_TYPE & relperm, } template< typename RELPERM_TYPE > -std::enable_if_t< !std::is_same< TableRelativePermeabilityHysteresis, RELPERM_TYPE >::value, void > +std::enable_if_t< !std::is_same< constitutive::TableRelativePermeabilityHysteresis, RELPERM_TYPE >::value, void > RelpermDriver::runTest( RELPERM_TYPE & relperm, const arrayView2d< real64 > & table ) { diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriverTableRelativeHysteresisRunTest.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverTableRelativeHysteresisRunTest.cpp similarity index 88% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriverTableRelativeHysteresisRunTest.cpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverTableRelativeHysteresisRunTest.cpp index b3572d74fe3..cad00bfc8a1 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriverTableRelativeHysteresisRunTest.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverTableRelativeHysteresisRunTest.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,7 +14,7 @@ */ #include "RelpermDriverRunTest.hpp" -#include "TableRelativePermeabilityHysteresis.hpp" +#include "constitutive/relativePermeability/TableRelativePermeabilityHysteresis.hpp" namespace geos diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriverTableRelativeRunTest.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverTableRelativeRunTest.cpp similarity index 88% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriverTableRelativeRunTest.cpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverTableRelativeRunTest.cpp index bfa0ad9c510..22b21ea79d8 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriverTableRelativeRunTest.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverTableRelativeRunTest.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,7 +14,7 @@ */ #include "RelpermDriverRunTest.hpp" -#include "TableRelativePermeability.hpp" +#include "constitutive/relativePermeability/TableRelativePermeability.hpp" namespace geos diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriverVanGenuchtenBakerRunTest.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverVanGenuchtenBakerRunTest.cpp similarity index 88% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriverVanGenuchtenBakerRunTest.cpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverVanGenuchtenBakerRunTest.cpp index 3de1845934b..45b9400a33e 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriverVanGenuchtenBakerRunTest.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverVanGenuchtenBakerRunTest.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,7 +14,7 @@ */ #include "RelpermDriverRunTest.hpp" -#include "VanGenuchtenBakerRelativePermeability.hpp" +#include "constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.hpp" namespace geos diff --git a/src/coreComponents/constitutive/relativePermeability/RelpermDriverVanGenuchtenStone2RunTest.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverVanGenuchtenStone2RunTest.cpp similarity index 87% rename from src/coreComponents/constitutive/relativePermeability/RelpermDriverVanGenuchtenStone2RunTest.cpp rename to src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverVanGenuchtenStone2RunTest.cpp index 4e3ef1fc796..caac2444ec7 100644 --- a/src/coreComponents/constitutive/relativePermeability/RelpermDriverVanGenuchtenStone2RunTest.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriverVanGenuchtenStone2RunTest.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,7 +14,7 @@ */ #include "RelpermDriverRunTest.hpp" -#include "VanGenuchtenStone2RelativePermeability.hpp" +#include "constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.hpp" namespace geos diff --git a/src/coreComponents/constitutive/solid/TriaxialDriver.cpp b/src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.cpp similarity index 99% rename from src/coreComponents/constitutive/solid/TriaxialDriver.cpp rename to src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.cpp index 5d345e6986f..49158cbc925 100644 --- a/src/coreComponents/constitutive/solid/TriaxialDriver.cpp +++ b/src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -18,7 +18,6 @@ */ #include "TriaxialDriver.hpp" -#include "fileIO/Outputs/OutputBase.hpp" namespace geos { diff --git a/src/coreComponents/constitutive/solid/TriaxialDriver.hpp b/src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.hpp similarity index 98% rename from src/coreComponents/constitutive/solid/TriaxialDriver.hpp rename to src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.hpp index 73e4957a13a..1072d924818 100644 --- a/src/coreComponents/constitutive/solid/TriaxialDriver.hpp +++ b/src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -32,8 +32,6 @@ namespace geos { -using namespace constitutive; - /** * @class TriaxialDriver * diff --git a/src/coreComponents/dataRepository/BufferOps.hpp b/src/coreComponents/dataRepository/BufferOps.hpp index 65ff284d676..c76bcee136e 100644 --- a/src/coreComponents/dataRepository/BufferOps.hpp +++ b/src/coreComponents/dataRepository/BufferOps.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/BufferOpsDevice.cpp b/src/coreComponents/dataRepository/BufferOpsDevice.cpp index b6215d3ea62..cf9c562a634 100644 --- a/src/coreComponents/dataRepository/BufferOpsDevice.cpp +++ b/src/coreComponents/dataRepository/BufferOpsDevice.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/BufferOpsDevice.hpp b/src/coreComponents/dataRepository/BufferOpsDevice.hpp index 12abafac593..0fec5bbf5a7 100644 --- a/src/coreComponents/dataRepository/BufferOpsDevice.hpp +++ b/src/coreComponents/dataRepository/BufferOpsDevice.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/BufferOps_inline.hpp b/src/coreComponents/dataRepository/BufferOps_inline.hpp index 961d3173f38..cd87b74e7eb 100644 --- a/src/coreComponents/dataRepository/BufferOps_inline.hpp +++ b/src/coreComponents/dataRepository/BufferOps_inline.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/CMakeLists.txt b/src/coreComponents/dataRepository/CMakeLists.txt index bfaecd6d778..f3e4e82628e 100644 --- a/src/coreComponents/dataRepository/CMakeLists.txt +++ b/src/coreComponents/dataRepository/CMakeLists.txt @@ -11,6 +11,8 @@ set( dataRepository_headers InputFlags.hpp KeyIndexT.hpp KeyNames.hpp + LogLevelsInfo.hpp + LogLevelsRegistry.hpp MappedVector.hpp ObjectCatalog.hpp ReferenceWrapper.hpp @@ -35,6 +37,7 @@ set( dataRepository_sources xmlWrapper.cpp DataContext.cpp GroupContext.cpp + LogLevelsRegistry.cpp WrapperContext.cpp ) set( dependencyList ${parallelDeps} codingUtilities ) @@ -50,14 +53,19 @@ if( ENABLE_PYGEOSX ) list( APPEND dependencyList Python3::Python pylvarray ) endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) blt_add_library( NAME dataRepository SOURCES ${dataRepository_sources} HEADERS ${dataRepository_headers} - DEPENDS_ON ${dependencyList} - OBJECT ${GEOS_BUILD_OBJ_LIBS} ) + DEPENDS_ON ${decoratedDependencies} + OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} + ) target_include_directories( dataRepository PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS dataRepository LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) if( GEOS_ENABLE_TESTS ) diff --git a/src/coreComponents/dataRepository/ConduitRestart.cpp b/src/coreComponents/dataRepository/ConduitRestart.cpp index c94a1724e52..e0c18bc1b24 100644 --- a/src/coreComponents/dataRepository/ConduitRestart.cpp +++ b/src/coreComponents/dataRepository/ConduitRestart.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/ConduitRestart.hpp b/src/coreComponents/dataRepository/ConduitRestart.hpp index d853c84a2df..2fe3c07c98e 100644 --- a/src/coreComponents/dataRepository/ConduitRestart.hpp +++ b/src/coreComponents/dataRepository/ConduitRestart.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/DataContext.cpp b/src/coreComponents/dataRepository/DataContext.cpp index fc8ebe9d9ee..e20eab50e60 100644 --- a/src/coreComponents/dataRepository/DataContext.cpp +++ b/src/coreComponents/dataRepository/DataContext.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/DataContext.hpp b/src/coreComponents/dataRepository/DataContext.hpp index 403b2fb5e55..16600e02f1b 100644 --- a/src/coreComponents/dataRepository/DataContext.hpp +++ b/src/coreComponents/dataRepository/DataContext.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/DefaultValue.hpp b/src/coreComponents/dataRepository/DefaultValue.hpp index c5d5f3d21f4..dd2fed96a7d 100644 --- a/src/coreComponents/dataRepository/DefaultValue.hpp +++ b/src/coreComponents/dataRepository/DefaultValue.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/ExecutableGroup.cpp b/src/coreComponents/dataRepository/ExecutableGroup.cpp index a43b45a4280..4552db2d3d4 100644 --- a/src/coreComponents/dataRepository/ExecutableGroup.cpp +++ b/src/coreComponents/dataRepository/ExecutableGroup.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/ExecutableGroup.hpp b/src/coreComponents/dataRepository/ExecutableGroup.hpp index ae183dd5d80..dd3da89af5b 100644 --- a/src/coreComponents/dataRepository/ExecutableGroup.hpp +++ b/src/coreComponents/dataRepository/ExecutableGroup.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/Group.cpp b/src/coreComponents/dataRepository/Group.cpp index e420631f5ff..abbf6379fa9 100644 --- a/src/coreComponents/dataRepository/Group.cpp +++ b/src/coreComponents/dataRepository/Group.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -50,6 +50,7 @@ Group::Group( string const & name, m_restart_flags( RestartFlags::WRITE_AND_READ ), m_input_flags( InputFlags::INVALID ), m_conduitNode( rootNode[ name ] ), + m_logLevelsRegistry( std::make_unique< LogLevelsRegistry >() ), m_dataContext( std::make_unique< GroupContext >( *this ) ) {} @@ -80,7 +81,6 @@ void Group::deregisterWrapper( string const & name ) m_conduitNode.remove( name ); } - void Group::resize( indexType const newSize ) { forWrappers( [newSize] ( WrapperBase & wrapper ) @@ -245,6 +245,7 @@ void Group::processInputFile( xmlWrapper::xmlNode const & targetNode, void Group::postInputInitializationRecursive() { + m_logLevelsRegistry = nullptr; for( auto const & subGroupIter : m_subGroups ) { subGroupIter.second->postInputInitializationRecursive(); diff --git a/src/coreComponents/dataRepository/Group.hpp b/src/coreComponents/dataRepository/Group.hpp index 44dbd6bb0d4..1cbc00c739a 100644 --- a/src/coreComponents/dataRepository/Group.hpp +++ b/src/coreComponents/dataRepository/Group.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -27,6 +27,8 @@ #include "RestartFlags.hpp" #include "Wrapper.hpp" #include "xmlWrapper.hpp" +#include "LogLevelsInfo.hpp" +#include "LogLevelsRegistry.hpp" #include @@ -143,7 +145,7 @@ class Group using CatalogInterface = dataRepository::CatalogInterface< Group, string const &, Group * const >; /** - * @brief Get the singleton catalog for this class. + * @brief Get the singleton catalog for this Group. * @return reference to the catalog object */ static CatalogInterface::CatalogType & getCatalog(); @@ -863,6 +865,16 @@ class Group ///@} //END_SPHINX_INCLUDE_REGISTER_WRAPPER + /** + * @brief Append a levelCondition and a log description to the description of the wrapped object given a log info struct. + * Must be called in constructor. + * @tparam LOG_LEVEL_INFO The log documentation to add. + * @return void if the trait is verified. + */ + template< typename LOG_LEVEL_INFO > + std::enable_if_t< geos::is_log_level_info< LOG_LEVEL_INFO >, void > + addLogLevel(); + /** * @name Schema generation methods */ @@ -1478,7 +1490,9 @@ class Group */ void loadFromConduit(); - /// Enable verbosity input for object + /** + * @deprecated will be remove and replace by addLogLevel + */ void enableLogLevelInput(); /** @@ -1615,6 +1629,8 @@ class Group /// Verbosity flag for group logs integer m_logLevel; + + //END_SPHINX_INCLUDE_02 /// Restart flag for this group... and subsequently all wrappers in this group. @@ -1626,6 +1642,9 @@ class Group /// Reference to the conduit::Node that mirrors this group conduit::Node & m_conduitNode; + // Keep track of log levels & descriptions + std::unique_ptr< LogLevelsRegistry > m_logLevelsRegistry; + /// A DataContext object used to provide contextual information on this Group, /// if it is created from an input XML file, the line or offset in that file. std::unique_ptr< DataContext > m_dataContext; @@ -1712,6 +1731,24 @@ Wrapper< T > & Group::registerWrapper( string const & name, return rval; } +template< typename LOG_LEVEL_INFO > +std::enable_if_t< geos::is_log_level_info< LOG_LEVEL_INFO >, void > +Group::addLogLevel() +{ + GEOS_ERROR_IF( m_logLevelsRegistry == nullptr, "You cannot call addLogLevel after schema generation" ); + + Wrapper< integer > * wrapper = getWrapperPointer< integer >( viewKeyStruct::logLevelString() ); + if( wrapper == nullptr ) + { + wrapper = ®isterWrapper( viewKeyStruct::logLevelString(), &m_logLevel ); + wrapper->setApplyDefaultValue( 0 ); + wrapper->setInputFlag( InputFlags::OPTIONAL ); + } + m_logLevelsRegistry->addEntry( LOG_LEVEL_INFO::getMinLogLevel(), + LOG_LEVEL_INFO::getDescription() ); + wrapper->setDescription( m_logLevelsRegistry->buildLogLevelDescription()); +} + } /* end namespace dataRepository */ } /* end namespace geos */ diff --git a/src/coreComponents/dataRepository/GroupContext.cpp b/src/coreComponents/dataRepository/GroupContext.cpp index 1312cab5f32..e19a7358fa1 100644 --- a/src/coreComponents/dataRepository/GroupContext.cpp +++ b/src/coreComponents/dataRepository/GroupContext.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/GroupContext.hpp b/src/coreComponents/dataRepository/GroupContext.hpp index f29238660e0..d361bd26e58 100644 --- a/src/coreComponents/dataRepository/GroupContext.hpp +++ b/src/coreComponents/dataRepository/GroupContext.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/HistoryDataSpec.hpp b/src/coreComponents/dataRepository/HistoryDataSpec.hpp index 3fd0d56b3a5..5ffbc3eb343 100644 --- a/src/coreComponents/dataRepository/HistoryDataSpec.hpp +++ b/src/coreComponents/dataRepository/HistoryDataSpec.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/InputFlags.hpp b/src/coreComponents/dataRepository/InputFlags.hpp index 72dc4d862b2..d761ad85f28 100644 --- a/src/coreComponents/dataRepository/InputFlags.hpp +++ b/src/coreComponents/dataRepository/InputFlags.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/KeyIndexT.hpp b/src/coreComponents/dataRepository/KeyIndexT.hpp index b5dbb501bc2..6a6b2ff32a3 100644 --- a/src/coreComponents/dataRepository/KeyIndexT.hpp +++ b/src/coreComponents/dataRepository/KeyIndexT.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/KeyNames.hpp b/src/coreComponents/dataRepository/KeyNames.hpp index 78efdd84762..30842d4c719 100644 --- a/src/coreComponents/dataRepository/KeyNames.hpp +++ b/src/coreComponents/dataRepository/KeyNames.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/LogLevelsInfo.hpp b/src/coreComponents/dataRepository/LogLevelsInfo.hpp new file mode 100644 index 00000000000..d0b0ee1817d --- /dev/null +++ b/src/coreComponents/dataRepository/LogLevelsInfo.hpp @@ -0,0 +1,90 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file LogLevelsInfo.hpp + * This file contains log level information infrastructure and the mecanism to ensure LOG_LEVEL_INFO structure is valid + */ +#ifndef GEOS_COMMON_LOGLEVELSINFO_HPP +#define GEOS_COMMON_LOGLEVELSINFO_HPP + +#include "common/DataTypes.hpp" +#include "common/format/Format.hpp" + +namespace geos +{ + +/** + * @brief Trait used to check whether a LOG_LEVEL_INFO structure is valid. + * @tparam LOG_LEVEL_INFO The log level structure to check. + * + * A log level structure must have this following + * struct LogName + * { + * static constexpr int getMinLogLevel() { return 1; } + * static constexpr std::string_view getDescription() { return "Log level description"; } + * }; + */ +template< typename LOG_LEVEL_INFO > +static constexpr bool is_log_level_info = + std::is_same_v< integer, decltype(LOG_LEVEL_INFO::getMinLogLevel()) > && + std::is_same_v< std::string_view, decltype(LOG_LEVEL_INFO::getDescription()) >; + +/** + * @brief Verify if a log level is active + * @tparam LOG_LEVEL_INFO The structure containing log level information. + * @param level Log level to be checked. + * @return `true` if the log level is active, `false` otherwise. + * @pre `LOG_LEVEL_INFO` must satisfy `logInfo::is_log_level_info`. + * + */ +template< typename LOG_LEVEL_INFO > +std::enable_if_t< is_log_level_info< LOG_LEVEL_INFO >, bool > +isLogLevelActive( integer level ) +{ + return level >= LOG_LEVEL_INFO::getMinLogLevel(); +} + +/** ThOSE 3 macros would replace the ones in Logger.hpp */ +/** + * @brief Output messages based on current Group's log level. + * @param[in] logInfoStruct Strut containing log level desscription + * @param[in] msg a message to log (any expression that can be stream inserted) + */ +#define GEOS_LOG_LEVEL_INFO( logInfoStruct, msg ) GEOS_LOG_IF( isLogLevelActive< logInfoStruct >( this->getLogLevel() ), msg ); + +/** + * @brief Output messages (only on rank 0) based on current Group's log level. + * @param[in] logInfoStruct Strut containing log level desscription + * @param[in] msg a message to log (any expression that can be stream inserted) + */ +#define GEOS_LOG_LEVEL_INFO_RANK_0( logInfoStruct, msg ) GEOS_LOG_RANK_0_IF( isLogLevelActive< logInfoStruct >( this->getLogLevel() ), msg ); + +/** + * @brief Output messages (with one line per rank) based on current Group's log level. + * @param[in] logInfoStruct Strut containing log level desscription + * @param[in] msg a message to log (any expression that can be stream inserted) + */ +#define GEOS_LOG_LEVEL_INFO_BY_RANK( logInfoStruct, msg ) GEOS_LOG_RANK_IF( isLogLevelActive< logInfoStruct >( this->getLogLevel() ), msg ); + +/** + * @brief Output messages (only on rank 0) based on current Group's log level without the line return. + * @param[in] logInfoStruct Strut containing log level desscription + * @param[in] msg a message to log (any expression that can be stream inserted) + */ +#define GEOS_LOG_LEVEL_INFO_RANK_0_NLR( logInfoStruct, msg ) GEOS_LOG_RANK_0_IF_NLR( isLogLevelActive< logInfoStruct >( this->getLogLevel() ), msg ); + +} + +#endif // GEOS_COMMON_LOGLEVELSINFO_HPP diff --git a/src/coreComponents/dataRepository/LogLevelsRegistry.cpp b/src/coreComponents/dataRepository/LogLevelsRegistry.cpp new file mode 100644 index 00000000000..ae3e48ccd72 --- /dev/null +++ b/src/coreComponents/dataRepository/LogLevelsRegistry.cpp @@ -0,0 +1,43 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +#include "LogLevelsRegistry.hpp" + +namespace geos +{ + +void LogLevelsRegistry::addEntry( integer condition, std::string_view description ) +{ + m_logLevelsDescriptions[condition].push_back( string( description ) ); +} + +string LogLevelsRegistry::buildLogLevelDescription() const +{ + std::ostringstream description; + description << "Sets the level of information to write in the standard output (the console typically).\n" + "Level 0 outputs no specific information for this solver. Higher levels require more outputs."; + for( auto const & [logLevel, logDescriptions] : m_logLevelsDescriptions ) + { + description << GEOS_FMT( "\n{}\n", logLevel ); + for( size_t idxDesc = 0; idxDesc < logDescriptions.size(); idxDesc++ ) + { + description << " - " << logDescriptions[idxDesc]; + if( idxDesc != logDescriptions.size() - 1 ) + description << '\n'; + } + } + return description.str(); +} + +} diff --git a/src/coreComponents/dataRepository/LogLevelsRegistry.hpp b/src/coreComponents/dataRepository/LogLevelsRegistry.hpp new file mode 100644 index 00000000000..88b38224cdc --- /dev/null +++ b/src/coreComponents/dataRepository/LogLevelsRegistry.hpp @@ -0,0 +1,60 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file LogLevelsRegistry.hpp + */ + +#ifndef GEOS_COMMON_LOGLEVELSREGISTRY_HPP +#define GEOS_COMMON_LOGLEVELSREGISTRY_HPP + +#include "common/DataTypes.hpp" +#include "common/format/Format.hpp" + +namespace geos +{ + +/** + * @brief Keep track of log level documention for a group + */ +class LogLevelsRegistry +{ +public: + + /** + * @brief Add a log description for a wrapper + * @param level The minimum log level + * @param description The description for the log level + */ + void addEntry( integer level, std::string_view description ); + + /** + * @brief Construct the log level string description for a wrapper + * @return The log level string description + */ + string buildLogLevelDescription() const; + +private: + + /** + * @brief Map for building the log level string for each wrapper. + * key : a logLevel condition, values : a set of description for a corresponding loglevel. + */ + std::map< integer, std::vector< std::string > > m_logLevelsDescriptions; + +}; + +} + +#endif diff --git a/src/coreComponents/dataRepository/MappedVector.hpp b/src/coreComponents/dataRepository/MappedVector.hpp index 82fd0d6f3b3..4fe016be1c1 100644 --- a/src/coreComponents/dataRepository/MappedVector.hpp +++ b/src/coreComponents/dataRepository/MappedVector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/ObjectCatalog.hpp b/src/coreComponents/dataRepository/ObjectCatalog.hpp index 71c7d7a2f84..c03715e09df 100644 --- a/src/coreComponents/dataRepository/ObjectCatalog.hpp +++ b/src/coreComponents/dataRepository/ObjectCatalog.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/ReferenceWrapper.hpp b/src/coreComponents/dataRepository/ReferenceWrapper.hpp index 930710ef6d1..0bd8b374b5e 100644 --- a/src/coreComponents/dataRepository/ReferenceWrapper.hpp +++ b/src/coreComponents/dataRepository/ReferenceWrapper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/RestartFlags.hpp b/src/coreComponents/dataRepository/RestartFlags.hpp index c827ee4d0bb..3188c7ad601 100644 --- a/src/coreComponents/dataRepository/RestartFlags.hpp +++ b/src/coreComponents/dataRepository/RestartFlags.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/Utilities.cpp b/src/coreComponents/dataRepository/Utilities.cpp index d8c6d9e1c34..37180553677 100644 --- a/src/coreComponents/dataRepository/Utilities.cpp +++ b/src/coreComponents/dataRepository/Utilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/Utilities.hpp b/src/coreComponents/dataRepository/Utilities.hpp index 18ab6cc9c0c..c88cc3290e7 100644 --- a/src/coreComponents/dataRepository/Utilities.hpp +++ b/src/coreComponents/dataRepository/Utilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/Wrapper.hpp b/src/coreComponents/dataRepository/Wrapper.hpp index d3a5255a4d1..881d9df2a6c 100644 --- a/src/coreComponents/dataRepository/Wrapper.hpp +++ b/src/coreComponents/dataRepository/Wrapper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/WrapperBase.cpp b/src/coreComponents/dataRepository/WrapperBase.cpp index 0c1aa286d06..518bf4dfed2 100644 --- a/src/coreComponents/dataRepository/WrapperBase.cpp +++ b/src/coreComponents/dataRepository/WrapperBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/WrapperBase.hpp b/src/coreComponents/dataRepository/WrapperBase.hpp index dfc4baa69a1..8737beb8473 100644 --- a/src/coreComponents/dataRepository/WrapperBase.hpp +++ b/src/coreComponents/dataRepository/WrapperBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/WrapperContext.cpp b/src/coreComponents/dataRepository/WrapperContext.cpp index 71a2d5259da..253a2d9c053 100644 --- a/src/coreComponents/dataRepository/WrapperContext.cpp +++ b/src/coreComponents/dataRepository/WrapperContext.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/WrapperContext.hpp b/src/coreComponents/dataRepository/WrapperContext.hpp index cf12d1ba166..7c1b059919d 100644 --- a/src/coreComponents/dataRepository/WrapperContext.hpp +++ b/src/coreComponents/dataRepository/WrapperContext.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/docs/Group.rst b/src/coreComponents/dataRepository/docs/Group.rst index 39547980be3..370ac8937b9 100644 --- a/src/coreComponents/dataRepository/docs/Group.rst +++ b/src/coreComponents/dataRepository/docs/Group.rst @@ -119,3 +119,9 @@ Looping Interface :language: c++ :start-after: //START_SPHINX_INCLUDE_LOOP_INTERFACE :end-before: //END_SPHINX_INCLUDE_LOOP_INTERFACE + + +Doxygen API documentation +------------------------- + +`Group API <../../../doxygen_output/html/classgeos_1_1data_repository_1_1_group.html>`_ diff --git a/src/coreComponents/dataRepository/docs/MappedVector.rst b/src/coreComponents/dataRepository/docs/MappedVector.rst index 260c448d376..22cb211d39b 100644 --- a/src/coreComponents/dataRepository/docs/MappedVector.rst +++ b/src/coreComponents/dataRepository/docs/MappedVector.rst @@ -41,7 +41,7 @@ Element access In addition to these, an STL-conformant iterator interface is available via ``begin()`` and ``end()`` methods. The type iterated over is a key-pointer pair (provided as `value_type` alias). -API documentation ------------------ +Doxygen API documentation +------------------------- -`MappedVector <../../../doxygen_output/html/classgeos_1_1_mapped_vector.html>`_ +`MappedVector API <../../../doxygen_output/html/classgeos_1_1_mapped_vector.html>`_ diff --git a/src/coreComponents/dataRepository/docs/Wrapper.rst b/src/coreComponents/dataRepository/docs/Wrapper.rst index 27f4b8815d9..e7f44040f38 100644 --- a/src/coreComponents/dataRepository/docs/Wrapper.rst +++ b/src/coreComponents/dataRepository/docs/Wrapper.rst @@ -124,7 +124,7 @@ The type ``DefaultValue`` is used to store the default value for the wrapper. ``DefaultValue`` is actually not a type but an alias for another internal struct. As such, it cannot currently be specialized for a user's custom type. -API documentation ------------------ +Doxygen API documentation +------------------------- -`Wrapper <../../../doxygen_output/html/classgeos_1_1data_repository_1_1_wrapper.html>`_ +`Wrapper API <../../../doxygen_output/html/classgeos_1_1data_repository_1_1_wrapper.html>`_ diff --git a/src/coreComponents/dataRepository/docs/dataRepository.rst b/src/coreComponents/dataRepository/docs/dataRepository.rst index 16b82289bba..221cb8823cf 100644 --- a/src/coreComponents/dataRepository/docs/dataRepository.rst +++ b/src/coreComponents/dataRepository/docs/dataRepository.rst @@ -6,14 +6,16 @@ Data Repository The GEOS "Data Repository" is intended to provide the building blocks for the code structure within GEOS. The "Data Repository" provides a general capability to store arbitrary data and objects in a hierarchical -structure, similar to a standard file system. +structure, similar to a standard file system. The "Wrapper" object is a generic container for any object, +and provides a standard interface for accessing an object and performing standard operations. +The "Group" object is a container for "Wrapper" and other "Group" objects. -The components/classes of the data structure that a developer will require some knowledge of are: +The components/classes of the data structure that a developer should have some knowledge of are: .. toctree:: :maxdepth: 2 - /coreComponents/dataRepository/docs/MappedVector /coreComponents/dataRepository/docs/Group /coreComponents/dataRepository/docs/Wrapper /coreComponents/dataRepository/docs/ObjectCatalog + /coreComponents/dataRepository/docs/MappedVector diff --git a/src/coreComponents/dataRepository/python/PyGroup.cpp b/src/coreComponents/dataRepository/python/PyGroup.cpp index 2a822d7d303..a9dbe024844 100644 --- a/src/coreComponents/dataRepository/python/PyGroup.cpp +++ b/src/coreComponents/dataRepository/python/PyGroup.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/python/PyGroup.hpp b/src/coreComponents/dataRepository/python/PyGroup.hpp index 57b51ffef9f..fc5d70ea934 100644 --- a/src/coreComponents/dataRepository/python/PyGroup.hpp +++ b/src/coreComponents/dataRepository/python/PyGroup.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/python/PyGroupType.hpp b/src/coreComponents/dataRepository/python/PyGroupType.hpp index ce19e5be4f0..042442a9f36 100644 --- a/src/coreComponents/dataRepository/python/PyGroupType.hpp +++ b/src/coreComponents/dataRepository/python/PyGroupType.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/python/PyWrapper.cpp b/src/coreComponents/dataRepository/python/PyWrapper.cpp index 0e986d3814b..cff2b890e95 100644 --- a/src/coreComponents/dataRepository/python/PyWrapper.cpp +++ b/src/coreComponents/dataRepository/python/PyWrapper.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/python/PyWrapper.hpp b/src/coreComponents/dataRepository/python/PyWrapper.hpp index 8350df82bc5..b6bb4400a07 100644 --- a/src/coreComponents/dataRepository/python/PyWrapper.hpp +++ b/src/coreComponents/dataRepository/python/PyWrapper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/unitTests/testBufferOps.cpp b/src/coreComponents/dataRepository/unitTests/testBufferOps.cpp index 434124f1c79..0f3c469f345 100644 --- a/src/coreComponents/dataRepository/unitTests/testBufferOps.cpp +++ b/src/coreComponents/dataRepository/unitTests/testBufferOps.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/unitTests/testDefaultValue.cpp b/src/coreComponents/dataRepository/unitTests/testDefaultValue.cpp index 0befe6db35b..92f5861fa7d 100644 --- a/src/coreComponents/dataRepository/unitTests/testDefaultValue.cpp +++ b/src/coreComponents/dataRepository/unitTests/testDefaultValue.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/unitTests/testPacking.cpp b/src/coreComponents/dataRepository/unitTests/testPacking.cpp index 890d6a7e60f..4befe364d83 100644 --- a/src/coreComponents/dataRepository/unitTests/testPacking.cpp +++ b/src/coreComponents/dataRepository/unitTests/testPacking.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/unitTests/testReferenceWrapper.cpp b/src/coreComponents/dataRepository/unitTests/testReferenceWrapper.cpp index 718cf1a5de4..15db54edc25 100644 --- a/src/coreComponents/dataRepository/unitTests/testReferenceWrapper.cpp +++ b/src/coreComponents/dataRepository/unitTests/testReferenceWrapper.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/unitTests/testWrapper.cpp b/src/coreComponents/dataRepository/unitTests/testWrapper.cpp index 6384491af9e..6982cec6560 100644 --- a/src/coreComponents/dataRepository/unitTests/testWrapper.cpp +++ b/src/coreComponents/dataRepository/unitTests/testWrapper.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/unitTests/testXmlWrapper.cpp b/src/coreComponents/dataRepository/unitTests/testXmlWrapper.cpp index 105c4bccac9..32141eb0e28 100644 --- a/src/coreComponents/dataRepository/unitTests/testXmlWrapper.cpp +++ b/src/coreComponents/dataRepository/unitTests/testXmlWrapper.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -16,6 +16,7 @@ #include #include "dataRepository/xmlWrapper.hpp" +#include "codingUtilities/EnumStrings.hpp" using namespace geos; @@ -328,6 +329,32 @@ INSTANTIATE_TEST_SUITE_P( std::make_tuple( "1 2", 0, true ))); +enum class TestEnum { None, Default, Value, Value2 }; +ENUM_STRINGS( TestEnum, "None", "Default", "Value", "Value2" ); + +class enumAttributeTestFixture : public AttributeReadTestFixture< TestEnum > {}; + +TEST_P( enumAttributeTestFixture, testParsing ) +{ + testParams = GetParam(); + this->test(); +} + +INSTANTIATE_TEST_SUITE_P( + enumAttributeTests, + enumAttributeTestFixture, + ::testing::Values( std::make_tuple( "None", TestEnum::None, false ), + std::make_tuple( "Default", TestEnum::Default, false ), + std::make_tuple( "Value", TestEnum::Value, false ), + std::make_tuple( "Value2", TestEnum::Value2, false ), + std::make_tuple( "0", TestEnum( 0 ), true ), + std::make_tuple( "4.", TestEnum( 0 ), true ), + std::make_tuple( "alpha", TestEnum( 0 ), true ), + std::make_tuple( "Val", TestEnum( 0 ), true ), + std::make_tuple( "Def ault", TestEnum( 0 ), true ), + std::make_tuple( "None123", TestEnum( 0 ), true ) ) ); + + TEST( testXmlWrapper, testGroupNamesFormats ) { struct GroupNameTest diff --git a/src/coreComponents/dataRepository/wrapperHelpers.hpp b/src/coreComponents/dataRepository/wrapperHelpers.hpp index 70af42750e0..021dbf018e3 100644 --- a/src/coreComponents/dataRepository/wrapperHelpers.hpp +++ b/src/coreComponents/dataRepository/wrapperHelpers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/dataRepository/xmlWrapper.cpp b/src/coreComponents/dataRepository/xmlWrapper.cpp index 4b4759980a0..e2e7d85332c 100644 --- a/src/coreComponents/dataRepository/xmlWrapper.cpp +++ b/src/coreComponents/dataRepository/xmlWrapper.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -35,8 +35,8 @@ namespace xmlWrapper void validateString( string const & value, Regex const & regex ) { std::smatch m; - bool inputValidated = std::regex_search( value, m, std::regex( regex.m_regexStr ) ); - if( !inputValidated || m.length() != ptrdiff_t( value.length() ) ) + bool inputValidated = std::regex_match( value, m, std::regex( regex.m_regexStr ) ); + if( !inputValidated ) { ptrdiff_t errorId = ( m.size()>0 && m.position( 0 )==0 ) ? m.length() : 0; GEOS_THROW( GEOS_FMT( "Input string validation failed at:\n" diff --git a/src/coreComponents/dataRepository/xmlWrapper.hpp b/src/coreComponents/dataRepository/xmlWrapper.hpp index f73f3ecaa7e..3909184a5be 100644 --- a/src/coreComponents/dataRepository/xmlWrapper.hpp +++ b/src/coreComponents/dataRepository/xmlWrapper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/denseLinearAlgebra/CMakeLists.txt b/src/coreComponents/denseLinearAlgebra/CMakeLists.txt index 791767bc5c6..1d15320355c 100644 --- a/src/coreComponents/denseLinearAlgebra/CMakeLists.txt +++ b/src/coreComponents/denseLinearAlgebra/CMakeLists.txt @@ -1,6 +1,7 @@ # Specify all headers set( denseLinearAlgebra_headers common/layouts.hpp + denseLASolvers.hpp interfaces/blaslapack/BlasLapackFunctions.h interfaces/blaslapack/BlasLapackLA.hpp ) @@ -10,14 +11,21 @@ set( denseLinearAlgebra_sources set( dependencyList codingUtilities blas lapack ${parallelDeps} ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME denseLinearAlgebra SOURCES ${denseLinearAlgebra_sources} HEADERS ${denseLinearAlgebra_headers} - DEPENDS_ON ${dependencyList} - OBJECT ${GEOS_BUILD_OBJ_LIBS} ) + DEPENDS_ON ${decoratedDependencies} + OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} + ) target_include_directories( denseLinearAlgebra PUBLIC ${CMAKE_CURRENT_LIST_DIR} ) +install( TARGETS denseLinearAlgebra LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) + if( GEOS_ENABLE_TESTS ) add_subdirectory( unitTests ) endif( ) diff --git a/src/coreComponents/denseLinearAlgebra/common/layouts.hpp b/src/coreComponents/denseLinearAlgebra/common/layouts.hpp index b5c6ce39eef..9e9415afa2b 100644 --- a/src/coreComponents/denseLinearAlgebra/common/layouts.hpp +++ b/src/coreComponents/denseLinearAlgebra/common/layouts.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/denseLinearAlgebra/denseLASolvers.hpp b/src/coreComponents/denseLinearAlgebra/denseLASolvers.hpp new file mode 100644 index 00000000000..bdc2b22614f --- /dev/null +++ b/src/coreComponents/denseLinearAlgebra/denseLASolvers.hpp @@ -0,0 +1,319 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2024 Total, S.A + * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2023-2024 Chevron + * Copyright (c) 2019- GEOS/GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file denseLASolvers.hpp + */ +#ifndef GEOS_DENSELINEARALGEBRA_DENSELASOLVERS_HPP_ +#define GEOS_DENSELINEARALGEBRA_DENSELASOLVERS_HPP_ + +#include "common/DataTypes.hpp" +#include "denseLinearAlgebra/common/layouts.hpp" +#include "LvArray/src/tensorOps.hpp" +#include "common/logger/Logger.hpp" + +#include + +namespace geos +{ + +namespace denseLinearAlgebra +{ + +namespace details +{ + +constexpr real64 singularMatrixTolerance = 1e2*LvArray::NumericLimits< real64 >::epsilon; + +/** + * @brief Solves a 2x2 linear system A * x = b. + * + * This function solves a linear system of the form A * x = b, where A is a 2x2 matrix, + * b is a 2x1 vector, and x is the solution vector. The function checks the sizes + * of the inputs to ensure they conform to the expected dimensions. It also checks that + * the determinant of matrix A is not near zero to avoid solving a singular system. + * + * @tparam MATRIX_TYPE The type of the matrix A. Must support indexing with `A[i][j]`. + * @tparam RHS_TYPE The type of the right-hand side vector b. Must support indexing with `b[i]`. + * @tparam SOL_TYPE The type of the solution vector x. Must support indexing with `x[i]`. + * + * @param[in] A The 2x2 matrix representing the system of equations. Must have size 2x2. + * @param[in] b The 2-element vector representing the right-hand side of the equation. + * @param[out] x The 2-element vector that will store the solution to the system. + * @return bool that sepcifies whether the solve succeeded (1) or not (0). + */ +template< typename MATRIX_TYPE, + typename RHS_TYPE, + typename SOL_TYPE > +GEOS_HOST_DEVICE +inline +bool solveTwoByTwoSystem( MATRIX_TYPE const & A, RHS_TYPE const & b, SOL_TYPE && x ) +{ + LvArray::tensorOps::internal::checkSizes< 2, 2 >( A ); + LvArray::tensorOps::internal::checkSizes< 2 >( b ); + LvArray::tensorOps::internal::checkSizes< 2 >( x ); + + real64 const detA = LvArray::tensorOps::determinant< 2 >( A ); + + if( LvArray::math::abs( detA ) < singularMatrixTolerance ) + return false; + + real64 const invA = 1.0 / detA; + + x[0] = ( A[1][1] * b[0] - A[0][1] * b[1] ) * invA; + x[1] = ( A[0][0] * b[1] - A[1][0] * b[0] ) * invA; + + return true; +} + +/** + * @brief Solves a 3x3 linear system A * x = b. + * + * This function solves a linear system of the form A * x = b, where A is a 3x3 matrix, + * b is a 3x1 vector, and x is the solution vector. The function checks the sizes + * of the inputs to ensure they conform to the expected dimensions. It also checks that + * the determinant of matrix A is not near zero to avoid solving a singular system. + * + * @tparam MATRIX_TYPE The type of the matrix A. Must support indexing with `A[i][j]`. + * @tparam RHS_TYPE The type of the right-hand side vector b. Must support indexing with `b[i]`. + * @tparam SOL_TYPE The type of the solution vector x. Must support indexing with `x[i]`. + * + * @param[in] A The 3x3 matrix representing the system of equations. Must have size 3x3. + * @param[in] b The 3-element vector representing the right-hand side of the equation. + * @param[out] x The 3-element vector that will store the solution to the system. + * @return bool that sepcifies whether the solve succeeded (1) or not (0). + */ +template< typename MATRIX_TYPE, + typename RHS_TYPE, + typename SOL_TYPE > +GEOS_HOST_DEVICE +inline +bool solveThreeByThreeSystem( MATRIX_TYPE const & A, RHS_TYPE const & b, SOL_TYPE && x ) +{ + LvArray::tensorOps::internal::checkSizes< 3, 3 >( A ); + LvArray::tensorOps::internal::checkSizes< 3 >( b ); + LvArray::tensorOps::internal::checkSizes< 3 >( x ); + + real64 const detA = LvArray::tensorOps::determinant< 3 >( A ); + + if( LvArray::math::abs( detA ) < singularMatrixTolerance ) + return false; + + real64 const invA = 1.0 / detA; + + real64 const detX0 = b[0] * ( A[1][1] * A[2][2] - A[2][1] * A[1][2] ) - + b[1] * ( A[0][1] * A[2][2] - A[0][2] * A[2][1] ) + + b[2] * ( A[0][1] * A[1][2] - A[0][2] * A[1][1] ); + + real64 const detX1 = A[0][0] * ( b[1] * A[2][2] - b[2] * A[1][2] ) - + A[1][0] * ( b[0] * A[2][2] - b[2] * A[0][2] ) + + A[2][0] * ( b[0] * A[1][2] - b[1] * A[0][2] ); + + real64 const detX2 = A[0][0] * ( A[1][1] * b[2] - A[2][1] * b[1] ) - + A[1][0] * ( A[0][1] * b[2] - A[2][1] * b[0] ) + + A[2][0] * ( A[0][1] * b[1] - A[1][1] * b[0] ); + + x[0] = detX0 * invA; + x[1] = detX1 * invA; + x[2] = detX2 * invA; + + return true; +} + +/** + * @brief Solves a linear system where the matrix is upper triangular using back substitution. + * + * This function solves the linear system `Ax = b`, where `A` is an upper triangular matrix, using + * back substitution. The solution `x` is computed and stored in the provided output vector. + * + * @tparam N The size of the square matrix `A`. + * @tparam MATRIX_TYPE The type of the matrix `A`. + * @tparam RHS_TYPE The type of the right-hand side vector `b`. + * @tparam SOL_TYPE The type of the solution vector `x`. + * @param[in] A The upper triangular matrix representing the coefficients of the system. + * @param[in] b The right-hand side vector. It is used to compute the solution. + * @param[out] x The solution vector. The result of solving the system `Ax = b` using back substitution. + */ +template< std::ptrdiff_t N, + typename MATRIX_TYPE, + typename RHS_TYPE, + typename SOL_TYPE > +GEOS_HOST_DEVICE +inline +void solveUpperTriangularSystem( MATRIX_TYPE const & A, RHS_TYPE const & b, SOL_TYPE && x ) +{ + for( std::ptrdiff_t i = N - 1; i >= 0; --i ) + { + real64 sum = b[i]; + for( std::ptrdiff_t j = i + 1; j < N; ++j ) + { + sum -= A[i][j] * x[j]; + } + x[i] = sum / A[i][i]; + } +} + +/** + * @brief Solves a linear system using Gaussian elimination. + * + * This function performs Gaussian elimination on the given matrix `A` and right-hand side vector `b`. + * It transforms the matrix `A` boolo an upper triangular matrix and then solves for the solution `x` + * using back substitution. + * + * @tparam N The size of the square matrix `A`. + * @tparam MATRIX_TYPE The type of the matrix `A`. + * @tparam RHS_TYPE The type of the right-hand side vector `b`. + * @tparam SOL_TYPE The type of the solution vector `x`. + * @param[in,out] A The matrix to be transformed boolo an upper triangular matrix. Modified in place. + * @param[in,out] b The right-hand side vector. Modified in place to reflect the transformed system. + * @param[out] x The solution vector. The result of solving the system `Ax = b`. + * @return bool that sepcifies whether the solve succeeded (1) or not (0). + */ +template< std::ptrdiff_t N, + typename MATRIX_TYPE, + typename RHS_TYPE, + typename SOL_TYPE > +GEOS_HOST_DEVICE +inline +bool solveGaussianElimination( MATRIX_TYPE & A, RHS_TYPE & b, SOL_TYPE && x ) +{ + static_assert( N > 0, "N must be greater than 0." ); + LvArray::tensorOps::internal::checkSizes< N, N >( A ); + LvArray::tensorOps::internal::checkSizes< N >( b ); + LvArray::tensorOps::internal::checkSizes< N >( x ); + + // Step 1: Transform boolo an upper triangular matrix + + // 1.a. Find the pivot + for( std::ptrdiff_t i = 0; i < N; ++i ) + { + std::ptrdiff_t max_row = i; + for( std::ptrdiff_t k = i + 1; k < N; ++k ) + { + if( LvArray::math::abs( A[k][i] ) > LvArray::math::abs( A[max_row][i] )) + { + max_row = k; + } + } + + // 1.b. Swap rows + for( std::ptrdiff_t k = i; k < N; ++k ) + { + // std::swap( A[i][k], A[max_row][k] ); + real64 const temp = A[max_row][k]; + A[max_row][k] = A[i][k]; + A[i][k] = temp; + } + // std::swap( b[i], b[max_row] ); cannot be done on device + real64 const temp = b[i]; + b[i] = b[max_row]; + b[max_row] = temp; + + + if( LvArray::math::abs( A[i][i] ) < singularMatrixTolerance ) + return false; + + // 1.c Eliminate entries below the pivot + for( std::ptrdiff_t k = i + 1; k < N; ++k ) + { + real64 const scaling = A[k][i] / A[i][i]; + for( std::ptrdiff_t j = i; j < N; ++j ) + { + A[k][j] -= scaling * A[i][j]; + } + b[k] -= scaling * b[i]; + } + } + + // Step 2: Backward substitution + solveUpperTriangularSystem< N >( A, b, std::forward< SOL_TYPE >( x ) ); + + return true; +} + +} // details namespace + +/** + * @brief Solves a linear system using the most appropriate method based on the size of the system. + * + * This function determines the appropriate method for solving a linear system `Ax = b` based on + * the size of the matrix `A`. For 2x2 and 3x3 systems, specialized solvers are used. For larger systems, + * Gaussian elimination is employed. The matrix and the rhs are modified by the function. + * + * @tparam N The size of the square matrix `A`. + * @tparam MATRIX_TYPE The type of the matrix `A`. + * @tparam RHS_TYPE The type of the right-hand side vector `b`. + * @tparam SOL_TYPE The type of the solution vector `x`. + * @tparam MODIFY_MATRIX boolean flag indicating whether the input matrix `A` and vector `b` should be modified. + * If `1`, the matrix `A` and vector `b` are modified in place. If `0`, copies of + * `A` and `b` are made, and the original data is left unchanged. + * @param[in] A The matrix representing the coefficients of the system. + * @param[in] b The right-hand side vector. + * @param[out] x The solution vector. The result of solving the system `Ax = b`. + * @return bool that sepcifies whether the solve succeeded (1) or not (0). + */ +template< std::ptrdiff_t N, + typename MATRIX_TYPE, + typename RHS_TYPE, + typename SOL_TYPE, + bool MODIFY_MATRIX = 1 > +GEOS_HOST_DEVICE +inline +bool solve( MATRIX_TYPE & A, RHS_TYPE & b, SOL_TYPE && x ) +{ + static_assert( N > 0, "N must be greater than 0." ); + static_assert( N < 10, "N cannot be larger than 9" ); + LvArray::tensorOps::internal::checkSizes< N, N >( A ); + LvArray::tensorOps::internal::checkSizes< N >( b ); + LvArray::tensorOps::internal::checkSizes< N >( x ); + + if constexpr ( N == 2 ) + { + return details::solveTwoByTwoSystem( A, b, std::forward< SOL_TYPE >( x ) ); + } + else if constexpr ( N == 3 ) + { + return details::solveThreeByThreeSystem( A, b, std::forward< SOL_TYPE >( x ) ); + } + else + { + if constexpr ( MODIFY_MATRIX ) + { + return details::solveGaussianElimination< N >( A, b, std::forward< SOL_TYPE >( x ) ); + } + else + { + real64 A_copy[N][N]{}; + real64 b_copy[N]{}; + + for( std::ptrdiff_t i=0; i < N; ++i ) + { + b_copy[i] = b[i]; + for( std::ptrdiff_t j=0; j < N; ++j ) + { + A_copy[i][j] = A[i][j]; + } + } + return details::solveGaussianElimination< N >( A_copy, b_copy, std::forward< SOL_TYPE >( x ) ); + } + } +} + +} // denseLinearAlgebra + +} // geos + + +#endif /*GEOS_DENSELINEARALGEBRA_DENSELASOLVERS_HPP_*/ diff --git a/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackFunctions.h b/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackFunctions.h index d427d81e238..c3716c8a870 100644 --- a/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackFunctions.h +++ b/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackFunctions.h @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackLA.cpp b/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackLA.cpp index e9831519596..d9f1405cec4 100644 --- a/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackLA.cpp +++ b/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackLA.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackLA.hpp b/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackLA.hpp index 3e626119a13..370c4c4ee5d 100644 --- a/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackLA.hpp +++ b/src/coreComponents/denseLinearAlgebra/interfaces/blaslapack/BlasLapackLA.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/denseLinearAlgebra/unitTests/CMakeLists.txt b/src/coreComponents/denseLinearAlgebra/unitTests/CMakeLists.txt index 114dee90aac..5334abc1acb 100644 --- a/src/coreComponents/denseLinearAlgebra/unitTests/CMakeLists.txt +++ b/src/coreComponents/denseLinearAlgebra/unitTests/CMakeLists.txt @@ -1,6 +1,7 @@ set( serial_tests testBlasLapack.cpp - testSolveLinearSystem.cpp ) + testSolveLinearSystem.cpp + testDenseLASolvers.cpp ) set( dependencyList gtest denseLinearAlgebra ) diff --git a/src/coreComponents/denseLinearAlgebra/unitTests/testBlasLapack.cpp b/src/coreComponents/denseLinearAlgebra/unitTests/testBlasLapack.cpp index 42f98d6c2a0..51abc10565e 100644 --- a/src/coreComponents/denseLinearAlgebra/unitTests/testBlasLapack.cpp +++ b/src/coreComponents/denseLinearAlgebra/unitTests/testBlasLapack.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/denseLinearAlgebra/unitTests/testDenseLASolvers.cpp b/src/coreComponents/denseLinearAlgebra/unitTests/testDenseLASolvers.cpp new file mode 100644 index 00000000000..5ec47ac1982 --- /dev/null +++ b/src/coreComponents/denseLinearAlgebra/unitTests/testDenseLASolvers.cpp @@ -0,0 +1,219 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2024 Total, S.A + * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2023-2024 Chevron + * Copyright (c) 2019- GEOS/GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +#include "denseLinearAlgebra/denseLASolvers.hpp" +#include "common/GEOS_RAJA_Interface.hpp" +#include "testUtils.hpp" + +// TPL includes +#include + +#include + +namespace geos +{ +namespace denseLinearAlgebra +{ +namespace testing +{ + +constexpr real64 machinePrecision = 1.0e3 * LvArray::NumericLimits< real64 >::epsilon; + +template< std::ptrdiff_t N > +class LinearSystem +{ +public: + real64 matrix[N][N]{}; + real64 solution[N]{}; + real64 rhs[N]{}; +}; + +template< std::ptrdiff_t N > +class InvertibleLinearSystem : public LinearSystem< N > +{ +public: + using LinearSystem< N >::matrix; + using LinearSystem< N >::solution; + using LinearSystem< N >::rhs; + + InvertibleLinearSystem( short int seed ) + { + std::mt19937 generator( seed ); + std::uniform_real_distribution< real64 > distribution( -10.0, 10.0 ); + std::uniform_real_distribution< real64 > perturbation( -20.0, 20.0 ); + for( ptrdiff_t i=0; i +class SingularLinearSystem : public LinearSystem< N > +{ +public: + using LinearSystem< N >::matrix; + using LinearSystem< N >::solution; + using LinearSystem< N >::rhs; + + SingularLinearSystem( short int seed ) + { + std::mt19937 generator( seed ); + std::uniform_real_distribution< real64 > distribution( -10.0, 10.0 ); + for( ptrdiff_t i=0; i +class DenseLinearSolverTest : public ::testing::Test +{ +public: + + static constexpr std::ptrdiff_t size = N::value; + + DenseLinearSolverTest() = default; + ~DenseLinearSolverTest() override = default; + + void test_solve() + { + InvertibleLinearSystem< size > LS( 2024 ); + + // GEOS_UNUSED_VAR(LS); + + forAll< parallelDevicePolicy<> >( 1, [=] GEOS_HOST_DEVICE ( int ) + { + real64 sol[size]{}; + real64 matrix[size][size]{}; + real64 rhs[size]{}; + + LvArray::tensorOps::copy< size, size >( matrix, LS.matrix ); + LvArray::tensorOps::copy< size >( rhs, LS.rhs ); + bool const success = denseLinearAlgebra::solve< size >( matrix, rhs, sol ); + + PORTABLE_EXPECT_TRUE( success ); + + for( std::ptrdiff_t i = 0; i < size; ++i ) + { + PORTABLE_EXPECT_NEAR( sol[i], + LS.solution[i], + machinePrecision ); + } + } ); + } + void test_singularSystem() + { + SingularLinearSystem< size > LS( 2024 ); + + forAll< parallelDevicePolicy<> >( 1, [=] GEOS_HOST_DEVICE ( int ) + { + + real64 sol[size]{}; + real64 matrix[size][size]{}; + real64 rhs[size]{}; + + LvArray::tensorOps::copy< size, size >( matrix, LS.matrix ); + LvArray::tensorOps::copy< size >( rhs, LS.rhs ); + bool const success = denseLinearAlgebra::solve< size >( matrix, rhs, sol ); + + PORTABLE_EXPECT_FALSE( success ); + } ); + } + +}; + +using Dimensions = ::testing::Types< std::integral_constant< std::ptrdiff_t, 2 >, + std::integral_constant< std::ptrdiff_t, 3 >, + std::integral_constant< std::ptrdiff_t, 4 >, + std::integral_constant< std::ptrdiff_t, 5 >, + std::integral_constant< std::ptrdiff_t, 6 >, + std::integral_constant< std::ptrdiff_t, 7 >, + std::integral_constant< std::ptrdiff_t, 8 >, + std::integral_constant< std::ptrdiff_t, 9 > >; + + +class NameGenerator +{ +public: + template< typename T > + static std::string GetName( int ) + { + if constexpr (T::value == 2) return "TwoByTwo"; + if constexpr (T::value == 3) return "ThreeByThree"; + if constexpr (T::value == 4) return "FourByFour"; + if constexpr (T::value == 5) return "FiveByFive"; + if constexpr (T::value == 6) return "SixBySix"; + if constexpr (T::value == 7) return "SevenBySeven"; + if constexpr (T::value == 8) return "EightByEight"; + if constexpr (T::value == 9) return "NineByNine"; + } +}; + +TYPED_TEST_SUITE( DenseLinearSolverTest, Dimensions, NameGenerator ); + +TYPED_TEST( DenseLinearSolverTest, testDenseLA ) +{ + this->test_solve(); + this->test_singularSystem(); +} + +int main( int argc, char * * argv ) +{ + ::testing::InitGoogleTest( &argc, argv ); + int const result = RUN_ALL_TESTS(); + return result; +} + +} // testing + +} // denseLinearAlgebra + +} // namespace geos diff --git a/src/coreComponents/denseLinearAlgebra/unitTests/testSolveLinearSystem.cpp b/src/coreComponents/denseLinearAlgebra/unitTests/testSolveLinearSystem.cpp index 5fc85de2864..678332963a0 100644 --- a/src/coreComponents/denseLinearAlgebra/unitTests/testSolveLinearSystem.cpp +++ b/src/coreComponents/denseLinearAlgebra/unitTests/testSolveLinearSystem.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/denseLinearAlgebra/unitTests/testUtils.hpp b/src/coreComponents/denseLinearAlgebra/unitTests/testUtils.hpp new file mode 100644 index 00000000000..17f093a569b --- /dev/null +++ b/src/coreComponents/denseLinearAlgebra/unitTests/testUtils.hpp @@ -0,0 +1,34 @@ + +#include "common/GeosxMacros.hpp" + +// TPL includes +#include + + +namespace geos +{ +namespace denseLinearAlgebra +{ +namespace testing +{ + + +#if defined(GEOS_DEVICE_COMPILE) +#define PORTABLE_EXPECT_EQ( L, R ) GEOS_ERROR_IF_NE( L, R ) +#define PORTABLE_EXPECT_NEAR( L, R, EPSILON ) LVARRAY_ERROR_IF_GE_MSG( LvArray::math::abs( ( L ) -( R ) ), EPSILON, \ + STRINGIZE( L ) " = " << ( L ) << "\n" << STRINGIZE( R ) " = " << ( R ) ); +#define PORTABLE_EXPECT_TRUE( value ) GEOS_ERROR_IF( !value, "should be true" ) +#define PORTABLE_EXPECT_FALSE( value ) GEOS_ERROR_IF( value, "should be false" ) +#else +#define PORTABLE_EXPECT_EQ( L, R ) EXPECT_EQ( L, R ) +#define PORTABLE_EXPECT_NEAR( L, R, EPSILON ) EXPECT_LE( LvArray::math::abs( ( L ) -( R ) ), EPSILON ) << \ + STRINGIZE( L ) " = " << ( L ) << "\n" << STRINGIZE( R ) " = " << ( R ); +#define PORTABLE_EXPECT_TRUE( value ) EXPECT_TRUE( value ) +#define PORTABLE_EXPECT_FALSE( value ) EXPECT_FALSE( value ) +#endif + +} //namespace testing + +} // namespace denseLinearAlgebra + +} // namespace geos diff --git a/src/coreComponents/discretizationMethods/CMakeLists.txt b/src/coreComponents/discretizationMethods/CMakeLists.txt index 220d535ab28..06d03ca8fa9 100644 --- a/src/coreComponents/discretizationMethods/CMakeLists.txt +++ b/src/coreComponents/discretizationMethods/CMakeLists.txt @@ -13,12 +13,17 @@ set( dependencyList ${parallelDeps} finiteVolume ) set( mainInterface_sources NumericalMethodsManager.cpp ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME discretizationMethods SOURCES ${mainInterface_sources} HEADERS ${mainInterface_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( discretizationMethods PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS discretizationMethods LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/discretizationMethods/NumericalMethodsManager.cpp b/src/coreComponents/discretizationMethods/NumericalMethodsManager.cpp index 9a14cced080..b57a2fe5192 100644 --- a/src/coreComponents/discretizationMethods/NumericalMethodsManager.cpp +++ b/src/coreComponents/discretizationMethods/NumericalMethodsManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/discretizationMethods/NumericalMethodsManager.hpp b/src/coreComponents/discretizationMethods/NumericalMethodsManager.hpp index 311358874ff..3db8a3e6a7b 100644 --- a/src/coreComponents/discretizationMethods/NumericalMethodsManager.hpp +++ b/src/coreComponents/discretizationMethods/NumericalMethodsManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/discretizationMethods/docs/NumericalMethodsManager.rst b/src/coreComponents/discretizationMethods/docs/NumericalMethodsManager.rst index ff8e3d19238..312b3acba67 100644 --- a/src/coreComponents/discretizationMethods/docs/NumericalMethodsManager.rst +++ b/src/coreComponents/discretizationMethods/docs/NumericalMethodsManager.rst @@ -5,7 +5,7 @@ Numerical Methods This section describes the specification of numerical methods used by solvers. -.. include:: /coreComponents/schema/docs/NumericalMethods.rst +.. include:: /docs/sphinx/datastructure/NumericalMethods.rst .. include:: /coreComponents/finiteElement/docs/FiniteElement.rst.txt diff --git a/src/coreComponents/dummy.cpp b/src/coreComponents/dummy.cpp index 6bd5eb6f17d..e64d16594db 100644 --- a/src/coreComponents/dummy.cpp +++ b/src/coreComponents/dummy.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/CMakeLists.txt b/src/coreComponents/events/CMakeLists.txt index 59217e42f7d..3a7fe6a7a92 100644 --- a/src/coreComponents/events/CMakeLists.txt +++ b/src/coreComponents/events/CMakeLists.txt @@ -24,14 +24,19 @@ set( events_sources tasks/TasksManager.cpp ) -set( dependencyList ${parallelDeps} common fileIO dataRepository ) +set( dependencyList ${parallelDeps} functions ) + +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) blt_add_library( NAME events SOURCES ${events_sources} HEADERS ${events_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( events PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS events LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/events/EventBase.cpp b/src/coreComponents/events/EventBase.cpp index a6ca2e8f004..5a185d1c719 100644 --- a/src/coreComponents/events/EventBase.cpp +++ b/src/coreComponents/events/EventBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/EventBase.hpp b/src/coreComponents/events/EventBase.hpp index fdcd3c72a08..25a13175ffc 100644 --- a/src/coreComponents/events/EventBase.hpp +++ b/src/coreComponents/events/EventBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/EventManager.cpp b/src/coreComponents/events/EventManager.cpp index 6dc12b5624d..11515e27574 100644 --- a/src/coreComponents/events/EventManager.cpp +++ b/src/coreComponents/events/EventManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,7 +21,7 @@ #include "common/TimingMacros.hpp" #include "events/EventBase.hpp" -#include "mesh/mpiCommunications/CommunicationTools.hpp" +#include "common/MpiWrapper.hpp" #include "common/Units.hpp" namespace geos diff --git a/src/coreComponents/events/EventManager.hpp b/src/coreComponents/events/EventManager.hpp index b541efe6b58..f60c004fbf2 100644 --- a/src/coreComponents/events/EventManager.hpp +++ b/src/coreComponents/events/EventManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/HaltEvent.cpp b/src/coreComponents/events/HaltEvent.cpp index 5286740d90f..f4381f0b0fb 100644 --- a/src/coreComponents/events/HaltEvent.cpp +++ b/src/coreComponents/events/HaltEvent.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/HaltEvent.hpp b/src/coreComponents/events/HaltEvent.hpp index 98ae88e3540..5614484e54a 100644 --- a/src/coreComponents/events/HaltEvent.hpp +++ b/src/coreComponents/events/HaltEvent.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/PeriodicEvent.cpp b/src/coreComponents/events/PeriodicEvent.cpp index 88d24228199..bb55daa3b19 100644 --- a/src/coreComponents/events/PeriodicEvent.cpp +++ b/src/coreComponents/events/PeriodicEvent.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/PeriodicEvent.hpp b/src/coreComponents/events/PeriodicEvent.hpp index d7d2f996838..a737400358a 100644 --- a/src/coreComponents/events/PeriodicEvent.hpp +++ b/src/coreComponents/events/PeriodicEvent.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/SoloEvent.cpp b/src/coreComponents/events/SoloEvent.cpp index e7ef26e0771..5f3b1e87738 100644 --- a/src/coreComponents/events/SoloEvent.cpp +++ b/src/coreComponents/events/SoloEvent.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/SoloEvent.hpp b/src/coreComponents/events/SoloEvent.hpp index 8fb67c00966..ce53eba8f5f 100644 --- a/src/coreComponents/events/SoloEvent.hpp +++ b/src/coreComponents/events/SoloEvent.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/docs/EventManager.rst b/src/coreComponents/events/docs/EventManager.rst index 76c94493feb..8fe6ace3bb8 100644 --- a/src/coreComponents/events/docs/EventManager.rst +++ b/src/coreComponents/events/docs/EventManager.rst @@ -52,8 +52,8 @@ Event ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The children of the Event block define the events that may execute during a simulation. These may be of type ``HaltEvent``, ``PeriodicEvent``, or ``SoloEvent``. The exit criteria for the global event loop are defined by the attributes ``maxTime`` and ``maxCycle`` (which by default are set to their max values). If the optional logLevel flag is set, the EventManager will report additional information with regards to timestep requests and event forecasts for its children. -.. include:: ../../../coreComponents/schema/docs/Events.rst - +.. include:: /docs/sphinx/datastructure/Events.rst + :start-line: 3 PeriodicEvent ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -67,21 +67,22 @@ By default, a PeriodicEvent will execute throughout the entire simulation. This The timestep request event is typically determined via its target. However, this value can be overridden by setting the ``forceDt`` or ``maxEventDt`` attributes. -.. include:: ../../../coreComponents/schema/docs/PeriodicEvent.rst - +.. include:: /docs/sphinx/datastructure/PeriodicEvent.rst + :start-line: 3 SoloEvent ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This type of event will execute once once the event loop reaches a certain cycle (targetCycle) or time (targetTime). Similar to the PeriodicEvent type, this event will modify its timestep requests so that a cycle occurs at the exact time requested (this can be turned off by specifying targetExactTimestep="0"). The forecast calculations follow an similar approach to the PeriodicEvent type. -.. include:: ../../../coreComponents/schema/docs/SoloEvent.rst - +.. include:: /docs/sphinx/datastructure/SoloEvent.rst + :start-line: 3 HaltEvent ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This event type is designed to track the wall clock. When the time exceeds the value specified via maxRunTime, the event will trigger and set a flag that instructs the main EventManager loop to cleanly exit at the end of the current cycle. The event for cast for this event type is given by: ``forecast = (maxRuntime - (currentTime - startTime)) / realDt`` -.. include:: ../../../coreComponents/schema/docs/HaltEvent.rst +.. include:: /docs/sphinx/datastructure/HaltEvent.rst + :start-line: 3 diff --git a/src/coreComponents/events/docs/TasksManager.rst b/src/coreComponents/events/docs/TasksManager.rst index c0e5740b483..49ca88b6dc6 100644 --- a/src/coreComponents/events/docs/TasksManager.rst +++ b/src/coreComponents/events/docs/TasksManager.rst @@ -21,13 +21,15 @@ Task *************************** The children of the Tasks block define different Tasks to be triggered by events specified in the :ref:`EventManager` during the execution of the simulation. At present the only supported task is the ``PackCollection`` used to collect time history data for output by a TimeHistory output. -.. include:: ../../../coreComponents/schema/docs/Tasks.rst - +.. include:: /docs/sphinx/datastructure/Tasks.rst + :start-line: 3 + PackCollection *************************** The ``PackCollection`` Task is used to collect time history information from fields. Either the entire field or specified named sets of indices in the field can be collected. -.. include:: ../../../coreComponents/schema/docs/PackCollection.rst +.. include:: /docs/sphinx/datastructure/PackCollection.rst + :start-line: 3 Note: The time history information collected via this task is buffered internally until it is output by a linked TimeHistory Output. diff --git a/src/coreComponents/events/tasks/TaskBase.cpp b/src/coreComponents/events/tasks/TaskBase.cpp index fa81594d6e3..1a885b95ec2 100644 --- a/src/coreComponents/events/tasks/TaskBase.cpp +++ b/src/coreComponents/events/tasks/TaskBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/tasks/TaskBase.hpp b/src/coreComponents/events/tasks/TaskBase.hpp index 7e4f4d5b02f..c8744e18e15 100644 --- a/src/coreComponents/events/tasks/TaskBase.hpp +++ b/src/coreComponents/events/tasks/TaskBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/tasks/TasksManager.cpp b/src/coreComponents/events/tasks/TasksManager.cpp index 851a6fc8e7a..ad23ae788b1 100644 --- a/src/coreComponents/events/tasks/TasksManager.cpp +++ b/src/coreComponents/events/tasks/TasksManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/events/tasks/TasksManager.hpp b/src/coreComponents/events/tasks/TasksManager.hpp index 8b052585e72..79117b59437 100644 --- a/src/coreComponents/events/tasks/TasksManager.hpp +++ b/src/coreComponents/events/tasks/TasksManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.cpp b/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.cpp index 5eeccb0f095..dffd783e997 100644 --- a/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.cpp +++ b/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -19,8 +19,6 @@ #include "AquiferBoundaryCondition.hpp" -#include "mesh/DomainPartition.hpp" - namespace geos { diff --git a/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.hpp b/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.hpp index 0e7a21f9603..9ee270df074 100644 --- a/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.hpp +++ b/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -118,7 +118,7 @@ class AquiferBoundaryCondition : public FieldSpecificationBase }; - /// @copydoc FieldSpecificationBase(string const &, Group *) + /// @copydoc FieldSpecificationBase(string const &, dataRepository::Group *) AquiferBoundaryCondition( string const & name, Group * parent ); /// deleted default constructor diff --git a/src/coreComponents/fieldSpecification/CMakeLists.txt b/src/coreComponents/fieldSpecification/CMakeLists.txt index d13d6a6c795..943e95ab809 100644 --- a/src/coreComponents/fieldSpecification/CMakeLists.txt +++ b/src/coreComponents/fieldSpecification/CMakeLists.txt @@ -26,14 +26,19 @@ set( fieldSpecification_sources PerfectlyMatchedLayer.cpp ) -set( dependencyList ${parallelDeps} functions linearAlgebra ) +set( dependencyList ${parallelDeps} mesh ) + +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) blt_add_library( NAME fieldSpecification SOURCES ${fieldSpecification_sources} HEADERS ${fieldSpecification_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( fieldSpecification PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS fieldSpecification LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/fieldSpecification/DirichletBoundaryCondition.cpp b/src/coreComponents/fieldSpecification/DirichletBoundaryCondition.cpp index 4aaaf2c83c4..69229b5814f 100644 --- a/src/coreComponents/fieldSpecification/DirichletBoundaryCondition.cpp +++ b/src/coreComponents/fieldSpecification/DirichletBoundaryCondition.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/DirichletBoundaryCondition.hpp b/src/coreComponents/fieldSpecification/DirichletBoundaryCondition.hpp index 0884672d294..589171fcd4e 100644 --- a/src/coreComponents/fieldSpecification/DirichletBoundaryCondition.hpp +++ b/src/coreComponents/fieldSpecification/DirichletBoundaryCondition.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.cpp b/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.cpp index 5a08bfa5347..14a4f0cf60d 100644 --- a/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.cpp +++ b/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.hpp b/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.hpp index f9e53715558..9cff7dd6a93 100644 --- a/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.hpp +++ b/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -34,7 +34,7 @@ class EquilibriumInitialCondition : public FieldSpecificationBase { public: - /// @copydoc FieldSpecificationBase(string const &, Group *) + /// @copydoc FieldSpecificationBase(string const &, dataRepository::Group *) EquilibriumInitialCondition( string const & name, Group * parent ); /// deleted default constructor diff --git a/src/coreComponents/fieldSpecification/FieldSpecificationBase.cpp b/src/coreComponents/fieldSpecification/FieldSpecificationBase.cpp index dd6444dcddd..45e58177dd4 100644 --- a/src/coreComponents/fieldSpecification/FieldSpecificationBase.cpp +++ b/src/coreComponents/fieldSpecification/FieldSpecificationBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,8 +17,6 @@ #include "common/MpiWrapper.hpp" #include "fieldSpecification/FieldSpecificationManager.hpp" -#include "mesh/DomainPartition.hpp" - namespace geos { diff --git a/src/coreComponents/fieldSpecification/FieldSpecificationBase.hpp b/src/coreComponents/fieldSpecification/FieldSpecificationBase.hpp index b76ec17f808..8306eafca0b 100644 --- a/src/coreComponents/fieldSpecification/FieldSpecificationBase.hpp +++ b/src/coreComponents/fieldSpecification/FieldSpecificationBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -26,7 +26,6 @@ #include "codingUtilities/Utilities.hpp" #include "dataRepository/Group.hpp" #include "functions/FunctionBase.hpp" -#include "linearAlgebra/interfaces/InterfaceTypes.hpp" #include "common/FieldSpecificationOps.hpp" #include "mesh/ObjectManagerBase.hpp" #include "mesh/MeshObjectPath.hpp" diff --git a/src/coreComponents/fieldSpecification/FieldSpecificationManager.cpp b/src/coreComponents/fieldSpecification/FieldSpecificationManager.cpp index b24582179e4..6edc963b457 100644 --- a/src/coreComponents/fieldSpecification/FieldSpecificationManager.cpp +++ b/src/coreComponents/fieldSpecification/FieldSpecificationManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/FieldSpecificationManager.hpp b/src/coreComponents/fieldSpecification/FieldSpecificationManager.hpp index 5ce5f1f9e01..91672902314 100644 --- a/src/coreComponents/fieldSpecification/FieldSpecificationManager.hpp +++ b/src/coreComponents/fieldSpecification/FieldSpecificationManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -25,8 +25,6 @@ #include "common/format/StringUtilities.hpp" #include "common/DataTypes.hpp" #include "common/TimingMacros.hpp" -#include "mesh/ObjectManagerBase.hpp" -#include "mesh/DomainPartition.hpp" namespace geos { diff --git a/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.cpp b/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.cpp index 193fb636d17..42a360dff3a 100644 --- a/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.cpp +++ b/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.hpp b/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.hpp index f0f67dd00d3..ce7a6151b2b 100644 --- a/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.hpp +++ b/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -22,13 +22,10 @@ #define GEOS_FIELDSPECIFICATION_PERFECTLYMATCHEDLAYER_HPP_ #include "FieldSpecificationBase.hpp" -#include "mesh/DomainPartition.hpp" namespace geos { -class DomainPartition; - /** * @class PerfectlyMatchedLayer * A class to manage Perfectly Matched Layer for wave propagation solvers diff --git a/src/coreComponents/fieldSpecification/SourceFluxBoundaryCondition.cpp b/src/coreComponents/fieldSpecification/SourceFluxBoundaryCondition.cpp index 720e015ea1d..c3d68b14bf7 100644 --- a/src/coreComponents/fieldSpecification/SourceFluxBoundaryCondition.cpp +++ b/src/coreComponents/fieldSpecification/SourceFluxBoundaryCondition.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/SourceFluxBoundaryCondition.hpp b/src/coreComponents/fieldSpecification/SourceFluxBoundaryCondition.hpp index bb1cbeaa899..e04aa99b9d0 100644 --- a/src/coreComponents/fieldSpecification/SourceFluxBoundaryCondition.hpp +++ b/src/coreComponents/fieldSpecification/SourceFluxBoundaryCondition.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/TractionBoundaryCondition.cpp b/src/coreComponents/fieldSpecification/TractionBoundaryCondition.cpp index ac644adbc79..9feb2731c58 100644 --- a/src/coreComponents/fieldSpecification/TractionBoundaryCondition.cpp +++ b/src/coreComponents/fieldSpecification/TractionBoundaryCondition.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fieldSpecification/TractionBoundaryCondition.hpp b/src/coreComponents/fieldSpecification/TractionBoundaryCondition.hpp index e1ba3890d7c..a64404f40de 100644 --- a/src/coreComponents/fieldSpecification/TractionBoundaryCondition.hpp +++ b/src/coreComponents/fieldSpecification/TractionBoundaryCondition.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -36,7 +36,7 @@ class TableFunction; class TractionBoundaryCondition : public FieldSpecificationBase { public: - /// @copydoc FieldSpecificationBase(string const &, Group *) + /// @copydoc FieldSpecificationBase(string const &, dataRepository::Group *) TractionBoundaryCondition( string const & name, Group * parent ); /// deleted default constructor diff --git a/src/coreComponents/fieldSpecification/docs/AquiferBoundaryCondition.rst b/src/coreComponents/fieldSpecification/docs/AquiferBoundaryCondition.rst index 86e22f1349b..fff21095fe4 100644 --- a/src/coreComponents/fieldSpecification/docs/AquiferBoundaryCondition.rst +++ b/src/coreComponents/fieldSpecification/docs/AquiferBoundaryCondition.rst @@ -156,7 +156,7 @@ The main Carter-Tracy parameters and the expected units are listed below: The full list of parameters is provided below: -.. include:: /coreComponents/schema/docs/Aquifer.rst +.. include:: /docs/sphinx/datastructure/Aquifer.rst Examples =============== diff --git a/src/coreComponents/fieldSpecification/docs/EquilibriumInitialCondition.rst b/src/coreComponents/fieldSpecification/docs/EquilibriumInitialCondition.rst index a3489725b82..3967e4d5831 100644 --- a/src/coreComponents/fieldSpecification/docs/EquilibriumInitialCondition.rst +++ b/src/coreComponents/fieldSpecification/docs/EquilibriumInitialCondition.rst @@ -58,7 +58,7 @@ These parameters are used with the fluid density model (depending for compositio The full list of parameters is provided below: -.. include:: /coreComponents/schema/docs/HydrostaticEquilibrium.rst +.. include:: /docs/sphinx/datastructure/HydrostaticEquilibrium.rst Examples diff --git a/src/coreComponents/fileIO/CMakeLists.txt b/src/coreComponents/fileIO/CMakeLists.txt index 84c758fa2b2..3b70d456190 100644 --- a/src/coreComponents/fileIO/CMakeLists.txt +++ b/src/coreComponents/fileIO/CMakeLists.txt @@ -28,7 +28,7 @@ set( fileIO_sources timeHistory/PackCollection.cpp timeHistory/HDFHistoryIO.cpp ) -set( dependencyList ${parallelDeps} mesh constitutive HDF5::HDF5 ) +set( dependencyList ${parallelDeps} events mesh HDF5::HDF5 ) if( ENABLE_PYGEOSX ) list( APPEND fileIO_headers python/PyHistoryCollectionType.hpp @@ -79,15 +79,21 @@ if( ENABLE_CUDA AND ENABLE_CUDA_NVTOOLSEXT ) list( APPEND dependencyList CUDA::nvToolsExt ) endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME fileIO SOURCES ${fileIO_sources} HEADERS ${fileIO_headers} - DEPENDS_ON ${dependencyList} - OBJECT ${GEOS_BUILD_OBJ_LIBS} ) + DEPENDS_ON ${decoratedDependencies} + OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} + ) target_include_directories( fileIO PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS fileIO LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/fileIO/Outputs/BlueprintOutput.cpp b/src/coreComponents/fileIO/Outputs/BlueprintOutput.cpp index aecbf821a58..21457e7796e 100644 --- a/src/coreComponents/fileIO/Outputs/BlueprintOutput.cpp +++ b/src/coreComponents/fileIO/Outputs/BlueprintOutput.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/BlueprintOutput.hpp b/src/coreComponents/fileIO/Outputs/BlueprintOutput.hpp index d45c7c638d0..7d17570d47d 100644 --- a/src/coreComponents/fileIO/Outputs/BlueprintOutput.hpp +++ b/src/coreComponents/fileIO/Outputs/BlueprintOutput.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/ChomboIO.cpp b/src/coreComponents/fileIO/Outputs/ChomboIO.cpp index 0923d603e4c..674f1e4eace 100644 --- a/src/coreComponents/fileIO/Outputs/ChomboIO.cpp +++ b/src/coreComponents/fileIO/Outputs/ChomboIO.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/ChomboIO.hpp b/src/coreComponents/fileIO/Outputs/ChomboIO.hpp index d816f2094b1..c483f066968 100644 --- a/src/coreComponents/fileIO/Outputs/ChomboIO.hpp +++ b/src/coreComponents/fileIO/Outputs/ChomboIO.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/OutputBase.cpp b/src/coreComponents/fileIO/Outputs/OutputBase.cpp index a09086396f4..0733dd38cc5 100644 --- a/src/coreComponents/fileIO/Outputs/OutputBase.cpp +++ b/src/coreComponents/fileIO/Outputs/OutputBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -19,13 +19,11 @@ #include "OutputBase.hpp" #include "common/MpiWrapper.hpp" +#include "functions/FunctionBase.hpp" namespace geos { -string OutputBase::m_outputDirectory; -string OutputBase::m_fileNameRoot; - using namespace dataRepository; OutputBase::OutputBase( string const & name, @@ -64,14 +62,33 @@ void OutputBase::initializePreSubGroups() // SetupDirectoryStructure(); } + + +string const & OutputBase::getOutputDirectory() +{ + static string m_outputDirectory; + return m_outputDirectory; +} + void OutputBase::setOutputDirectory( string const & outputDir ) { - m_outputDirectory = outputDir; + string & outputDirectory = const_cast< string & >( getOutputDirectory() ); + outputDirectory = outputDir; + FunctionBase::setOutputDirectory( outputDirectory ); +} + + + +string const & OutputBase::getFileNameRoot() +{ + static string m_fileNameRoot; + return m_fileNameRoot; } void OutputBase::setFileNameRoot( string const & root ) { - m_fileNameRoot = root; + string & fileRootName = const_cast< string & >( getFileNameRoot() ); + fileRootName = root; } diff --git a/src/coreComponents/fileIO/Outputs/OutputBase.hpp b/src/coreComponents/fileIO/Outputs/OutputBase.hpp index 6be32f38d2e..f4129433f7d 100644 --- a/src/coreComponents/fileIO/Outputs/OutputBase.hpp +++ b/src/coreComponents/fileIO/Outputs/OutputBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -50,7 +50,7 @@ class OutputBase : public ExecutableGroup * @brief Getter for the output directory * @return The output directory **/ - static string getOutputDirectory() {return m_outputDirectory;} + static string const & getOutputDirectory(); /** * @brief Setter for the file name root @@ -62,7 +62,7 @@ class OutputBase : public ExecutableGroup * @brief Getter for the file name root * @return The file name root **/ - static string getFileNameRoot() { return m_fileNameRoot; } + static string const & getFileNameRoot(); /// Method for setting up output directories. virtual void setupDirectoryStructure(); @@ -92,6 +92,8 @@ class OutputBase : public ExecutableGroup **/ integer parallelThreads() const { return m_parallelThreads; } + + protected: /** * @brief Do initialization prior to calling initialization operations @@ -104,9 +106,6 @@ class OutputBase : public ExecutableGroup string m_childDirectory; integer m_parallelThreads; - static string m_outputDirectory; - static string m_fileNameRoot; - }; diff --git a/src/coreComponents/fileIO/Outputs/OutputManager.cpp b/src/coreComponents/fileIO/Outputs/OutputManager.cpp index daf034aed81..19034f1326b 100644 --- a/src/coreComponents/fileIO/Outputs/OutputManager.cpp +++ b/src/coreComponents/fileIO/Outputs/OutputManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/OutputManager.hpp b/src/coreComponents/fileIO/Outputs/OutputManager.hpp index 5c0ac6c56b2..399b5fd21b0 100644 --- a/src/coreComponents/fileIO/Outputs/OutputManager.hpp +++ b/src/coreComponents/fileIO/Outputs/OutputManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/OutputUtilities.cpp b/src/coreComponents/fileIO/Outputs/OutputUtilities.cpp index a52c011ff57..dceca432602 100644 --- a/src/coreComponents/fileIO/Outputs/OutputUtilities.cpp +++ b/src/coreComponents/fileIO/Outputs/OutputUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/OutputUtilities.hpp b/src/coreComponents/fileIO/Outputs/OutputUtilities.hpp index b7484fc6310..1aa69d07527 100644 --- a/src/coreComponents/fileIO/Outputs/OutputUtilities.hpp +++ b/src/coreComponents/fileIO/Outputs/OutputUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/PythonOutput.cpp b/src/coreComponents/fileIO/Outputs/PythonOutput.cpp index cb528036998..e78f8835a06 100644 --- a/src/coreComponents/fileIO/Outputs/PythonOutput.cpp +++ b/src/coreComponents/fileIO/Outputs/PythonOutput.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/PythonOutput.hpp b/src/coreComponents/fileIO/Outputs/PythonOutput.hpp index c5326f8a044..0e6c3cebb85 100644 --- a/src/coreComponents/fileIO/Outputs/PythonOutput.hpp +++ b/src/coreComponents/fileIO/Outputs/PythonOutput.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/RestartOutput.cpp b/src/coreComponents/fileIO/Outputs/RestartOutput.cpp index 1704ec320bd..6fb7a2c6b19 100644 --- a/src/coreComponents/fileIO/Outputs/RestartOutput.cpp +++ b/src/coreComponents/fileIO/Outputs/RestartOutput.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/RestartOutput.hpp b/src/coreComponents/fileIO/Outputs/RestartOutput.hpp index 5a728e1b7d6..a2a12be781c 100644 --- a/src/coreComponents/fileIO/Outputs/RestartOutput.hpp +++ b/src/coreComponents/fileIO/Outputs/RestartOutput.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/SiloOutput.cpp b/src/coreComponents/fileIO/Outputs/SiloOutput.cpp index 1ade6b9955c..756facc2da1 100644 --- a/src/coreComponents/fileIO/Outputs/SiloOutput.cpp +++ b/src/coreComponents/fileIO/Outputs/SiloOutput.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/SiloOutput.hpp b/src/coreComponents/fileIO/Outputs/SiloOutput.hpp index 1d736d14af4..bb3574f3745 100644 --- a/src/coreComponents/fileIO/Outputs/SiloOutput.hpp +++ b/src/coreComponents/fileIO/Outputs/SiloOutput.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/TimeHistoryOutput.cpp b/src/coreComponents/fileIO/Outputs/TimeHistoryOutput.cpp index a99528b0057..d01edac3dcf 100644 --- a/src/coreComponents/fileIO/Outputs/TimeHistoryOutput.cpp +++ b/src/coreComponents/fileIO/Outputs/TimeHistoryOutput.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -23,6 +23,8 @@ namespace geos { +using namespace dataRepository; + TimeHistoryOutput::TimeHistoryOutput( string const & name, Group * const parent ): OutputBase( name, parent ), @@ -59,8 +61,6 @@ TimeHistoryOutput::TimeHistoryOutput( string const & name, void TimeHistoryOutput::initCollectorParallel( DomainPartition const & domain, HistoryCollection & collector ) { - GEOS_ASSERT( m_io.empty() ); - bool const freshInit = ( m_recordCount == 0 ); string const outputDirectory = getOutputDirectory(); diff --git a/src/coreComponents/fileIO/Outputs/TimeHistoryOutput.hpp b/src/coreComponents/fileIO/Outputs/TimeHistoryOutput.hpp index 759719bc0d4..d7793943d9c 100644 --- a/src/coreComponents/fileIO/Outputs/TimeHistoryOutput.hpp +++ b/src/coreComponents/fileIO/Outputs/TimeHistoryOutput.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/VTKOutput.cpp b/src/coreComponents/fileIO/Outputs/VTKOutput.cpp index 397e8c9e7d4..da364d0e4db 100644 --- a/src/coreComponents/fileIO/Outputs/VTKOutput.cpp +++ b/src/coreComponents/fileIO/Outputs/VTKOutput.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/Outputs/VTKOutput.hpp b/src/coreComponents/fileIO/Outputs/VTKOutput.hpp index afc490548fd..871a6497569 100644 --- a/src/coreComponents/fileIO/Outputs/VTKOutput.hpp +++ b/src/coreComponents/fileIO/Outputs/VTKOutput.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/coupling/ChomboCoupler.cpp b/src/coreComponents/fileIO/coupling/ChomboCoupler.cpp index 9abfa94d556..34761acb4a1 100644 --- a/src/coreComponents/fileIO/coupling/ChomboCoupler.cpp +++ b/src/coreComponents/fileIO/coupling/ChomboCoupler.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/coupling/ChomboCoupler.hpp b/src/coreComponents/fileIO/coupling/ChomboCoupler.hpp index 248744ece01..357ca59f8da 100644 --- a/src/coreComponents/fileIO/coupling/ChomboCoupler.hpp +++ b/src/coreComponents/fileIO/coupling/ChomboCoupler.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/doc/Outputs.rst b/src/coreComponents/fileIO/doc/Outputs.rst index d46204a92e0..b8d91d92fed 100644 --- a/src/coreComponents/fileIO/doc/Outputs.rst +++ b/src/coreComponents/fileIO/doc/Outputs.rst @@ -28,7 +28,7 @@ The SILO output is defined through the ```` XML node (subnode of ```` XML node (subnode of `` The parameter options are listed in the following table: -.. include:: /coreComponents/schema/docs/VTK.rst +.. include:: /docs/sphinx/datastructure/VTK.rst TimeHistory Output ================== @@ -59,7 +59,7 @@ The TimeHistory output is defined through the ```` XML node (subnod The parameter options are listed in the following table: -.. include:: /coreComponents/schema/docs/TimeHistory.rst +.. include:: /docs/sphinx/datastructure/TimeHistory.rst In order to properly collect and output time history information the following steps must be accomplished: diff --git a/src/coreComponents/fileIO/python/PyHistoryCollection.cpp b/src/coreComponents/fileIO/python/PyHistoryCollection.cpp index c4cbaf17c0b..6c844ad87dd 100644 --- a/src/coreComponents/fileIO/python/PyHistoryCollection.cpp +++ b/src/coreComponents/fileIO/python/PyHistoryCollection.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/python/PyHistoryCollectionType.hpp b/src/coreComponents/fileIO/python/PyHistoryCollectionType.hpp index 92e98d01036..6d8f4c5abe7 100644 --- a/src/coreComponents/fileIO/python/PyHistoryCollectionType.hpp +++ b/src/coreComponents/fileIO/python/PyHistoryCollectionType.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/python/PyHistoryOutput.cpp b/src/coreComponents/fileIO/python/PyHistoryOutput.cpp index 64d1fdbf5e7..689aaf7517a 100644 --- a/src/coreComponents/fileIO/python/PyHistoryOutput.cpp +++ b/src/coreComponents/fileIO/python/PyHistoryOutput.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/python/PyHistoryOutputType.hpp b/src/coreComponents/fileIO/python/PyHistoryOutputType.hpp index 43f59c56692..9b1ba1fd947 100644 --- a/src/coreComponents/fileIO/python/PyHistoryOutputType.hpp +++ b/src/coreComponents/fileIO/python/PyHistoryOutputType.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/python/PyVTKOutput.cpp b/src/coreComponents/fileIO/python/PyVTKOutput.cpp index 03ce7d33a56..cfdc269be0d 100644 --- a/src/coreComponents/fileIO/python/PyVTKOutput.cpp +++ b/src/coreComponents/fileIO/python/PyVTKOutput.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/python/PyVTKOutputType.hpp b/src/coreComponents/fileIO/python/PyVTKOutputType.hpp index 274ac593ebc..10ea1e1bcfb 100644 --- a/src/coreComponents/fileIO/python/PyVTKOutputType.hpp +++ b/src/coreComponents/fileIO/python/PyVTKOutputType.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/silo/SiloFile.cpp b/src/coreComponents/fileIO/silo/SiloFile.cpp index 68f3d7289eb..861839fe578 100644 --- a/src/coreComponents/fileIO/silo/SiloFile.cpp +++ b/src/coreComponents/fileIO/silo/SiloFile.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/silo/SiloFile.hpp b/src/coreComponents/fileIO/silo/SiloFile.hpp index 21b7c40d916..5f7e0dd9460 100644 --- a/src/coreComponents/fileIO/silo/SiloFile.hpp +++ b/src/coreComponents/fileIO/silo/SiloFile.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/timeHistory/BufferedHistoryIO.hpp b/src/coreComponents/fileIO/timeHistory/BufferedHistoryIO.hpp index d9bcadb79e1..3207f296ae5 100644 --- a/src/coreComponents/fileIO/timeHistory/BufferedHistoryIO.hpp +++ b/src/coreComponents/fileIO/timeHistory/BufferedHistoryIO.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/timeHistory/HDFFile.cpp b/src/coreComponents/fileIO/timeHistory/HDFFile.cpp index dcca4065a8d..1ed8e6be170 100644 --- a/src/coreComponents/fileIO/timeHistory/HDFFile.cpp +++ b/src/coreComponents/fileIO/timeHistory/HDFFile.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/timeHistory/HDFFile.hpp b/src/coreComponents/fileIO/timeHistory/HDFFile.hpp index d0f16620040..7e428c4ce7d 100644 --- a/src/coreComponents/fileIO/timeHistory/HDFFile.hpp +++ b/src/coreComponents/fileIO/timeHistory/HDFFile.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/timeHistory/HDFHistoryIO.cpp b/src/coreComponents/fileIO/timeHistory/HDFHistoryIO.cpp index 0cdcee895ad..813ea0ad335 100644 --- a/src/coreComponents/fileIO/timeHistory/HDFHistoryIO.cpp +++ b/src/coreComponents/fileIO/timeHistory/HDFHistoryIO.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/timeHistory/HDFHistoryIO.hpp b/src/coreComponents/fileIO/timeHistory/HDFHistoryIO.hpp index 8d76f38e243..043d0658300 100644 --- a/src/coreComponents/fileIO/timeHistory/HDFHistoryIO.hpp +++ b/src/coreComponents/fileIO/timeHistory/HDFHistoryIO.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/timeHistory/HistoryCollection.hpp b/src/coreComponents/fileIO/timeHistory/HistoryCollection.hpp index 67264b16051..2965e631b14 100644 --- a/src/coreComponents/fileIO/timeHistory/HistoryCollection.hpp +++ b/src/coreComponents/fileIO/timeHistory/HistoryCollection.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -26,8 +26,6 @@ namespace geos { -using namespace dataRepository; - /** * @class HistoryCollection * diff --git a/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp b/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp index 9dd9abb200b..b08471a6940 100644 --- a/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp +++ b/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.hpp b/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.hpp index 88b910cd6d3..cc367e8fa5f 100644 --- a/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.hpp +++ b/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/timeHistory/PackCollection.cpp b/src/coreComponents/fileIO/timeHistory/PackCollection.cpp index 14b06f61a0b..ee2822d3f66 100644 --- a/src/coreComponents/fileIO/timeHistory/PackCollection.cpp +++ b/src/coreComponents/fileIO/timeHistory/PackCollection.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,6 +17,9 @@ namespace geos { + +using namespace dataRepository; + PackCollection::PackCollection ( string const & name, Group * parent ) : HistoryCollectionBase( name, parent ) , m_setsIndices( ) diff --git a/src/coreComponents/fileIO/timeHistory/PackCollection.hpp b/src/coreComponents/fileIO/timeHistory/PackCollection.hpp index 748dd6876e6..a39b2d2fac9 100644 --- a/src/coreComponents/fileIO/timeHistory/PackCollection.hpp +++ b/src/coreComponents/fileIO/timeHistory/PackCollection.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/vtk/VTKPVDWriter.cpp b/src/coreComponents/fileIO/vtk/VTKPVDWriter.cpp index 7d0414f2b37..1efb816a350 100644 --- a/src/coreComponents/fileIO/vtk/VTKPVDWriter.cpp +++ b/src/coreComponents/fileIO/vtk/VTKPVDWriter.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/vtk/VTKPVDWriter.hpp b/src/coreComponents/fileIO/vtk/VTKPVDWriter.hpp index 8cf6cf4affe..e0a43121be8 100644 --- a/src/coreComponents/fileIO/vtk/VTKPVDWriter.hpp +++ b/src/coreComponents/fileIO/vtk/VTKPVDWriter.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/vtk/VTKPolyDataWriterInterface.cpp b/src/coreComponents/fileIO/vtk/VTKPolyDataWriterInterface.cpp index 81b2ee70fd4..be65508921b 100644 --- a/src/coreComponents/fileIO/vtk/VTKPolyDataWriterInterface.cpp +++ b/src/coreComponents/fileIO/vtk/VTKPolyDataWriterInterface.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/vtk/VTKPolyDataWriterInterface.hpp b/src/coreComponents/fileIO/vtk/VTKPolyDataWriterInterface.hpp index 7ddc67d730c..526c8e3fb77 100644 --- a/src/coreComponents/fileIO/vtk/VTKPolyDataWriterInterface.hpp +++ b/src/coreComponents/fileIO/vtk/VTKPolyDataWriterInterface.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/vtk/VTKVTMWriter.cpp b/src/coreComponents/fileIO/vtk/VTKVTMWriter.cpp index 6ccbfd3f3e2..8e9b86eff92 100644 --- a/src/coreComponents/fileIO/vtk/VTKVTMWriter.cpp +++ b/src/coreComponents/fileIO/vtk/VTKVTMWriter.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/fileIO/vtk/VTKVTMWriter.hpp b/src/coreComponents/fileIO/vtk/VTKVTMWriter.hpp index 46d0a7862c7..23199ab7b9c 100644 --- a/src/coreComponents/fileIO/vtk/VTKVTMWriter.hpp +++ b/src/coreComponents/fileIO/vtk/VTKVTMWriter.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/BilinearFormUtilities.hpp b/src/coreComponents/finiteElement/BilinearFormUtilities.hpp index b613ee9b88a..28128c26be4 100644 --- a/src/coreComponents/finiteElement/BilinearFormUtilities.hpp +++ b/src/coreComponents/finiteElement/BilinearFormUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/CMakeLists.txt b/src/coreComponents/finiteElement/CMakeLists.txt index a1e5b0b4ad4..3343eb53258 100644 --- a/src/coreComponents/finiteElement/CMakeLists.txt +++ b/src/coreComponents/finiteElement/CMakeLists.txt @@ -42,15 +42,20 @@ set( finiteElement_sources set( dependencyList ${parallelDeps} dataRepository ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME finiteElement SOURCES ${finiteElement_sources} HEADERS ${finiteElement_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( finiteElement PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS finiteElement LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) if( GEOS_ENABLE_TESTS ) add_subdirectory( unitTests ) diff --git a/src/coreComponents/finiteElement/ElementLibrary_depricated/SpecializedFormulations/UniformStrainHexahedron.cpp b/src/coreComponents/finiteElement/ElementLibrary_depricated/SpecializedFormulations/UniformStrainHexahedron.cpp index d7f8a4cfccd..87611b8ce0c 100644 --- a/src/coreComponents/finiteElement/ElementLibrary_depricated/SpecializedFormulations/UniformStrainHexahedron.cpp +++ b/src/coreComponents/finiteElement/ElementLibrary_depricated/SpecializedFormulations/UniformStrainHexahedron.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/ElementLibrary_depricated/SpecializedFormulations/UniformStrainHexahedron.h b/src/coreComponents/finiteElement/ElementLibrary_depricated/SpecializedFormulations/UniformStrainHexahedron.h index de21c56be10..5e31aea441c 100644 --- a/src/coreComponents/finiteElement/ElementLibrary_depricated/SpecializedFormulations/UniformStrainHexahedron.h +++ b/src/coreComponents/finiteElement/ElementLibrary_depricated/SpecializedFormulations/UniformStrainHexahedron.h @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp b/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp index 3f40d4fc8c2..92e13064399 100644 --- a/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp +++ b/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/FiniteElementDiscretization.hpp b/src/coreComponents/finiteElement/FiniteElementDiscretization.hpp index d70d0a34be4..55f3e7f7447 100644 --- a/src/coreComponents/finiteElement/FiniteElementDiscretization.hpp +++ b/src/coreComponents/finiteElement/FiniteElementDiscretization.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/FiniteElementDiscretizationManager.cpp b/src/coreComponents/finiteElement/FiniteElementDiscretizationManager.cpp index ca84c5b01bb..fe7a1d668c8 100644 --- a/src/coreComponents/finiteElement/FiniteElementDiscretizationManager.cpp +++ b/src/coreComponents/finiteElement/FiniteElementDiscretizationManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/FiniteElementDiscretizationManager.hpp b/src/coreComponents/finiteElement/FiniteElementDiscretizationManager.hpp index 32fb2500ed7..0f4b49edf4c 100644 --- a/src/coreComponents/finiteElement/FiniteElementDiscretizationManager.hpp +++ b/src/coreComponents/finiteElement/FiniteElementDiscretizationManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/FiniteElementDispatch.hpp b/src/coreComponents/finiteElement/FiniteElementDispatch.hpp index 205595ff042..7190acbfd47 100644 --- a/src/coreComponents/finiteElement/FiniteElementDispatch.hpp +++ b/src/coreComponents/finiteElement/FiniteElementDispatch.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/Kinematics.h b/src/coreComponents/finiteElement/Kinematics.h index 3dd5d47f48c..c4350cb9cd3 100644 --- a/src/coreComponents/finiteElement/Kinematics.h +++ b/src/coreComponents/finiteElement/Kinematics.h @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/LinearFormUtilities.hpp b/src/coreComponents/finiteElement/LinearFormUtilities.hpp index 374155c6a7c..90153e86578 100644 --- a/src/coreComponents/finiteElement/LinearFormUtilities.hpp +++ b/src/coreComponents/finiteElement/LinearFormUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/PDEUtilities.hpp b/src/coreComponents/finiteElement/PDEUtilities.hpp index a834df8048b..015a68f92f1 100644 --- a/src/coreComponents/finiteElement/PDEUtilities.hpp +++ b/src/coreComponents/finiteElement/PDEUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1.hpp b/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1.hpp index fdba77ade2a..b796efa611b 100644 --- a/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -63,7 +63,9 @@ class ConformingVirtualElementOrder1 final : public FiniteElementBase ConformingVirtualElementOrder1() = default; - virtual ~ConformingVirtualElementOrder1() = default; + GEOS_HOST_DEVICE + virtual ~ConformingVirtualElementOrder1() override + {} /** * @struct StackVariables diff --git a/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1_impl.hpp b/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1_impl.hpp index 49d54710d43..976858220d0 100644 --- a/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1_impl.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/elementFormulations/FiniteElementBase.hpp b/src/coreComponents/finiteElement/elementFormulations/FiniteElementBase.hpp index 352dfe93ee2..4ea49bb651f 100644 --- a/src/coreComponents/finiteElement/elementFormulations/FiniteElementBase.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/FiniteElementBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -57,6 +57,7 @@ class FiniteElementBase * @brief Copy Constructor * @param source The object to copy. */ + GEOS_HOST_DEVICE FiniteElementBase( FiniteElementBase const & source ): #ifdef CALC_FEM_SHAPE_IN_KERNEL m_viewGradN(), @@ -87,7 +88,9 @@ class FiniteElementBase /** * @brief Destructor */ - virtual ~FiniteElementBase() = default; + GEOS_HOST_DEVICE + virtual ~FiniteElementBase() + {} /** * @struct StackVariables diff --git a/src/coreComponents/finiteElement/elementFormulations/H1_Hexahedron_Lagrange1_GaussLegendre2.hpp b/src/coreComponents/finiteElement/elementFormulations/H1_Hexahedron_Lagrange1_GaussLegendre2.hpp index 4cad29f1025..58a685beda8 100644 --- a/src/coreComponents/finiteElement/elementFormulations/H1_Hexahedron_Lagrange1_GaussLegendre2.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/H1_Hexahedron_Lagrange1_GaussLegendre2.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -93,6 +93,7 @@ class H1_Hexahedron_Lagrange1_GaussLegendre2 final : public FiniteElementBase USING_FINITEELEMENTBASE /** @endcond Doxygen_Suppress */ + GEOS_HOST_DEVICE virtual ~H1_Hexahedron_Lagrange1_GaussLegendre2() override {} diff --git a/src/coreComponents/finiteElement/elementFormulations/H1_Pyramid_Lagrange1_Gauss5.hpp b/src/coreComponents/finiteElement/elementFormulations/H1_Pyramid_Lagrange1_Gauss5.hpp index 890d7223a9b..da69a72a195 100644 --- a/src/coreComponents/finiteElement/elementFormulations/H1_Pyramid_Lagrange1_Gauss5.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/H1_Pyramid_Lagrange1_Gauss5.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -77,6 +77,7 @@ class H1_Pyramid_Lagrange1_Gauss5 final : public FiniteElementBase /// The number of sampling points per element. constexpr static int numSamplingPoints = numSamplingPointsPerDirection * numSamplingPointsPerDirection * numSamplingPointsPerDirection; + GEOS_HOST_DEVICE virtual ~H1_Pyramid_Lagrange1_Gauss5() override {} diff --git a/src/coreComponents/finiteElement/elementFormulations/H1_QuadrilateralFace_Lagrange1_GaussLegendre2.hpp b/src/coreComponents/finiteElement/elementFormulations/H1_QuadrilateralFace_Lagrange1_GaussLegendre2.hpp index 9e96f90d535..71a72025977 100644 --- a/src/coreComponents/finiteElement/elementFormulations/H1_QuadrilateralFace_Lagrange1_GaussLegendre2.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/H1_QuadrilateralFace_Lagrange1_GaussLegendre2.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -62,6 +62,7 @@ class H1_QuadrilateralFace_Lagrange1_GaussLegendre2 final : public FiniteElement /// The number of quadrature points per element. constexpr static localIndex numQuadraturePoints = 4; + GEOS_HOST_DEVICE virtual ~H1_QuadrilateralFace_Lagrange1_GaussLegendre2() override {} diff --git a/src/coreComponents/finiteElement/elementFormulations/H1_Tetrahedron_Lagrange1_Gauss1.hpp b/src/coreComponents/finiteElement/elementFormulations/H1_Tetrahedron_Lagrange1_Gauss1.hpp index 790798adc18..8ab7b85b244 100644 --- a/src/coreComponents/finiteElement/elementFormulations/H1_Tetrahedron_Lagrange1_Gauss1.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/H1_Tetrahedron_Lagrange1_Gauss1.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -68,6 +68,7 @@ class H1_Tetrahedron_Lagrange1_Gauss1 final : public FiniteElementBase /// The number of sampling points per element. constexpr static int numSamplingPoints = numSamplingPointsPerDirection * numSamplingPointsPerDirection * numSamplingPointsPerDirection; + GEOS_HOST_DEVICE virtual ~H1_Tetrahedron_Lagrange1_Gauss1() override {} diff --git a/src/coreComponents/finiteElement/elementFormulations/H1_TriangleFace_Lagrange1_Gauss1.hpp b/src/coreComponents/finiteElement/elementFormulations/H1_TriangleFace_Lagrange1_Gauss1.hpp index b2e8aaf6da1..47ed48f9b3d 100644 --- a/src/coreComponents/finiteElement/elementFormulations/H1_TriangleFace_Lagrange1_Gauss1.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/H1_TriangleFace_Lagrange1_Gauss1.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -62,6 +62,7 @@ class H1_TriangleFace_Lagrange1_Gauss1 final : public FiniteElementBase /// The number of quadrature points per element. constexpr static localIndex numQuadraturePoints = 1; + GEOS_HOST_DEVICE virtual ~H1_TriangleFace_Lagrange1_Gauss1() override {} diff --git a/src/coreComponents/finiteElement/elementFormulations/H1_Wedge_Lagrange1_Gauss6.hpp b/src/coreComponents/finiteElement/elementFormulations/H1_Wedge_Lagrange1_Gauss6.hpp index dd767ed0f68..f74a2979296 100644 --- a/src/coreComponents/finiteElement/elementFormulations/H1_Wedge_Lagrange1_Gauss6.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/H1_Wedge_Lagrange1_Gauss6.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -74,6 +74,7 @@ class H1_Wedge_Lagrange1_Gauss6 final : public FiniteElementBase /// The number of sampling points per element. constexpr static int numSamplingPoints = numSamplingPointsPerDirection * numSamplingPointsPerDirection * numSamplingPointsPerDirection; + GEOS_HOST_DEVICE virtual ~H1_Wedge_Lagrange1_Gauss6() override {} diff --git a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis1.hpp b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis1.hpp index 75dfcac2b0a..2ea2d584a79 100644 --- a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis1.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis1.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -176,8 +176,7 @@ class LagrangeBasis1 GEOS_FORCE_INLINE constexpr static real64 gradientBubble( const real64 xi ) { - GEOS_UNUSED_VAR( xi ); - return -0.5*xi; + return -2.0*xi; } /** @@ -420,20 +419,29 @@ class LagrangeBasis1 static void valueFaceBubble( real64 const (&coords)[3], real64 (& N)[numSupportFaces] ) { - for( int a=0; a<2; ++a ) - { - N[ a*5 ] = LagrangeBasis1::valueBubble( coords[0] ) * - LagrangeBasis1::valueBubble( coords[1] ) * - LagrangeBasis1::value( a, coords[2] ); + N[ 0 ] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::value( 0, coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); - N[ a*3+1 ] = LagrangeBasis1::valueBubble( coords[0] ) * - LagrangeBasis1::value( a, coords[1] ) * - LagrangeBasis1::valueBubble( coords[2] ); + N[ 1 ] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::value( 0, coords[2] ); - N[ a+2 ] = LagrangeBasis1::value( a, coords[0] ) * - LagrangeBasis1::valueBubble( coords[1] ) * - LagrangeBasis1::valueBubble( coords[2] ); - } + N[ 2 ] = LagrangeBasis1::value( 0, coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + + N[ 3 ] = LagrangeBasis1::value( 1, coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + + N[ 4 ] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::value( 1, coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + + N[ 5 ] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::value( 1, coords[2] ); } /** @@ -448,38 +456,65 @@ class LagrangeBasis1 static void gradientFaceBubble( real64 const (&coords)[3], real64 (& dNdXi)[numSupportFaces][3] ) { - for( int a=0; a<2; ++a ) - { - dNdXi[ a*5 ][0] = LagrangeBasis1::gradientBubble( coords[0] ) * - LagrangeBasis1::valueBubble( coords[1] ) * - LagrangeBasis1::value( a, coords[2] ); - dNdXi[ a*5 ][1] = LagrangeBasis1::valueBubble( coords[0] ) * - LagrangeBasis1::gradientBubble( coords[1] ) * - LagrangeBasis1::value( a, coords[2] ); - dNdXi[ a*5 ][2] = LagrangeBasis1::valueBubble( coords[0] ) * - LagrangeBasis1::valueBubble( coords[1] ) * - LagrangeBasis1::gradient( a, coords[2] ); - - dNdXi[ a*3+1 ][0] = LagrangeBasis1::gradientBubble( coords[0] ) * - LagrangeBasis1::value( a, coords[1] ) * - LagrangeBasis1::valueBubble( coords[2] ); - dNdXi[ a*3+1 ][1] = LagrangeBasis1::valueBubble( coords[0] ) * - LagrangeBasis1::gradient( a, coords[1] ) * - LagrangeBasis1::valueBubble( coords[2] ); - dNdXi[ a*3+1 ][2] = LagrangeBasis1::valueBubble( coords[0] ) * - LagrangeBasis1::value( a, coords[1] ) * - LagrangeBasis1::gradientBubble( coords[2] ); - - dNdXi[ a+2 ][0] = LagrangeBasis1::gradient( a, coords[0] ) * - LagrangeBasis1::valueBubble( coords[1] ) * - LagrangeBasis1::valueBubble( coords[2] ); - dNdXi[ a+2 ][1] = LagrangeBasis1::value( a, coords[0] ) * - LagrangeBasis1::gradientBubble( coords[1] ) * - LagrangeBasis1::valueBubble( coords[2] ); - dNdXi[ a+2 ][2] = LagrangeBasis1::value( a, coords[0] ) * - LagrangeBasis1::valueBubble( coords[1] ) * - LagrangeBasis1::gradientBubble( coords[2] ); - } + dNdXi[0][0] = LagrangeBasis1::gradientBubble( coords[0] ) * + LagrangeBasis1::value( 0, coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + dNdXi[0][1] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::gradient( 0, coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + dNdXi[0][2] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::value( 0, coords[1] ) * + LagrangeBasis1::gradientBubble( coords[2] ); + + dNdXi[1][0] = LagrangeBasis1::gradientBubble( coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::value( 0, coords[2] ); + dNdXi[1][1] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::gradientBubble( coords[1] ) * + LagrangeBasis1::value( 0, coords[2] ); + dNdXi[1][2] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::gradient( 0, coords[2] ); + + dNdXi[2][0] = LagrangeBasis1::gradient( 0, coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + dNdXi[2][1] = LagrangeBasis1::value( 0, coords[0] ) * + LagrangeBasis1::gradientBubble( coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + dNdXi[2][2] = LagrangeBasis1::value( 0, coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::gradientBubble( coords[2] ); + + dNdXi[3][0] = LagrangeBasis1::gradient( 1, coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + dNdXi[3][1] = LagrangeBasis1::value( 1, coords[0] ) * + LagrangeBasis1::gradientBubble( coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + dNdXi[3][2] = LagrangeBasis1::value( 1, coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::gradientBubble( coords[2] ); + + dNdXi[4][0] = LagrangeBasis1::gradientBubble( coords[0] ) * + LagrangeBasis1::value( 1, coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + dNdXi[4][1] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::gradient( 1, coords[1] ) * + LagrangeBasis1::valueBubble( coords[2] ); + dNdXi[4][2] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::value( 1, coords[1] ) * + LagrangeBasis1::gradientBubble( coords[2] ); + + dNdXi[5][0] = LagrangeBasis1::gradientBubble( coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::value( 1, coords[2] ); + dNdXi[5][1] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::gradientBubble( coords[1] ) * + LagrangeBasis1::value( 1, coords[2] ); + dNdXi[5][2] = LagrangeBasis1::valueBubble( coords[0] ) * + LagrangeBasis1::valueBubble( coords[1] ) * + LagrangeBasis1::gradient( 1, coords[2] ); } /** diff --git a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis2.hpp b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis2.hpp index 390b3cf0dc0..24e04d4f774 100644 --- a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis2.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis2.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis3GL.hpp b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis3GL.hpp index f1d2f2dc086..b3022db5c37 100644 --- a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis3GL.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis3GL.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis4GL.hpp b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis4GL.hpp index 02f694ed362..2562fdb1693 100644 --- a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis4GL.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis4GL.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis5GL.hpp b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis5GL.hpp index 623a7c2a638..fa3fd99be08 100644 --- a/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis5GL.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/LagrangeBasis5GL.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/elementFormulations/Qk_Hexahedron_Lagrange_GaussLobatto.hpp b/src/coreComponents/finiteElement/elementFormulations/Qk_Hexahedron_Lagrange_GaussLobatto.hpp index f7f384241be..2290c28456a 100644 --- a/src/coreComponents/finiteElement/elementFormulations/Qk_Hexahedron_Lagrange_GaussLobatto.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/Qk_Hexahedron_Lagrange_GaussLobatto.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -122,8 +122,7 @@ class Qk_Hexahedron_Lagrange_GaussLobatto final : public FiniteElementBase USING_FINITEELEMENTBASE /** @endcond Doxygen_Suppress */ - virtual ~Qk_Hexahedron_Lagrange_GaussLobatto() override - {} + ~Qk_Hexahedron_Lagrange_GaussLobatto() = default; GEOS_HOST_DEVICE virtual localIndex getNumQuadraturePoints() const override @@ -328,6 +327,51 @@ class Qk_Hexahedron_Lagrange_GaussLobatto final : public FiniteElementBase real64 const (&X)[numNodes][3], StackVariables const & stack, real64 ( &gradN )[numNodes][3] ); + /** + * @brief Calculate the shape functions derivatives wrt the physical + * coordinates. + * @param q Index of the quadrature point. + * @param X Array containing the coordinates of the mesh corners. + * @param gradN Array to contain the shape function derivatives for all + * support points at the coordinates of the quadrature point @p q. + * @return The determinant of the parent/physical transformation matrix. + */ + GEOS_HOST_DEVICE + GEOS_FORCE_INLINE + static real64 calcGradNWithCorners( localIndex const q, + real64 const (&X)[8][3], + real64 ( &gradN )[numNodes][3] ); + /** + * @brief Calculate the shape functions derivatives wrt the physical + * coordinates at a single point. + * @param[in] coords The parent coordinates at which to evaluate the shape function value + * @param[in] X Array containing the coordinates of the mesh corners. + * @param[out] gradN Array to contain the shape function derivatives for all + * support points at the coordinates of the quadrature point @p q. + * @return The determinant of the parent/physical transformation matrix. + */ + GEOS_HOST_DEVICE + GEOS_FORCE_INLINE + static real64 calcGradNWithCorners( real64 const (&coords)[3], + real64 const (&X)[8][3], + real64 ( &gradN )[numNodes][3] ); + + /** + * @brief Calculate the shape functions derivatives wrt the physical + * coordinates. + * @param q Index of the quadrature point. + * @param X Array containing the coordinates of the mesh corners. + * @param stack Variables allocated on the stack as filled by @ref setupStack. + * @param gradN Array to contain the shape function derivatives for all + * support points at the coordinates of the quadrature point @p q. + * @return The determinant of the parent/physical transformation matrix. + */ + GEOS_HOST_DEVICE + GEOS_FORCE_INLINE + static real64 calcGradNWithCorners( localIndex const q, + real64 const (&X)[8][3], + StackVariables const & stack, + real64 ( &gradN )[numNodes][3] ); /** * @brief Calculate the integration weights for a quadrature point. @@ -494,6 +538,22 @@ class Qk_Hexahedron_Lagrange_GaussLobatto final : public FiniteElementBase static void jacobianTransformation( real64 const (&coords)[3], real64 const (&X)[numNodes][3], real64 ( &J )[3][3] ); + + /** + * @brief Calculates the isoparametric "Jacobian" transformation + * matrix/mapping from the parent space to the physical space at a single point. + * Assumes that the coordinate of high-order nodes are given by trilinear + * interpolation of the mesh corners. + * @param coords The parent coordinates at which to evaluate the shape function value + * @param X Array containing the coordinates of the mesh corners. + * @param J Array to store the Jacobian transformation. + */ + GEOS_HOST_DEVICE + GEOS_FORCE_INLINE + static void jacobianTransformationWithCorners( real64 const (&coords)[3], + real64 const (&X)[8][3], + real64 ( &J )[3][3] ); + /** * @brief performs a trilinear interpolation to determine the real-world coordinates of a * vertex @@ -923,6 +983,57 @@ calcGradN( localIndex const q, return calcGradN( q, X, gradN ); } +template< typename GL_BASIS > +GEOS_HOST_DEVICE +GEOS_FORCE_INLINE +real64 +Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >::calcGradNWithCorners( localIndex const q, + real64 const (&X)[8][3], + real64 (& gradN)[numNodes][3] ) +{ + int qa, qb, qc; + GL_BASIS::TensorProduct3D::multiIndex( q, qa, qb, qc ); + + real64 J[3][3] = {{0}}; + + jacobianTransformation( qa, qb, qc, X, J ); + + real64 const detJ = LvArray::tensorOps::invert< 3 >( J ); + + applyTransformationToParentGradients( q, J, gradN ); + + return detJ; +} +//************************************************************************************************* +template< typename GL_BASIS > +GEOS_HOST_DEVICE +GEOS_FORCE_INLINE +real64 +Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >::calcGradNWithCorners( real64 const (&coords)[3], + real64 const (&X)[8][3], + real64 (& gradN)[numNodes][3] ) +{ + real64 J[3][3] = {{0}}; + + jacobianTransformationWithCorners( coords, X, J ); + + real64 const detJ = LvArray::tensorOps::invert< 3 >( J ); + + applyTransformationToParentGradients( coords, J, gradN ); + + return detJ; +} +template< typename GL_BASIS > +GEOS_HOST_DEVICE +GEOS_FORCE_INLINE +real64 Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >:: +calcGradNWithCorners( localIndex const q, + real64 const (&X)[8][3], + StackVariables const & GEOS_UNUSED_PARAM( stack ), + real64 ( & gradN )[numNodes][3] ) +{ + return calcGradN( q, X, gradN ); +} //************************************************************************************************* #if __GNUC__ #pragma GCC diagnostic push @@ -983,6 +1094,37 @@ jacobianTransformation( real64 const (&coords)[3], }, X, J ); } +template< typename GL_BASIS > +GEOS_HOST_DEVICE +GEOS_FORCE_INLINE +void +Qk_Hexahedron_Lagrange_GaussLobatto< GL_BASIS >:: +jacobianTransformationWithCorners( real64 const (&coords)[3], + real64 const (&X)[8][3], + real64 ( & J )[3][3] ) +{ + supportLoop( coords, [] GEOS_HOST_DEVICE ( real64 const (&dNdXi)[3], + int const nodeIndex, + real64 const (&X)[8][3], + real64 (& J)[3][3] ) + { + int qa, qb, qc; + GL_BASIS::TensorProduct3D::multiIndex( nodeIndex, qa, qb, qc ); + real64 Xnode[3]; + real64 alpha = ( GL_BASIS::parentSupportCoord( qa ) + 1.0 ) / 2.0; + real64 beta = ( GL_BASIS::parentSupportCoord( qb ) + 1.0 ) / 2.0; + real64 gamma = ( GL_BASIS::parentSupportCoord( qc ) + 1.0 ) / 2.0; + trilinearInterp( alpha, beta, gamma, X, Xnode ); + for( int i = 0; i < 3; ++i ) + { + for( int j = 0; j < 3; ++j ) + { + J[i][j] = J[i][j] + dNdXi[ j ] * Xnode[i]; + } + } + }, X, J ); +} + template< typename GL_BASIS > GEOS_HOST_DEVICE GEOS_FORCE_INLINE diff --git a/src/coreComponents/finiteElement/kernelInterface/ImplicitKernelBase.hpp b/src/coreComponents/finiteElement/kernelInterface/ImplicitKernelBase.hpp index 41ddc090fdf..05aff84961b 100644 --- a/src/coreComponents/finiteElement/kernelInterface/ImplicitKernelBase.hpp +++ b/src/coreComponents/finiteElement/kernelInterface/ImplicitKernelBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/kernelInterface/InterfaceKernelBase.hpp b/src/coreComponents/finiteElement/kernelInterface/InterfaceKernelBase.hpp index 0c806f5b50f..2d7799380ca 100644 --- a/src/coreComponents/finiteElement/kernelInterface/InterfaceKernelBase.hpp +++ b/src/coreComponents/finiteElement/kernelInterface/InterfaceKernelBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/kernelInterface/KernelBase.hpp b/src/coreComponents/finiteElement/kernelInterface/KernelBase.hpp index 4ec0ea972dd..eaa4f66a1c4 100644 --- a/src/coreComponents/finiteElement/kernelInterface/KernelBase.hpp +++ b/src/coreComponents/finiteElement/kernelInterface/KernelBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -265,7 +265,7 @@ class KernelBase /// The finite element space/discretization object for the element type in /// the SUBREGION_TYPE. - FE_TYPE const & m_finiteElementSpace; + FE_TYPE const m_finiteElementSpace; }; /** diff --git a/src/coreComponents/finiteElement/kernelInterface/SparsityKernelBase.hpp b/src/coreComponents/finiteElement/kernelInterface/SparsityKernelBase.hpp index 60eb3a0fcec..cf16647a23b 100644 --- a/src/coreComponents/finiteElement/kernelInterface/SparsityKernelBase.hpp +++ b/src/coreComponents/finiteElement/kernelInterface/SparsityKernelBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testFiniteElementBase.cpp b/src/coreComponents/finiteElement/unitTests/testFiniteElementBase.cpp index 833503b4789..463c1a10ea4 100644 --- a/src/coreComponents/finiteElement/unitTests/testFiniteElementBase.cpp +++ b/src/coreComponents/finiteElement/unitTests/testFiniteElementBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testFiniteElementHelpers.hpp b/src/coreComponents/finiteElement/unitTests/testFiniteElementHelpers.hpp index 0b5698f6a2a..c996e7d2d53 100644 --- a/src/coreComponents/finiteElement/unitTests/testFiniteElementHelpers.hpp +++ b/src/coreComponents/finiteElement/unitTests/testFiniteElementHelpers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testH1_Hexahedron_Lagrange1_GaussLegendre2.cpp b/src/coreComponents/finiteElement/unitTests/testH1_Hexahedron_Lagrange1_GaussLegendre2.cpp index 600f7a07b4e..fcee7b20126 100644 --- a/src/coreComponents/finiteElement/unitTests/testH1_Hexahedron_Lagrange1_GaussLegendre2.cpp +++ b/src/coreComponents/finiteElement/unitTests/testH1_Hexahedron_Lagrange1_GaussLegendre2.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testH1_Pyramid_Lagrange1_Gauss5.cpp b/src/coreComponents/finiteElement/unitTests/testH1_Pyramid_Lagrange1_Gauss5.cpp index 6070b87d454..dd0312ffb6d 100644 --- a/src/coreComponents/finiteElement/unitTests/testH1_Pyramid_Lagrange1_Gauss5.cpp +++ b/src/coreComponents/finiteElement/unitTests/testH1_Pyramid_Lagrange1_Gauss5.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testH1_QuadrilateralFace_Lagrange1_GaussLegendre2.cpp b/src/coreComponents/finiteElement/unitTests/testH1_QuadrilateralFace_Lagrange1_GaussLegendre2.cpp index 6b8879eca9c..59a7381d164 100644 --- a/src/coreComponents/finiteElement/unitTests/testH1_QuadrilateralFace_Lagrange1_GaussLegendre2.cpp +++ b/src/coreComponents/finiteElement/unitTests/testH1_QuadrilateralFace_Lagrange1_GaussLegendre2.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testH1_Tetrahedron_Lagrange1_Gauss1.cpp b/src/coreComponents/finiteElement/unitTests/testH1_Tetrahedron_Lagrange1_Gauss1.cpp index 4bb8378d7d4..17def32ab98 100644 --- a/src/coreComponents/finiteElement/unitTests/testH1_Tetrahedron_Lagrange1_Gauss1.cpp +++ b/src/coreComponents/finiteElement/unitTests/testH1_Tetrahedron_Lagrange1_Gauss1.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testH1_TriangleFace_Lagrange1_Gauss1.cpp b/src/coreComponents/finiteElement/unitTests/testH1_TriangleFace_Lagrange1_Gauss1.cpp index 4cbf0d27496..b30208893be 100644 --- a/src/coreComponents/finiteElement/unitTests/testH1_TriangleFace_Lagrange1_Gauss1.cpp +++ b/src/coreComponents/finiteElement/unitTests/testH1_TriangleFace_Lagrange1_Gauss1.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testH1_Wedge_Lagrange1_Gauss6.cpp b/src/coreComponents/finiteElement/unitTests/testH1_Wedge_Lagrange1_Gauss6.cpp index 2ba1414859f..cacbd995848 100644 --- a/src/coreComponents/finiteElement/unitTests/testH1_Wedge_Lagrange1_Gauss6.cpp +++ b/src/coreComponents/finiteElement/unitTests/testH1_Wedge_Lagrange1_Gauss6.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testQ3_Hexahedron_Lagrange_GaussLobatto.cpp b/src/coreComponents/finiteElement/unitTests/testQ3_Hexahedron_Lagrange_GaussLobatto.cpp index b28dced29d9..74ce89005b2 100644 --- a/src/coreComponents/finiteElement/unitTests/testQ3_Hexahedron_Lagrange_GaussLobatto.cpp +++ b/src/coreComponents/finiteElement/unitTests/testQ3_Hexahedron_Lagrange_GaussLobatto.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteElement/unitTests/testQ5_Hexahedron_Lagrange_GaussLobatto.cpp b/src/coreComponents/finiteElement/unitTests/testQ5_Hexahedron_Lagrange_GaussLobatto.cpp index 38e173e0795..11da6407f41 100644 --- a/src/coreComponents/finiteElement/unitTests/testQ5_Hexahedron_Lagrange_GaussLobatto.cpp +++ b/src/coreComponents/finiteElement/unitTests/testQ5_Hexahedron_Lagrange_GaussLobatto.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/BoundaryStencil.cpp b/src/coreComponents/finiteVolume/BoundaryStencil.cpp index dfa11702af5..5d08b265115 100644 --- a/src/coreComponents/finiteVolume/BoundaryStencil.cpp +++ b/src/coreComponents/finiteVolume/BoundaryStencil.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/BoundaryStencil.hpp b/src/coreComponents/finiteVolume/BoundaryStencil.hpp index 5cfa6957124..f6f1a40b969 100644 --- a/src/coreComponents/finiteVolume/BoundaryStencil.hpp +++ b/src/coreComponents/finiteVolume/BoundaryStencil.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/CMakeLists.txt b/src/coreComponents/finiteVolume/CMakeLists.txt index 46b200344fa..39dd4450445 100644 --- a/src/coreComponents/finiteVolume/CMakeLists.txt +++ b/src/coreComponents/finiteVolume/CMakeLists.txt @@ -40,14 +40,19 @@ set( finiteVolume_sources HybridMimeticDiscretization.cpp ) -set( dependencyList ${parallelDeps} mesh codingUtilities fieldSpecification ) +set( dependencyList ${parallelDeps} mesh fieldSpecification ) + +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) blt_add_library( NAME finiteVolume SOURCES ${finiteVolume_sources} HEADERS ${finiteVolume_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( finiteVolume PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS finiteVolume LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/finiteVolume/CellElementStencilMPFA.cpp b/src/coreComponents/finiteVolume/CellElementStencilMPFA.cpp index d04dcb8464c..7bc34a70fb6 100644 --- a/src/coreComponents/finiteVolume/CellElementStencilMPFA.cpp +++ b/src/coreComponents/finiteVolume/CellElementStencilMPFA.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/CellElementStencilMPFA.hpp b/src/coreComponents/finiteVolume/CellElementStencilMPFA.hpp index c730b22795b..7a68580460a 100644 --- a/src/coreComponents/finiteVolume/CellElementStencilMPFA.hpp +++ b/src/coreComponents/finiteVolume/CellElementStencilMPFA.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/CellElementStencilTPFA.cpp b/src/coreComponents/finiteVolume/CellElementStencilTPFA.cpp index b9bf2b3e1a8..5464447494a 100644 --- a/src/coreComponents/finiteVolume/CellElementStencilTPFA.cpp +++ b/src/coreComponents/finiteVolume/CellElementStencilTPFA.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/CellElementStencilTPFA.hpp b/src/coreComponents/finiteVolume/CellElementStencilTPFA.hpp index 0994b727abf..dcbe5850cea 100644 --- a/src/coreComponents/finiteVolume/CellElementStencilTPFA.hpp +++ b/src/coreComponents/finiteVolume/CellElementStencilTPFA.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/EmbeddedSurfaceToCellStencil.cpp b/src/coreComponents/finiteVolume/EmbeddedSurfaceToCellStencil.cpp index 514f34b6db2..199767e948c 100644 --- a/src/coreComponents/finiteVolume/EmbeddedSurfaceToCellStencil.cpp +++ b/src/coreComponents/finiteVolume/EmbeddedSurfaceToCellStencil.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/EmbeddedSurfaceToCellStencil.hpp b/src/coreComponents/finiteVolume/EmbeddedSurfaceToCellStencil.hpp index 0e752f83c55..511d4601a17 100644 --- a/src/coreComponents/finiteVolume/EmbeddedSurfaceToCellStencil.hpp +++ b/src/coreComponents/finiteVolume/EmbeddedSurfaceToCellStencil.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/FaceElementToCellStencil.cpp b/src/coreComponents/finiteVolume/FaceElementToCellStencil.cpp index 3a388ee3262..a032dcb9c6b 100644 --- a/src/coreComponents/finiteVolume/FaceElementToCellStencil.cpp +++ b/src/coreComponents/finiteVolume/FaceElementToCellStencil.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/FaceElementToCellStencil.hpp b/src/coreComponents/finiteVolume/FaceElementToCellStencil.hpp index 72edefcab25..2654d3d9f90 100644 --- a/src/coreComponents/finiteVolume/FaceElementToCellStencil.hpp +++ b/src/coreComponents/finiteVolume/FaceElementToCellStencil.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/FiniteVolumeManager.cpp b/src/coreComponents/finiteVolume/FiniteVolumeManager.cpp index 0879befa229..7c1bb141182 100644 --- a/src/coreComponents/finiteVolume/FiniteVolumeManager.cpp +++ b/src/coreComponents/finiteVolume/FiniteVolumeManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/FiniteVolumeManager.hpp b/src/coreComponents/finiteVolume/FiniteVolumeManager.hpp index 89a8bf0b8f2..8e1fc606b1d 100644 --- a/src/coreComponents/finiteVolume/FiniteVolumeManager.hpp +++ b/src/coreComponents/finiteVolume/FiniteVolumeManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/FluxApproximationBase.cpp b/src/coreComponents/finiteVolume/FluxApproximationBase.cpp index e1ce126d105..9cca35ac2ef 100644 --- a/src/coreComponents/finiteVolume/FluxApproximationBase.cpp +++ b/src/coreComponents/finiteVolume/FluxApproximationBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/FluxApproximationBase.hpp b/src/coreComponents/finiteVolume/FluxApproximationBase.hpp index 0a71f3a3c26..873fa531b3b 100644 --- a/src/coreComponents/finiteVolume/FluxApproximationBase.hpp +++ b/src/coreComponents/finiteVolume/FluxApproximationBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/HybridMimeticDiscretization.cpp b/src/coreComponents/finiteVolume/HybridMimeticDiscretization.cpp index 7d1f8acfe68..267a5d7905f 100644 --- a/src/coreComponents/finiteVolume/HybridMimeticDiscretization.cpp +++ b/src/coreComponents/finiteVolume/HybridMimeticDiscretization.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/HybridMimeticDiscretization.hpp b/src/coreComponents/finiteVolume/HybridMimeticDiscretization.hpp index 54db1dbcee3..3d39e41b3d2 100644 --- a/src/coreComponents/finiteVolume/HybridMimeticDiscretization.hpp +++ b/src/coreComponents/finiteVolume/HybridMimeticDiscretization.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/MimeticInnerProductDispatch.hpp b/src/coreComponents/finiteVolume/MimeticInnerProductDispatch.hpp index 153f695a93d..37a1b28c5f9 100644 --- a/src/coreComponents/finiteVolume/MimeticInnerProductDispatch.hpp +++ b/src/coreComponents/finiteVolume/MimeticInnerProductDispatch.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/ProjectionEDFMHelper.cpp b/src/coreComponents/finiteVolume/ProjectionEDFMHelper.cpp index 44934c17693..080375a17cc 100644 --- a/src/coreComponents/finiteVolume/ProjectionEDFMHelper.cpp +++ b/src/coreComponents/finiteVolume/ProjectionEDFMHelper.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/ProjectionEDFMHelper.hpp b/src/coreComponents/finiteVolume/ProjectionEDFMHelper.hpp index 3d929069ac5..d2f83e54d45 100644 --- a/src/coreComponents/finiteVolume/ProjectionEDFMHelper.hpp +++ b/src/coreComponents/finiteVolume/ProjectionEDFMHelper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/StencilBase.hpp b/src/coreComponents/finiteVolume/StencilBase.hpp index f0feae5e544..abd2ce0a1d2 100644 --- a/src/coreComponents/finiteVolume/StencilBase.hpp +++ b/src/coreComponents/finiteVolume/StencilBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/SurfaceElementStencil.cpp b/src/coreComponents/finiteVolume/SurfaceElementStencil.cpp index 91e128584b0..21ac95e9129 100644 --- a/src/coreComponents/finiteVolume/SurfaceElementStencil.cpp +++ b/src/coreComponents/finiteVolume/SurfaceElementStencil.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/SurfaceElementStencil.hpp b/src/coreComponents/finiteVolume/SurfaceElementStencil.hpp index 816aed1dde5..5639a109b71 100644 --- a/src/coreComponents/finiteVolume/SurfaceElementStencil.hpp +++ b/src/coreComponents/finiteVolume/SurfaceElementStencil.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/TwoPointFluxApproximation.cpp b/src/coreComponents/finiteVolume/TwoPointFluxApproximation.cpp index d2a03d3c0f7..7ce80ad8d6d 100644 --- a/src/coreComponents/finiteVolume/TwoPointFluxApproximation.cpp +++ b/src/coreComponents/finiteVolume/TwoPointFluxApproximation.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/TwoPointFluxApproximation.hpp b/src/coreComponents/finiteVolume/TwoPointFluxApproximation.hpp index af85a416699..498e6b77213 100644 --- a/src/coreComponents/finiteVolume/TwoPointFluxApproximation.hpp +++ b/src/coreComponents/finiteVolume/TwoPointFluxApproximation.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/mimeticInnerProducts/BdVLMInnerProduct.hpp b/src/coreComponents/finiteVolume/mimeticInnerProducts/BdVLMInnerProduct.hpp index d06bbd1bda9..98587eedb75 100644 --- a/src/coreComponents/finiteVolume/mimeticInnerProducts/BdVLMInnerProduct.hpp +++ b/src/coreComponents/finiteVolume/mimeticInnerProducts/BdVLMInnerProduct.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/mimeticInnerProducts/MimeticInnerProductBase.hpp b/src/coreComponents/finiteVolume/mimeticInnerProducts/MimeticInnerProductBase.hpp index 09d2c67e3ad..f96ac38c88b 100644 --- a/src/coreComponents/finiteVolume/mimeticInnerProducts/MimeticInnerProductBase.hpp +++ b/src/coreComponents/finiteVolume/mimeticInnerProducts/MimeticInnerProductBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/mimeticInnerProducts/MimeticInnerProductHelpers.hpp b/src/coreComponents/finiteVolume/mimeticInnerProducts/MimeticInnerProductHelpers.hpp index 7dff4358bd5..83d62e2ace9 100644 --- a/src/coreComponents/finiteVolume/mimeticInnerProducts/MimeticInnerProductHelpers.hpp +++ b/src/coreComponents/finiteVolume/mimeticInnerProducts/MimeticInnerProductHelpers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/mimeticInnerProducts/QuasiRTInnerProduct.hpp b/src/coreComponents/finiteVolume/mimeticInnerProducts/QuasiRTInnerProduct.hpp index 323c5b2afdd..7d0606e990c 100644 --- a/src/coreComponents/finiteVolume/mimeticInnerProducts/QuasiRTInnerProduct.hpp +++ b/src/coreComponents/finiteVolume/mimeticInnerProducts/QuasiRTInnerProduct.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/mimeticInnerProducts/QuasiTPFAInnerProduct.hpp b/src/coreComponents/finiteVolume/mimeticInnerProducts/QuasiTPFAInnerProduct.hpp index 858e6c17153..61c5f07a078 100644 --- a/src/coreComponents/finiteVolume/mimeticInnerProducts/QuasiTPFAInnerProduct.hpp +++ b/src/coreComponents/finiteVolume/mimeticInnerProducts/QuasiTPFAInnerProduct.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/mimeticInnerProducts/SimpleInnerProduct.hpp b/src/coreComponents/finiteVolume/mimeticInnerProducts/SimpleInnerProduct.hpp index 3a3cd5db06b..19282b23568 100644 --- a/src/coreComponents/finiteVolume/mimeticInnerProducts/SimpleInnerProduct.hpp +++ b/src/coreComponents/finiteVolume/mimeticInnerProducts/SimpleInnerProduct.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/finiteVolume/mimeticInnerProducts/TPFAInnerProduct.hpp b/src/coreComponents/finiteVolume/mimeticInnerProducts/TPFAInnerProduct.hpp index 5846178b101..6264135df16 100644 --- a/src/coreComponents/finiteVolume/mimeticInnerProducts/TPFAInnerProduct.hpp +++ b/src/coreComponents/finiteVolume/mimeticInnerProducts/TPFAInnerProduct.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/CMakeLists.txt b/src/coreComponents/functions/CMakeLists.txt index 5a3804dbc24..8e73070438c 100644 --- a/src/coreComponents/functions/CMakeLists.txt +++ b/src/coreComponents/functions/CMakeLists.txt @@ -27,21 +27,27 @@ if( ENABLE_MATHPRESSO ) endif() -set( dependencyList ${parallelDeps} codingUtilities dataRepository fileIO ) +set( dependencyList ${parallelDeps} dataRepository ) if( ENABLE_MATHPRESSO ) list( APPEND dependencyList mathpresso ) endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME functions SOURCES ${functions_sources} HEADERS ${functions_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( functions PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS functions LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) + if( GEOS_ENABLE_TESTS ) add_subdirectory( unitTests ) endif() diff --git a/src/coreComponents/functions/CompositeFunction.cpp b/src/coreComponents/functions/CompositeFunction.cpp index e45fc8b747f..2bd9885ba88 100644 --- a/src/coreComponents/functions/CompositeFunction.cpp +++ b/src/coreComponents/functions/CompositeFunction.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/CompositeFunction.hpp b/src/coreComponents/functions/CompositeFunction.hpp index cfcbc5bf174..1ba6c8d9407 100644 --- a/src/coreComponents/functions/CompositeFunction.hpp +++ b/src/coreComponents/functions/CompositeFunction.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/FunctionBase.cpp b/src/coreComponents/functions/FunctionBase.cpp index dbc6279c727..9b4ae666e51 100644 --- a/src/coreComponents/functions/FunctionBase.cpp +++ b/src/coreComponents/functions/FunctionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -72,5 +72,16 @@ real64_array FunctionBase::evaluateStats( dataRepository::Group const & group, return result; } +string const & FunctionBase::getOutputDirectory() +{ + static string outputDirectory; + return outputDirectory; +} +void FunctionBase::setOutputDirectory( string const & dir ) +{ + string & outputDirectory = const_cast< string & >( getOutputDirectory() ); + outputDirectory = dir; +} + } // end of namespace geos diff --git a/src/coreComponents/functions/FunctionBase.hpp b/src/coreComponents/functions/FunctionBase.hpp index 4d37ebf089c..44f9c30bf47 100644 --- a/src/coreComponents/functions/FunctionBase.hpp +++ b/src/coreComponents/functions/FunctionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -124,6 +124,17 @@ class FunctionBase : public dataRepository::Group */ void setInputVarNames( string_array inputVarNames ) { m_inputVarNames = std::move( inputVarNames ); } + /** + * @brief Get the output directory for function output + * @return a string containing the output directory + */ + static string const & getOutputDirectory(); + + /** + * @brief Set the output directory for function output + * @param outputDir The output directory + */ + static void setOutputDirectory( string const & outputDir ); protected: /// names for the input variables diff --git a/src/coreComponents/functions/FunctionManager.cpp b/src/coreComponents/functions/FunctionManager.cpp index f0e938782ed..5cf652a8593 100644 --- a/src/coreComponents/functions/FunctionManager.cpp +++ b/src/coreComponents/functions/FunctionManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/FunctionManager.hpp b/src/coreComponents/functions/FunctionManager.hpp index 3880bbef159..9c5359fb622 100644 --- a/src/coreComponents/functions/FunctionManager.hpp +++ b/src/coreComponents/functions/FunctionManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/MultivariableTableFunction.cpp b/src/coreComponents/functions/MultivariableTableFunction.cpp index ee6f5b7ef06..9200e188076 100644 --- a/src/coreComponents/functions/MultivariableTableFunction.cpp +++ b/src/coreComponents/functions/MultivariableTableFunction.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/MultivariableTableFunction.hpp b/src/coreComponents/functions/MultivariableTableFunction.hpp index 37660da0751..fd6e99c891d 100644 --- a/src/coreComponents/functions/MultivariableTableFunction.hpp +++ b/src/coreComponents/functions/MultivariableTableFunction.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/MultivariableTableFunctionKernels.hpp b/src/coreComponents/functions/MultivariableTableFunctionKernels.hpp index 9be5df924f5..0647536f524 100644 --- a/src/coreComponents/functions/MultivariableTableFunctionKernels.hpp +++ b/src/coreComponents/functions/MultivariableTableFunctionKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/SymbolicFunction.cpp b/src/coreComponents/functions/SymbolicFunction.cpp index 3088c781093..52187b1af13 100644 --- a/src/coreComponents/functions/SymbolicFunction.cpp +++ b/src/coreComponents/functions/SymbolicFunction.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/SymbolicFunction.hpp b/src/coreComponents/functions/SymbolicFunction.hpp index d58a9f157c5..f05e5d22336 100644 --- a/src/coreComponents/functions/SymbolicFunction.hpp +++ b/src/coreComponents/functions/SymbolicFunction.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/functions/TableFunction.cpp b/src/coreComponents/functions/TableFunction.cpp index 9b71eee3805..2e1897e7629 100644 --- a/src/coreComponents/functions/TableFunction.cpp +++ b/src/coreComponents/functions/TableFunction.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -20,7 +20,6 @@ #include "TableFunction.hpp" #include "codingUtilities/Parsing.hpp" #include "common/DataTypes.hpp" -#include "fileIO/Outputs/OutputBase.hpp" #include @@ -185,77 +184,6 @@ void TableFunction::checkCoord( real64 const coord, localIndex const dim ) const SimulationError ); } -void TableFunction::print( std::string const & filename ) const -{ - std::ofstream os( joinPath( OutputBase::getOutputDirectory(), filename + ".csv" ) ); - - integer const numDimensions = LvArray::integerConversion< integer >( m_coordinates.size() ); - - if( numDimensions != 2 ) - { - // print header - - for( integer d = 0; d < numDimensions; d++ ) - { - os << units::getDescription( getDimUnit( d )) << ","; - } - os << units::getDescription( m_valueUnit ) << "\n"; - - // print values - - // prepare dividers - std::vector< integer > div( numDimensions ); - div[0] = 1; - for( integer d = 1; d < numDimensions; d++ ) - { - div[d] = div[d-1] * m_coordinates[d-1].size(); - } - // loop through all the values - for( integer v = 0; v < m_values.size(); v++ ) - { - // find coords indices - std::vector< integer > idx( numDimensions ); - integer r = v; - for( integer d = numDimensions-1; d >= 0; d-- ) - { - idx[d] = r / div[d]; - r = r % div[d]; - } - // finally print out in right order - for( integer d = 0; d < numDimensions; d++ ) - { - arraySlice1d< real64 const > const coords = m_coordinates[d]; - os << coords[idx[d]] << ","; - } - os << m_values[v] << "\n"; - } - } - else // numDimensions == 2 - { - arraySlice1d< real64 const > const coordsX = m_coordinates[0]; - arraySlice1d< real64 const > const coordsY = m_coordinates[1]; - integer const nX = coordsX.size(); - integer const nY = coordsY.size(); - os< const coordinates, + arrayView1d< real64 const > const values ) +{ + // prepare dividers + std::vector< integer > div( numDimensions ); + div[0] = 1; + for( integer d = 1; d < numDimensions; d++ ) + { + div[d] = div[d-1] * coordinates[d-1].size(); + } + // loop through all the values + for( integer v = 0; v < values.size(); v++ ) + { + // find coords indices + std::vector< integer > idx( numDimensions ); + integer r = v; + for( integer d = numDimensions-1; d >= 0; d-- ) + { + idx[d] = r / div[d]; + r = r % div[d]; + } + // finally print out in right order + for( integer d = 0; d < numDimensions; d++ ) + { + arraySlice1d< real64 const > const coords = coordinates[d]; + formatterStream << coords[idx[d]] << ","; + } + formatterStream << values[v] << "\n"; + } +} + +void TableFunction::outputPVTTableData( OutputOptions const pvtOutputOpts ) const +{ + if( pvtOutputOpts.writeInLog && this->numDimensions() <= 2 ) + { + TableTextFormatter textFormatter; + GEOS_LOG_RANK_0( textFormatter.toString( *this )); + } + if( pvtOutputOpts.writeCSV || ( pvtOutputOpts.writeInLog && this->numDimensions() >= 3 ) ) + { + string const filename = this->getName(); + std::ofstream logStream( joinPath( FunctionBase::getOutputDirectory(), filename + ".csv" ) ); + GEOS_LOG_RANK_0( GEOS_FMT( "CSV Generated to {}/{}.csv \n", + FunctionBase::getOutputDirectory(), + filename )); + TableCSVFormatter csvFormatter; + logStream << csvFormatter.toString( *this ); + } +} + +template<> +string TableCSVFormatter::toString< TableFunction >( TableFunction const & tableFunction ) const +{ + ArrayOfArraysView< real64 const > const coordinates = tableFunction.getCoordinates(); + arrayView1d< real64 const > const values = tableFunction.getValues(); + units::Unit const valueUnit = tableFunction.getValueUnit(); + std::ostringstream formatterStream; + + integer const numDimensions = LvArray::integerConversion< integer >( coordinates.size() ); + if( numDimensions != 2 ) + { + collectHeaders( formatterStream, tableFunction, numDimensions, valueUnit ); + collectValues( formatterStream, numDimensions, coordinates, values ); + } + else + { + TableData2D tableData2D; + TableData2D::TableDataHolder tableConverted; + tableConverted = tableData2D.convertTable2D( values, + valueUnit, + coordinates, + units::getDescription( tableFunction.getDimUnit( 0 ) ), + units::getDescription( tableFunction.getDimUnit( 1 ) ) ); + + TableLayout tableLayout( tableConverted.headerNames ); + + TableCSVFormatter csvFormat( tableLayout ); + formatterStream << csvFormat.headerToString() << csvFormat.dataToString( tableConverted.tableData ); + } + return formatterStream.str(); +} + +template<> +string TableTextFormatter::toString< TableFunction >( TableFunction const & tableFunction ) const +{ + ArrayOfArraysView< real64 const > coordinates = tableFunction.getCoordinates(); + units::Unit const valueUnit = tableFunction.getValueUnit(); + arrayView1d< real64 const > const values = tableFunction.getValues(); + integer const numDimensions = LvArray::integerConversion< integer >( coordinates.size() ); + string const filename = tableFunction.getName(); + string logOutput; + + GEOS_LOG_RANK_0( GEOS_FMT( "Values in the table are represented by : {}", units::getDescription( valueUnit ))); + + if( numDimensions == 1 ) + { + TableData tableData; + arraySlice1d< real64 const > const coords = coordinates[0]; + for( integer idx = 0; idx < values.size(); idx++ ) + { + tableData.addRow( coords[idx], values[idx] ); + } + + TableLayout const tableLayout( { + string( units::getDescription( tableFunction.getDimUnit( 0 ))), + string( units::getDescription( valueUnit )) + }, filename ); + + TableTextFormatter const logTable( tableLayout ); + logOutput = logTable.toString( tableData ); + } + else if( numDimensions == 2 ) + { + integer const nX = coordinates[0].size(); + integer const nY = coordinates[1].size(); + if( nX * nY <= 500 ) + { + TableData2D tableData2D; + TableData2D::TableDataHolder tableConverted; + tableConverted = tableData2D.convertTable2D( values, + valueUnit, + coordinates, + units::getDescription( tableFunction.getDimUnit( 0 ) ), + units::getDescription( tableFunction.getDimUnit( 1 ) )); + + TableLayout tableLayout( tableConverted.headerNames, filename ); + + TableTextFormatter const table2DLog( tableLayout ); + logOutput = table2DLog.toString( tableConverted.tableData ); + } + else + { + string log = GEOS_FMT( "The {} PVT table exceeding 500 rows.\nTo visualize the tables, go to the generated csv \n", filename ); + TableLayout const tableLayoutInfos( {TableLayout::ColumnParam{{log}, TableLayout::Alignment::left}}, filename ); + TableTextFormatter const tableLog( tableLayoutInfos ); + logOutput = tableLog.layoutToString(); + } + } + return logOutput; +} + REGISTER_CATALOG_ENTRY( FunctionBase, TableFunction, string const &, Group * const ) } // end of namespace geos diff --git a/src/coreComponents/functions/TableFunction.hpp b/src/coreComponents/functions/TableFunction.hpp index 94c4b25f777..676807847a7 100644 --- a/src/coreComponents/functions/TableFunction.hpp +++ b/src/coreComponents/functions/TableFunction.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -24,6 +24,7 @@ #include "codingUtilities/EnumStrings.hpp" #include "LvArray/src/tensorOps.hpp" +#include "common/format/table/TableFormatter.hpp" #include "common/Units.hpp" namespace geos @@ -47,6 +48,15 @@ class TableFunction : public FunctionBase Lower }; + /// Struct containing output options + struct OutputOptions + { + /// Output PVT in CSV file + bool writeCSV; + /// Output PVT in log + bool writeInLog; + }; + /// maximum dimensions for the coordinates in the table static constexpr integer maxDimensions = 4; @@ -277,7 +287,9 @@ class TableFunction : public FunctionBase * @return The unit of a coordinate dimension, or units::Unknown if no units has been specified. */ units::Unit getDimUnit( localIndex const dim ) const - { return size_t(dim) < m_dimUnits.size() ? m_dimUnits[dim] : units::Unknown; } + { + return size_t(dim) < m_dimUnits.size() ? m_dimUnits[dim] : units::Unknown; + } /** * @brief Set the interpolation method @@ -318,11 +330,17 @@ class TableFunction : public FunctionBase m_valueUnit = unit; } +/** + * @return The table unit + */ + units::Unit getValueUnit() const { return m_valueUnit; } + + /** - * @brief Print table into a CSV file (only 1d and 2d tables are supported) - * @param filename Filename for output + * @brief Print the table(s) in the log and/or CSV files when requested by the user. + * @param pvtOutputOpts Struct containing output options */ - void print( std::string const & filename ) const; + void outputPVTTableData( OutputOptions const pvtOutputOpts ) const; /** * @brief Create an instance of the kernel wrapper @@ -355,6 +373,7 @@ class TableFunction : public FunctionBase */ void readFile( string const & filename, array1d< real64 > & target ); + /// Coordinates for 1D table array1d< real64 > m_tableCoordinates1D; @@ -674,6 +693,22 @@ ENUM_STRINGS( TableFunction::InterpolationType, "upper", "lower" ); +/** + * @brief Template specialisation to convert a TableFunction to a CSV string. + * @param tableData The TableFunction object to convert. + * @return The CSV string representation of the TableFunction. + */ +template<> +string TableTextFormatter::toString< TableFunction >( TableFunction const & tableData ) const; + +/** + * @brief Template specialisation to convert a TableFunction to a table string. + * @param tableData The TableFunction object to convert. + * @return The table string representation of the TableFunction. + */ +template<> +string TableCSVFormatter::toString< TableFunction >( TableFunction const & tableData ) const; + } /* namespace geos */ #endif /* GEOS_FUNCTIONS_TABLEFUNCTION_HPP_ */ diff --git a/src/coreComponents/functions/docs/FunctionManager.rst b/src/coreComponents/functions/docs/FunctionManager.rst index ef58be85a27..66c1e34e503 100644 --- a/src/coreComponents/functions/docs/FunctionManager.rst +++ b/src/coreComponents/functions/docs/FunctionManager.rst @@ -64,8 +64,8 @@ TableFunction A table function uses a set of pre-computed values defined at points on a structured grid to represent an arbitrary-dimensional function. Typically, the axes of the table will represent time and/or spatial dimensions; however, these can be applied to represent phase diagrams, etc. -.. include:: ../../../coreComponents/schema/docs/TableFunction.rst - +.. include:: /docs/sphinx/datastructure/TableFunction.rst + :start-line: 3 1D Table ************* @@ -157,7 +157,8 @@ SymbolicFunction This function leverages the symbolic expression library mathpresso to define and evaluate functions. These functions are processed using an x86-64 JIT compiler, so are nearly as efficient as natively compiled C++ expressions. -.. include:: ../../../coreComponents/schema/docs/SymbolicFunction.rst +.. include:: /docs/sphinx/datastructure/SymbolicFunction.rst + :start-line: 3 The ``variableNames`` attribute defines a set of single-character names for the inputs to the symbolic function. There should be a definition for each scalar input and for each component of a vector input. @@ -187,8 +188,8 @@ CompositeFunction This function is derived from the symbolic function. However, instead of using the time or object as inputs, it is used to combine the outputs of other functions using a symbolic expression. -.. include:: ../../../coreComponents/schema/docs/CompositeFunction.rst - +.. include:: /docs/sphinx/datastructure/CompositeFunction.rst + :start-line: 3 The ``functionNames`` attribute defines the set of input functions to use (these may be of any type, and may each have any number of inputs). The ``variableNames`` attribute defines a set of single-character names for each function. diff --git a/src/coreComponents/functions/unitTests/CMakeLists.txt b/src/coreComponents/functions/unitTests/CMakeLists.txt index 5aa938d9ce4..825cfe81687 100644 --- a/src/coreComponents/functions/unitTests/CMakeLists.txt +++ b/src/coreComponents/functions/unitTests/CMakeLists.txt @@ -5,12 +5,6 @@ set( gtest_geosx_tests set( dependencyList ${parallelDeps} gtest functions ) -# if ( GEOS_BUILD_SHARED_LIBS ) -# list( APPEND dependencyList geosx_core ) -# else() -# list( APPEND dependencyList ${geosx_core_libs} ) -# endif() - if (TARGET pugixml::pugixml) list( APPEND dependencyList pugixml::pugixml ) endif() diff --git a/src/coreComponents/functions/unitTests/testFunctions.cpp b/src/coreComponents/functions/unitTests/testFunctions.cpp index 034ed353e34..33050f651ef 100644 --- a/src/coreComponents/functions/unitTests/testFunctions.cpp +++ b/src/coreComponents/functions/unitTests/testFunctions.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/CMakeLists.txt b/src/coreComponents/linearAlgebra/CMakeLists.txt index fd22c418a09..81c3536dfdd 100644 --- a/src/coreComponents/linearAlgebra/CMakeLists.txt +++ b/src/coreComponents/linearAlgebra/CMakeLists.txt @@ -47,16 +47,17 @@ set( linearAlgebra_sources solvers/SeparateComponentPreconditioner.cpp utilities/ReverseCutHillMcKeeOrdering.cpp ) -set( dependencyList ${parallelDeps} mesh denseLinearAlgebra ) +set( dependencyList ${parallelDeps} mesh denseLinearAlgebra finiteVolume ) +set( tplDependencyList "" ) list( APPEND linearAlgebra_headers interfaces/direct/SuiteSparse.hpp ) list( APPEND linearAlgebra_sources interfaces/direct/SuiteSparse.cpp ) -list( APPEND dependencyList suitesparse ) +list( APPEND tplDependencyList suitesparse ) if( ENABLE_SUPERLU_DIST ) list( APPEND linearAlgebra_headers interfaces/direct/SuperLUDist.hpp ) list( APPEND linearAlgebra_sources interfaces/direct/SuperLUDist.cpp ) - list( APPEND dependencyList superlu_dist ) + list( APPEND tplDependencyList superlu_dist ) endif( ) if( ENABLE_TRILINOS ) @@ -78,7 +79,7 @@ if( ENABLE_TRILINOS ) interfaces/trilinos/TrilinosPreconditioner.cpp interfaces/trilinos/TrilinosSolver.cpp ) - list( APPEND dependencyList trilinos ) + list( APPEND tplDependencyList trilinos ) endif() @@ -123,7 +124,7 @@ if( ENABLE_HYPRE ) interfaces/hypre/HypreUtils.cpp interfaces/hypre/HypreVector.cpp ) - list( APPEND dependencyList hypre umpire ) + list( APPEND tplDependencyList hypre umpire ) endif() @@ -146,19 +147,24 @@ if( ENABLE_PETSC ) interfaces/petsc/PetscSolver.cpp interfaces/petsc/PetscVector.cpp ) - list( APPEND dependencyList petsc ) + list( APPEND tplDependencyList petsc ) endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME linearAlgebra SOURCES ${linearAlgebra_sources} HEADERS ${linearAlgebra_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( linearAlgebra PUBLIC ${CMAKE_CURRENT_LIST_DIR} ) +install( TARGETS linearAlgebra LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) if( GEOS_ENABLE_TESTS ) add_subdirectory( unitTests ) diff --git a/src/coreComponents/linearAlgebra/DofManager.cpp b/src/coreComponents/linearAlgebra/DofManager.cpp index 9e0cbe78f8d..173c9cc3e09 100644 --- a/src/coreComponents/linearAlgebra/DofManager.cpp +++ b/src/coreComponents/linearAlgebra/DofManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/DofManager.hpp b/src/coreComponents/linearAlgebra/DofManager.hpp index f140313cd37..82fea749d25 100644 --- a/src/coreComponents/linearAlgebra/DofManager.hpp +++ b/src/coreComponents/linearAlgebra/DofManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/DofManagerHelpers.hpp b/src/coreComponents/linearAlgebra/DofManagerHelpers.hpp index 45ee6abc2e5..a1b700679d5 100644 --- a/src/coreComponents/linearAlgebra/DofManagerHelpers.hpp +++ b/src/coreComponents/linearAlgebra/DofManagerHelpers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/common/LinearOperator.hpp b/src/coreComponents/linearAlgebra/common/LinearOperator.hpp index fbe52f11f58..59b2a31b677 100644 --- a/src/coreComponents/linearAlgebra/common/LinearOperator.hpp +++ b/src/coreComponents/linearAlgebra/common/LinearOperator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/common/LinearSolverBase.hpp b/src/coreComponents/linearAlgebra/common/LinearSolverBase.hpp index 058ac6b280a..e1d881b75fc 100644 --- a/src/coreComponents/linearAlgebra/common/LinearSolverBase.hpp +++ b/src/coreComponents/linearAlgebra/common/LinearSolverBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/common/PreconditionerBase.hpp b/src/coreComponents/linearAlgebra/common/PreconditionerBase.hpp index 171487e2419..f07d7c02850 100644 --- a/src/coreComponents/linearAlgebra/common/PreconditionerBase.hpp +++ b/src/coreComponents/linearAlgebra/common/PreconditionerBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/common/common.hpp b/src/coreComponents/linearAlgebra/common/common.hpp index 214441231c3..8619e89785e 100644 --- a/src/coreComponents/linearAlgebra/common/common.hpp +++ b/src/coreComponents/linearAlgebra/common/common.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/common/traits.hpp b/src/coreComponents/linearAlgebra/common/traits.hpp index 8c271e25404..87e2af5f3c4 100644 --- a/src/coreComponents/linearAlgebra/common/traits.hpp +++ b/src/coreComponents/linearAlgebra/common/traits.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/docs/LinearSolvers.rst b/src/coreComponents/linearAlgebra/docs/LinearSolvers.rst index bda0ecc9543..b4b68dfc682 100644 --- a/src/coreComponents/linearAlgebra/docs/LinearSolvers.rst +++ b/src/coreComponents/linearAlgebra/docs/LinearSolvers.rst @@ -66,7 +66,7 @@ Summary The following table summarizes the available input parameters for the linear solver. -.. include:: ../../schema/docs/LinearSolverParameters.rst +.. include:: /docs/sphinx/datastructure/LinearSolverParameters.rst *************************** Preconditioner descriptions diff --git a/src/coreComponents/linearAlgebra/interfaces/InterfaceTypes.hpp b/src/coreComponents/linearAlgebra/interfaces/InterfaceTypes.hpp index 5721eac261c..ab2821460dc 100644 --- a/src/coreComponents/linearAlgebra/interfaces/InterfaceTypes.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/InterfaceTypes.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/MatrixBase.hpp b/src/coreComponents/linearAlgebra/interfaces/MatrixBase.hpp index 353d91e9270..f82018d393e 100644 --- a/src/coreComponents/linearAlgebra/interfaces/MatrixBase.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/MatrixBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/VectorBase.hpp b/src/coreComponents/linearAlgebra/interfaces/VectorBase.hpp index 508d8ddbee2..5e9a30cd929 100644 --- a/src/coreComponents/linearAlgebra/interfaces/VectorBase.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/VectorBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp index 8f76476af91..75c060fd30f 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.hpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.hpp index b592ec833db..38339ef0ab5 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp index 0a8995f8728..de01e815ba3 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.hpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.hpp index fb3aefa6f8a..c0aa351aab9 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreExport.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreExport.cpp index 8f2707fe448..db21e94af02 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreExport.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreExport.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreExport.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreExport.hpp index 78658416ac0..e1f4e711274 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreExport.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreExport.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreInterface.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreInterface.cpp index 37acb60d6d5..5b056df8de7 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreInterface.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreInterface.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -40,6 +40,11 @@ namespace geos void HypreInterface::initialize() { +#ifdef GEOS_USE_OPENMP + GEOS_LOG_RANK_0_IF( omp_get_max_threads()>1, + "OMP_NUM_THREADS > 1 may not be optimal for certain hypre preconditioning options. " ); +#endif + HYPRE_Init(); #if GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_CUDA || GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_HIP HYPRE_SetExecutionPolicy( HYPRE_EXEC_DEVICE ); @@ -66,7 +71,7 @@ HypreInterface::createSolver( LinearSolverParameters params ) return std::make_unique< SuperLUDist< HypreInterface > >( std::move( params ) ); #else GEOS_ERROR( "GEOSX is configured without support for SuperLU_dist." ); - return std::unique_ptr< LinearSolverBase< HypreInterface > >( NULL ); + return std::unique_ptr< LinearSolverBase< HypreInterface > >( nullptr ); #endif } else diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreInterface.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreInterface.hpp index 91eae0ca9e0..7ad3b790246 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreInterface.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreInterface.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.cpp index eab9d2e46df..36a577c530a 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp index 3069b3f50d2..93eba297723 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.cpp index 7be2c3b4751..67de2ca96ae 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.hpp index d4f04bfd315..eef5b70b45b 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.cpp index 5791fe129cd..0f94f9c1b51 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.hpp index 9617dfe5576..b44c3caca9a 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.cpp index 45193c13e47..cd4bc6321e9 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.hpp index e2028e5edd6..1f13028f4e1 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.cpp index 8ea007028a0..e882d55faba 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.hpp index e34d64b63da..40364992a06 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.cpp index c96ec6a80d7..5916fedbb4e 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp index ef95bc80191..a205fe074c7 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreVector.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreVector.cpp index 56ea2db6ecc..7e9b7ecf5b3 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreVector.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreVector.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreVector.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreVector.hpp index fcaf13c188e..086589275b4 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreVector.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreVector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseFVM.hpp index c0b9c834bbc..fc54f4bd24d 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseHybridFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseHybridFVM.hpp index 0261cdb6331..897d3e1b9d4 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseHybridFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseHybridFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseReservoirFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseReservoirFVM.hpp index d4fa88273fa..709b9422f92 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseReservoirFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseReservoirFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseReservoirHybridFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseReservoirHybridFVM.hpp index ddad8ab0c3b..0498e304a56 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseReservoirHybridFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/CompositionalMultiphaseReservoirHybridFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/HybridSinglePhasePoromechanics.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/HybridSinglePhasePoromechanics.hpp index 97fced479f3..f79ad85fb27 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/HybridSinglePhasePoromechanics.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/HybridSinglePhasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/Hydrofracture.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/Hydrofracture.hpp index ad39e9ae024..faf44e8adaf 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/Hydrofracture.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/Hydrofracture.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/LagrangianContactMechanics.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/LagrangianContactMechanics.hpp index c2c07c82929..2ad38a87132 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/LagrangianContactMechanics.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/LagrangianContactMechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/MultiphasePoromechanics.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/MultiphasePoromechanics.hpp index 7000b0b1856..dcbe732e90e 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/MultiphasePoromechanics.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/MultiphasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/MultiphasePoromechanicsReservoirFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/MultiphasePoromechanicsReservoirFVM.hpp index 789028ad930..69038faa599 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/MultiphasePoromechanicsReservoirFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/MultiphasePoromechanicsReservoirFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ReactiveCompositionalMultiphaseOBL.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ReactiveCompositionalMultiphaseOBL.hpp index b43cb73f60c..2285670a5b9 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ReactiveCompositionalMultiphaseOBL.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ReactiveCompositionalMultiphaseOBL.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseHybridFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseHybridFVM.hpp index 1388e01fb42..a0f4a101049 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseHybridFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseHybridFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanics.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanics.hpp index d2edc99aef0..6a4994b90a7 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanics.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsConformingFractures.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsConformingFractures.hpp index c2b74b44aac..e3b2dbb37d1 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsConformingFractures.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsConformingFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsEmbeddedFractures.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsEmbeddedFractures.hpp index 9b392860d5c..26383837143 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsEmbeddedFractures.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsEmbeddedFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsReservoirFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsReservoirFVM.hpp index 822cfba7717..26b054f9a2d 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsReservoirFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhasePoromechanicsReservoirFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseReservoirFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseReservoirFVM.hpp index 5c835572754..a2f1bb749b7 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseReservoirFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseReservoirFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseReservoirHybridFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseReservoirHybridFVM.hpp index b98937f8888..b86937c3ba4 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseReservoirHybridFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SinglePhaseReservoirHybridFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SolidMechanicsEmbeddedFractures.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SolidMechanicsEmbeddedFractures.hpp index 3db816c7143..7da6fb6229f 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SolidMechanicsEmbeddedFractures.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/SolidMechanicsEmbeddedFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalCompositionalMultiphaseFVM.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalCompositionalMultiphaseFVM.hpp index 6a177da7950..f88dffdf738 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalCompositionalMultiphaseFVM.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalCompositionalMultiphaseFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalMultiphasePoromechanics.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalMultiphasePoromechanics.hpp index 557b3c3d454..129e2b4abd0 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalMultiphasePoromechanics.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalMultiphasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalSinglePhasePoromechanics.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalSinglePhasePoromechanics.hpp index 2ae18ae01bf..af5889fc7cd 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalSinglePhasePoromechanics.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/mgrStrategies/ThermalSinglePhasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscExport.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscExport.cpp index 8a89da7efe3..d6e9091dc27 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscExport.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscExport.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscExport.hpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscExport.hpp index df6b1e08aef..34dd1a6919a 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscExport.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscExport.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscInterface.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscInterface.cpp index f851ffdc48c..81334efeda6 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscInterface.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscInterface.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscInterface.hpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscInterface.hpp index a69dbd6d1bb..0a9fa8021f8 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscInterface.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscInterface.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscMatrix.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscMatrix.cpp index 7844bd4e849..a3a49238d04 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscMatrix.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscMatrix.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscMatrix.hpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscMatrix.hpp index c1f78539ba0..ea8ab63286a 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscMatrix.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscMatrix.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp index 21aa5df6e77..0083c360aa0 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.hpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.hpp index d6d11f939a8..d291dfffd1f 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.cpp index 524cbace836..026e047d811 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.hpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.hpp index 361176e5d10..9f036afd0df 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscUtils.hpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscUtils.hpp index 6af980baf9d..b97e623d911 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscUtils.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscUtils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscVector.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscVector.cpp index e509f633d73..9e923c7245a 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscVector.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscVector.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscVector.hpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscVector.hpp index 31cb22ad096..77e06e73242 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscVector.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscVector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraExport.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraExport.cpp index 0406edde736..bb48bc8433d 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraExport.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraExport.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraExport.hpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraExport.hpp index 89b8c5664e5..5d2b440b953 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraExport.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraExport.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.cpp index 874a84a4475..d6da38b3639 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.hpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.hpp index 288de24899a..8866ab1f312 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraUtils.hpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraUtils.hpp index 7c02134b8a0..1d6900dab4a 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraUtils.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraUtils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraVector.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraVector.cpp index 27e891d88c9..78df1acee35 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraVector.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraVector.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraVector.hpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraVector.hpp index 6ba5ccb8a63..6605102fa53 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraVector.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraVector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosInterface.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosInterface.cpp index fb028e9084c..2a3b7bd2b8b 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosInterface.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosInterface.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosInterface.hpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosInterface.hpp index a4cc280066e..4a63c4ce138 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosInterface.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosInterface.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp index c3fa4f8c267..a49a8b03f88 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.hpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.hpp index 1064406fd4f..9db8a0c50dc 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.cpp index 9072827ce05..df8fed1921a 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.hpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.hpp index 922292371f6..8e73c1c37e0 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/BicgstabSolver.cpp b/src/coreComponents/linearAlgebra/solvers/BicgstabSolver.cpp index 159c0ee98fe..089ebfceb50 100644 --- a/src/coreComponents/linearAlgebra/solvers/BicgstabSolver.cpp +++ b/src/coreComponents/linearAlgebra/solvers/BicgstabSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/BicgstabSolver.hpp b/src/coreComponents/linearAlgebra/solvers/BicgstabSolver.hpp index 96e5bf7fdc8..82602e2942d 100644 --- a/src/coreComponents/linearAlgebra/solvers/BicgstabSolver.hpp +++ b/src/coreComponents/linearAlgebra/solvers/BicgstabSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/BlockPreconditioner.cpp b/src/coreComponents/linearAlgebra/solvers/BlockPreconditioner.cpp index 5b60faab13a..4e708f936a9 100644 --- a/src/coreComponents/linearAlgebra/solvers/BlockPreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/solvers/BlockPreconditioner.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/BlockPreconditioner.hpp b/src/coreComponents/linearAlgebra/solvers/BlockPreconditioner.hpp index ef3e8ebe98c..390d7549d32 100644 --- a/src/coreComponents/linearAlgebra/solvers/BlockPreconditioner.hpp +++ b/src/coreComponents/linearAlgebra/solvers/BlockPreconditioner.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/CgSolver.cpp b/src/coreComponents/linearAlgebra/solvers/CgSolver.cpp index c9e19604c02..dfb58db5a9d 100644 --- a/src/coreComponents/linearAlgebra/solvers/CgSolver.cpp +++ b/src/coreComponents/linearAlgebra/solvers/CgSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/CgSolver.hpp b/src/coreComponents/linearAlgebra/solvers/CgSolver.hpp index 6db6fa7c12d..28d36c7dce1 100644 --- a/src/coreComponents/linearAlgebra/solvers/CgSolver.hpp +++ b/src/coreComponents/linearAlgebra/solvers/CgSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/GmresSolver.cpp b/src/coreComponents/linearAlgebra/solvers/GmresSolver.cpp index dea30200688..5c1e7eb1bc9 100644 --- a/src/coreComponents/linearAlgebra/solvers/GmresSolver.cpp +++ b/src/coreComponents/linearAlgebra/solvers/GmresSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/GmresSolver.hpp b/src/coreComponents/linearAlgebra/solvers/GmresSolver.hpp index de7f2139eab..4b11df1b441 100644 --- a/src/coreComponents/linearAlgebra/solvers/GmresSolver.hpp +++ b/src/coreComponents/linearAlgebra/solvers/GmresSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/KrylovSolver.cpp b/src/coreComponents/linearAlgebra/solvers/KrylovSolver.cpp index e8f775d9c11..25dfbbae30b 100644 --- a/src/coreComponents/linearAlgebra/solvers/KrylovSolver.cpp +++ b/src/coreComponents/linearAlgebra/solvers/KrylovSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/KrylovSolver.hpp b/src/coreComponents/linearAlgebra/solvers/KrylovSolver.hpp index f70961bd228..8f0381c391e 100644 --- a/src/coreComponents/linearAlgebra/solvers/KrylovSolver.hpp +++ b/src/coreComponents/linearAlgebra/solvers/KrylovSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/KrylovUtils.hpp b/src/coreComponents/linearAlgebra/solvers/KrylovUtils.hpp index 30f1b68eb74..5a65b48670a 100644 --- a/src/coreComponents/linearAlgebra/solvers/KrylovUtils.hpp +++ b/src/coreComponents/linearAlgebra/solvers/KrylovUtils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/PreconditionerBlockJacobi.hpp b/src/coreComponents/linearAlgebra/solvers/PreconditionerBlockJacobi.hpp index d90c8e78dde..6685ba45be2 100644 --- a/src/coreComponents/linearAlgebra/solvers/PreconditionerBlockJacobi.hpp +++ b/src/coreComponents/linearAlgebra/solvers/PreconditionerBlockJacobi.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/PreconditionerIdentity.hpp b/src/coreComponents/linearAlgebra/solvers/PreconditionerIdentity.hpp index 843c6e45588..006b9bfa413 100644 --- a/src/coreComponents/linearAlgebra/solvers/PreconditionerIdentity.hpp +++ b/src/coreComponents/linearAlgebra/solvers/PreconditionerIdentity.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/PreconditionerJacobi.hpp b/src/coreComponents/linearAlgebra/solvers/PreconditionerJacobi.hpp index 0a9e8acc36d..fcd4f0490f1 100644 --- a/src/coreComponents/linearAlgebra/solvers/PreconditionerJacobi.hpp +++ b/src/coreComponents/linearAlgebra/solvers/PreconditionerJacobi.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/SeparateComponentPreconditioner.cpp b/src/coreComponents/linearAlgebra/solvers/SeparateComponentPreconditioner.cpp index 1ea01663098..735c44ec3ce 100644 --- a/src/coreComponents/linearAlgebra/solvers/SeparateComponentPreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/solvers/SeparateComponentPreconditioner.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/solvers/SeparateComponentPreconditioner.hpp b/src/coreComponents/linearAlgebra/solvers/SeparateComponentPreconditioner.hpp index e1360573162..4c65ef51894 100644 --- a/src/coreComponents/linearAlgebra/solvers/SeparateComponentPreconditioner.hpp +++ b/src/coreComponents/linearAlgebra/solvers/SeparateComponentPreconditioner.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/unitTests/testComponentMask.cpp b/src/coreComponents/linearAlgebra/unitTests/testComponentMask.cpp index 3b24dfc4dad..c5fe76ede5b 100644 --- a/src/coreComponents/linearAlgebra/unitTests/testComponentMask.cpp +++ b/src/coreComponents/linearAlgebra/unitTests/testComponentMask.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/unitTests/testExternalSolvers.cpp b/src/coreComponents/linearAlgebra/unitTests/testExternalSolvers.cpp index 6ea6b405c09..7c8cebb3627 100644 --- a/src/coreComponents/linearAlgebra/unitTests/testExternalSolvers.cpp +++ b/src/coreComponents/linearAlgebra/unitTests/testExternalSolvers.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/unitTests/testKrylovSolvers.cpp b/src/coreComponents/linearAlgebra/unitTests/testKrylovSolvers.cpp index 2ec7b8f0e8d..f3d59a84963 100644 --- a/src/coreComponents/linearAlgebra/unitTests/testKrylovSolvers.cpp +++ b/src/coreComponents/linearAlgebra/unitTests/testKrylovSolvers.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/unitTests/testLinearAlgebraUtils.hpp b/src/coreComponents/linearAlgebra/unitTests/testLinearAlgebraUtils.hpp index 0c3a1877743..b230f7a8394 100644 --- a/src/coreComponents/linearAlgebra/unitTests/testLinearAlgebraUtils.hpp +++ b/src/coreComponents/linearAlgebra/unitTests/testLinearAlgebraUtils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/unitTests/testLinearSolverParametersEnums.cpp b/src/coreComponents/linearAlgebra/unitTests/testLinearSolverParametersEnums.cpp index c75ca45ba9f..5194fab06bd 100644 --- a/src/coreComponents/linearAlgebra/unitTests/testLinearSolverParametersEnums.cpp +++ b/src/coreComponents/linearAlgebra/unitTests/testLinearSolverParametersEnums.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/unitTests/testMatrices.cpp b/src/coreComponents/linearAlgebra/unitTests/testMatrices.cpp index 16df69c7dae..e5219b37bd9 100644 --- a/src/coreComponents/linearAlgebra/unitTests/testMatrices.cpp +++ b/src/coreComponents/linearAlgebra/unitTests/testMatrices.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/unitTests/testReverseCutHillMcKeeOrdering.cpp b/src/coreComponents/linearAlgebra/unitTests/testReverseCutHillMcKeeOrdering.cpp index 3c3aad02f90..9e5890f9899 100644 --- a/src/coreComponents/linearAlgebra/unitTests/testReverseCutHillMcKeeOrdering.cpp +++ b/src/coreComponents/linearAlgebra/unitTests/testReverseCutHillMcKeeOrdering.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/unitTests/testVectors.cpp b/src/coreComponents/linearAlgebra/unitTests/testVectors.cpp index 4ee83088342..a90bb2ecb97 100644 --- a/src/coreComponents/linearAlgebra/unitTests/testVectors.cpp +++ b/src/coreComponents/linearAlgebra/unitTests/testVectors.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/Arnoldi.hpp b/src/coreComponents/linearAlgebra/utilities/Arnoldi.hpp index bc95c622f41..cd9b427ba65 100644 --- a/src/coreComponents/linearAlgebra/utilities/Arnoldi.hpp +++ b/src/coreComponents/linearAlgebra/utilities/Arnoldi.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/BlockOperator.hpp b/src/coreComponents/linearAlgebra/utilities/BlockOperator.hpp index 491795b484f..8b49577ce63 100644 --- a/src/coreComponents/linearAlgebra/utilities/BlockOperator.hpp +++ b/src/coreComponents/linearAlgebra/utilities/BlockOperator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/BlockOperatorView.hpp b/src/coreComponents/linearAlgebra/utilities/BlockOperatorView.hpp index ec48edc7270..26daf4818c4 100644 --- a/src/coreComponents/linearAlgebra/utilities/BlockOperatorView.hpp +++ b/src/coreComponents/linearAlgebra/utilities/BlockOperatorView.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/BlockOperatorWrapper.hpp b/src/coreComponents/linearAlgebra/utilities/BlockOperatorWrapper.hpp index 9da3c73836f..b0ac936e2bf 100644 --- a/src/coreComponents/linearAlgebra/utilities/BlockOperatorWrapper.hpp +++ b/src/coreComponents/linearAlgebra/utilities/BlockOperatorWrapper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/BlockVector.hpp b/src/coreComponents/linearAlgebra/utilities/BlockVector.hpp index 1cf7f609a6e..ea78c17e96d 100644 --- a/src/coreComponents/linearAlgebra/utilities/BlockVector.hpp +++ b/src/coreComponents/linearAlgebra/utilities/BlockVector.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/BlockVectorView.hpp b/src/coreComponents/linearAlgebra/utilities/BlockVectorView.hpp index fba0c778e07..bfedf07dc24 100644 --- a/src/coreComponents/linearAlgebra/utilities/BlockVectorView.hpp +++ b/src/coreComponents/linearAlgebra/utilities/BlockVectorView.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/BlockVectorWrapper.hpp b/src/coreComponents/linearAlgebra/utilities/BlockVectorWrapper.hpp index 51f6d8ccdbf..d1dcbddb107 100644 --- a/src/coreComponents/linearAlgebra/utilities/BlockVectorWrapper.hpp +++ b/src/coreComponents/linearAlgebra/utilities/BlockVectorWrapper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/ComponentMask.hpp b/src/coreComponents/linearAlgebra/utilities/ComponentMask.hpp index c7aa5f5ad4a..7d7a0b019ad 100644 --- a/src/coreComponents/linearAlgebra/utilities/ComponentMask.hpp +++ b/src/coreComponents/linearAlgebra/utilities/ComponentMask.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/InverseNormalOperator.hpp b/src/coreComponents/linearAlgebra/utilities/InverseNormalOperator.hpp index 558070d8667..f5f70510185 100644 --- a/src/coreComponents/linearAlgebra/utilities/InverseNormalOperator.hpp +++ b/src/coreComponents/linearAlgebra/utilities/InverseNormalOperator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/LAIHelperFunctions.hpp b/src/coreComponents/linearAlgebra/utilities/LAIHelperFunctions.hpp index 9c1d67aa20b..477e5485c7f 100644 --- a/src/coreComponents/linearAlgebra/utilities/LAIHelperFunctions.hpp +++ b/src/coreComponents/linearAlgebra/utilities/LAIHelperFunctions.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/LinearSolverParameters.hpp b/src/coreComponents/linearAlgebra/utilities/LinearSolverParameters.hpp index d2206c12224..7483a1721a9 100644 --- a/src/coreComponents/linearAlgebra/utilities/LinearSolverParameters.hpp +++ b/src/coreComponents/linearAlgebra/utilities/LinearSolverParameters.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -124,6 +124,9 @@ struct LinearSolverParameters #endif integer useAdaptiveTol = false; ///< Use Eisenstat-Walker adaptive tolerance real64 weakestTol = 1e-3; ///< Weakest allowed tolerance when using adaptive method + real64 strongestTol = 1e-8; ///< Strongest allowed tolerance when using adaptive method + real64 adaptiveGamma = 0.1; ///< Gamma parameter for adaptive method + real64 adaptiveExponent = 1.0; ///< Exponent parameter for adaptive method } krylov; ///< Krylov-method parameter struct diff --git a/src/coreComponents/linearAlgebra/utilities/LinearSolverResult.hpp b/src/coreComponents/linearAlgebra/utilities/LinearSolverResult.hpp index 8c2c55ee9b3..90d6365f229 100644 --- a/src/coreComponents/linearAlgebra/utilities/LinearSolverResult.hpp +++ b/src/coreComponents/linearAlgebra/utilities/LinearSolverResult.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/NormalOperator.hpp b/src/coreComponents/linearAlgebra/utilities/NormalOperator.hpp index 7b8323d1de9..466808c0170 100644 --- a/src/coreComponents/linearAlgebra/utilities/NormalOperator.hpp +++ b/src/coreComponents/linearAlgebra/utilities/NormalOperator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/ReverseCutHillMcKeeOrdering.cpp b/src/coreComponents/linearAlgebra/utilities/ReverseCutHillMcKeeOrdering.cpp index fc7aaa43337..4631d42f70e 100644 --- a/src/coreComponents/linearAlgebra/utilities/ReverseCutHillMcKeeOrdering.cpp +++ b/src/coreComponents/linearAlgebra/utilities/ReverseCutHillMcKeeOrdering.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/ReverseCutHillMcKeeOrdering.hpp b/src/coreComponents/linearAlgebra/utilities/ReverseCutHillMcKeeOrdering.hpp index 21663573370..bed455a783f 100644 --- a/src/coreComponents/linearAlgebra/utilities/ReverseCutHillMcKeeOrdering.hpp +++ b/src/coreComponents/linearAlgebra/utilities/ReverseCutHillMcKeeOrdering.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/linearAlgebra/utilities/TransposeOperator.hpp b/src/coreComponents/linearAlgebra/utilities/TransposeOperator.hpp index 1d284df3daa..cd623bddf78 100644 --- a/src/coreComponents/linearAlgebra/utilities/TransposeOperator.hpp +++ b/src/coreComponents/linearAlgebra/utilities/TransposeOperator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mainInterface/CMakeLists.txt b/src/coreComponents/mainInterface/CMakeLists.txt index 4b141ea8b7f..af6b85e76cf 100644 --- a/src/coreComponents/mainInterface/CMakeLists.txt +++ b/src/coreComponents/mainInterface/CMakeLists.txt @@ -18,16 +18,21 @@ set( mainInterface_sources version.cpp ) -set( dependencyList ${parallelDeps} physicsSolvers discretizationMethods fieldSpecification linearAlgebra dataRepository events fileIO optionparser ) +set( dependencyList ${parallelDeps} physicsSolvers constitutiveDrivers optionparser ) + +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) blt_add_library( NAME mainInterface SOURCES ${mainInterface_sources} HEADERS ${mainInterface_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) add_dependencies( mainInterface generate_version ) target_include_directories( mainInterface PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS mainInterface LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/mainInterface/GeosxState.cpp b/src/coreComponents/mainInterface/GeosxState.cpp index ba5c54a1a16..8aceec88991 100644 --- a/src/coreComponents/mainInterface/GeosxState.cpp +++ b/src/coreComponents/mainInterface/GeosxState.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mainInterface/GeosxState.hpp b/src/coreComponents/mainInterface/GeosxState.hpp index 8d6866827d7..888bef6d7dd 100644 --- a/src/coreComponents/mainInterface/GeosxState.hpp +++ b/src/coreComponents/mainInterface/GeosxState.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mainInterface/GeosxVersion.hpp.in b/src/coreComponents/mainInterface/GeosxVersion.hpp.in index 822244b3984..4d523fbf5b8 100644 --- a/src/coreComponents/mainInterface/GeosxVersion.hpp.in +++ b/src/coreComponents/mainInterface/GeosxVersion.hpp.in @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mainInterface/ProblemManager.cpp b/src/coreComponents/mainInterface/ProblemManager.cpp index 23ca5862dc0..0a134a6bcea 100644 --- a/src/coreComponents/mainInterface/ProblemManager.cpp +++ b/src/coreComponents/mainInterface/ProblemManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -24,6 +24,7 @@ #include "common/Path.hpp" #include "common/TimingMacros.hpp" #include "constitutive/ConstitutiveManager.hpp" +#include "constitutiveDrivers/solid/TriaxialDriver.hpp" #include "dataRepository/ConduitRestart.hpp" #include "dataRepository/RestartFlags.hpp" #include "dataRepository/KeyNames.hpp" @@ -137,11 +138,21 @@ ProblemManager::ProblemManager( conduit::Node & root ): setApplyDefaultValue( 0 ). setRestartFlags( RestartFlags::WRITE ). setDescription( "Whether to disallow using pinned memory allocations for MPI communication buffers." ); - } ProblemManager::~ProblemManager() -{} +{ + { + // This is a dummy to force the inclusion of constitutiveDrivers in the linking process for systems that have "--no-as-needed" as a + // default. + // The "correct" way to do this is in cmake using: + // target_link_options(constitutiveDrivers INTERFACE "SHELL:LINKER:--no-as-needed") + // but this applies "--no-as-needed" to all targets that link to constitutiveDrivers, which is not what we want. + // Also "--no-as-needed" is not supported on all platforms, so we have to guard the use of it. + // This is a workaround until we can figure out in cmake without too much trouble. + TriaxialDriver dummy( "dummy", this ); + } +} Group * ProblemManager::createChild( string const & GEOS_UNUSED_PARAM( childKey ), string const & GEOS_UNUSED_PARAM( childName ) ) diff --git a/src/coreComponents/mainInterface/ProblemManager.hpp b/src/coreComponents/mainInterface/ProblemManager.hpp index 9a3d0314142..7787b31bffd 100644 --- a/src/coreComponents/mainInterface/ProblemManager.hpp +++ b/src/coreComponents/mainInterface/ProblemManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mainInterface/initialization.cpp b/src/coreComponents/mainInterface/initialization.cpp index 0650f9b796c..71388045b03 100644 --- a/src/coreComponents/mainInterface/initialization.cpp +++ b/src/coreComponents/mainInterface/initialization.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mainInterface/initialization.hpp b/src/coreComponents/mainInterface/initialization.hpp index 841d5c2e3ae..8f8eb32ad24 100644 --- a/src/coreComponents/mainInterface/initialization.hpp +++ b/src/coreComponents/mainInterface/initialization.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mainInterface/version.cpp b/src/coreComponents/mainInterface/version.cpp index eb74e831080..e478d0cf1fd 100644 --- a/src/coreComponents/mainInterface/version.cpp +++ b/src/coreComponents/mainInterface/version.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mainInterface/version.hpp b/src/coreComponents/mainInterface/version.hpp index 5aaec16e3b2..4187c7d032b 100644 --- a/src/coreComponents/mainInterface/version.hpp +++ b/src/coreComponents/mainInterface/version.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/math/CMakeLists.txt b/src/coreComponents/math/CMakeLists.txt index 290f23808db..53c52e1abdb 100644 --- a/src/coreComponents/math/CMakeLists.txt +++ b/src/coreComponents/math/CMakeLists.txt @@ -14,3 +14,4 @@ blt_add_library( NAME math target_include_directories( math INTERFACE ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS math LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/math/extrapolation/Extrapolation.hpp b/src/coreComponents/math/extrapolation/Extrapolation.hpp index 87cf06f829a..fe79a94913e 100644 --- a/src/coreComponents/math/extrapolation/Extrapolation.hpp +++ b/src/coreComponents/math/extrapolation/Extrapolation.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/math/interpolation/Interpolation.hpp b/src/coreComponents/math/interpolation/Interpolation.hpp index edaf2360399..5a20e9ec7a9 100644 --- a/src/coreComponents/math/interpolation/Interpolation.hpp +++ b/src/coreComponents/math/interpolation/Interpolation.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/BufferOps.cpp b/src/coreComponents/mesh/BufferOps.cpp index 575b6ea7bde..7225ad52847 100644 --- a/src/coreComponents/mesh/BufferOps.cpp +++ b/src/coreComponents/mesh/BufferOps.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/BufferOps.hpp b/src/coreComponents/mesh/BufferOps.hpp index 69bfa27463e..1d18096a120 100644 --- a/src/coreComponents/mesh/BufferOps.hpp +++ b/src/coreComponents/mesh/BufferOps.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/CMakeLists.txt b/src/coreComponents/mesh/CMakeLists.txt index 7548a76d8f6..f6fbb61e2e3 100644 --- a/src/coreComponents/mesh/CMakeLists.txt +++ b/src/coreComponents/mesh/CMakeLists.txt @@ -2,6 +2,7 @@ set( mesh_headers BufferOps.hpp CellElementRegion.hpp + CellElementRegionSelector.hpp CellElementSubRegion.hpp DomainPartition.hpp EdgeManager.hpp @@ -87,6 +88,7 @@ set( mesh_headers set( mesh_sources BufferOps.cpp CellElementRegion.cpp + CellElementRegionSelector.cpp CellElementSubRegion.cpp DomainPartition.cpp EdgeManager.cpp @@ -148,7 +150,7 @@ set( mesh_sources simpleGeometricObjects/ThickPlane.cpp utilities/ComputationalGeometry.cpp ) -set( dependencyList ${parallelDeps} schema dataRepository constitutive finiteElement parmetis metis ) +set( dependencyList ${parallelDeps} schema constitutive finiteElement parmetis metis ) if( ENABLE_VTK ) message(STATUS "Adding VTK readers") @@ -180,14 +182,21 @@ if( ENABLE_SCOTCH ) list( APPEND dependencyList ptscotch ) endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME mesh SOURCES ${mesh_sources} HEADERS ${mesh_headers} - DEPENDS_ON ${dependencyList} - OBJECT ${GEOS_BUILD_OBJ_LIBS} ) + DEPENDS_ON ${decoratedDependencies} + OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} + ) target_include_directories( mesh PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +install( TARGETS mesh LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) + if( ENABLE_VTK ) # Avoid compiling with nvcc which sometimes segfaults in debug set_source_files_properties( generators/VTKMeshGeneratorTools.cpp PROPERTIES LANGUAGE CXX ) diff --git a/src/coreComponents/mesh/CellElementRegion.cpp b/src/coreComponents/mesh/CellElementRegion.cpp index 5f0b1c873de..da3aabb63b3 100644 --- a/src/coreComponents/mesh/CellElementRegion.cpp +++ b/src/coreComponents/mesh/CellElementRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,6 +17,8 @@ #include "CellElementSubRegion.hpp" #include "mesh/generators/CellBlockABC.hpp" +#include + namespace geos { using namespace dataRepository; @@ -24,9 +26,24 @@ using namespace dataRepository; CellElementRegion::CellElementRegion( string const & name, Group * const parent ): ElementRegionBase( name, parent ) { + std::vector< string > elementNames; + for( int i = 0; i < numElementTypes(); ++i ) + { + if( getElementDim( (ElementType)i ) == 3 ) + { + elementNames.push_back( getElementTypeName( (ElementType)i ) ); + } + } + registerWrapper( viewKeyStruct::sourceCellBlockNamesString(), &m_cellBlockNames ). setRTTypeName( rtTypes::CustomTypes::groupNameRefArray ). - setInputFlag( InputFlags::REQUIRED ); + setInputFlag( InputFlags::REQUIRED ). + setDescription( GEOS_FMT( "List of the desired cell-blocks qualifiers to contain in this {}. Qualifiers can be either cell-block " + "names, region attribute values, or fnmatch pattern." + "The form of loaded cell-block names is of \"regionAttribute_elementType\", so \"1_tetrahedra\" " + " contains the tetrahedric elements for which the regionAttribute is 1.\n" + "The element types are: {}.", + catalogName(), stringutilities::join( elementNames, ", " ) ) ); registerWrapper( viewKeyStruct::coarseningRatioString(), &m_coarseningRatio ). setInputFlag( InputFlags::OPTIONAL ). @@ -38,13 +55,22 @@ CellElementRegion::~CellElementRegion() void CellElementRegion::generateMesh( Group const & cellBlocks ) { - Group & elementSubRegions = this->getGroup( viewKeyStruct::elementSubRegions() ); - - for( string const & cellBlockName : this->m_cellBlockNames ) + GEOS_THROW_IF( m_cellBlockNames.empty(), + GEOS_FMT( "{}: No cellBlock selected in this region.", + getDataContext() ), + InputError ); + Group & subRegions = this->getGroup( viewKeyStruct::elementSubRegions() ); + for( string const & cbName : m_cellBlockNames ) { - CellElementSubRegion & subRegion = elementSubRegions.registerGroup< CellElementSubRegion >( cellBlockName ); - CellBlockABC const & source = cellBlocks.getGroup< CellBlockABC >( subRegion.getName() ); - subRegion.copyFromCellBlock( source ); + CellBlockABC const * cellBlock = cellBlocks.getGroupPointer< CellBlockABC >( cbName ); + GEOS_THROW_IF( cellBlock == nullptr, + GEOS_FMT( "{}: No cellBlock named '{}' found.\nAvailable cellBlock list: {{ {} }}\nNo CellElementRegionSelector has been used to verify the cellBlock selection.", + getDataContext(), cbName, stringutilities::join( m_cellBlockNames, ", " ) ), + InputError ); + + // subRegion name must be the same as the cell-block (so we can match them and reference them in errors). + CellElementSubRegion & subRegion = subRegions.registerGroup< CellElementSubRegion >( cbName ); + subRegion.copyFromCellBlock( *cellBlock ); } } diff --git a/src/coreComponents/mesh/CellElementRegion.hpp b/src/coreComponents/mesh/CellElementRegion.hpp index 874f33bc490..e2156ceb805 100644 --- a/src/coreComponents/mesh/CellElementRegion.hpp +++ b/src/coreComponents/mesh/CellElementRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -85,16 +85,15 @@ class CellElementRegion : public ElementRegionBase /** - * @brief Getter for m_cellBlockNames - * @return The array of cell block names. + * @return List of user-requested mesh cellBlocks names. + * @note the list may be incomplete / illegible if CellElementRegionSelectorhas not been used on + * the instance. */ arrayView1d< string const > getCellBlockNames() const - { - return m_cellBlockNames.toViewConst(); - } + { return m_cellBlockNames.toViewConst(); } /** - * @brief Add a cellBlockRegion name to the list. + * @brief Select a cellBlock by its name for generateMesh(). * @param cellBlockName string containing the cell block region name. */ void addCellBlockName( string const & cellBlockName ) @@ -103,17 +102,25 @@ class CellElementRegion : public ElementRegionBase } /** - * @brief Add an array cellBlockRegion name to the list. + * @brief Select cellBlocks by their names for generateMesh(). * @param cellBlockNames array of string containing the cell block region names. */ - void addCellBlockNames( arrayView1d< string const > const & cellBlockNames ) + template< typename StringContainerType > + void setCellBlockNames( StringContainerType const & cellBlockNames ) { + m_cellBlockNames.clear(); for( auto const & name: cellBlockNames ) { m_cellBlockNames.emplace_back( name ); } } + /** + * @brief register every cellBlocks that is requested in the cellBlockNames list. + * @note Assume that the cellBlockNames list is filled valid `cellBlocks` names + * (use CellElementRegionSelector to verify & fill this list after the user-requests). + * @param cellBlocks Cell blocks from where the mesh is extracted. + */ virtual void generateMesh( Group const & cellBlocks ) override; ///@} @@ -127,19 +134,26 @@ class CellElementRegion : public ElementRegionBase /// @return String key for the coarsening ratio static constexpr char const * coarseningRatioString() {return "coarseningRatio"; } - /// @return String key for the cell block names + /// @return String key for the user-requested mesh cellBlocks qualifiers: cellblock names, cellblock match patterns, attribute values. static constexpr char const * sourceCellBlockNamesString() {return "cellBlocks"; } }; - private: - // Cell block names + /// @brief List of user-requested mesh cellBlocks qualifiers: cellblock names, cellblock match patterns, attribute values. string_array m_cellBlockNames; - // Coarsening ratio + /// @brief Coarsening ratio real64 m_coarseningRatio; + + /** + * @return all cell-block names entries from m_cellBlockAttributeValues, + * m_cellBlockMatchPatterns and m_cellBlockNames. + * @param cellBlocks the input mesh cell-block list + */ + std::set< string > computeSelectedCellBlocks( std::set< string > const & cellBlocksNames ) const; + }; } /* namespace geos */ diff --git a/src/coreComponents/mesh/CellElementRegionSelector.cpp b/src/coreComponents/mesh/CellElementRegionSelector.cpp new file mode 100644 index 00000000000..80047d71c79 --- /dev/null +++ b/src/coreComponents/mesh/CellElementRegionSelector.cpp @@ -0,0 +1,193 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +#include "mesh/CellElementRegionSelector.hpp" + +#include +#include + + +namespace geos +{ +using namespace dataRepository; +using ViewKeys = CellElementRegion::viewKeyStruct; + + +CellElementRegionSelector::CellElementRegionSelector( + Group const & cellBlocks, + std::map< integer, std::set< string > > const & regionsCellBlocks ) +{ + // The owners lists need to be initialized so we will be able to verify later that it is not empty. + + cellBlocks.forSubGroups< CellBlockABC >( [&] ( CellBlockABC const & cellBlock ) + { + string const name = cellBlock.getName(); + m_cellBlocksOwners.emplace( name, std::vector< CellElementRegion const * >() ); + } ); + + for( auto const & regionCellBlocks : regionsCellBlocks ) + { + string const regionAttributeStr = std::to_string( regionCellBlocks.first ); + m_regionAttributesCellBlocks.emplace( regionAttributeStr, regionCellBlocks.second ); + m_regionAttributesOwners.emplace( regionAttributeStr, std::vector< CellElementRegion const * >() ); + } +} + + +std::set< string > +CellElementRegionSelector::getMatchingCellblocks( CellElementRegion const & region, + string_view matchPattern ) const +{ + std::set< string > matchedCellBlocks; + bool matching = false; + for( auto const & [cellBlockName, owners] : m_cellBlocksOwners ) + { + // if the pattern matches the tested cellBlock name + if( fnmatch( matchPattern.data(), cellBlockName.c_str(), 0 ) == 0 ) + { + matching = true; + matchedCellBlocks.emplace( cellBlockName ); + } + } + + GEOS_THROW_IF( !matching, + GEOS_FMT( "{}: No cellBlock name is satisfying the qualifier '{}'.\n" + "Available cellBlock list: {{ {} }}\nAvailable region attribute list: {{ {} }}", + region.getWrapperDataContext( ViewKeys::sourceCellBlockNamesString() ), + matchPattern, + stringutilities::joinLamda( m_regionAttributesOwners, ", ", + []( auto pair ) { return pair->first; } ), + stringutilities::joinLamda( m_cellBlocksOwners, ", ", + []( auto pair ) { return pair->first; } ) ), + InputError ); + return matchedCellBlocks; +} + +void +CellElementRegionSelector::verifyRequestedCellBlocks( CellElementRegion const & region, + std::set< string > const & cellBlockNames ) const +{ + for( string const & requestedCellBlockName : cellBlockNames ) + { + // if cell block does not exist in the mesh + GEOS_THROW_IF( m_cellBlocksOwners.count( requestedCellBlockName ) == 0, + GEOS_FMT( "{}: No cellBlock named '{}'.\nAvailable cellBlock list: {{ {} }}", + region.getWrapperDataContext( ViewKeys::sourceCellBlockNamesString() ), + requestedCellBlockName, + stringutilities::joinLamda( m_cellBlocksOwners, ", ", + []( auto pair ) { return pair->first; } ) ), + InputError ); + } +} + + +void +CellElementRegionSelector::registerRegionSelection( CellElementRegion const & region, + std::set< string > const & cellBlockNames, + std::set< string > const & attributeValues ) +{ + for( string attributeValue : attributeValues ) + { + m_regionAttributesOwners[attributeValue].push_back( ®ion ); + } + + for( string const & cellBlockName : cellBlockNames ) + { + m_cellBlocksOwners[cellBlockName].push_back( ®ion ); + } +} + + +std::set< string > CellElementRegionSelector::buildCellBlocksSelection( CellElementRegion const & region ) +{ + std::set< string > cellBlocksSelection; + std::set< string > regionAttributeSelection; + + auto const qualifiers = region.getCellBlockNames(); + for( string const & qualifier : qualifiers ) + { + auto const regionCellBlocks = m_regionAttributesCellBlocks.find( qualifier ); + if( regionCellBlocks != m_regionAttributesCellBlocks.end() ) + { // if the qualifier is a region attribute value, let's select it + regionAttributeSelection.emplace( regionCellBlocks->first ); + for( string const & cellBlock : regionCellBlocks->second ) + { + cellBlocksSelection.emplace( cellBlock ); + } + } + else + { // the qualifier is a match pattern, or a simple cellblock name, let's select all matching cell-blocks + std::set< string > const matchedCellBlocks = getMatchingCellblocks( region, qualifier ); + cellBlocksSelection.insert( matchedCellBlocks.begin(), matchedCellBlocks.end() ); + } + } + + verifyRequestedCellBlocks( region, cellBlocksSelection ); + registerRegionSelection( region, cellBlocksSelection, regionAttributeSelection ); + + return cellBlocksSelection; +} + +void CellElementRegionSelector::checkSelectionConsistency() const +{ + auto const getRegionStr = []( auto regionPtrIterator ) -> string { + return GEOS_FMT( "- {}", (*regionPtrIterator)->getDataContext() ); + }; + + auto const checkOwnerCount = [&]( string_view qualifierType, + auto const & qualifiersOwners, + auto & orphanList ) { + // Search of never or multiple selected attribute values + std::vector< string > multipleRefsErrors; + for( auto const & [qualifier, owningRegions] : qualifiersOwners ) + { + if( owningRegions.size() == 0 ) + { + orphanList.insert( qualifier ); + } + else if( owningRegions.size() > 1 ) + { + multipleRefsErrors.push_back( + GEOS_FMT( "The {} '{}' has been referenced in multiple {}:\n{}", + qualifierType, qualifier, CellElementRegion::catalogName(), + stringutilities::joinLamda( owningRegions, '\n', getRegionStr ) ) ); + } + } + GEOS_THROW_IF( !multipleRefsErrors.empty(), stringutilities::join( multipleRefsErrors, "\n\n" ), InputError ); + }; + + std::set< string > orphanRegionAttributes; + std::set< string > orphanCellBlockNames; + checkOwnerCount( "region attribute", m_regionAttributesOwners, orphanRegionAttributes ); + checkOwnerCount( "cell-block", m_cellBlocksOwners, orphanCellBlockNames ); + + if( !orphanCellBlockNames.empty() ) + { + std::ostringstream oss; + if( !orphanRegionAttributes.empty() ) + { + oss << GEOS_FMT( "The region attributes {{ {} }} has not been referenced in any {}.\n", + stringutilities::join( orphanRegionAttributes, ", " ), + CellElementRegion::catalogName() ); + } + oss << GEOS_FMT( "The following cell-blocks has not been referenced in any region: {{ {} }}.\n", + stringutilities::join( orphanCellBlockNames, ", " ) ); + oss << GEOS_FMT( "Please add it in an existing {} (through the '{}' attribute), or consider creating a new one to describe your model.", + CellElementRegion::catalogName(), ViewKeys::sourceCellBlockNamesString() ); + GEOS_THROW( oss.str(), InputError ); + } +} + + +} /* namespace geos */ diff --git a/src/coreComponents/mesh/CellElementRegionSelector.hpp b/src/coreComponents/mesh/CellElementRegionSelector.hpp new file mode 100644 index 00000000000..962f99aca1b --- /dev/null +++ b/src/coreComponents/mesh/CellElementRegionSelector.hpp @@ -0,0 +1,124 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file CellElementRegionSelector.hpp + */ + +#ifndef GEOS_MESH_CELLELEMENTREGIONSELECTOR_HPP_ +#define GEOS_MESH_CELLELEMENTREGIONSELECTOR_HPP_ + +#include "mesh/CellElementRegion.hpp" + +namespace geos +{ + +/** + * @class CellElementRegionSelector + * + * CellElementRegionSelector allows a CellElementRegion to safely select cell-blocks according to the user input. + * It handles all user input checks and throws an exception in the event of inconsistency. + */ +class CellElementRegionSelector +{ +public: + + /** + * @brief Construct a new CellElementRegionSelector. + * @param cellBlocks a Group containing all the available cell-blocks. + * @param cellBlocksRegion A map of the cellblocks name lists for each region attributes value. + */ + CellElementRegionSelector( dataRepository::Group const & cellBlocks, + std::map< integer, std::set< string > > const & cellBlocksRegion ); + + /** + * @brief Select the mesh cell-blocks for the specified region following the user inputs. + * @throw an InputError if the user setting are inconsistant. + * @param region the region for which we want to select the cell-blocks. + * @return the selected cell-blocks names. + */ + std::set< string > buildCellBlocksSelection( CellElementRegion const & region ); + + /** + * @throw An InputError if region cell-blocks selections is inconsistent: + * - cell-block is in more than one region, + * - orphan cell-block + * @todo For now, multiple regions per cell is not supported (ElementRegionManager::getCellBlockToSubRegionMap()). + * We could refactor the CellElementRegion & Mesh classes so regions are mapped to cell-blocks IN the mesh (and potentially + * to multiple regions per cell). So, for external meshes, the cell-blocks would no longer be exposed to the final user. + */ + void checkSelectionConsistency() const; + +private: + + /// @brief The separator between the regionAttribute value and the type of the shape in a given cellBlock. + static constexpr string_view cellBlockTypeSeparator = "_"; + + /// @brief A map that link every cell-block name to the CellElementRegion(s) that references it. + std::map< string, std::vector< CellElementRegion const * > > m_cellBlocksOwners; + + /// @brief A map that link every region attribute values to the CellElementRegion(s) that references it. + std::map< string, std::vector< CellElementRegion const * > > m_regionAttributesOwners; + + /** + * @brief A map of the cellblocks name lists for each region attributes value. Internal attribute type + * is integer to facilitate comparison with cellBlock qualifiers. + */ + std::map< string, std::set< string > const & > m_regionAttributesCellBlocks; + + /** + * @return A set of the FNMatch pattern from the provided lists. + * @param region The region for which we collect the match-patterns. + * @param requestedAttributeValues The user requested attribute values. They will get converted to + * match-pattern that select the coresponding cell-blocks. + * @param requestedMatchPatterns The match patterns that the user requested explicitely. + * @throw An InputError if the attribute values does not exist in the mesh. + */ + std::set< string > buildMatchPatterns( CellElementRegion const & region, + std::set< string > const & attributeValues, + std::set< string > const & matchPatterns ) const; + + /** + * @return A set of the cell-blocks that the provided match-patterns select. + * @param region The region for which we collect the cell-blocks. + * @param matchPatterns The FNMatch pattern + * @throw An InputError if a FNMatch pattern does not select any cell-block. + */ + std::set< string > getMatchingCellblocks( CellElementRegion const & region, + string_view matchPattern ) const; + + /** + * @brief A set of the cell-blocks that the provided match-patterns select. + * @param region The region for which we collect the cell-blocks. + * @param matchPatterns The FNMatch pattern set. + * @throw An InputError if a FNMatch pattern does not select any cell-block. + */ + void verifyRequestedCellBlocks( CellElementRegion const & region, + std::set< string > const & cellBlockNames ) const; + + /** + * @brief Effectively select the specified cell-blocks & region attribute for the specified region. + * @param region The region for which when want to select cell-blocks + * @param attributeValues The attribute values we want to select (can be empty). + * @param cellBlockNames The cell-block names we want to select (can be empty). + */ + void registerRegionSelection( CellElementRegion const & region, + std::set< string > const & cellBlockNames, + std::set< string > const & attributeValues ); + +}; + +} /* namespace geos */ + +#endif /* GEOS_MESH_CELLELEMENTREGIONSELECTOR_HPP_ */ diff --git a/src/coreComponents/mesh/CellElementSubRegion.cpp b/src/coreComponents/mesh/CellElementSubRegion.cpp index 995d2a0c2c2..0b13ba2dea2 100644 --- a/src/coreComponents/mesh/CellElementSubRegion.cpp +++ b/src/coreComponents/mesh/CellElementSubRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/CellElementSubRegion.hpp b/src/coreComponents/mesh/CellElementSubRegion.hpp index 349a1b34e23..b230a64bdb1 100644 --- a/src/coreComponents/mesh/CellElementSubRegion.hpp +++ b/src/coreComponents/mesh/CellElementSubRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/DomainPartition.cpp b/src/coreComponents/mesh/DomainPartition.cpp index 381e5d2f1bd..0dd8a8a3623 100644 --- a/src/coreComponents/mesh/DomainPartition.cpp +++ b/src/coreComponents/mesh/DomainPartition.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/DomainPartition.hpp b/src/coreComponents/mesh/DomainPartition.hpp index 61a70ee0cba..c15eb224100 100644 --- a/src/coreComponents/mesh/DomainPartition.hpp +++ b/src/coreComponents/mesh/DomainPartition.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/EdgeManager.cpp b/src/coreComponents/mesh/EdgeManager.cpp index 9f3ed4fc3ca..6ef8d9daf97 100644 --- a/src/coreComponents/mesh/EdgeManager.cpp +++ b/src/coreComponents/mesh/EdgeManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/EdgeManager.hpp b/src/coreComponents/mesh/EdgeManager.hpp index 26fc31f4108..eedcc23a4d4 100644 --- a/src/coreComponents/mesh/EdgeManager.hpp +++ b/src/coreComponents/mesh/EdgeManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ElementRegionBase.cpp b/src/coreComponents/mesh/ElementRegionBase.cpp index f28f8a3e6d3..844827c28bf 100644 --- a/src/coreComponents/mesh/ElementRegionBase.cpp +++ b/src/coreComponents/mesh/ElementRegionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ElementRegionBase.hpp b/src/coreComponents/mesh/ElementRegionBase.hpp index b0dbe221b20..f2050f351bd 100644 --- a/src/coreComponents/mesh/ElementRegionBase.hpp +++ b/src/coreComponents/mesh/ElementRegionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ElementRegionManager.cpp b/src/coreComponents/mesh/ElementRegionManager.cpp index 2259ae3bb6c..6f3669a0a19 100644 --- a/src/coreComponents/mesh/ElementRegionManager.cpp +++ b/src/coreComponents/mesh/ElementRegionManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -28,6 +28,7 @@ #include "mesh/utilities/MeshMapUtilities.hpp" #include "schema/schemaUtilities.hpp" #include "mesh/generators/LineBlockABC.hpp" +#include "mesh/CellElementRegionSelector.hpp" namespace geos { @@ -77,7 +78,6 @@ Group * ElementRegionManager::createChild( string const & childKey, string const Group & elementRegions = this->getGroup( ElementRegionManager::groupKeyStruct::elementRegionsGroup() ); return &elementRegions.registerGroup( childName, CatalogInterface::factory( childKey, childName, &elementRegions ) ); - } void ElementRegionManager::expandObjectCatalogs() @@ -120,12 +120,23 @@ void ElementRegionManager::setSchemaDeviations( xmlWrapper::xmlNode schemaRoot, } } + void ElementRegionManager::generateMesh( CellBlockManagerABC const & cellBlockManager ) { - this->forElementRegions< CellElementRegion >( [&]( CellElementRegion & elemRegion ) - { - elemRegion.generateMesh( cellBlockManager.getCellBlocks() ); - } ); + { // cellBlocks loading + Group const & cellBlocks = cellBlockManager.getCellBlocks(); + CellElementRegionSelector cellBlockSelector{ cellBlocks, + cellBlockManager.getRegionAttributesCellBlocks() }; + this->forElementRegions< CellElementRegion >( [&]( CellElementRegion & elemRegion ) + { + elemRegion.setCellBlockNames( cellBlockSelector.buildCellBlocksSelection( elemRegion ) ); + elemRegion.generateMesh( cellBlocks ); + } ); + // selecting all cellblocks is mandatory + cellBlockSelector.checkSelectionConsistency(); + } + + this->forElementRegions< SurfaceElementRegion >( [&]( SurfaceElementRegion & elemRegion ) { elemRegion.generateMesh( cellBlockManager.getFaceBlocks() ); @@ -151,7 +162,6 @@ void ElementRegionManager::generateMesh( CellBlockManagerABC const & cellBlockMa tmp, relation ); } ); - } void ElementRegionManager::generateWells( CellBlockManagerABC const & cellBlockManager, diff --git a/src/coreComponents/mesh/ElementRegionManager.hpp b/src/coreComponents/mesh/ElementRegionManager.hpp index 19ffdee08ad..1f3ab30a0c9 100644 --- a/src/coreComponents/mesh/ElementRegionManager.hpp +++ b/src/coreComponents/mesh/ElementRegionManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -144,7 +144,7 @@ class ElementRegionManager : public ObjectManagerBase } /** - * @brief Generate the mesh. + * @brief Generate the mesh. Produce an error if a required cellBlock doesn't exist in the source mesh. * @param [in,out] cellBlockManager Reference to the abstract cell block manager. */ void generateMesh( CellBlockManagerABC const & cellBlockManager ); @@ -1186,8 +1186,6 @@ class ElementRegionManager : public ObjectManagerBase * @return reference to this object */ ElementRegionManager & operator=( const ElementRegionManager & ); - - }; diff --git a/src/coreComponents/mesh/ElementSubRegionBase.cpp b/src/coreComponents/mesh/ElementSubRegionBase.cpp index adf2a7b629d..f3dc3a23745 100644 --- a/src/coreComponents/mesh/ElementSubRegionBase.cpp +++ b/src/coreComponents/mesh/ElementSubRegionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ElementSubRegionBase.hpp b/src/coreComponents/mesh/ElementSubRegionBase.hpp index f4bd68e14f4..74bd710a310 100644 --- a/src/coreComponents/mesh/ElementSubRegionBase.hpp +++ b/src/coreComponents/mesh/ElementSubRegionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ElementType.hpp b/src/coreComponents/mesh/ElementType.hpp index 5db51d7e319..67208235e3b 100644 --- a/src/coreComponents/mesh/ElementType.hpp +++ b/src/coreComponents/mesh/ElementType.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -110,6 +110,36 @@ ENUM_STRINGS( ElementType, "HendecagonalPrism", "Polyhedron" ); +/** + * @brief Returns a string describing the element. + * @param[in] type The element type. + * @return The name. + * @warning This information will be visible in the input file... Consider refactoring with great care. + */ +inline string getElementTypeName( ElementType const type ) +{ + switch( type ) + { + case ElementType::Hexahedron: return "hexahedra"; + case ElementType::Tetrahedron: return "tetrahedra"; + case ElementType::Wedge: return "wedges"; + case ElementType::Pyramid: return "pyramids"; + case ElementType::Prism5: return "pentagonalPrisms"; + case ElementType::Prism6: return "hexagonalPrisms"; + case ElementType::Prism7: return "heptagonalPrisms"; + case ElementType::Prism8: return "octagonalPrisms"; + case ElementType::Prism9: return "nonagonalPrisms"; + case ElementType::Prism10: return "decagonalPrisms"; + case ElementType::Prism11: return "hendecagonalPrisms"; + case ElementType::Polyhedron: return "polyhedra"; + default: + { + GEOS_ERROR( "Element type '" << type << "' is not supported" ); + return {}; + } + } +} + /// String available for mesh errors inline auto constexpr generalMeshErrorAdvice = "Consider checking the validity of your mesh with " "the `mesh_doctor` GEOS python tools (documentation at " diff --git a/src/coreComponents/mesh/EmbeddedSurfaceNodeManager.cpp b/src/coreComponents/mesh/EmbeddedSurfaceNodeManager.cpp index 67c8085469a..dd18ab4439b 100644 --- a/src/coreComponents/mesh/EmbeddedSurfaceNodeManager.cpp +++ b/src/coreComponents/mesh/EmbeddedSurfaceNodeManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/EmbeddedSurfaceNodeManager.hpp b/src/coreComponents/mesh/EmbeddedSurfaceNodeManager.hpp index ffdbd89f211..fdb11f62c98 100644 --- a/src/coreComponents/mesh/EmbeddedSurfaceNodeManager.hpp +++ b/src/coreComponents/mesh/EmbeddedSurfaceNodeManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/EmbeddedSurfaceSubRegion.cpp b/src/coreComponents/mesh/EmbeddedSurfaceSubRegion.cpp index 055af644a79..83f603d9992 100644 --- a/src/coreComponents/mesh/EmbeddedSurfaceSubRegion.cpp +++ b/src/coreComponents/mesh/EmbeddedSurfaceSubRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/EmbeddedSurfaceSubRegion.hpp b/src/coreComponents/mesh/EmbeddedSurfaceSubRegion.hpp index f9cf8d175f9..311b8aec610 100644 --- a/src/coreComponents/mesh/EmbeddedSurfaceSubRegion.hpp +++ b/src/coreComponents/mesh/EmbeddedSurfaceSubRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/FaceElementSubRegion.cpp b/src/coreComponents/mesh/FaceElementSubRegion.cpp index 90d2d7d4e49..31c0dcce7c0 100644 --- a/src/coreComponents/mesh/FaceElementSubRegion.cpp +++ b/src/coreComponents/mesh/FaceElementSubRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/FaceElementSubRegion.hpp b/src/coreComponents/mesh/FaceElementSubRegion.hpp index 709098260e5..88edf84dec2 100644 --- a/src/coreComponents/mesh/FaceElementSubRegion.hpp +++ b/src/coreComponents/mesh/FaceElementSubRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/FaceManager.cpp b/src/coreComponents/mesh/FaceManager.cpp index 7942f825f29..b5924f7fde4 100644 --- a/src/coreComponents/mesh/FaceManager.cpp +++ b/src/coreComponents/mesh/FaceManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -272,11 +272,7 @@ void FaceManager::sortAllFaceNodes( NodeManager const & nodeManager, if( facesToElements( faceIndex, 0 ) < 0 && facesToElements( faceIndex, 1 ) < 0 ) { GEOS_ERROR( getDataContext() << ": Face " << faceIndex << - " is not connected to any cell.\n" - "You might have:\n" - "- an invalid mesh,\n" - "- not enough CellElementRegions to describe your input mesh (all regions, simulated or not, must be listed),\n" - "- forgotten one cell type in an existing \"" << CellElementRegion::viewKeyStruct::sourceCellBlockNamesString() << "\'." ); + " is not connected to any cell. You might have an invalid mesh." ); } // Take the first defined face-to-(elt/region/sub region) to sorting direction. diff --git a/src/coreComponents/mesh/FaceManager.hpp b/src/coreComponents/mesh/FaceManager.hpp index f20e0a068cf..7d7693ab4d6 100644 --- a/src/coreComponents/mesh/FaceManager.hpp +++ b/src/coreComponents/mesh/FaceManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/FieldIdentifiers.hpp b/src/coreComponents/mesh/FieldIdentifiers.hpp index 9d78e471933..677106340e6 100644 --- a/src/coreComponents/mesh/FieldIdentifiers.hpp +++ b/src/coreComponents/mesh/FieldIdentifiers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/InterObjectRelation.hpp b/src/coreComponents/mesh/InterObjectRelation.hpp index 960b2b115ee..33e39155e52 100644 --- a/src/coreComponents/mesh/InterObjectRelation.hpp +++ b/src/coreComponents/mesh/InterObjectRelation.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshBody.cpp b/src/coreComponents/mesh/MeshBody.cpp index a85c53b9559..80696370fb3 100644 --- a/src/coreComponents/mesh/MeshBody.cpp +++ b/src/coreComponents/mesh/MeshBody.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshBody.hpp b/src/coreComponents/mesh/MeshBody.hpp index cb8d14242d6..ca614f8f18f 100644 --- a/src/coreComponents/mesh/MeshBody.hpp +++ b/src/coreComponents/mesh/MeshBody.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshFields.hpp b/src/coreComponents/mesh/MeshFields.hpp index e7a2173f89b..e2afe94e100 100644 --- a/src/coreComponents/mesh/MeshFields.hpp +++ b/src/coreComponents/mesh/MeshFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshForLoopInterface.hpp b/src/coreComponents/mesh/MeshForLoopInterface.hpp index 8908f5fb65f..d069fbc5fc1 100644 --- a/src/coreComponents/mesh/MeshForLoopInterface.hpp +++ b/src/coreComponents/mesh/MeshForLoopInterface.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshLevel.cpp b/src/coreComponents/mesh/MeshLevel.cpp index 2d64b919390..fe3c98b6eca 100644 --- a/src/coreComponents/mesh/MeshLevel.cpp +++ b/src/coreComponents/mesh/MeshLevel.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -204,8 +204,8 @@ MeshLevel::MeshLevel( string const & name, // create element region with the same name as source element region "Region" CellElementRegion & region = *(dynamic_cast< CellElementRegion * >( m_elementManager->createChild( sourceRegion.getCatalogName(), sourceRegion.getName() ) ) ); - // add cell block to the new element region with the same name as cell block name from source element region - region.addCellBlockNames( sourceRegion.getCellBlockNames() ); + // set cell block to the new element region with the same name as cell block name from source element region + region.setCellBlockNames( sourceRegion.getCellBlockNames() ); sourceRegion.forElementSubRegions< CellElementSubRegion >( [&]( CellElementSubRegion const & sourceSubRegion ) { diff --git a/src/coreComponents/mesh/MeshLevel.hpp b/src/coreComponents/mesh/MeshLevel.hpp index 88d6d9c505b..dee7e31bd1e 100644 --- a/src/coreComponents/mesh/MeshLevel.hpp +++ b/src/coreComponents/mesh/MeshLevel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshManager.cpp b/src/coreComponents/mesh/MeshManager.cpp index 32c34f2216e..3fa5ab4825a 100644 --- a/src/coreComponents/mesh/MeshManager.cpp +++ b/src/coreComponents/mesh/MeshManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshManager.hpp b/src/coreComponents/mesh/MeshManager.hpp index 889434fd70f..793eaee775d 100644 --- a/src/coreComponents/mesh/MeshManager.hpp +++ b/src/coreComponents/mesh/MeshManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshObjectPath.cpp b/src/coreComponents/mesh/MeshObjectPath.cpp index 2937097715c..4607ad0416e 100644 --- a/src/coreComponents/mesh/MeshObjectPath.cpp +++ b/src/coreComponents/mesh/MeshObjectPath.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/MeshObjectPath.hpp b/src/coreComponents/mesh/MeshObjectPath.hpp index 0586e47821f..b6cb34adb75 100644 --- a/src/coreComponents/mesh/MeshObjectPath.hpp +++ b/src/coreComponents/mesh/MeshObjectPath.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/NodeManager.cpp b/src/coreComponents/mesh/NodeManager.cpp index a5d9ac2859e..d59752f09da 100644 --- a/src/coreComponents/mesh/NodeManager.cpp +++ b/src/coreComponents/mesh/NodeManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/NodeManager.hpp b/src/coreComponents/mesh/NodeManager.hpp index 3393d99a583..0c9a39a13e1 100644 --- a/src/coreComponents/mesh/NodeManager.hpp +++ b/src/coreComponents/mesh/NodeManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ObjectManagerBase.cpp b/src/coreComponents/mesh/ObjectManagerBase.cpp index bfb00223f7d..aaa209044cf 100644 --- a/src/coreComponents/mesh/ObjectManagerBase.cpp +++ b/src/coreComponents/mesh/ObjectManagerBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -56,6 +56,16 @@ ObjectManagerBase::ObjectManagerBase( string const & name, registerWrapper< array1d< integer > >( viewKeyStruct::domainBoundaryIndicatorString(), &m_domainBoundaryIndicator ); + registerWrapper( viewKeyStruct::localMaxGlobalIndexString(), &m_localMaxGlobalIndex ). + setApplyDefaultValue( -1 ). + setRestartFlags( RestartFlags::WRITE_AND_READ ). + setPlotLevel( PlotLevel::NOPLOT ); + + registerWrapper( viewKeyStruct::maxGlobalIndexString(), &m_maxGlobalIndex ). + setApplyDefaultValue( -1 ). + setRestartFlags( RestartFlags::WRITE_AND_READ ). + setPlotLevel( PlotLevel::NOPLOT ); + m_sets.registerWrapper< SortedArray< localIndex > >( this->m_ObjectManagerBaseViewKeys.externalSet ); excludeWrappersFromPacking( { viewKeyStruct::localToGlobalMapString(), diff --git a/src/coreComponents/mesh/ObjectManagerBase.hpp b/src/coreComponents/mesh/ObjectManagerBase.hpp index e6002425699..1cc67026b84 100644 --- a/src/coreComponents/mesh/ObjectManagerBase.hpp +++ b/src/coreComponents/mesh/ObjectManagerBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -685,6 +685,12 @@ class ObjectManagerBase : public dataRepository::Group /// @return String key to the local->global map static constexpr char const * localToGlobalMapString() { return "localToGlobalMap"; } + /// @return String key for m_localMaxGlobalIndexString + static constexpr char const * localMaxGlobalIndexString() { return "localMaxGlobalIndex"; } + + /// @return String key for m_maxGlobalIndexString + static constexpr char const * maxGlobalIndexString() { return "maxGlobalIndex"; } + /// View key to external set dataRepository::ViewKey externalSet = { externalSetString() }; diff --git a/src/coreComponents/mesh/ParticleManager.cpp b/src/coreComponents/mesh/ParticleManager.cpp index 7a168d02168..af1096d02c2 100644 --- a/src/coreComponents/mesh/ParticleManager.cpp +++ b/src/coreComponents/mesh/ParticleManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleManager.hpp b/src/coreComponents/mesh/ParticleManager.hpp index 7cc967c1e83..f123471b9c3 100644 --- a/src/coreComponents/mesh/ParticleManager.hpp +++ b/src/coreComponents/mesh/ParticleManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleRegion.cpp b/src/coreComponents/mesh/ParticleRegion.cpp index c7c1fac268e..a18cb3e32dc 100644 --- a/src/coreComponents/mesh/ParticleRegion.cpp +++ b/src/coreComponents/mesh/ParticleRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleRegion.hpp b/src/coreComponents/mesh/ParticleRegion.hpp index 22001a9afd9..7295fb8c029 100644 --- a/src/coreComponents/mesh/ParticleRegion.hpp +++ b/src/coreComponents/mesh/ParticleRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleRegionBase.cpp b/src/coreComponents/mesh/ParticleRegionBase.cpp index 90e3e8899bb..1503dcf6947 100644 --- a/src/coreComponents/mesh/ParticleRegionBase.cpp +++ b/src/coreComponents/mesh/ParticleRegionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleRegionBase.hpp b/src/coreComponents/mesh/ParticleRegionBase.hpp index 5cea7fc28bc..7989c1392f1 100644 --- a/src/coreComponents/mesh/ParticleRegionBase.hpp +++ b/src/coreComponents/mesh/ParticleRegionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleSubRegion.cpp b/src/coreComponents/mesh/ParticleSubRegion.cpp index ac4c54ba13e..4f1380347af 100644 --- a/src/coreComponents/mesh/ParticleSubRegion.cpp +++ b/src/coreComponents/mesh/ParticleSubRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleSubRegion.hpp b/src/coreComponents/mesh/ParticleSubRegion.hpp index 816d35fc1bb..6fef225e1e4 100644 --- a/src/coreComponents/mesh/ParticleSubRegion.hpp +++ b/src/coreComponents/mesh/ParticleSubRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleSubRegionBase.cpp b/src/coreComponents/mesh/ParticleSubRegionBase.cpp index 1e0a5d0b5aa..78b7fb20560 100644 --- a/src/coreComponents/mesh/ParticleSubRegionBase.cpp +++ b/src/coreComponents/mesh/ParticleSubRegionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleSubRegionBase.hpp b/src/coreComponents/mesh/ParticleSubRegionBase.hpp index 81f35d638fd..deb99881a86 100644 --- a/src/coreComponents/mesh/ParticleSubRegionBase.hpp +++ b/src/coreComponents/mesh/ParticleSubRegionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ParticleType.hpp b/src/coreComponents/mesh/ParticleType.hpp index da32741848e..000546a381d 100644 --- a/src/coreComponents/mesh/ParticleType.hpp +++ b/src/coreComponents/mesh/ParticleType.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/Perforation.cpp b/src/coreComponents/mesh/Perforation.cpp index 2d642976d0b..fdfa6170d0f 100644 --- a/src/coreComponents/mesh/Perforation.cpp +++ b/src/coreComponents/mesh/Perforation.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/Perforation.hpp b/src/coreComponents/mesh/Perforation.hpp index f9508bd7d3b..e225b2d53c1 100644 --- a/src/coreComponents/mesh/Perforation.hpp +++ b/src/coreComponents/mesh/Perforation.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/PerforationData.cpp b/src/coreComponents/mesh/PerforationData.cpp index f5b45ee9ae9..536e03f51ad 100644 --- a/src/coreComponents/mesh/PerforationData.cpp +++ b/src/coreComponents/mesh/PerforationData.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/PerforationData.hpp b/src/coreComponents/mesh/PerforationData.hpp index 94dadb76106..f8f2e801c40 100644 --- a/src/coreComponents/mesh/PerforationData.hpp +++ b/src/coreComponents/mesh/PerforationData.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/PerforationFields.hpp b/src/coreComponents/mesh/PerforationFields.hpp index fe467fa2024..263c7254078 100644 --- a/src/coreComponents/mesh/PerforationFields.hpp +++ b/src/coreComponents/mesh/PerforationFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/SurfaceElementRegion.cpp b/src/coreComponents/mesh/SurfaceElementRegion.cpp index 797a27f012e..78233703bd1 100644 --- a/src/coreComponents/mesh/SurfaceElementRegion.cpp +++ b/src/coreComponents/mesh/SurfaceElementRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/SurfaceElementRegion.hpp b/src/coreComponents/mesh/SurfaceElementRegion.hpp index f011e6ebf45..182d4f730b0 100644 --- a/src/coreComponents/mesh/SurfaceElementRegion.hpp +++ b/src/coreComponents/mesh/SurfaceElementRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/SurfaceElementSubRegion.cpp b/src/coreComponents/mesh/SurfaceElementSubRegion.cpp index 296163a80f5..d763dfe41ba 100644 --- a/src/coreComponents/mesh/SurfaceElementSubRegion.cpp +++ b/src/coreComponents/mesh/SurfaceElementSubRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/SurfaceElementSubRegion.hpp b/src/coreComponents/mesh/SurfaceElementSubRegion.hpp index 2fc5b84f532..0860c98d574 100644 --- a/src/coreComponents/mesh/SurfaceElementSubRegion.hpp +++ b/src/coreComponents/mesh/SurfaceElementSubRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ToElementRelation.cpp b/src/coreComponents/mesh/ToElementRelation.cpp index ef7125eb430..6f3bfb37b7e 100644 --- a/src/coreComponents/mesh/ToElementRelation.cpp +++ b/src/coreComponents/mesh/ToElementRelation.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ToElementRelation.hpp b/src/coreComponents/mesh/ToElementRelation.hpp index aa13e898aa0..b596b273fa3 100644 --- a/src/coreComponents/mesh/ToElementRelation.hpp +++ b/src/coreComponents/mesh/ToElementRelation.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ToParticleRelation.cpp b/src/coreComponents/mesh/ToParticleRelation.cpp index e2d927911ca..8b39e66e06d 100644 --- a/src/coreComponents/mesh/ToParticleRelation.cpp +++ b/src/coreComponents/mesh/ToParticleRelation.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/ToParticleRelation.hpp b/src/coreComponents/mesh/ToParticleRelation.hpp index 015b41a3605..fc539e24f71 100644 --- a/src/coreComponents/mesh/ToParticleRelation.hpp +++ b/src/coreComponents/mesh/ToParticleRelation.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/WellElementRegion.cpp b/src/coreComponents/mesh/WellElementRegion.cpp index f0781163c2d..a9093f7679e 100644 --- a/src/coreComponents/mesh/WellElementRegion.cpp +++ b/src/coreComponents/mesh/WellElementRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/WellElementRegion.hpp b/src/coreComponents/mesh/WellElementRegion.hpp index 1ca22d96a78..b4abdd08027 100644 --- a/src/coreComponents/mesh/WellElementRegion.hpp +++ b/src/coreComponents/mesh/WellElementRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/WellElementSubRegion.cpp b/src/coreComponents/mesh/WellElementSubRegion.cpp index f47d6689922..7fc4ca3d8e4 100644 --- a/src/coreComponents/mesh/WellElementSubRegion.cpp +++ b/src/coreComponents/mesh/WellElementSubRegion.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/WellElementSubRegion.hpp b/src/coreComponents/mesh/WellElementSubRegion.hpp index 61b7fcd5bcb..0ddc7583e66 100644 --- a/src/coreComponents/mesh/WellElementSubRegion.hpp +++ b/src/coreComponents/mesh/WellElementSubRegion.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/docs/Mesh.rst b/src/coreComponents/mesh/docs/Mesh.rst index c87441015b4..829d4a9a59d 100644 --- a/src/coreComponents/mesh/docs/Mesh.rst +++ b/src/coreComponents/mesh/docs/Mesh.rst @@ -23,7 +23,7 @@ Basic Example The Internal Mesh Generator allows one to quickly build simple cartesian grids and divide them into several regions. The following attributes are supported in the input block for InternalMesh: -.. include:: /coreComponents/schema/docs/InternalMesh.rst +.. include:: /docs/sphinx/datastructure/InternalMesh.rst The following is an example XML ```` block, which will generate a vertical beam with two ``CellBlocks`` (one in red and one in blue in the following picture). @@ -32,14 +32,14 @@ The following is an example XML ```` block, which will generate a vertical + elementTypes="{ C3D8 }" + xCoords="{ 0, 1 }" + yCoords="{ 0, 1 }" + zCoords="{ 0, 2, 6 }" + nx="{ 1 }" + ny="{ 1 }" + nz="{ 2, 4 }" + cellBlockNames="{ cb1, cb2 }"/> - ``name`` the name of the mesh body @@ -168,7 +168,7 @@ The supported mesh elements for volume elements consist of the following: The mesh can be divided in several regions. These regions are intended to support different physics or to define different constitutive properties. -We usually use the ``attribute`` field is usually considered to define the regions. +By default, we use the ``attribute`` field to define the regions. .. _ImportingExternalMesh: @@ -179,7 +179,7 @@ Importing regions ***************** Several blocks are involved to import an external mesh into GEOS, defined in the XML input file. -These are the ```` block and the ```` block. +These are the ```` block and the ```` block. The mesh block has the following syntax: @@ -189,65 +189,108 @@ The mesh block has the following syntax: + file="/path/to/the/mesh/file.vtk" + regionAttribute="myAttribute" /> -We advise users to use absolute path to the mesh file, and strongly recommend the use of a logLevel -of 1 or more to obtain some information about the mesh import. This information contains for -example the list of regions that are imported with their names, which is particularly useful to -fill the ``cellBlocks`` field of the ``ElementRegions`` block (see below). Some information about the -imported surfaces is also provided. +..note:: + We advise users to use absolute path to the mesh file, and recommend the use of a ``logLevel`` + of 1 or more to obtain some information about the mesh import, including the list of regions that + are imported with their names, which is particularly useful to fill the field of the + ``CellElementRegions`` block (see below). Some information about the imported surfaces is also provided. -GEOS uses ``ElementRegions`` to support different physics -or to define different constitutive properties. -The ``ElementRegions`` block can contain several ``CellElementRegion`` blocks. A ``CellElementRegion`` is defined as a set of ``CellBlocks``. -A ``CellBlock`` is an ensemble of elements with the same element geometry. +GEOS uses ``ElementRegions`` to support different physics or to define different constitutive properties. +The ``ElementRegions`` block can contain several ``CellElementRegion`` blocks. A ``CellElementRegion`` +is defined as a set of cell-blocks, which are sets of elements with the same element +geometry, defined within the ``cellBlocks`` attribute. + +The naming of cell-blocks depends on if the mesh contains a data array which has the +same value as the ``regionAttribute`` of the ``VTKMesh`` (which is ``attribute`` by default). +This attribute is used to define regions in the vtu file and assign the cells to a given region. -The naming of the imported ``cellBlocks`` depends on whether the data array called ``regionAttribute`` is -present in the vtu file or not. This data array is used to define regions in the vtu file and -assign the cells to a given region. The ``regionAttribute`` is a integer and not a string -(unfortunately). +For now, loaded regions has the following limitations: +- The ``regionAttribute`` can only refer to integer values (no texts), +- Each element can belong to only one region. .. figure:: mesh_multi.png :align: center :width: 500 -In the example presented above, the mesh is is composed of two regions (*Top* and *Bot*). -Each region contains 4 ``cellBlocks``. +In GEOS, there are three different ways to select ``cellBlocks`` in a ``CellElementRegion``: -- If the vtu file does not contain ``regionAttribute``, then all the cells are grouped in a single - region, and the cell block names are just constructed from the cell types (hexahedra, wedges, - tetrahedra, etc). Then in the exemple above, the ``ElementRegions`` can be defined as bellow: +- Using a list of the desired ``regionAttribute`` values. + I.e. ``"{ 1, 2 }"`` selects all the cell-blocks of the ``regionAttribute`` 1 and 2. -.. code-block:: xml +- Using a list of the exact cell-blocks names from the mesh to contain in this CellElementRegion. + I.e. ``{ 1_tetrahedra, 1_pyramid, 1_hexahedra, 2_tetrahedra, 2_pyramid, 2_hexahedra }`` - - - +- Using a list of `fnmatch patterns `_ to match cell-block names to add them in this ``CellElementRegion``. + I.e. ``{ * }`` selects every elements, ``{ 1_* }`` selects the ``{ 1_tetrahedra, 1_pyramid, 1_hexahedra }`` cell-blocks. + +In the example presented above, the mesh is is composed of two regions. Each region contains 4 element types. + +- If the vtu file contains an attribute equals to the ``regionAttribute`` of the ``VTKMesh``, + then all ``cellBlock`` are named with this convention: ``regionAttribute_elementType``. Let's assume that + the top region of the exemple above has ``myAttribute`` to 1, and that the bottom region has ``myAttribute`` to 2, -- If the vtu file contains ``regionAttribute``, then the cells are grouped by regions based on their - individual (numeric) ``regionAttribute``. In that case, the naming convention for the ``cellBlocks`` is - ``regionAttribute_elementType``. Let's assume that the top region of the exemple above is identified - by the ``regionAttribute`` 1, and that the bottom region is identified with 2, - * If we want the ``CellElementRegion`` to contain all the cells, we write: .. code-block:: xml + + + + + + - * If we want two CellElementRegion with the top and bottom regions separated, we write: + + + + + + * If we want two ``CellElementRegion`` with the top and bottom regions separated, we write: .. code-block:: xml + + + + + + + + + + + + + +- If the vtu file does not contain any region attribute field, then all the cells are grouped in a single + region, and cellBlock names consist of just the cell types (hexahedra, wedges, tetrahedra, etc). + Then in the exemple above, the ``ElementRegions`` can be defined as bellow: + +.. code-block:: xml + + + + + + + + + + + + + + + + .. warning:: - We remind the user that **all** the imported ``cellBlocks`` must be included in one of the - ``CellElementRegion``. Even if some cells are meant to be inactive during the simulation, - they still have to be included in a ``CellElementRegion`` (this ``CellElementRegion`` should + **All** the imported ``cellBlocks`` must be included in one (and only one) of the ``CellElementRegion``. + Even if some cells are meant to be inactive during the simulation, they still have to be + included in a ``CellElementRegion`` (this ``CellElementRegion`` should simply not be included as a targetRegion of any of the solvers involved in the simulation). -The keywords for the ``cellBlocks`` element types are : +The ``cellBlocks`` element types are : - `hexahedra `_ - `tetrahedra `_ @@ -286,22 +359,26 @@ An example of a ``vtk`` file with all the physical regions defined is used in :r Importing surfaces ****************** -Surfaces are imported through point sets in GEOS. This feature is supported using only the ``vtk`` file format. -In the same way than the regions, the surfaces of interests can be defined using the `physical entity names`_. -The surfaces are automatically import in GEOS if they exist in the ``vtk`` file. +Surfaces are imported through point sets in GEOS. This feature is only supported using the ``vtk`` file format. +In the same way than the regions, the surfaces of interests can be defined using the `physical entity names`. +The surfaces are automatically imported in GEOS if they exist in the ``vtk`` file. Within GEOS, the point set will have the same name than the one given in the file. This name can be used -again to impose boundary condition. For instance, if a surface is named "Bottom" and the user wants to -impose a Dirichlet boundary condition of 0 on it, it can be easily done using this syntax. +again to impose boundary condition. + +For instance, if a surface is named "Bottom" and the user wants to +impose a Dirichlet boundary condition of 0 on it, it can be easily done using this syntax: .. code-block:: xml - + + + The name of the surface of interest appears under the keyword ``setNames``. Again, an example of a ``vtk`` file with the surfaces fully defined is available within :ref:`TutorialFieldCase` or :ref:`ExampleIsothermalHystInjection`. diff --git a/src/coreComponents/mesh/docs/meshDeveloperGuide.rst b/src/coreComponents/mesh/docs/meshDeveloperGuide.rst index c0ba2ca9598..5145efa3f95 100644 --- a/src/coreComponents/mesh/docs/meshDeveloperGuide.rst +++ b/src/coreComponents/mesh/docs/meshDeveloperGuide.rst @@ -30,7 +30,7 @@ regions (Top and Bottom) (:numref:`modelMeshDevFig`). DomainPartition =============== -In :numref:`MeshObjectInstantiationHierarchy` the top level object ``DomainPartition`` represents +In :numref:`diagMeshDevFig` the top level object ``DomainPartition`` represents a partition of the decomposed physical domain. At this time there is a unique ``DomainPartition`` for every MPI rank. @@ -135,3 +135,13 @@ tetrahedra, one for all hexahedra, one for all wedges and one for all the pyrami Now that all the classes of the mesh hierarchy has been described, we propose to adapt the diagram presented in :numref:`diagMeshDevFig` to match with the example presented in :numref:`modelMeshDevFig`. + +Direct links to some useful class documentation: + +`ObjectManagerBase API <../../../doxygen_output/html/classgeos_1_1_object_manager_base.html>`_ + +`MeshLevel API <../../../doxygen_output/html/classgeos_1_1_mesh_level.html>`_ + +`NodeManager API <../../../doxygen_output/html/classgeos_1_1_node_manager.html>`_ + +`FaceManager API <../../../doxygen_output/html/classgeos_1_1_face_manager.html>`_ diff --git a/src/coreComponents/mesh/generators/CellBlock.cpp b/src/coreComponents/mesh/generators/CellBlock.cpp index 53ec1898ff8..97ce7e08a74 100644 --- a/src/coreComponents/mesh/generators/CellBlock.cpp +++ b/src/coreComponents/mesh/generators/CellBlock.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/CellBlock.hpp b/src/coreComponents/mesh/generators/CellBlock.hpp index 6d48327aaf0..4d704b62a8e 100644 --- a/src/coreComponents/mesh/generators/CellBlock.hpp +++ b/src/coreComponents/mesh/generators/CellBlock.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/CellBlockABC.hpp b/src/coreComponents/mesh/generators/CellBlockABC.hpp index 4f39058122f..9c1427b7a74 100644 --- a/src/coreComponents/mesh/generators/CellBlockABC.hpp +++ b/src/coreComponents/mesh/generators/CellBlockABC.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -53,7 +53,7 @@ class CellBlockABC : public dataRepository::Group /** * @brief Get the type of element in this subregion. - * @return a string specifying the type of element in this subregion + * @return the type of element in this subregion * * See class FiniteElementBase for possible element type. */ diff --git a/src/coreComponents/mesh/generators/CellBlockManager.cpp b/src/coreComponents/mesh/generators/CellBlockManager.cpp index f18d3546793..2db3b3cfff2 100644 --- a/src/coreComponents/mesh/generators/CellBlockManager.cpp +++ b/src/coreComponents/mesh/generators/CellBlockManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -249,13 +249,13 @@ struct FaceBuilder */ auto duplicateFaceEquality() const { - return [duplicateFaces = duplicateFaces.toViewConst()] + return [faces = duplicateFaces.toViewConst()] ( NodesAndElementOfFace const & lhs, NodesAndElementOfFace const & rhs ) { - return std::equal( duplicateFaces[ lhs.duplicateFaceNodesIndex ].begin(), - duplicateFaces[ lhs.duplicateFaceNodesIndex ].end(), - duplicateFaces[ rhs.duplicateFaceNodesIndex ].begin(), - duplicateFaces[ rhs.duplicateFaceNodesIndex ].end() ); + return std::equal( faces[ lhs.duplicateFaceNodesIndex ].begin(), + faces[ lhs.duplicateFaceNodesIndex ].end(), + faces[ rhs.duplicateFaceNodesIndex ].begin(), + faces[ rhs.duplicateFaceNodesIndex ].end() ); }; } @@ -769,6 +769,14 @@ CellBlock & CellBlockManager::registerCellBlock( string const & name ) return this->getCellBlocks().registerGroup< CellBlock >( name ); } +CellBlock & CellBlockManager::registerCellBlock( string const & cellBlockName, + integer regionAttribute ) +{ + CellBlock & cb = this->getCellBlocks().registerGroup< CellBlock >( cellBlockName ); + m_regionAttributesCellBlocks[ regionAttribute ].emplace( cellBlockName ); + return cb; +} + FaceBlock & CellBlockManager::registerFaceBlock( string const & name ) { return this->getFaceBlocks().registerGroup< FaceBlock >( name ); @@ -1071,7 +1079,7 @@ void CellBlockManager::generateHighOrderMaps( localIndex const order, [ =, faceToNodesMapSource=faceToNodesMapSource.toView(), edgeToNodeMapNew=edgeToNodeMapNew.toView(), faceToNodeMapNew=faceToNodeMapNew.toView(), - m_faceToEdges=m_faceToEdges.toView(), + faceToEdges=m_faceToEdges.toView(), refPosSrc=refPosSource.toView(), refPosNew=refPosNew.toView(), faceLocalToGlobal=faceLocalToGlobal.toView(), @@ -1099,7 +1107,7 @@ void CellBlockManager::generateHighOrderMaps( localIndex const order, for( localIndex iter_node=0; iter_node > const & getRegionAttributesCellBlocks() const override + { return m_regionAttributesCellBlocks; } + Group const & getFaceBlocks() const override; Group & getFaceBlocks() override; @@ -171,6 +174,14 @@ class CellBlockManager : public CellBlockManagerABC */ CellBlock & registerCellBlock( string const & name ); + /** + * @brief Registers and returns a cell block of name @p name. + * @param cellBlockName The name of the created cell block. + * @param regionAttribute The region attribute of the created cell block. + * @return A reference to the new cell block. The CellBlockManager owns this new instance. + */ + CellBlock & registerCellBlock( string const & cellBlockName, integer regionAttribute ); + /** * @brief Registers and returns a face block of name @p name. * @param name The name of the created face block. @@ -272,6 +283,8 @@ class CellBlockManager : public CellBlockManagerABC std::map< string, SortedArray< localIndex > > m_nodeSets; + std::map< integer, std::set< string > > m_regionAttributesCellBlocks; + real64 m_globalLength; localIndex m_numNodes; diff --git a/src/coreComponents/mesh/generators/CellBlockManagerABC.hpp b/src/coreComponents/mesh/generators/CellBlockManagerABC.hpp index b6317eef2da..3c474520389 100644 --- a/src/coreComponents/mesh/generators/CellBlockManagerABC.hpp +++ b/src/coreComponents/mesh/generators/CellBlockManagerABC.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -113,13 +113,18 @@ class CellBlockManagerABC : public dataRepository::Group * @brief Returns a group containing the cell blocks as CellBlockABC instances * @return Const reference to the Group instance. */ - virtual const Group & getCellBlocks() const = 0; + virtual Group const & getCellBlocks() const = 0; /** * @brief Returns a group containing the face blocks as FaceBlockABC instances * @return Const reference to the Group instance. */ - virtual const Group & getFaceBlocks() const = 0; + virtual Group const & getFaceBlocks() const = 0; + + /** + * @return A map of the cellblocks list for each region attribute values. + */ + virtual std::map< integer, std::set< string > > const & getRegionAttributesCellBlocks() const = 0; /** * @brief Total number of nodes across all the cell blocks. diff --git a/src/coreComponents/mesh/generators/CellBlockUtilities.cpp b/src/coreComponents/mesh/generators/CellBlockUtilities.cpp index a58ef5a40b8..bbb246700de 100644 --- a/src/coreComponents/mesh/generators/CellBlockUtilities.cpp +++ b/src/coreComponents/mesh/generators/CellBlockUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/CellBlockUtilities.hpp b/src/coreComponents/mesh/generators/CellBlockUtilities.hpp index e8e3ea9a43d..dcfdc1d5dd2 100644 --- a/src/coreComponents/mesh/generators/CellBlockUtilities.hpp +++ b/src/coreComponents/mesh/generators/CellBlockUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/CollocatedNodes.cpp b/src/coreComponents/mesh/generators/CollocatedNodes.cpp index 797ba1f4477..149c49b93dd 100644 --- a/src/coreComponents/mesh/generators/CollocatedNodes.cpp +++ b/src/coreComponents/mesh/generators/CollocatedNodes.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/CollocatedNodes.hpp b/src/coreComponents/mesh/generators/CollocatedNodes.hpp index 4356057fee4..73f00f8d6b3 100644 --- a/src/coreComponents/mesh/generators/CollocatedNodes.hpp +++ b/src/coreComponents/mesh/generators/CollocatedNodes.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp b/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp index b28cbdd405b..d05abf7a680 100644 --- a/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp +++ b/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -46,20 +46,20 @@ ExternalMeshGeneratorBase::ExternalMeshGeneratorBase( string const & name, setInputFlag( InputFlags::OPTIONAL ). setDescription( "Volumic fields to be imported from the external mesh file" ); - registerWrapper( viewKeyStruct::volumicFieldsInGEOSXString(), &m_volumicFieldsInGEOSX ). + registerWrapper( viewKeyStruct::volumicFieldsInGEOSString(), &m_volumicFieldsInGEOS ). setRTTypeName( rtTypes::CustomTypes::groupNameRefArray ). setInputFlag( InputFlags::OPTIONAL ). - setDescription( "Names of the volumic fields in GEOSX to import into" ); + setDescription( "Names of the volumic fields in GEOS to import into" ); registerWrapper( viewKeyStruct::surfacicFieldsToImportString(), &m_surfacicFieldsToImport ). setRTTypeName( rtTypes::CustomTypes::groupNameRefArray ). setInputFlag( InputFlags::OPTIONAL ). setDescription( "Surfacic fields to be imported from the external mesh file" ); - registerWrapper( viewKeyStruct::surfacicFieldsInGEOSXString(), &m_surfacicFieldsInGEOSX ). + registerWrapper( viewKeyStruct::surfacicFieldsInGEOSString(), &m_surfacicFieldsInGEOS ). setRTTypeName( rtTypes::CustomTypes::groupNameRefArray ). setInputFlag( InputFlags::OPTIONAL ). - setDescription( "Names of the surfacic fields in GEOSX to import into" ); + setDescription( "Names of the surfacic fields in GEOS to import into" ); } void ExternalMeshGeneratorBase::postInputInitialization() @@ -73,8 +73,8 @@ void ExternalMeshGeneratorBase::postInputInitialization() " must contain the same number of values.", InputError ); }; - checkSizes( m_volumicFieldsToImport, m_volumicFieldsInGEOSX, viewKeyStruct::volumicFieldsToImportString(), viewKeyStruct::volumicFieldsInGEOSXString() ); - checkSizes( m_surfacicFieldsToImport, m_surfacicFieldsInGEOSX, viewKeyStruct::surfacicFieldsToImportString(), viewKeyStruct::surfacicFieldsInGEOSXString() ); + checkSizes( m_volumicFieldsToImport, m_volumicFieldsInGEOS, viewKeyStruct::volumicFieldsToImportString(), viewKeyStruct::volumicFieldsInGEOSString() ); + checkSizes( m_surfacicFieldsToImport, m_surfacicFieldsInGEOS, viewKeyStruct::surfacicFieldsToImportString(), viewKeyStruct::surfacicFieldsInGEOSString() ); auto const checkDuplicates = [this]( arrayView1d< string const > v, string const & key ) { @@ -86,8 +86,8 @@ void ExternalMeshGeneratorBase::postInputInitialization() "' already present in list of fields to import.", InputError ); }; - checkDuplicates( m_volumicFieldsInGEOSX, viewKeyStruct::volumicFieldsInGEOSXString() ); - checkDuplicates( m_surfacicFieldsInGEOSX, viewKeyStruct::surfacicFieldsInGEOSXString() ); + checkDuplicates( m_volumicFieldsInGEOS, viewKeyStruct::volumicFieldsInGEOSString() ); + checkDuplicates( m_surfacicFieldsInGEOS, viewKeyStruct::surfacicFieldsInGEOSString() ); // Building the fields mapping from the two separated input/output vectors. auto const buildMapping = [&]( arrayView1d< string const > from, @@ -101,8 +101,8 @@ void ExternalMeshGeneratorBase::postInputInitialization() return mapping; }; - MeshGeneratorBase::m_volumicFields = buildMapping( m_volumicFieldsToImport.toViewConst(), m_volumicFieldsInGEOSX.toViewConst() ); - MeshGeneratorBase::m_surfacicFields = buildMapping( m_surfacicFieldsToImport.toViewConst(), m_surfacicFieldsInGEOSX.toViewConst() ); + MeshGeneratorBase::m_volumicFields = buildMapping( m_volumicFieldsToImport.toViewConst(), m_volumicFieldsInGEOS.toViewConst() ); + MeshGeneratorBase::m_surfacicFields = buildMapping( m_surfacicFieldsToImport.toViewConst(), m_surfacicFieldsInGEOS.toViewConst() ); } } // namespace geos diff --git a/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.hpp b/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.hpp index fe918574461..fd1a006c192 100644 --- a/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.hpp +++ b/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -49,9 +49,9 @@ class ExternalMeshGeneratorBase : public MeshGeneratorBase constexpr static char const * scaleString() { return "scale"; } constexpr static char const * translateString() { return "translate"; } constexpr static char const * volumicFieldsToImportString() { return "fieldsToImport"; } - constexpr static char const * volumicFieldsInGEOSXString() { return "fieldNamesInGEOSX"; } + constexpr static char const * volumicFieldsInGEOSString() { return "fieldNamesInGEOS"; } constexpr static char const * surfacicFieldsToImportString() { return "surfacicFieldsToImport"; } - constexpr static char const * surfacicFieldsInGEOSXString() { return "surfacicFieldsInGEOSX"; } + constexpr static char const * surfacicFieldsInGEOSString() { return "surfacicFieldsInGEOS"; } }; /// @endcond @@ -66,17 +66,17 @@ class ExternalMeshGeneratorBase : public MeshGeneratorBase /// Scale factor that will be applied to the point coordinates (after translation) R1Tensor m_scale; - /// Names of the fields to be copied from an external reader into GEOSX data structure + /// Names of the fields to be copied from an external reader into GEOS data structure array1d< string > m_volumicFieldsToImport; - /// String array of the GEOSX user declared volumic fields - array1d< string > m_volumicFieldsInGEOSX; + /// String array of the GEOS user declared volumic fields + array1d< string > m_volumicFieldsInGEOS; - /// Names of the surfacic fields to be copied from an external reader into GEOSX data structure + /// Names of the surfacic fields to be copied from an external reader into GEOS data structure array1d< string > m_surfacicFieldsToImport; - /// String array of the GEOSX user declared surfacic fields - array1d< string > m_surfacicFieldsInGEOSX; + /// String array of the GEOS user declared surfacic fields + array1d< string > m_surfacicFieldsInGEOS; }; } // namespace geos diff --git a/src/coreComponents/mesh/generators/FaceBlock.cpp b/src/coreComponents/mesh/generators/FaceBlock.cpp index ecd7cb3505c..478a33ae05f 100644 --- a/src/coreComponents/mesh/generators/FaceBlock.cpp +++ b/src/coreComponents/mesh/generators/FaceBlock.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/FaceBlock.hpp b/src/coreComponents/mesh/generators/FaceBlock.hpp index 060e8d4888f..be458a85067 100644 --- a/src/coreComponents/mesh/generators/FaceBlock.hpp +++ b/src/coreComponents/mesh/generators/FaceBlock.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/FaceBlockABC.hpp b/src/coreComponents/mesh/generators/FaceBlockABC.hpp index b5679f29aa2..98fdbcfe856 100644 --- a/src/coreComponents/mesh/generators/FaceBlockABC.hpp +++ b/src/coreComponents/mesh/generators/FaceBlockABC.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/InternalMeshGenerator.cpp b/src/coreComponents/mesh/generators/InternalMeshGenerator.cpp index 2069984feec..0536ce29fbe 100644 --- a/src/coreComponents/mesh/generators/InternalMeshGenerator.cpp +++ b/src/coreComponents/mesh/generators/InternalMeshGenerator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -96,7 +96,8 @@ InternalMeshGenerator::InternalMeshGenerator( string const & name, Group * const registerWrapper( viewKeyStruct::elementTypesString(), &m_elementType ). setInputFlag( InputFlags::REQUIRED ). setSizedFromParent( 0 ). - setDescription( "Element types of each mesh block" ); + setDescription( GEOS_FMT( "Element types of each mesh block. Use \"C3D8\" for linear brick element. Possible values are: {}.", + stringutilities::join( EnumStrings< ElementType >::get(), ", " ) ) ); registerWrapper( viewKeyStruct::trianglePatternString(), &m_trianglePattern ). setApplyDefaultValue( 0 ). diff --git a/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp b/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp index 50b23142d8f..e358b6c2aff 100644 --- a/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp +++ b/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/InternalWellGenerator.cpp b/src/coreComponents/mesh/generators/InternalWellGenerator.cpp index 0fb5ef5e009..ae15917ebc1 100644 --- a/src/coreComponents/mesh/generators/InternalWellGenerator.cpp +++ b/src/coreComponents/mesh/generators/InternalWellGenerator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/InternalWellGenerator.hpp b/src/coreComponents/mesh/generators/InternalWellGenerator.hpp index 18db52fac66..ff937a3d000 100644 --- a/src/coreComponents/mesh/generators/InternalWellGenerator.hpp +++ b/src/coreComponents/mesh/generators/InternalWellGenerator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/InternalWellboreGenerator.cpp b/src/coreComponents/mesh/generators/InternalWellboreGenerator.cpp index 641dfbf9835..78a2ab785df 100644 --- a/src/coreComponents/mesh/generators/InternalWellboreGenerator.cpp +++ b/src/coreComponents/mesh/generators/InternalWellboreGenerator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/InternalWellboreGenerator.hpp b/src/coreComponents/mesh/generators/InternalWellboreGenerator.hpp index 22061da1536..e9d86c930e6 100644 --- a/src/coreComponents/mesh/generators/InternalWellboreGenerator.hpp +++ b/src/coreComponents/mesh/generators/InternalWellboreGenerator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/LineBlock.cpp b/src/coreComponents/mesh/generators/LineBlock.cpp index 38c678f0d7d..72fd83d301d 100644 --- a/src/coreComponents/mesh/generators/LineBlock.cpp +++ b/src/coreComponents/mesh/generators/LineBlock.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/LineBlock.hpp b/src/coreComponents/mesh/generators/LineBlock.hpp index 67d265cf02c..137af0bca80 100644 --- a/src/coreComponents/mesh/generators/LineBlock.hpp +++ b/src/coreComponents/mesh/generators/LineBlock.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/LineBlockABC.hpp b/src/coreComponents/mesh/generators/LineBlockABC.hpp index 35e4b5dd9a8..ca64400d1e1 100644 --- a/src/coreComponents/mesh/generators/LineBlockABC.hpp +++ b/src/coreComponents/mesh/generators/LineBlockABC.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/MeshGeneratorBase.cpp b/src/coreComponents/mesh/generators/MeshGeneratorBase.cpp index 853ef2dc54e..b4de9e8fc33 100644 --- a/src/coreComponents/mesh/generators/MeshGeneratorBase.cpp +++ b/src/coreComponents/mesh/generators/MeshGeneratorBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/MeshGeneratorBase.hpp b/src/coreComponents/mesh/generators/MeshGeneratorBase.hpp index b7f8fbf2e2b..0a0ba34ba81 100644 --- a/src/coreComponents/mesh/generators/MeshGeneratorBase.hpp +++ b/src/coreComponents/mesh/generators/MeshGeneratorBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -114,22 +114,22 @@ class MeshGeneratorBase : public dataRepository::Group virtual void freeResources() {} /** - * @brief Get the name mapping between mesh volumic field names and internal GEOSX volumic field names. + * @brief Get the name mapping between mesh volumic field names and internal GEOS volumic field names. * @return The string to string mapping of field names. */ std::map< string, string > const & getVolumicFieldsMapping() const { return m_volumicFields; } /** - * @brief Get the name mapping between mesh surfacic field names and internal GEOSX surfacic field names. + * @brief Get the name mapping between mesh surfacic field names and internal GEOS surfacic field names. * @return The string to string mapping of field names. */ std::map< string, string > const & getSurfacicFieldsMapping() const { return m_surfacicFields; } protected: - /// Mapping from volumic field source to GEOSX field. + /// Mapping from volumic field source to GEOS field. std::map< string, string > m_volumicFields; - /// Mapping from surfacic field source to GEOSX field. + /// Mapping from surfacic field source to GEOS field. std::map< string, string > m_surfacicFields; private: diff --git a/src/coreComponents/mesh/generators/PTScotchInterface.cpp b/src/coreComponents/mesh/generators/PTScotchInterface.cpp index 4ca55bca819..270615f1869 100644 --- a/src/coreComponents/mesh/generators/PTScotchInterface.cpp +++ b/src/coreComponents/mesh/generators/PTScotchInterface.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/PTScotchInterface.hpp b/src/coreComponents/mesh/generators/PTScotchInterface.hpp index a9d96589975..bdd7cf6ff1e 100644 --- a/src/coreComponents/mesh/generators/PTScotchInterface.hpp +++ b/src/coreComponents/mesh/generators/PTScotchInterface.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParMETISInterface.cpp b/src/coreComponents/mesh/generators/ParMETISInterface.cpp index fb1baca35a4..9f9d574b945 100644 --- a/src/coreComponents/mesh/generators/ParMETISInterface.cpp +++ b/src/coreComponents/mesh/generators/ParMETISInterface.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParMETISInterface.hpp b/src/coreComponents/mesh/generators/ParMETISInterface.hpp index fa23df5834b..f9dc2af71ac 100644 --- a/src/coreComponents/mesh/generators/ParMETISInterface.hpp +++ b/src/coreComponents/mesh/generators/ParMETISInterface.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParticleBlock.cpp b/src/coreComponents/mesh/generators/ParticleBlock.cpp index f16c6b984ac..1981cb89a0e 100644 --- a/src/coreComponents/mesh/generators/ParticleBlock.cpp +++ b/src/coreComponents/mesh/generators/ParticleBlock.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParticleBlock.hpp b/src/coreComponents/mesh/generators/ParticleBlock.hpp index bbe69fce018..01b22edf7a1 100644 --- a/src/coreComponents/mesh/generators/ParticleBlock.hpp +++ b/src/coreComponents/mesh/generators/ParticleBlock.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParticleBlockABC.hpp b/src/coreComponents/mesh/generators/ParticleBlockABC.hpp index d2e68d4ae4c..966c188d6c3 100644 --- a/src/coreComponents/mesh/generators/ParticleBlockABC.hpp +++ b/src/coreComponents/mesh/generators/ParticleBlockABC.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParticleBlockManager.cpp b/src/coreComponents/mesh/generators/ParticleBlockManager.cpp index a7e954ec3bf..b9645f04fd2 100644 --- a/src/coreComponents/mesh/generators/ParticleBlockManager.cpp +++ b/src/coreComponents/mesh/generators/ParticleBlockManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParticleBlockManager.hpp b/src/coreComponents/mesh/generators/ParticleBlockManager.hpp index f3e349cc20b..8db63988897 100644 --- a/src/coreComponents/mesh/generators/ParticleBlockManager.hpp +++ b/src/coreComponents/mesh/generators/ParticleBlockManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParticleBlockManagerABC.hpp b/src/coreComponents/mesh/generators/ParticleBlockManagerABC.hpp index 6675d340a30..fc2decfd008 100644 --- a/src/coreComponents/mesh/generators/ParticleBlockManagerABC.hpp +++ b/src/coreComponents/mesh/generators/ParticleBlockManagerABC.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParticleMeshGenerator.cpp b/src/coreComponents/mesh/generators/ParticleMeshGenerator.cpp index c1ed1be5f13..436a41a81a4 100644 --- a/src/coreComponents/mesh/generators/ParticleMeshGenerator.cpp +++ b/src/coreComponents/mesh/generators/ParticleMeshGenerator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/ParticleMeshGenerator.hpp b/src/coreComponents/mesh/generators/ParticleMeshGenerator.hpp index 9d9209de82e..0306f1931bd 100644 --- a/src/coreComponents/mesh/generators/ParticleMeshGenerator.hpp +++ b/src/coreComponents/mesh/generators/ParticleMeshGenerator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/PartitionDescriptor.hpp b/src/coreComponents/mesh/generators/PartitionDescriptor.hpp index 8ed58ea17e1..2527ec16984 100644 --- a/src/coreComponents/mesh/generators/PartitionDescriptor.hpp +++ b/src/coreComponents/mesh/generators/PartitionDescriptor.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/PrismUtilities.hpp b/src/coreComponents/mesh/generators/PrismUtilities.hpp index 2b1568070ac..483f97d3d28 100644 --- a/src/coreComponents/mesh/generators/PrismUtilities.hpp +++ b/src/coreComponents/mesh/generators/PrismUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/VTKFaceBlockUtilities.cpp b/src/coreComponents/mesh/generators/VTKFaceBlockUtilities.cpp index d9d32c22a21..05df2e0a99f 100644 --- a/src/coreComponents/mesh/generators/VTKFaceBlockUtilities.cpp +++ b/src/coreComponents/mesh/generators/VTKFaceBlockUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/VTKFaceBlockUtilities.hpp b/src/coreComponents/mesh/generators/VTKFaceBlockUtilities.hpp index 8168f31631f..243cceedc94 100644 --- a/src/coreComponents/mesh/generators/VTKFaceBlockUtilities.hpp +++ b/src/coreComponents/mesh/generators/VTKFaceBlockUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp b/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp index ddcae6a3198..d1402d21821 100644 --- a/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp +++ b/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/VTKMeshGenerator.hpp b/src/coreComponents/mesh/generators/VTKMeshGenerator.hpp index 46e5fc54ecb..6d2eabe911f 100644 --- a/src/coreComponents/mesh/generators/VTKMeshGenerator.hpp +++ b/src/coreComponents/mesh/generators/VTKMeshGenerator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/VTKMeshGeneratorTools.cpp b/src/coreComponents/mesh/generators/VTKMeshGeneratorTools.cpp index ece2aade3d5..6261c76a150 100644 --- a/src/coreComponents/mesh/generators/VTKMeshGeneratorTools.cpp +++ b/src/coreComponents/mesh/generators/VTKMeshGeneratorTools.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/VTKMeshGeneratorTools.hpp b/src/coreComponents/mesh/generators/VTKMeshGeneratorTools.hpp index d38d25db874..9bd1a89118f 100644 --- a/src/coreComponents/mesh/generators/VTKMeshGeneratorTools.hpp +++ b/src/coreComponents/mesh/generators/VTKMeshGeneratorTools.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/VTKUtilities.cpp b/src/coreComponents/mesh/generators/VTKUtilities.cpp index a2cfae5da17..72045afa4e5 100644 --- a/src/coreComponents/mesh/generators/VTKUtilities.cpp +++ b/src/coreComponents/mesh/generators/VTKUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -72,6 +72,7 @@ namespace geos { +using namespace dataRepository; namespace vtk { @@ -1816,36 +1817,6 @@ void fillCellBlock( vtkDataSet & mesh, } } -/** - * @brief Returns a string describing the element. - * @param[in] type The element type. - * @return The name. - * @warning This information will be visible in the input file... Consider refactoring with great care. - */ -string getElementTypeName( ElementType const type ) -{ - switch( type ) - { - case ElementType::Hexahedron: return "hexahedra"; - case ElementType::Tetrahedron: return "tetrahedra"; - case ElementType::Wedge: return "wedges"; - case ElementType::Pyramid: return "pyramids"; - case ElementType::Prism5: return "pentagonalPrisms"; - case ElementType::Prism6: return "hexagonalPrisms"; - case ElementType::Prism7: return "heptagonalPrisms"; - case ElementType::Prism8: return "octagonalPrisms"; - case ElementType::Prism9: return "nonagonalPrisms"; - case ElementType::Prism10: return "decagonalPrisms"; - case ElementType::Prism11: return "hendecagonalPrisms"; - case ElementType::Polyhedron: return "polyhedra"; - default: - { - GEOS_ERROR( "Element type '" << type << "' is not supported" ); - return {}; - } - } -} - void importMaterialField( std::vector< vtkIdType > const & cellIds, vtkDataArray * vtkArray, WrapperBase & wrapper ) @@ -2142,7 +2113,7 @@ void writeCells( integer const logLevel, GEOS_LOG_RANK_0_IF( logLevel >= 1, "Importing cell block " << cellBlockName ); // Create and resize the cell block. - CellBlock & cellBlock = cellBlockManager.registerCellBlock( cellBlockName ); + CellBlock & cellBlock = cellBlockManager.registerCellBlock( cellBlockName, regionId ); cellBlock.setElementType( elemType ); cellBlock.resize( LvArray::integerConversion< localIndex >( cellIds.size() ) ); diff --git a/src/coreComponents/mesh/generators/VTKUtilities.hpp b/src/coreComponents/mesh/generators/VTKUtilities.hpp index fc05b8fb6ae..6ebf4e6e89d 100644 --- a/src/coreComponents/mesh/generators/VTKUtilities.hpp +++ b/src/coreComponents/mesh/generators/VTKUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -33,9 +33,6 @@ namespace geos { - -using namespace dataRepository; - namespace vtk { @@ -222,7 +219,7 @@ string buildCellBlockName( ElementType const type, int const regionId ); */ void importMaterialField( std::vector< vtkIdType > const & cellIds, vtkDataArray * vtkArray, - WrapperBase & wrapper ); + dataRepository::WrapperBase & wrapper ); /** * @brief Imports 1d and 2d arrays from @p vtkArray to @p wrapper, only for @p cellIds @@ -232,7 +229,7 @@ void importMaterialField( std::vector< vtkIdType > const & cellIds, */ void importRegularField( std::vector< vtkIdType > const & cellIds, vtkDataArray * vtkArray, - WrapperBase & wrapper ); + dataRepository::WrapperBase & wrapper ); /** * @brief Imports 1d and 2d arrays from @p vtkArray to @p wrapper, for all the elements/cells of the provided wrapper. @@ -240,7 +237,7 @@ void importRegularField( std::vector< vtkIdType > const & cellIds, * @param wrapper The destination. */ void importRegularField( vtkDataArray * vtkArray, - WrapperBase & wrapper ); + dataRepository::WrapperBase & wrapper ); } // namespace vtk diff --git a/src/coreComponents/mesh/generators/VTKWellGenerator.cpp b/src/coreComponents/mesh/generators/VTKWellGenerator.cpp index 37555ecb5c3..c6294c35683 100644 --- a/src/coreComponents/mesh/generators/VTKWellGenerator.cpp +++ b/src/coreComponents/mesh/generators/VTKWellGenerator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/VTKWellGenerator.hpp b/src/coreComponents/mesh/generators/VTKWellGenerator.hpp index 04781491ed5..df4e92b3c87 100644 --- a/src/coreComponents/mesh/generators/VTKWellGenerator.hpp +++ b/src/coreComponents/mesh/generators/VTKWellGenerator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/WellGeneratorABC.hpp b/src/coreComponents/mesh/generators/WellGeneratorABC.hpp index e5a0d1d661d..c1719d5badf 100644 --- a/src/coreComponents/mesh/generators/WellGeneratorABC.hpp +++ b/src/coreComponents/mesh/generators/WellGeneratorABC.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/generators/WellGeneratorBase.cpp b/src/coreComponents/mesh/generators/WellGeneratorBase.cpp index 2b96c0755d3..1617aa3fdb4 100644 --- a/src/coreComponents/mesh/generators/WellGeneratorBase.cpp +++ b/src/coreComponents/mesh/generators/WellGeneratorBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -572,7 +572,7 @@ void WellGeneratorBase::logPerforationTable() const tablePerfoData.addRow( iperf, m_perfCoords[iperf], m_perfElemId[iperf] ); } - TableLayout const tableLayoutPerfo ( {"Perforation no.", "Coordinates", "connected to"}, + TableLayout const tableLayoutPerfo ( {"Perforation no.", "Coordinates", "Well element no."}, GEOS_FMT( "Well '{}' Perforation Table", getName() ) ); TableTextFormatter const tablePerfoLog( tableLayoutPerfo ); GEOS_LOG_RANK_0( tablePerfoLog.toString( tablePerfoData )); diff --git a/src/coreComponents/mesh/generators/WellGeneratorBase.hpp b/src/coreComponents/mesh/generators/WellGeneratorBase.hpp index a2c05b5c280..99f1af95924 100644 --- a/src/coreComponents/mesh/generators/WellGeneratorBase.hpp +++ b/src/coreComponents/mesh/generators/WellGeneratorBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/CommID.cpp b/src/coreComponents/mesh/mpiCommunications/CommID.cpp index b4310c23fb8..5a93eaee64e 100644 --- a/src/coreComponents/mesh/mpiCommunications/CommID.cpp +++ b/src/coreComponents/mesh/mpiCommunications/CommID.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/CommID.hpp b/src/coreComponents/mesh/mpiCommunications/CommID.hpp index 9caf6a0dfeb..2f8997c1ba4 100644 --- a/src/coreComponents/mesh/mpiCommunications/CommID.hpp +++ b/src/coreComponents/mesh/mpiCommunications/CommID.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -44,8 +44,6 @@ class CommID */ ~CommID(); - /// default copy constructor - CommID( CommID const & ) = default; /** * Move constructor @@ -53,6 +51,9 @@ class CommID */ CommID( CommID && src ); + /// deleted default copy constructor + CommID( CommID const & ) = delete; + /// deleted copy assignment operator CommID & operator=( CommID const & ) = delete; diff --git a/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp b/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp index 18572879521..87dd288c167 100644 --- a/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp +++ b/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -121,7 +121,7 @@ void CommunicationTools::assignGlobalIndices( ObjectManagerBase & manager, integer const numNeighbors = LvArray::integerConversion< integer >( neighbors.size() ); - MPI_iCommData commData( getCommID() ); + MPI_iCommData commData; commData.resize( numNeighbors ); array1d< int > receiveBufferSizes( numNeighbors ); @@ -340,11 +340,11 @@ CommunicationTools::assignNewGlobalIndices( ElementRegionManager & elementManage * @return The data received from all the @p neighbors. Data at index @p i coming from neighbor at index @p i in the list of @p neighbors. */ template< class DATA_PROVIDER > -array1d< array1d< globalIndex > > exchange( int commId, - std::vector< NeighborCommunicator > & neighbors, +array1d< array1d< globalIndex > > exchange( std::vector< NeighborCommunicator > & neighbors, DATA_PROVIDER const & data ) { - MPI_iCommData commData( commId ); + MPI_iCommData commData; + int commId = commData.commID(); integer const numNeighbors = LvArray::integerConversion< integer >( neighbors.size() ); commData.resize( numNeighbors ); for( integer i = 0; i < numNeighbors; ++i ) @@ -391,7 +391,7 @@ CommunicationTools::buildNeighborPartitionBoundaryObjects( ObjectManagerBase & m { return std::cref( globalPartitionBoundaryObjectsIndices ); }; - array1d< array1d< globalIndex > > const neighborPartitionBoundaryObjects = exchange( getCommID(), allNeighbors, data ); + array1d< array1d< globalIndex > > const neighborPartitionBoundaryObjects = exchange( allNeighbors, data ); integer const numNeighbors = LvArray::integerConversion< integer >( allNeighbors.size() ); for( integer i = 0; i < numNeighbors; ++i ) @@ -566,7 +566,7 @@ void CommunicationTools::findMatchedPartitionBoundaryNodes( NodeManager & nodeMa { return req.at( allNeighbors[i].neighborRank() ); }; - array1d< array1d< globalIndex > > const nodesRequestedByNeighbors = exchange( getCommID(), allNeighbors, data ); + array1d< array1d< globalIndex > > const nodesRequestedByNeighbors = exchange( allNeighbors, data ); // Then we store the requested nodes for each receiver. for( integer i = 0; i < numNeighbors; ++i ) @@ -804,7 +804,7 @@ void CommunicationTools::setupGhosts( MeshLevel & meshLevel, bool const unorderedComms ) { GEOS_MARK_FUNCTION; - MPI_iCommData commData( getCommID() ); + MPI_iCommData commData; commData.resize( neighbors.size() ); NodeManager & nodeManager = meshLevel.getNodeManager(); @@ -1092,7 +1092,7 @@ void CommunicationTools::synchronizeFields( FieldIdentifiers const & fieldsToBeS std::vector< NeighborCommunicator > & neighbors, bool onDevice ) { - MPI_iCommData icomm( getCommID() ); + MPI_iCommData icomm; icomm.resize( neighbors.size() ); synchronizePackSendRecvSizes( fieldsToBeSync, mesh, neighbors, icomm, onDevice ); synchronizePackSendRecv( fieldsToBeSync, mesh, neighbors, icomm, onDevice ); diff --git a/src/coreComponents/mesh/mpiCommunications/CommunicationTools.hpp b/src/coreComponents/mesh/mpiCommunications/CommunicationTools.hpp index 70542051f38..1261f70a964 100644 --- a/src/coreComponents/mesh/mpiCommunications/CommunicationTools.hpp +++ b/src/coreComponents/mesh/mpiCommunications/CommunicationTools.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.cpp b/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.cpp index d6333d80c34..2e0d7920437 100644 --- a/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.cpp +++ b/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,13 +14,14 @@ */ #include "MPI_iCommData.hpp" +#include "CommunicationTools.hpp" namespace geos { -MPI_iCommData::MPI_iCommData( int const inputCommID ): +MPI_iCommData::MPI_iCommData(): m_size( 0 ), - m_commID( inputCommID ), // CommunicationTools::getInstance().getCommID() ), + m_commID( CommunicationTools::getInstance().getCommID() ), m_mpiSendBufferRequest(), m_mpiRecvBufferRequest(), m_mpiSendBufferStatus(), diff --git a/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.hpp b/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.hpp index f9928a41fcc..24f5e8cdbad 100644 --- a/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.hpp +++ b/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -36,7 +36,7 @@ class MPI_iCommData * @param inputCommID The CommID integer that indicates what communication * pipeline to use for a set of neighbor communications. */ - MPI_iCommData( int const inputCommID ); + MPI_iCommData(); /// Default destructor ~MPI_iCommData(); @@ -96,7 +96,7 @@ class MPI_iCommData int m_size; /// The integer ID for the set of communication pipelines - int m_commID; + CommID m_commID; /// A collection of field names keyed on object keys to pack/unpack from /// communication pipeline. diff --git a/src/coreComponents/mesh/mpiCommunications/NeighborCommunicator.cpp b/src/coreComponents/mesh/mpiCommunications/NeighborCommunicator.cpp index 4a1fcab1464..e4fbdbc2664 100644 --- a/src/coreComponents/mesh/mpiCommunications/NeighborCommunicator.cpp +++ b/src/coreComponents/mesh/mpiCommunications/NeighborCommunicator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/NeighborCommunicator.hpp b/src/coreComponents/mesh/mpiCommunications/NeighborCommunicator.hpp index beaabedea68..43314f693a6 100644 --- a/src/coreComponents/mesh/mpiCommunications/NeighborCommunicator.hpp +++ b/src/coreComponents/mesh/mpiCommunications/NeighborCommunicator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/NeighborData.hpp b/src/coreComponents/mesh/mpiCommunications/NeighborData.hpp index 89eab298f6b..c35eb3cc615 100644 --- a/src/coreComponents/mesh/mpiCommunications/NeighborData.hpp +++ b/src/coreComponents/mesh/mpiCommunications/NeighborData.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/PartitionBase.cpp b/src/coreComponents/mesh/mpiCommunications/PartitionBase.cpp index 0452392ba1d..fdd1db1cfec 100644 --- a/src/coreComponents/mesh/mpiCommunications/PartitionBase.cpp +++ b/src/coreComponents/mesh/mpiCommunications/PartitionBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/PartitionBase.hpp b/src/coreComponents/mesh/mpiCommunications/PartitionBase.hpp index 4193244d8a0..09605d6e0c2 100644 --- a/src/coreComponents/mesh/mpiCommunications/PartitionBase.hpp +++ b/src/coreComponents/mesh/mpiCommunications/PartitionBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/SpatialPartition.cpp b/src/coreComponents/mesh/mpiCommunications/SpatialPartition.cpp index 7ba9a85f6d4..dda0542444e 100644 --- a/src/coreComponents/mesh/mpiCommunications/SpatialPartition.cpp +++ b/src/coreComponents/mesh/mpiCommunications/SpatialPartition.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/mpiCommunications/SpatialPartition.hpp b/src/coreComponents/mesh/mpiCommunications/SpatialPartition.hpp index ac097bd7aa5..0328b4611a3 100644 --- a/src/coreComponents/mesh/mpiCommunications/SpatialPartition.hpp +++ b/src/coreComponents/mesh/mpiCommunications/SpatialPartition.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Box.cpp b/src/coreComponents/mesh/simpleGeometricObjects/Box.cpp index 66936e9a260..852aa3b3e79 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Box.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Box.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Box.hpp b/src/coreComponents/mesh/simpleGeometricObjects/Box.hpp index b587777bdd4..fd0262a22cc 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Box.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Box.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/CustomPolarObject.cpp b/src/coreComponents/mesh/simpleGeometricObjects/CustomPolarObject.cpp index 77391c498e2..c5e06695806 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/CustomPolarObject.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/CustomPolarObject.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/CustomPolarObject.hpp b/src/coreComponents/mesh/simpleGeometricObjects/CustomPolarObject.hpp index ffa3f11225c..0edc644df7d 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/CustomPolarObject.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/CustomPolarObject.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Cylinder.cpp b/src/coreComponents/mesh/simpleGeometricObjects/Cylinder.cpp index 616311f1fc9..bc848f317b3 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Cylinder.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Cylinder.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Cylinder.hpp b/src/coreComponents/mesh/simpleGeometricObjects/Cylinder.hpp index d90b0a48ca9..b3b880e851f 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Cylinder.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Cylinder.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Disc.cpp b/src/coreComponents/mesh/simpleGeometricObjects/Disc.cpp index c2dd3e56300..31e0bfd5e50 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Disc.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Disc.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Disc.hpp b/src/coreComponents/mesh/simpleGeometricObjects/Disc.hpp index 6cb684237e9..8a0cd4ebe75 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Disc.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Disc.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/GeometricObjectManager.cpp b/src/coreComponents/mesh/simpleGeometricObjects/GeometricObjectManager.cpp index 444ce7c003d..a6824ff7fa8 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/GeometricObjectManager.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/GeometricObjectManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/GeometricObjectManager.hpp b/src/coreComponents/mesh/simpleGeometricObjects/GeometricObjectManager.hpp index 7dad76f3e8e..499dddddcba 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/GeometricObjectManager.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/GeometricObjectManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/PlanarGeometricObject.cpp b/src/coreComponents/mesh/simpleGeometricObjects/PlanarGeometricObject.cpp index ef377d81b1d..470040f682e 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/PlanarGeometricObject.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/PlanarGeometricObject.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/PlanarGeometricObject.hpp b/src/coreComponents/mesh/simpleGeometricObjects/PlanarGeometricObject.hpp index 49c7a18f05c..47483f4f233 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/PlanarGeometricObject.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/PlanarGeometricObject.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Rectangle.cpp b/src/coreComponents/mesh/simpleGeometricObjects/Rectangle.cpp index 2346b764dff..fa8639eb5d0 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Rectangle.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Rectangle.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Rectangle.hpp b/src/coreComponents/mesh/simpleGeometricObjects/Rectangle.hpp index 102b84881a2..4e23c3b06c8 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Rectangle.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Rectangle.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/SimpleGeometricObjectBase.cpp b/src/coreComponents/mesh/simpleGeometricObjects/SimpleGeometricObjectBase.cpp index fc4a73fe74c..932bdf78758 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/SimpleGeometricObjectBase.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/SimpleGeometricObjectBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/SimpleGeometricObjectBase.hpp b/src/coreComponents/mesh/simpleGeometricObjects/SimpleGeometricObjectBase.hpp index a4b2665b9c3..dc7ddf71925 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/SimpleGeometricObjectBase.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/SimpleGeometricObjectBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/ThickPlane.cpp b/src/coreComponents/mesh/simpleGeometricObjects/ThickPlane.cpp index 7e7d355d07b..919881583d3 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/ThickPlane.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/ThickPlane.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/simpleGeometricObjects/ThickPlane.hpp b/src/coreComponents/mesh/simpleGeometricObjects/ThickPlane.hpp index 1d991ad35de..9d46881108b 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/ThickPlane.hpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/ThickPlane.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/unitTests/testComputationalGeometry.cpp b/src/coreComponents/mesh/unitTests/testComputationalGeometry.cpp index 1c832828d1d..21b68839d4a 100644 --- a/src/coreComponents/mesh/unitTests/testComputationalGeometry.cpp +++ b/src/coreComponents/mesh/unitTests/testComputationalGeometry.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/unitTests/testGeometricObjects.cpp b/src/coreComponents/mesh/unitTests/testGeometricObjects.cpp index a3c275ced62..32c2181f58a 100644 --- a/src/coreComponents/mesh/unitTests/testGeometricObjects.cpp +++ b/src/coreComponents/mesh/unitTests/testGeometricObjects.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/unitTests/testMeshObjectPath.cpp b/src/coreComponents/mesh/unitTests/testMeshObjectPath.cpp index dc0458c1452..1b222308603 100644 --- a/src/coreComponents/mesh/unitTests/testMeshObjectPath.cpp +++ b/src/coreComponents/mesh/unitTests/testMeshObjectPath.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/utilities/AverageOverQuadraturePointsKernel.hpp b/src/coreComponents/mesh/utilities/AverageOverQuadraturePointsKernel.hpp index 4d723e1b7af..6f2d4840b41 100644 --- a/src/coreComponents/mesh/utilities/AverageOverQuadraturePointsKernel.hpp +++ b/src/coreComponents/mesh/utilities/AverageOverQuadraturePointsKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/utilities/CIcomputationKernel.hpp b/src/coreComponents/mesh/utilities/CIcomputationKernel.hpp index 06534e34387..d76f0ec131d 100644 --- a/src/coreComponents/mesh/utilities/CIcomputationKernel.hpp +++ b/src/coreComponents/mesh/utilities/CIcomputationKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/utilities/ComputationalGeometry.cpp b/src/coreComponents/mesh/utilities/ComputationalGeometry.cpp index 512a2dcf596..91bbeb087eb 100644 --- a/src/coreComponents/mesh/utilities/ComputationalGeometry.cpp +++ b/src/coreComponents/mesh/utilities/ComputationalGeometry.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp b/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp index 63c33ffd332..23e3fe65887 100644 --- a/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp +++ b/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -35,7 +35,7 @@ namespace computationalGeometry { /// Machine epsilon for double-precision calculations -constexpr real64 machinePrecision = std::numeric_limits< real64 >::epsilon(); +constexpr real64 machinePrecision = LvArray::NumericLimits< real64 >::epsilon; /** * @brief Calculate the intersection between a line and a plane. @@ -551,7 +551,7 @@ int findVertexRefElement( arraySlice1d< localIndex const > const & nodeElements, arrayView1d< globalIndex const > const & elementGlobalIndex ) { localIndex minElement = -1; - globalIndex minElementGID = std::numeric_limits< globalIndex >::max(); + globalIndex minElementGID = LvArray::NumericLimits< globalIndex >::max; for( int i = 0; i < nodeElements.size(); i++ ) { localIndex e = nodeElements( i ); @@ -579,7 +579,7 @@ int findEdgeRefElement( arraySlice1d< localIndex const > const & nodeElements1, arrayView1d< globalIndex const > const & elementGlobalIndex ) { localIndex minElement = -1; - globalIndex minElementGID = std::numeric_limits< globalIndex >::max(); + globalIndex minElementGID = LvArray::NumericLimits< globalIndex >::max; for( int i = 0; i < nodeElements1.size(); i++ ) { localIndex e1 = nodeElements1( i ); @@ -616,7 +616,7 @@ int findTriangleRefElement( arraySlice1d< localIndex const > const & nodeElement arrayView1d< globalIndex const > const & elementGlobalIndex ) { localIndex minElement = -1; - globalIndex minElementGID = std::numeric_limits< globalIndex >::max(); + globalIndex minElementGID = LvArray::NumericLimits< globalIndex >::max; for( int i = 0; i < nodeElements1.size(); i++ ) { localIndex e1 = nodeElements1( i ); @@ -674,7 +674,7 @@ bool computeWindingNumber( localIndex element, // triangulate the face. The triangulation must be done in a consistent way across ranks. // This can be achieved by always picking the vertex with the lowest global index as root. localIndex const faceIndex = faceIndices[kf]; - globalIndex minGlobalId = std::numeric_limits< globalIndex >::max(); + globalIndex minGlobalId = LvArray::NumericLimits< globalIndex >::max; localIndex minVertex = -1; localIndex numFaceVertices = facesToNodes[faceIndex].size(); for( localIndex v = 0; v < numFaceVertices; v++ ) diff --git a/src/coreComponents/mesh/utilities/MeshMapUtilities.hpp b/src/coreComponents/mesh/utilities/MeshMapUtilities.hpp index 477ec52accc..8eadb77b594 100644 --- a/src/coreComponents/mesh/utilities/MeshMapUtilities.hpp +++ b/src/coreComponents/mesh/utilities/MeshMapUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/mesh/utilities/StructuredGridUtilities.hpp b/src/coreComponents/mesh/utilities/StructuredGridUtilities.hpp index 71fc7a0ee1d..305696161c6 100644 --- a/src/coreComponents/mesh/utilities/StructuredGridUtilities.hpp +++ b/src/coreComponents/mesh/utilities/StructuredGridUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/CMakeLists.txt b/src/coreComponents/physicsSolvers/CMakeLists.txt index cfcdce65e78..6bc42626602 100644 --- a/src/coreComponents/physicsSolvers/CMakeLists.txt +++ b/src/coreComponents/physicsSolvers/CMakeLists.txt @@ -7,7 +7,7 @@ set( physicsSolvers_headers SolverBaseKernels.hpp SolverStatistics.hpp FieldStatisticsBase.hpp - ) + LogLevelsInfo.hpp ) # Specify solver sources set( physicsSolvers_sources @@ -51,7 +51,8 @@ if( GEOS_ENABLE_WAVEPROPAGATION ) add_subdirectory( wavePropagation ) endif() -set( dependencyList ${parallelDeps} constitutive mesh linearAlgebra discretizationMethods events ) +set( dependencyList ${parallelDeps} fileIO discretizationMethods events linearAlgebra ) + if( ENABLE_PYGEOSX ) list( APPEND physicsSolvers_headers python/PySolver.hpp @@ -61,13 +62,21 @@ if( ENABLE_PYGEOSX ) list( APPEND dependencyList Python3::Python pylvarray ) endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME physicsSolvers SOURCES ${physicsSolvers_sources} HEADERS ${physicsSolvers_headers} - DEPENDS_ON ${dependencyList} ${externalComponentDeps} - OBJECT ${GEOS_BUILD_OBJ_LIBS} ) + DEPENDS_ON ${decoratedDependencies} ${externalComponentDeps} + OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} + ) target_include_directories( physicsSolvers PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) + +install( TARGETS physicsSolvers LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) + if( externalComponentDeps ) target_include_directories( physicsSolvers PUBLIC ${CMAKE_SOURCE_DIR}/externalComponents ) endif() diff --git a/src/coreComponents/physicsSolvers/FieldStatisticsBase.hpp b/src/coreComponents/physicsSolvers/FieldStatisticsBase.hpp index 5edf76ab710..512edb7af7e 100644 --- a/src/coreComponents/physicsSolvers/FieldStatisticsBase.hpp +++ b/src/coreComponents/physicsSolvers/FieldStatisticsBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -22,7 +22,6 @@ #include "events/tasks/TaskBase.hpp" #include "physicsSolvers/PhysicsSolverManager.hpp" -#include "mainInterface/ProblemManager.hpp" #include "mesh/MeshLevel.hpp" #include "fileIO/Outputs/OutputBase.hpp" @@ -84,8 +83,8 @@ class FieldStatisticsBase : public TaskBase void postInputInitialization() override { - ProblemManager & problemManager = this->getGroupByPath< ProblemManager >( "/Problem" ); - PhysicsSolverManager & physicsSolverManager = problemManager.getPhysicsSolverManager(); + Group & problemManager = this->getGroupByPath( "/Problem" ); + Group & physicsSolverManager = problemManager.getGroup( "Solvers" ); m_solver = physicsSolverManager.getGroupPointer< SOLVER >( m_solverName ); GEOS_THROW_IF( m_solver == nullptr, diff --git a/src/coreComponents/physicsSolvers/LinearSolverParameters.cpp b/src/coreComponents/physicsSolvers/LinearSolverParameters.cpp index 153703c0eb0..3bc0888dae6 100644 --- a/src/coreComponents/physicsSolvers/LinearSolverParameters.cpp +++ b/src/coreComponents/physicsSolvers/LinearSolverParameters.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -115,6 +115,21 @@ LinearSolverParametersInput::LinearSolverParametersInput( string const & name, setInputFlag( InputFlags::OPTIONAL ). setDescription( "Weakest-allowed tolerance for adaptive method" ); + registerWrapper( viewKeyStruct::krylovStrongTolString(), &m_parameters.krylov.strongestTol ). + setApplyDefaultValue( m_parameters.krylov.strongestTol ). + setInputFlag( InputFlags::OPTIONAL ). + setDescription( "Strongest-allowed tolerance for adaptive method" ); + + registerWrapper( viewKeyStruct::adaptiveGammaString(), &m_parameters.krylov.adaptiveGamma ). + setApplyDefaultValue( m_parameters.krylov.adaptiveGamma ). + setInputFlag( InputFlags::OPTIONAL ). + setDescription( "Gamma parameter for adaptive method" ); + + registerWrapper( viewKeyStruct::adaptiveExponentString(), &m_parameters.krylov.adaptiveExponent ). + setApplyDefaultValue( m_parameters.krylov.adaptiveExponent ). + setInputFlag( InputFlags::OPTIONAL ). + setDescription( "Exponent parameter for adaptive method" ); + registerWrapper( viewKeyStruct::amgNumSweepsString(), &m_parameters.amg.numSweeps ). setApplyDefaultValue( m_parameters.amg.numSweeps ). setInputFlag( InputFlags::OPTIONAL ). diff --git a/src/coreComponents/physicsSolvers/LinearSolverParameters.hpp b/src/coreComponents/physicsSolvers/LinearSolverParameters.hpp index 9b86f6c14f1..2d6636b8f77 100644 --- a/src/coreComponents/physicsSolvers/LinearSolverParameters.hpp +++ b/src/coreComponents/physicsSolvers/LinearSolverParameters.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -103,6 +103,12 @@ class LinearSolverParametersInput : public dataRepository::Group static constexpr char const * krylovAdaptiveTolString() { return "krylovAdaptiveTol"; } /// Krylov weakest tolerance key static constexpr char const * krylovWeakTolString() { return "krylovWeakestTol"; } + /// Krylov strongest tolerance key + static constexpr char const * krylovStrongTolString() { return "krylovStrongestTol"; } + /// Adaptive gamma parameter key + static constexpr char const * adaptiveGammaString() { return "adaptiveGamma"; } + /// Adaptive exponent parameter key + static constexpr char const * adaptiveExponentString() { return "adaptiveExponent"; } /// AMG number of sweeps key static constexpr char const * amgNumSweepsString() { return "amgNumSweeps"; } diff --git a/src/coreComponents/physicsSolvers/LogLevelsInfo.hpp b/src/coreComponents/physicsSolvers/LogLevelsInfo.hpp new file mode 100644 index 00000000000..a6c75d3e1c6 --- /dev/null +++ b/src/coreComponents/physicsSolvers/LogLevelsInfo.hpp @@ -0,0 +1,99 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file LogLevelsInfo.hpp + * This file contains common log level informations for physics solvers + */ + +#ifndef GEOS_PHYSICSSOLVERS_LOGLEVELSINFO_HPP +#define GEOS_PHYSICSSOLVERS_LOGLEVELSINFO_HPP + +#include "common/DataTypes.hpp" + +namespace geos +{ + +namespace logInfo +{ + +/** + * @name Common LogLevels info structures. They must comply with the `is_log_level_info` trait. + */ +///@{ + +/// @cond DO_NOT_DOCUMENT + +struct Fields +{ + static constexpr int getMinLogLevel() { return 2; } + static constexpr std::string_view getDescription() { return "The summary of declared fields and coupling"; } +}; + +struct LineSearch +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Line search information"; } +}; + +struct Solution +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Solution information (scaling, maximum changes, quality check)"; } +}; + +struct Convergence +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Convergence information"; } +}; + +struct TimeStep +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Time step information"; } +}; + +struct LinearSolver +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Linear solver information"; } +}; + +struct NonlinearSolver +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Nonlinear solver information"; } +}; + +struct Timers +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Solver timers information"; } +}; + +struct Initialization +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Initialization information"; } +}; + +/// @endcond +///@} + +} + +} + +#endif // GEOS_PHYSICSSOLVERS_LOGLEVELSINFO_HPP diff --git a/src/coreComponents/physicsSolvers/NonlinearSolverParameters.cpp b/src/coreComponents/physicsSolvers/NonlinearSolverParameters.cpp index 8316485d56f..94d3f9658dc 100644 --- a/src/coreComponents/physicsSolvers/NonlinearSolverParameters.cpp +++ b/src/coreComponents/physicsSolvers/NonlinearSolverParameters.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -37,7 +37,7 @@ NonlinearSolverParameters::NonlinearSolverParameters( string const & name, setDescription( "How the line search is to be used. Options are: \n " "* None - Do not use line search.\n" "* Attempt - Use line search. Allow exit from line search without achieving smaller residual than starting residual.\n" - "* Require - Use line search. If smaller residual than starting resdual is not achieved, cut time step." ); + "* Require - Use line search. If smaller residual than starting resdual is not achieved, cut time-step." ); registerWrapper( viewKeysStruct::lineSearchInterpolationTypeString(), &m_lineSearchInterpType ). setApplyDefaultValue( LineSearchInterpolationType::Linear ). @@ -112,32 +112,37 @@ NonlinearSolverParameters::NonlinearSolverParameters( string const & name, registerWrapper( viewKeysStruct::timeStepDecreaseIterLimString(), &m_timeStepDecreaseIterLimit ). setApplyDefaultValue( 0.7 ). setInputFlag( InputFlags::OPTIONAL ). - setDescription( "Fraction of the max Newton iterations above which the solver asks for the time-step to be decreased for the next time step." ); + setDescription( "Fraction of the max Newton iterations above which the solver asks for the time-step to be decreased for the next time-step." ); registerWrapper( viewKeysStruct::timeStepIncreaseIterLimString(), &m_timeStepIncreaseIterLimit ). setApplyDefaultValue( 0.4 ). setInputFlag( InputFlags::OPTIONAL ). - setDescription( "Fraction of the max Newton iterations below which the solver asks for the time-step to be increased for the next time step." ); + setDescription( "Fraction of the max Newton iterations below which the solver asks for the time-step to be increased for the next time-step." ); registerWrapper( viewKeysStruct::timeStepDecreaseFactorString(), &m_timeStepDecreaseFactor ). setApplyDefaultValue( 0.5 ). setInputFlag( InputFlags::OPTIONAL ). - setDescription( "Factor by which the time step is decreased when the number of Newton iterations is large." ); + setDescription( "Factor by which the time-step is decreased when the number of Newton iterations is large." ); registerWrapper( viewKeysStruct::timeStepIncreaseFactorString(), &m_timeStepIncreaseFactor ). setApplyDefaultValue( 2.0 ). setInputFlag( InputFlags::OPTIONAL ). - setDescription( "Factor by which the time step is increased when the number of Newton iterations is small." ); + setDescription( "Factor by which the time-step is increased when the number of Newton iterations is small." ); + + registerWrapper( viewKeysStruct::minTimeStepIncreaseIntervalString(), &m_minTimeStepIncreaseInterval ). + setApplyDefaultValue( 10 ). + setInputFlag( InputFlags::OPTIONAL ). + setDescription( "Minimum number of cycles since the last time-step cut for increasing the time-step again." ); registerWrapper( viewKeysStruct::timeStepCutFactorString(), &m_timeStepCutFactor ). setApplyDefaultValue( 0.5 ). setInputFlag( InputFlags::OPTIONAL ). - setDescription( "Factor by which the time step will be cut if a timestep cut is required." ); + setDescription( "Factor by which the time-step will be cut if a time-step cut is required." ); registerWrapper( viewKeysStruct::maxTimeStepCutsString(), &m_maxTimeStepCuts ). setApplyDefaultValue( 2 ). setInputFlag( InputFlags::OPTIONAL ). - setDescription( "Max number of time step cuts" ); + setDescription( "Max number of time-step cuts" ); registerWrapper( viewKeysStruct::maxSubStepsString(), &m_maxSubSteps ). setApplyDefaultValue( 10 ). @@ -215,13 +220,14 @@ void NonlinearSolverParameters::print() const tableData.addRow( "Minimum iterations", m_minIterNewton ); tableData.addRow( "Maximum allowed residual norm", m_maxAllowedResidualNorm ); tableData.addRow( "Allow non-converged", m_allowNonConverged ); - tableData.addRow( "Time step decrease iterations limit", m_timeStepDecreaseIterLimit ); - tableData.addRow( "Time step increase iterations limit", m_timeStepIncreaseIterLimit ); - tableData.addRow( "Time step decrease factor", m_timeStepDecreaseFactor ); - tableData.addRow( "Time step increase factor", m_timeStepDecreaseFactor ); - tableData.addRow( "Time step cut factor", m_timeStepCutFactor ); - tableData.addRow( "Maximum time step cuts", m_maxTimeStepCuts ); - tableData.addRow( "Maximum sub time steps", m_maxSubSteps ); + tableData.addRow( "Time-step decrease iterations limit", m_timeStepDecreaseIterLimit ); + tableData.addRow( "Time-step increase iterations limit", m_timeStepIncreaseIterLimit ); + tableData.addRow( "Time-step decrease factor", m_timeStepDecreaseFactor ); + tableData.addRow( "Time-step increase factor", m_timeStepDecreaseFactor ); + tableData.addRow( "Time-step cut factor", m_timeStepCutFactor ); + tableData.addRow( "Minimum time-step increase interval", m_minTimeStepIncreaseInterval ); + tableData.addRow( "Maximum time-step cuts", m_maxTimeStepCuts ); + tableData.addRow( "Maximum sub time-steps", m_maxSubSteps ); tableData.addRow( "Maximum number of configuration attempts", m_maxNumConfigurationAttempts ); tableData.addRow( "Coupling type", m_couplingType ); if( m_couplingType == CouplingType::Sequential ) diff --git a/src/coreComponents/physicsSolvers/NonlinearSolverParameters.hpp b/src/coreComponents/physicsSolvers/NonlinearSolverParameters.hpp index 98bdcce95a8..4678b3c38d2 100644 --- a/src/coreComponents/physicsSolvers/NonlinearSolverParameters.hpp +++ b/src/coreComponents/physicsSolvers/NonlinearSolverParameters.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -79,6 +79,7 @@ class NonlinearSolverParameters : public dataRepository::Group m_timeStepIncreaseIterLimit = params.m_timeStepIncreaseIterLimit; m_timeStepDecreaseFactor = params.m_timeStepDecreaseFactor; m_timeStepIncreaseFactor = params.m_timeStepIncreaseFactor; + m_minTimeStepIncreaseInterval = params.m_minTimeStepIncreaseInterval; m_maxSubSteps = params.m_maxSubSteps; m_maxTimeStepCuts = params.m_maxTimeStepCuts; m_timeStepCutFactor = params.m_timeStepCutFactor; @@ -125,6 +126,7 @@ class NonlinearSolverParameters : public dataRepository::Group static constexpr char const * timeStepIncreaseIterLimString() { return "timeStepIncreaseIterLimit"; } static constexpr char const * timeStepDecreaseFactorString() { return "timeStepDecreaseFactor"; } static constexpr char const * timeStepIncreaseFactorString() { return "timeStepIncreaseFactor"; } + static constexpr char const * minTimeStepIncreaseIntervalString() { return "minTimeStepIncreaseInterval"; } static constexpr char const * maxSubStepsString() { return "maxSubSteps"; } static constexpr char const * maxTimeStepCutsString() { return "maxTimeStepCuts"; } @@ -226,6 +228,15 @@ class NonlinearSolverParameters : public dataRepository::Group return m_timeStepIncreaseFactor; } + /** + * @brief Getter for the minimum interval for increasing the time-step + * @return the minimum interval for increasing the time-step + */ + integer minTimeStepIncreaseInterval() const + { + return m_minTimeStepIncreaseInterval; + } + /** * @brief Getter for the norm type used to check convergence in the flow/well solvers * @return the norm type @@ -304,6 +315,9 @@ class NonlinearSolverParameters : public dataRepository::Group /// Factor used to increase the time step size real64 m_timeStepIncreaseFactor; + /// Minimum interval, since the last time-step cut, for increasing the time-step + integer m_minTimeStepIncreaseInterval; + /// Maximum number of time sub-steps allowed for the solver integer m_maxSubSteps; diff --git a/src/coreComponents/physicsSolvers/PhysicsSolverManager.cpp b/src/coreComponents/physicsSolvers/PhysicsSolverManager.cpp index dbe465b4709..6820cffbe84 100644 --- a/src/coreComponents/physicsSolvers/PhysicsSolverManager.cpp +++ b/src/coreComponents/physicsSolvers/PhysicsSolverManager.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/PhysicsSolverManager.hpp b/src/coreComponents/physicsSolvers/PhysicsSolverManager.hpp index bbe9f3dfad9..ed1234b5d35 100644 --- a/src/coreComponents/physicsSolvers/PhysicsSolverManager.hpp +++ b/src/coreComponents/physicsSolvers/PhysicsSolverManager.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/SolutionStrategy.rst b/src/coreComponents/physicsSolvers/SolutionStrategy.rst index 3a7f0f0bb31..e0ca4873f5f 100644 --- a/src/coreComponents/physicsSolvers/SolutionStrategy.rst +++ b/src/coreComponents/physicsSolvers/SolutionStrategy.rst @@ -88,4 +88,4 @@ All parameters defining the behavior of the nonlinear solver and determining the timestep size requested by the physics solver are defined in the NonlinearSolverParameters and are presented in the following table. -.. include:: /coreComponents/schema/docs/NonlinearSolverParameters.rst +.. include:: /docs/sphinx/datastructure/NonlinearSolverParameters.rst diff --git a/src/coreComponents/physicsSolvers/SolverBase.cpp b/src/coreComponents/physicsSolvers/SolverBase.cpp index e970c3a76eb..1420ce45fd2 100644 --- a/src/coreComponents/physicsSolvers/SolverBase.cpp +++ b/src/coreComponents/physicsSolvers/SolverBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,6 +21,8 @@ #include "mesh/DomainPartition.hpp" #include "math/interpolation/Interpolation.hpp" #include "common/Timer.hpp" +#include "common/Units.hpp" +#include "dataRepository/LogLevelsInfo.hpp" #if defined(GEOS_USE_PYGEOSX) #include "python/PySolverType.hpp" @@ -38,6 +40,7 @@ SolverBase::SolverBase( string const & name, m_cflFactor(), m_maxStableDt{ 1e99 }, m_nextDt( 1e99 ), + m_numTimestepsSinceLastDtCut( -1 ), m_dofManager( name ), m_linearSolverParameters( groupKeyStruct::linearSolverParametersString(), this ), m_nonlinearSolverParameters( groupKeyStruct::nonlinearSolverParametersString(), this ), @@ -46,9 +49,6 @@ SolverBase::SolverBase( string const & name, { setInputFlags( InputFlags::OPTIONAL_NONUNIQUE ); - // This enables logLevel filtering - enableLogLevelInput(); - // This sets a flag to indicate that this object is going to select the time step size this->setTimesteppingBehavior( ExecutableGroup::TimesteppingBehavior::DeterminesTimeStepSize ); @@ -96,6 +96,15 @@ SolverBase::SolverBase( string const & name, setRestartFlags( RestartFlags::WRITE_AND_READ ). setDescription( "Write matrix, rhs, solution to screen ( = 1) or file ( = 2)." ); + addLogLevel< logInfo::Fields >(); + addLogLevel< logInfo::LineSearch >(); + addLogLevel< logInfo::Solution >(); + addLogLevel< logInfo::Convergence >(); + addLogLevel< logInfo::TimeStep >(); + addLogLevel< logInfo::LinearSolver >(); + addLogLevel< logInfo::NonlinearSolver >(); + addLogLevel< logInfo::Timers >(); + registerGroup( groupKeyStruct::linearSolverParametersString(), &m_linearSolverParameters ); registerGroup( groupKeyStruct::nonlinearSolverParametersString(), &m_nonlinearSolverParameters ); registerGroup( groupKeyStruct::solverStatisticsString(), &m_solverStatistics ); @@ -225,6 +234,10 @@ real64 SolverBase::solverStep( real64 const & time_n, { setupSystem( domain, m_dofManager, m_localMatrix, m_rhs, m_solution ); setSystemSetupTimestamp( meshModificationTimestamp ); + + std::ostringstream oss; + m_dofManager.printFieldInfo( oss ); + GEOS_LOG_LEVEL_INFO( logInfo::Fields, oss.str()) } implicitStepSetup( time_n, dt, domain ); @@ -246,11 +259,25 @@ bool SolverBase::execute( real64 const time_n, DomainPartition & domain ) { GEOS_MARK_FUNCTION; + + /* + * Reset counter indicating the number of cycles since the last timestep cut + * when the new timestep. "-1" means that no time-step cut has ocurred. + * */ + if( dt < m_nextDt ) + { + m_numTimestepsSinceLastDtCut = -1; + } + real64 dtRemaining = dt; real64 nextDt = dt; integer const maxSubSteps = m_nonlinearSolverParameters.m_maxSubSteps; + // Keep track of substeps. It is useful to output these. + std::vector< real64 > subStepDt( maxSubSteps, 0.0 ); + integer numOfSubSteps = 0; + for( integer subStep = 0; subStep < maxSubSteps && dtRemaining > 0.0; ++subStep ) { // reset number of nonlinear and linear iterations @@ -260,6 +287,8 @@ bool SolverBase::execute( real64 const time_n, nextDt, cycleNumber, domain ); + numOfSubSteps++; + subStepDt[subStep] = dtAccepted; // increment the cumulative number of nonlinear and linear iterations m_solverStatistics.saveTimeStepStatistics(); @@ -292,9 +321,10 @@ bool SolverBase::execute( real64 const time_n, } } - if( getLogLevel() >= 1 && dtRemaining > 0.0 ) + if( dtRemaining > 0.0 ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: sub-step = {}, accepted dt = {}, next dt = {}, remaining dt = {}", getName(), subStep, dtAccepted, nextDt, dtRemaining ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, + GEOS_FMT( "{}: sub-step = {}, accepted dt = {}, next dt = {}, remaining dt = {}", getName(), subStep, dtAccepted, nextDt, dtRemaining ) ); } } @@ -304,12 +334,39 @@ bool SolverBase::execute( real64 const time_n, // Decide what to do with the next Dt for the event running the solver. m_nextDt = setNextDt( nextDt, domain ); + // Increase counter to indicate how many cycles since the last timestep cut + if( m_numTimestepsSinceLastDtCut >= 0 ) + { + m_numTimestepsSinceLastDtCut++; + } + + logEndOfCycleInformation( cycleNumber, numOfSubSteps, subStepDt ); + return false; } +void SolverBase::logEndOfCycleInformation( integer const cycleNumber, + integer const numOfSubSteps, + std::vector< real64 > const & subStepDt ) const +{ + // The formating here is a work in progress. + GEOS_LOG_RANK_0( "\n------------------------- TIMESTEP END -------------------------" ); + GEOS_LOG_RANK_0( GEOS_FMT( " - Cycle: {}", cycleNumber ) ); + GEOS_LOG_RANK_0( GEOS_FMT( " - N substeps: {}", numOfSubSteps ) ); + std::string logMessage = " - dt:"; + for( integer i = 0; i < numOfSubSteps; ++i ) + { + logMessage += " " + units::TimeFormatInfo::fromSeconds( subStepDt[i] ).toString(); + } + // Log the complete message once + GEOS_LOG_RANK_0( logMessage ); + GEOS_LOG_RANK_0( "------------------------------------------------------------------\n" ); +} + real64 SolverBase::setNextDt( real64 const & currentDt, DomainPartition & domain ) { + integer const minTimeStepIncreaseInterval = m_nonlinearSolverParameters.minTimeStepIncreaseInterval(); real64 const nextDtNewton = setNextDtBasedOnNewtonIter( currentDt ); if( m_nonlinearSolverParameters.getLogLevel() > 0 ) GEOS_LOG_RANK_0( GEOS_FMT( "{}: next time step based on Newton iterations = {}", getName(), nextDtNewton )); @@ -317,40 +374,47 @@ real64 SolverBase::setNextDt( real64 const & currentDt, if( m_nonlinearSolverParameters.getLogLevel() > 0 ) GEOS_LOG_RANK_0( GEOS_FMT( "{}: next time step based on state change = {}", getName(), nextDtStateChange )); + if( ( m_numTimestepsSinceLastDtCut >= 0 ) && ( m_numTimestepsSinceLastDtCut < minTimeStepIncreaseInterval ) ) + { + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: time-step size will be kept the same since it's been {} cycles since last cut.", + getName(), m_numTimestepsSinceLastDtCut ) ); + return currentDt; + } + if( nextDtNewton < nextDtStateChange ) // time step size decided based on convergence { if( nextDtNewton > currentDt ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: time-step required will be increased based on number of iterations.", - getName() ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: time-step required will be increased based on number of iterations.", + getName() ) ); } else if( nextDtNewton < currentDt ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: time-step required will be decreased based on number of iterations.", - getName() ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: time-step required will be decreased based on number of iterations.", + getName() ) ); } else { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: time-step required will be kept the same based on number of iterations.", - getName() ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: time-step required will be kept the same based on number of iterations.", + getName() ) ); } } else // time step size decided based on state change { if( nextDtStateChange > currentDt ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: time-step required will be increased based on state change.", - getName())); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: time-step required will be increased based on state change.", + getName())); } else if( nextDtStateChange < currentDt ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: time-step required will be decreased based on state change.", - getName())); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: time-step required will be decreased based on state change.", + getName())); } else { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: time-step required will be kept the same based on state change.", - getName())); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: time-step required will be kept the same based on state change.", + getName())); } } @@ -536,7 +600,7 @@ bool SolverBase::lineSearch( real64 const & time_n, if( !checkSystemSolution( domain, dofManager, solution.values(), localScaleFactor ) ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " Line search {}, solution check failed", lineSearchIteration ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LineSearch, GEOS_FMT( " Line search {}, solution check failed", lineSearchIteration ) ); continue; } @@ -554,14 +618,11 @@ bool SolverBase::lineSearch( real64 const & time_n, applyBoundaryConditions( time_n, dt, domain, dofManager, localMatrix, localRhs ); rhs.close(); - if( getLogLevel() >= 1 && logger::internal::rank==0 ) - { - std::cout << GEOS_FMT( " Line search @ {:0.3f}: ", cumulativeScale ); - } + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LineSearch, GEOS_FMT( " Line search @ {:0.3f}: ", cumulativeScale )); // get residual norm residualNorm = calculateResidualNorm( time_n, dt, domain, dofManager, rhs.values() ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " ( R ) = ( {:4.2e} )", residualNorm ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LineSearch, GEOS_FMT( " ( R ) = ( {:4.2e} )", residualNorm ) ); // if the residual norm is less than the last residual, we can proceed to the // solution step @@ -628,7 +689,7 @@ bool SolverBase::lineSearchWithParabolicInterpolation( real64 const & time_n, if( !checkSystemSolution( domain, dofManager, solution.values(), deltaLocalScaleFactor ) ) { - GEOS_LOG_LEVEL_RANK_0( 1, " Line search " << lineSearchIteration << ", solution check failed" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LineSearch, GEOS_FMT( " Line search {}, solution check failed", lineSearchIteration ) ); continue; } @@ -651,14 +712,15 @@ bool SolverBase::lineSearchWithParabolicInterpolation( real64 const & time_n, applyBoundaryConditions( time_n, dt, domain, dofManager, localMatrix, localRhs ); rhs.close(); - if( getLogLevel() >= 1 && logger::internal::rank==0 ) + if( logger::internal::rank==0 ) { - std::cout << GEOS_FMT( " Line search @ {:0.3f}: ", cumulativeScale ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LineSearch, GEOS_FMT( " Line search @ {:0.3f}: ", cumulativeScale ) ); } // get residual norm residualNormT = calculateResidualNorm( time_n, dt, domain, dofManager, rhs.values() ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " ( R ) = ( {:4.2e} )", residualNormT ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LineSearch, GEOS_FMT( " ( R ) = ( {:4.2e} )", residualNormT ) ); + ffm = ffT; ffT = residualNormT*residualNormT; @@ -676,49 +738,24 @@ bool SolverBase::lineSearchWithParabolicInterpolation( real64 const & time_n, return lineSearchSuccess; } -/** - * @brief Eisenstat-Walker adaptive tolerance - * - * This method enables an inexact-Newton method is which the linear solver - * tolerance is chosen based on the nonlinear solver convergence behavior. - * In early Newton iterations, the search direction is usually imprecise, and - * therefore a weak linear convergence tolerance can be chosen to minimize - * computational cost. As the search gets closer to the true solution, however, - * more stringent linear tolerances are necessary to maintain quadratic convergence - * behavior. - * - * The user can set the weakest tolerance allowed, with a default of 1e-3. - * Even weaker values (e.g. 1e-2,1e-1) can be used for further speedup, but may - * occasionally cause convergence problems. Use this parameter with caution. The - * most stringent tolerance is hardcoded to 1e-8, which is sufficient for - * most problems. - * - * See Eisenstat, S.C. and Walker, H.F., 1996. Choosing the forcing terms in an - * inexact Newton method. SIAM Journal on Scientific Computing, 17(1), pp.16-32. - * - * @param newNewtonNorm Residual norm at current iteration - * @param oldNewtonNorm Residual norm at previous iteration - * @param weakestTol Weakest tolerance allowed (default 1e-3). - * @return Adaptive tolerance recommendation - */ + real64 SolverBase::eisenstatWalker( real64 const newNewtonNorm, real64 const oldNewtonNorm, - real64 const weakestTol ) + LinearSolverParameters::Krylov const & krylovParams ) { - real64 const strongestTol = 1e-8; - real64 const exponent = 2.0; - real64 const gamma = 0.9; - - real64 normRatio = newNewtonNorm / oldNewtonNorm; - if( normRatio > 1 ) - normRatio = 1; - - real64 newKrylovTol = gamma*std::pow( normRatio, exponent ); - real64 altKrylovTol = gamma*std::pow( oldNewtonNorm, exponent ); + real64 normRatio = std::min( newNewtonNorm / oldNewtonNorm, 1.0 ); + real64 newKrylovTol = krylovParams.adaptiveGamma * std::pow( normRatio, krylovParams.adaptiveExponent ); + // the following is a safeguard to avoid too sharp tolerance reduction + // the bound is the quadratic reduction wrt previous value + real64 altKrylovTol = std::pow( krylovParams.relTolerance, 2.0 ); real64 krylovTol = std::max( newKrylovTol, altKrylovTol ); - krylovTol = std::min( krylovTol, weakestTol ); - krylovTol = std::max( krylovTol, strongestTol ); + krylovTol = std::min( krylovTol, krylovParams.weakestTol ); + krylovTol = std::max( krylovTol, krylovParams.strongestTol ); + + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LinearSolver, + GEOS_FMT( " Adaptive linear tolerance = {:4.2e} (norm ratio = {:4.2e}, old tolerance = {:4.2e}, new tolerance = {:4.2e}, safeguard = {:4.2e})", + krylovTol, normRatio, krylovParams.relTolerance, newKrylovTol, altKrylovTol ) ); return krylovTol; } @@ -783,8 +820,7 @@ real64 SolverBase::nonlinearImplicitStep( real64 const & time_n, { // increment the solver statistics for reporting purposes m_solverStatistics.logOuterLoopIteration(); - - GEOS_LOG_LEVEL_RANK_0( 1, "---------- Configuration did not converge. Testing new configuration. ----------" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::NonlinearSolver, "---------- Configuration did not converge. Testing new configuration. ----------" ); } } else if( !attemptedSimplestConfiguration ) @@ -813,7 +849,8 @@ real64 SolverBase::nonlinearImplicitStep( real64 const & time_n, { // cut timestep, go back to beginning of step and restart the Newton loop stepDt *= dtCutFactor; - GEOS_LOG_LEVEL_RANK_0 ( 1, GEOS_FMT( "New dt = {}", stepDt ) ); + m_numTimestepsSinceLastDtCut = 0; + GEOS_LOG_LEVEL_INFO_RANK_0 ( logInfo::TimeStep, GEOS_FMT( "New dt = {}", stepDt ) ); // notify the solver statistics counter that this is a time step cut m_solverStatistics.logTimeStepCut(); @@ -858,7 +895,9 @@ bool SolverBase::solveNonlinearSystem( real64 const & time_n, for( newtonIter = 0; newtonIter < maxNewtonIter; ++newtonIter ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " Attempt: {:2}, ConfigurationIter: {:2}, NewtonIter: {:2}", dtAttempt, configurationLoopIter, newtonIter ) ); + + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::NonlinearSolver, + GEOS_FMT( " Attempt: {:2}, ConfigurationIter: {:2}, NewtonIter: {:2}", dtAttempt, configurationLoopIter, newtonIter ) ); { Timer timer( m_timers["assemble"] ); @@ -907,7 +946,7 @@ bool SolverBase::solveNonlinearSystem( real64 const & time_n, // get residual norm residualNorm = calculateResidualNorm( time_n, stepDt, domain, m_dofManager, m_rhs.values() ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " ( R ) = ( {:4.2e} )", residualNorm ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( " ( R ) = ( {:4.2e} )", residualNorm ) ); } // if the residual norm is less than the Newton tolerance we denote that we have @@ -923,9 +962,9 @@ bool SolverBase::solveNonlinearSystem( real64 const & time_n, if( residualNorm > m_nonlinearSolverParameters.m_maxAllowedResidualNorm ) { string const maxAllowedResidualNormString = NonlinearSolverParameters::viewKeysStruct::maxAllowedResidualNormString(); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " The residual norm is above the {} of {}. Newton loop terminated.", - maxAllowedResidualNormString, - m_nonlinearSolverParameters.m_maxAllowedResidualNorm ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( " The residual norm is above the {} of {}. Newton loop terminated.", + maxAllowedResidualNormString, + m_nonlinearSolverParameters.m_maxAllowedResidualNorm ) ); isNewtonConverged = false; break; } @@ -969,27 +1008,27 @@ bool SolverBase::solveNonlinearSystem( real64 const & time_n, { if( m_nonlinearSolverParameters.m_lineSearchAction == NonlinearSolverParameters::LineSearchAction::Attempt ) { - GEOS_LOG_LEVEL_RANK_0( 1, " Line search failed to produce reduced residual. Accepting iteration." ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LineSearch, " Line search failed to produce reduced residual. Accepting iteration." ); } else if( m_nonlinearSolverParameters.m_lineSearchAction == NonlinearSolverParameters::LineSearchAction::Require ) { // if line search failed, then break out of the main Newton loop. Timestep will be cut. - GEOS_LOG_LEVEL_RANK_0( 1, " Line search failed to produce reduced residual. Exiting Newton Loop." ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LineSearch, " Line search failed to produce reduced residual. Exiting Newton Loop." ); break; } } } - // if using adaptive Krylov tolerance scheme, update tolerance. - LinearSolverParameters::Krylov & krylovParams = m_linearSolverParameters.get().krylov; - if( krylovParams.useAdaptiveTol ) - { - krylovParams.relTolerance = eisenstatWalker( residualNorm, lastResidual, krylovParams.weakestTol ); - } - { Timer timer( m_timers["linear solver total"] ); + // if using adaptive Krylov tolerance scheme, update tolerance. + LinearSolverParameters::Krylov & krylovParams = m_linearSolverParameters.get().krylov; + if( krylovParams.useAdaptiveTol ) + { + krylovParams.relTolerance = newtonIter > 0 ? eisenstatWalker( residualNorm, lastResidual, krylovParams ) : krylovParams.weakestTol; + } + // TODO: Trilinos currently requires this, re-evaluate after moving to Tpetra-based solvers if( m_precond ) { @@ -1023,15 +1062,12 @@ bool SolverBase::solveNonlinearSystem( real64 const & time_n, // Compute the scaling factor for the Newton update scaleFactor = scalingForSystemSolution( domain, m_dofManager, m_solution.values() ); - if( getLogLevel() >= 1 ) - { - GEOS_LOG_RANK_0( GEOS_FMT( " {}: Global solution scaling factor = {}", getName(), scaleFactor ) ); - } + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Global solution scaling factor = {}", getName(), scaleFactor ) ); if( !checkSystemSolution( domain, m_dofManager, m_solution.values(), scaleFactor ) ) { // TODO try chopping (similar to line search) - GEOS_LOG_RANK_0( " Solution check failed. Newton loop terminated." ); + GEOS_LOG_RANK_0( GEOS_FMT( " {}: Solution check failed. Newton loop terminated.", getName()) ); break; } @@ -1263,9 +1299,9 @@ void SolverBase::solveLinearSystem( DofManager const & dofManager, m_linearSolverResult = solver->result(); } - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " Last LinSolve(iter,res) = ( {:3}, {:4.2e} )", - m_linearSolverResult.numIterations, - m_linearSolverResult.residualReduction ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::LinearSolver, GEOS_FMT( " Last LinSolve(iter,res) = ( {:3}, {:4.2e} )", + m_linearSolverResult.numIterations, + m_linearSolverResult.residualReduction ) ); if( params.stopIfError ) { @@ -1347,19 +1383,17 @@ void SolverBase::cleanup( real64 const GEOS_UNUSED_PARAM( time_n ), { m_solverStatistics.outputStatistics(); - if( getLogLevel() > 0 ) + for( auto & timer : m_timers ) { - for( auto & timer : m_timers ) + real64 const time = std::chrono::duration< double >( timer.second ).count(); + real64 const minTime = MpiWrapper::min( time ); + real64 const maxTime = MpiWrapper::max( time ); + if( maxTime > 0 ) { - real64 const time = std::chrono::duration< double >( timer.second ).count(); - real64 const minTime = MpiWrapper::min( time ); - real64 const maxTime = MpiWrapper::max( time ); - if( maxTime > 0 ) - { - GEOS_LOG_RANK_0( GEOS_FMT( "{}: {} time = {} s (min), {} s (max)", getName(), timer.first, minTime, maxTime ) ); - } + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Timers, GEOS_FMT( "{}: {} time = {} s (min), {} s (max)", getName(), timer.first, minTime, maxTime ) ); } } + } Timestamp SolverBase::getMeshModificationTimestamp( DomainPartition & domain ) const diff --git a/src/coreComponents/physicsSolvers/SolverBase.hpp b/src/coreComponents/physicsSolvers/SolverBase.hpp index b2f9b45d815..98bd390ef9c 100644 --- a/src/coreComponents/physicsSolvers/SolverBase.hpp +++ b/src/coreComponents/physicsSolvers/SolverBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -13,6 +13,10 @@ * ------------------------------------------------------------------------------------------------------------ */ +/** + * @file SolverBase.hpp + */ + #ifndef GEOS_PHYSICSSOLVERS_SOLVERBASE_HPP_ #define GEOS_PHYSICSSOLVERS_SOLVERBASE_HPP_ @@ -26,6 +30,7 @@ #include "physicsSolvers/NonlinearSolverParameters.hpp" #include "physicsSolvers/LinearSolverParameters.hpp" #include "physicsSolvers/SolverStatistics.hpp" +#include "physicsSolvers/LogLevelsInfo.hpp" #include @@ -34,20 +39,54 @@ namespace geos class DomainPartition; +/** + * @class SolverBase + * @brief Base class for all physics solvers + * + * This class provides the base interface for all physics solvers. It provides the basic + * functionality for setting up and solving a linear system, as well as the interface for + * performing a timestep. + */ class SolverBase : public ExecutableGroup { public: + /** + * @brief Constructor for SolverBase + * @param name the name of this instantiation of SolverBase + * @param parent the parent group of this instantiation of SolverBase + */ explicit SolverBase( string const & name, Group * const parent ); + /** + * @brief Move constructor for SolverBase + */ SolverBase( SolverBase && ) = default; + /** + * @brief Destructor for SolverBase + */ virtual ~SolverBase() override; + /** + * @brief Deleted constructor + */ SolverBase() = delete; + + /** + * @brief Deleted copy constructor + */ SolverBase( SolverBase const & ) = delete; + + /** + * @brief Deleted copy assignment operator + */ SolverBase & operator=( SolverBase const & ) = delete; + + /** + * @brief Deleted move assignment operator + */ SolverBase & operator=( SolverBase && ) = delete; /** @@ -56,12 +95,26 @@ class SolverBase : public ExecutableGroup virtual string getCatalogName() const = 0; + /** + * @brief Register wrappers that contain data on the mesh objects + * @param MeshBodies the group of mesh bodies + */ virtual void registerDataOnMesh( Group & MeshBodies ) override; + /** + * @brief Initialization tasks after mesh generation is completed. + */ virtual void initialize_postMeshGeneration() override; + /** + * @brief Generate mesh targets from target regions + * @param meshBodies the group of mesh bodies + */ void generateMeshTargetsFromTargetRegions( Group const & meshBodies ); + /** + * @copydoc ExecutableGroup::cleanup + */ virtual void cleanup( real64 const time_n, integer const cycleNumber, integer const eventCounter, @@ -69,7 +122,7 @@ class SolverBase : public ExecutableGroup DomainPartition & domain ) override; /** - * This method is called when its host event is triggered + * @copydoc ExecutableGroup::execute */ virtual bool execute( real64 const time_n, real64 const dt, @@ -83,6 +136,11 @@ class SolverBase : public ExecutableGroup * @return a reference to linear system matrix of this solver */ ParallelMatrix & getSystemMatrix() { return m_matrix; } + + /** + * @brief Getter for system rhs vector + * @return a reference to linear system right-hand side of this solver + */ ParallelMatrix const & getSystemMatrix() const { return m_matrix; } /** @@ -90,6 +148,11 @@ class SolverBase : public ExecutableGroup * @return a reference to linear system right-hand side of this solver */ ParallelVector & getSystemRhs() { return m_rhs; } + + /** + * @brief Getter for system rhs vector + * @return a reference to linear system right-hand side of this solver + */ ParallelVector const & getSystemRhs() const { return m_rhs; } /** @@ -97,6 +160,11 @@ class SolverBase : public ExecutableGroup * @return a reference to solution vector of this solver */ ParallelVector & getSystemSolution() { return m_solution; } + + /** + * @brief Getter for system solution vector + * @return a reference to solution vector of this solver + */ ParallelVector const & getSystemSolution() const { return m_solution; } /** @@ -104,6 +172,11 @@ class SolverBase : public ExecutableGroup * @return a reference to degree-of-freedom manager of this solver */ DofManager & getDofManager() { return m_dofManager; } + + /** + * @brief Getter for degree-of-freedom manager + * @return a reference to degree-of-freedom manager of this solver + */ DofManager const & getDofManager() const { return m_dofManager; } /** @@ -111,6 +184,11 @@ class SolverBase : public ExecutableGroup * @return a reference to linear system matrix of this solver */ CRSMatrix< real64, globalIndex > & getLocalMatrix() { return m_localMatrix; } + + /** + * @brief Getter for local matrix + * @return a reference to linear system matrix of this solver + */ CRSMatrixView< real64 const, globalIndex const > getLocalMatrix() const { return m_localMatrix.toViewConst(); } /** @@ -213,6 +291,7 @@ class SolverBase : public ExecutableGroup * @param localMatrix the system matrix * @param rhs the system right-hand side vector * @param solution the solution vector + * @param scaleFactor the scaling factor to apply to the solution * @param lastResidual (in) target value below which to reduce residual norm, (out) achieved residual norm * @return return true if line search succeeded, false otherwise * @@ -236,14 +315,16 @@ class SolverBase : public ExecutableGroup /** * @brief Function to perform line search using a parabolic interpolation to find the scaling factor. * @param time_n time at the beginning of the step - * @param dt the perscribed timestep + * @param dt the prescribed timestep * @param cycleNumber the current cycle number * @param domain the domain object * @param dofManager degree-of-freedom manager associated with the linear system * @param localMatrix the system matrix * @param rhs the system right-hand side vector * @param solution the solution vector + * @param scaleFactor the scaling factor to apply to the solution * @param lastResidual (in) target value below which to reduce residual norm, (out) achieved residual norm + * @param residualNormT the residual norm at the end of the line search * @return return true if line search succeeded, false otherwise * */ @@ -298,6 +379,7 @@ class SolverBase : public ExecutableGroup /** * @brief Populate degree-of-freedom manager with fields relevant to this solver + * @param domain the domain containing the mesh and fields * @param dofManager degree-of-freedom manager associated with the linear system */ virtual void @@ -311,6 +393,7 @@ class SolverBase : public ExecutableGroup * @param localMatrix the system matrix * @param rhs the system right-hand side vector * @param solution the solution vector + * @param setSparsity flag to indicate if the sparsity pattern should be set * * @note While the function is virtual, the base class implementation should be * sufficient for most single-physics solvers. @@ -330,8 +413,7 @@ class SolverBase : public ExecutableGroup * @param domain the domain partition * @param dofManager degree-of-freedom manager associated with the linear system * @param localMatrix the system matrix - * @param rhs the system right-hand side vector - * @return the residual for convergence evaluation + * @param localRhs the system right-hand side vector * * This function assembles the residual and the jacobian of the residual wrt the primary * variables. In a stand alone physics solver, this function will fill a single block in the @@ -357,7 +439,7 @@ class SolverBase : public ExecutableGroup * @param domain the domain partition * @param dofManager degree-of-freedom manager associated with the linear system * @param localMatrix the system matrix - * @param rhs the system right-hand side vector + * @param localRhs the system right-hand side vector * * This function applies all boundary conditions to the linear system. This is essentially a * completion of the system assembly, but is separated for use in coupled solvers. @@ -438,12 +520,10 @@ class SolverBase : public ExecutableGroup /** * @brief Function to check system solution for physical consistency and constraint violation - * @param matrix the system matrix - * @param rhs the system right-hand side vector - * @param solution the solution vector + * @param domain the domain partition * @param dofManager degree-of-freedom manager associated with the linear system + * @param localSolution the solution vector * @param scalingFactor factor to scale the solution prior to application - * @param objectManager the object manager that holds the fields we wish to apply the solution to * @return true if solution can be safely applied without violating physical constraints, false otherwise * * @note This function must be overridden in the derived physics solver in order to use an implict @@ -460,7 +540,7 @@ class SolverBase : public ExecutableGroup * @brief Function to determine if the solution vector should be scaled back in order to maintain a known constraint. * @param[in] domain The domain partition. * @param[in] dofManager degree-of-freedom manager associated with the linear system - * @param[in] solution the solution vector + * @param[in] localSolution the solution vector * @return The factor that should be used to scale the solution vector values when they are being applied. */ virtual real64 @@ -470,12 +550,11 @@ class SolverBase : public ExecutableGroup /** * @brief Function to apply the solution vector to the state - * @param matrix the system matrix - * @param rhs the system right-hand side vector - * @param solution the solution vector * @param dofManager degree-of-freedom manager associated with the linear system + * @param localSolution the solution vector * @param scalingFactor factor to scale the solution prior to application - * @param objectManager the object manager that holds the fields we wish to apply the solution to + * @param dt the timestep + * @param domain the domain partition * * This function performs 2 operations: * 1) extract the solution vector for the "blockSystem" parameter, and applies the @@ -517,8 +596,9 @@ class SolverBase : public ExecutableGroup virtual void resetConfigurationToBeginningOfStep( DomainPartition & domain ); /** - * @brief set the simplest configuration state. + * @brief resets the configuration to the default value. * @param domain the domain containing the mesh and fields + * @return a bool that states whether the configuration was reset or not. */ virtual bool resetConfigurationToDefault( DomainPartition & domain ) const; @@ -545,7 +625,7 @@ class SolverBase : public ExecutableGroup /** * @brief perform cleanup for implicit timestep - * @param time_n the time at the beginning of the step + * @param time the time at the beginning of the step * @param dt the desired timestep * @param domain the domain partition * @@ -562,36 +642,82 @@ class SolverBase : public ExecutableGroup DomainPartition & domain ); - /* - * Returns the requirement for the next time-step to the event executing the solver. + /** + * @brief getter for the next timestep size + * @return the next timestep size m_nextDt */ - virtual real64 getTimestepRequest( real64 const GEOS_UNUSED_PARAM( time ) ) override + virtual real64 getTimestepRequest( real64 const ) override {return m_nextDt;}; /**@}*/ + /** + * @brief getter for the next timestep size + * @return the next timestep size m_nextDt + */ real64 getTimestepRequest() {return m_nextDt;}; + /** + * @brief creates a child group of of this SolverBase instantiation + * @param childKey the key of the child type + * @param childName the name of the child + * @return a pointer to the child group + */ virtual Group * createChild( string const & childKey, string const & childName ) override; + /** + * @brief Type alias for catalog interface used by this class. See CatalogInterface. + */ using CatalogInterface = dataRepository::CatalogInterface< SolverBase, string const &, Group * const >; + + /** + * @brief Get the singleton catalog for SolverBase. + * @return reference to the catalog object + */ static CatalogInterface::CatalogType & getCatalog(); + /** + * @brief Structure to hold scoped key names + */ struct viewKeyStruct { + /// @return string for the cflFactor wrapper static constexpr char const * cflFactorString() { return "cflFactor"; } + + /// @return string for the initialDt wrapper static constexpr char const * initialDtString() { return "initialDt"; } + + /// @return string for the minDtIncreaseInterval wrapper + static constexpr char const * minDtIncreaseIntervalString() { return "minDtIncreaseInterval"; } + + /// @return string for the maxStableDt wrapper static constexpr char const * maxStableDtString() { return "maxStableDt"; } + + /// @return string for the discretization wrapper static constexpr char const * discretizationString() { return "discretization"; } + + /// @return string for the nextDt targetRegions wrapper static constexpr char const * targetRegionsString() { return "targetRegions"; } + + /// @return string for the meshTargets wrapper static constexpr char const * meshTargetsString() { return "meshTargets"; } + + /// @return string for the writeLinearSystem wrapper static constexpr char const * writeLinearSystemString() { return "writeLinearSystem"; } }; + /** + * @brief Structure to hold scoped key names + */ struct groupKeyStruct { + /// @return string for the linearSolverParameters wrapper static constexpr char const * linearSolverParametersString() { return "LinearSolverParameters"; } + + /// @return string for the nonlinearSolverParameters wrapper static constexpr char const * nonlinearSolverParametersString() { return "NonlinearSolverParameters"; } + + /// @return string for the solverStatistics wrapper static constexpr char const * solverStatisticsString() { return "SolverStatistics"; } }; @@ -624,8 +750,17 @@ class SolverBase : public ExecutableGroup */ R1Tensor const gravityVector() const; + /** + * @brief Check if the solution increments are ok to use + * @param domain the domain partition + * @return true if the solution increments are ok to use, false otherwise + */ virtual bool checkSequentialSolutionIncrements( DomainPartition & domain ) const; + /** + * @brief Save the state of the solver for sequential iteration + * @param domain the domain partition + */ virtual void saveSequentialIterationState( DomainPartition & domain ); /** @@ -664,6 +799,9 @@ class SolverBase : public ExecutableGroup return m_nonlinearSolverParameters; } + /** + * @brief syncronize the nonlinear solver parameters. + */ virtual void synchronizeNonlinearSolverParameters() { /* empty here, overriden in CoupledSolver */ } @@ -729,42 +867,98 @@ class SolverBase : public ExecutableGroup } } - + /** + * @brief return the name of the discretization object + * @return the name of the discretization object + */ string getDiscretizationName() const {return m_discretizationName;} + /** + * @brief function to set the value of m_assemblyCallback + * @param func the function to set m_assemblyCallback to + * @param funcType the type of the function + * @return true if the function was successfully set, false otherwise + * + * This is used to provide a callback function for to be called in the assembly step. + */ virtual bool registerCallback( void * func, const std::type_info & funcType ) final override; + /** + * @brief accessor for the solver statistics. + * @return reference to m_solverStatistics + */ SolverStatistics & getSolverStatistics() { return m_solverStatistics; } + + /** + * @brief const accessor for the solver statistics. + * @return reference to m_solverStatistics + */ SolverStatistics const & getSolverStatistics() const { return m_solverStatistics; } +#if defined(GEOS_USE_PYGEOSX) /** * @brief Return PySolver type. * @return Return PySolver type. */ -#if defined(GEOS_USE_PYGEOSX) virtual PyTypeObject * getPythonType() const override; #endif + /** + * @brief accessor for m_meshTargets + * @return reference to m_meshTargets + */ map< std::pair< string, string >, array1d< string > > const & getMeshTargets() const { return m_meshTargets; } protected: - static real64 eisenstatWalker( real64 const newNewtonNorm, - real64 const oldNewtonNorm, - real64 const weakestTol ); + /** + * @brief Eisenstat-Walker adaptive tolerance + * + * This method enables an inexact-Newton method is which the linear solver + * tolerance is chosen based on the nonlinear solver convergence behavior. + * In early Newton iterations, the search direction is usually imprecise, and + * therefore a weak linear convergence tolerance can be chosen to minimize + * computational cost. As the search gets closer to the true solution, however, + * more stringent linear tolerances are necessary to maintain quadratic convergence + * behavior. + * + * The user can set the weakest tolerance allowed, with a default of 1e-3. + * Even weaker values (e.g. 1e-2,1e-1) can be used for further speedup, but may + * occasionally cause convergence problems. Use this parameter with caution. The + * most stringent tolerance is hardcoded to 1e-8, which is sufficient for + * most problems. + * + * See Eisenstat, S.C. and Walker, H.F., 1996. Choosing the forcing terms in an + * inexact Newton method. SIAM Journal on Scientific Computing, 17(1), pp.16-32. + * + * @param newNewtonNorm Residual norm at current iteration + * @param oldNewtonNorm Residual norm at previous iteration + * @param krylovParams Linear solver parameters + * @return Adaptive tolerance recommendation + */ + real64 eisenstatWalker( real64 const newNewtonNorm, + real64 const oldNewtonNorm, + LinearSolverParameters::Krylov const & krylovParams ); /** * @brief Get the Constitutive Name object * * @tparam CONSTITUTIVE_BASE_TYPE the base type of the constitutive model. - * @param subregion the element subregion on which the constitutive model is registered - * @return the name name of the constitutive model of type @p CONSTITUTIVE_BASE_TYPE registered on the @p subregion. + * @param subRegion the element subregion on which the constitutive model is registered + * @return the name name of the constitutive model of type CONSTITUTIVE_BASE_TYPE registered on the subregion. */ template< typename CONSTITUTIVE_BASE_TYPE > static string getConstitutiveName( ElementSubRegionBase const & subRegion ); + /** + * @brief Get the Constitutive Name object + * + * @tparam CONSTITUTIVE_BASE_TYPE the base type of the constitutive model. + * @param subRegion the particle subregion on which the constitutive model is registered + * @return the name name of the constitutive model of type CONSTITUTIVE_BASE_TYPE registered on the subregion. + */ template< typename CONSTITUTIVE_BASE_TYPE > static string getConstitutiveName( ParticleSubRegionBase const & subRegion ); // particle overload @@ -776,25 +970,64 @@ class SolverBase : public ExecutableGroup */ virtual void setConstitutiveNamesCallSuper( ElementSubRegionBase & subRegion ) const { GEOS_UNUSED_VAR( subRegion ); } + + /** + * @brief Get the Constitutive Model object + * @tparam BASETYPE the base type of the constitutive model. + * @tparam LOOKUP_TYPE the type of the key used to look up the constitutive model. + * @param dataGroup the data group containing the constitutive models. + * @param key the key used to look up the constitutive model. + * @return the constitutive model of type @p BASETYPE registered on the @p dataGroup with the key @p key. + */ template< typename BASETYPE = constitutive::ConstitutiveBase, typename LOOKUP_TYPE > - static BASETYPE const & getConstitutiveModel( dataRepository::Group const & dataGroup, LOOKUP_TYPE const & key ); + static BASETYPE const & getConstitutiveModel( dataRepository::Group const & dataGroup, LOOKUP_TYPE const & key ) + { + dataRepository::Group const & constitutiveModels = dataGroup.getGroup( ElementSubRegionBase::groupKeyStruct::constitutiveModelsString() ); + return constitutiveModels.getGroup< BASETYPE >( key ); + } + /** + * @brief Get the Constitutive Model object + * @tparam BASETYPE the base type of the constitutive model. + * @tparam LOOKUP_TYPE the type of the key used to look up the constitutive model. + * @param dataGroup the data group containing the constitutive models. + * @param key the key used to look up the constitutive model. + * @return the constitutive model of type @p BASETYPE registered on the @p dataGroup with the key @p key. + */ template< typename BASETYPE = constitutive::ConstitutiveBase, typename LOOKUP_TYPE > - static BASETYPE & getConstitutiveModel( dataRepository::Group & dataGroup, LOOKUP_TYPE const & key ); + static BASETYPE & getConstitutiveModel( dataRepository::Group & dataGroup, LOOKUP_TYPE const & key ) + { + dataRepository::Group & constitutiveModels = dataGroup.getGroup( ElementSubRegionBase::groupKeyStruct::constitutiveModelsString() ); + return constitutiveModels.getGroup< BASETYPE >( key ); + } + + + /// Courant–Friedrichs–Lewy factor for the timestep real64 m_cflFactor; + + /// maximum stable time step real64 m_maxStableDt; + + /// timestep of the next cycle real64 m_nextDt; + /// Number of cycles since last timestep cut + integer m_numTimestepsSinceLastDtCut; + /// name of the FV discretization object in the data repository string m_discretizationName; /// Data structure to handle degrees of freedom DofManager m_dofManager; - /// System matrix, rhs and solution + /// System matrix ParallelMatrix m_matrix; + + /// System right-hand side vector ParallelVector m_rhs; + + /// System solution vector ParallelVector m_solution; /// Local system matrix and rhs @@ -821,8 +1054,10 @@ class SolverBase : public ExecutableGroup /// Timestamp of the last call to setup system Timestamp m_systemSetupTimestamp; + /// Callback function for assembly step std::function< void( CRSMatrix< real64, globalIndex >, array1d< real64 > ) > m_assemblyCallback; + /// Timers for the aggregate profiling of the solver std::map< std::string, std::chrono::system_clock::duration > m_timers; private: @@ -840,11 +1075,29 @@ class SolverBase : public ExecutableGroup */ virtual void setConstitutiveNames( ElementSubRegionBase & subRegion ) const { GEOS_UNUSED_VAR( subRegion ); } + /** + * @brief Solve a nonlinear system using a Newton method + * @param time_n the time at the beginning of the step + * @param dt the desired timestep + * @param cycleNumber the current cycle number + * @param domain the domain partition + * @return true if the nonlinear system was solved, false otherwise + */ bool solveNonlinearSystem( real64 const & time_n, real64 const & dt, integer const cycleNumber, DomainPartition & domain ); + /** + * @brief output information about the cycle to the log + * @param cycleNumber the current cycle number + * @param numOfSubSteps the number of substeps taken + * @param subStepDt the time step size for each substep + */ + void logEndOfCycleInformation( integer const cycleNumber, + integer const numOfSubSteps, + std::vector< real64 > const & subStepDt ) const; + }; template< typename CONSTITUTIVE_BASE_TYPE > @@ -875,21 +1128,6 @@ string SolverBase::getConstitutiveName( ParticleSubRegionBase const & subRegion return validName; } -template< typename BASETYPE, typename LOOKUP_TYPE > -BASETYPE const & SolverBase::getConstitutiveModel( dataRepository::Group const & dataGroup, LOOKUP_TYPE const & key ) -{ - dataRepository::Group const & constitutiveModels = dataGroup.getGroup( ElementSubRegionBase::groupKeyStruct::constitutiveModelsString() ); - - return constitutiveModels.getGroup< BASETYPE >( key ); -} - -template< typename BASETYPE, typename LOOKUP_TYPE > -BASETYPE & SolverBase::getConstitutiveModel( dataRepository::Group & dataGroup, LOOKUP_TYPE const & key ) -{ - Group & constitutiveModels = dataGroup.getGroup( ElementSubRegionBase::groupKeyStruct::constitutiveModelsString() ); - - return constitutiveModels.getGroup< BASETYPE >( key ); -} } // namespace geos diff --git a/src/coreComponents/physicsSolvers/SolverBaseKernels.hpp b/src/coreComponents/physicsSolvers/SolverBaseKernels.hpp index 7b12943aaca..6f48675d698 100644 --- a/src/coreComponents/physicsSolvers/SolverBaseKernels.hpp +++ b/src/coreComponents/physicsSolvers/SolverBaseKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/SolverStatistics.cpp b/src/coreComponents/physicsSolvers/SolverStatistics.cpp index 4af65d68c92..cf3eaf44f14 100644 --- a/src/coreComponents/physicsSolvers/SolverStatistics.cpp +++ b/src/coreComponents/physicsSolvers/SolverStatistics.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/SolverStatistics.hpp b/src/coreComponents/physicsSolvers/SolverStatistics.hpp index d863c3a36ed..ce8293dbcc0 100644 --- a/src/coreComponents/physicsSolvers/SolverStatistics.hpp +++ b/src/coreComponents/physicsSolvers/SolverStatistics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/CMakeLists.txt b/src/coreComponents/physicsSolvers/contact/CMakeLists.txt index 23c4693cedd..c9bf75bec3e 100644 --- a/src/coreComponents/physicsSolvers/contact/CMakeLists.txt +++ b/src/coreComponents/physicsSolvers/contact/CMakeLists.txt @@ -15,6 +15,7 @@ set( physicsSolvers_headers contact/SolidMechanicsALMKernelsHelper.hpp contact/SolidMechanicsALMJumpUpdateKernels.hpp contact/SolidMechanicsALMBubbleKernels.hpp + contact/LogLevelsInfo.hpp PARENT_SCOPE ) diff --git a/src/coreComponents/physicsSolvers/contact/ContactFields.hpp b/src/coreComponents/physicsSolvers/contact/ContactFields.hpp index f0d57887244..4792ca2d019 100644 --- a/src/coreComponents/physicsSolvers/contact/ContactFields.hpp +++ b/src/coreComponents/physicsSolvers/contact/ContactFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -50,13 +50,13 @@ struct FractureState }; }; -DECLARE_FIELD( penalty, - "penalty", +DECLARE_FIELD( iterativePenalty, + "iterativePenalty", array2d< real64 >, - 0, + 1.e5, LEVEL_0, WRITE_AND_READ, - "Penalty coefficients" ); + "Penalty coefficients used in the iterative procedure of the Augmented Lagrangian Method" ); DECLARE_FIELD( rotationMatrix, "rotationMatrix", @@ -134,8 +134,8 @@ DECLARE_FIELD( fractureState, "fractureState", array1d< integer >, FractureState::Stick, - NOPLOT, - NO_WRITE, + LEVEL_0, + WRITE_AND_READ, "Fracture state." ); DECLARE_FIELD( oldFractureState, diff --git a/src/coreComponents/physicsSolvers/contact/ContactSolverBase.cpp b/src/coreComponents/physicsSolvers/contact/ContactSolverBase.cpp index 7851dbdaa4d..11d40de0558 100644 --- a/src/coreComponents/physicsSolvers/contact/ContactSolverBase.cpp +++ b/src/coreComponents/physicsSolvers/contact/ContactSolverBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -23,6 +23,7 @@ #include "constitutive/contact/FrictionBase.hpp" #include "mesh/DomainPartition.hpp" #include "mesh/SurfaceElementRegion.hpp" +#include "physicsSolvers/contact/LogLevelsInfo.hpp" #include "physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp" #include "common/GEOS_RAJA_Interface.hpp" diff --git a/src/coreComponents/physicsSolvers/contact/ContactSolverBase.hpp b/src/coreComponents/physicsSolvers/contact/ContactSolverBase.hpp index d0d1b471ef3..829c4761ef1 100644 --- a/src/coreComponents/physicsSolvers/contact/ContactSolverBase.hpp +++ b/src/coreComponents/physicsSolvers/contact/ContactSolverBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/LogLevelsInfo.hpp b/src/coreComponents/physicsSolvers/contact/LogLevelsInfo.hpp new file mode 100644 index 00000000000..f58f9494b0d --- /dev/null +++ b/src/coreComponents/physicsSolvers/contact/LogLevelsInfo.hpp @@ -0,0 +1,51 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file LogLevelsInfo.hpp + * This file contains log level informations for contact solvers + */ + +#ifndef GEOS_PHYSICSSOLVERS_CONTACT_LOGLEVELSINFO_HPP +#define GEOS_PHYSICSSOLVERS_CONTACT_LOGLEVELSINFO_HPP + +#include "common/DataTypes.hpp" + +namespace geos +{ + +namespace logInfo +{ + +/** + * @name Wells LogLevels info structures. They must comply with the `is_log_level_info` trait. + */ +///@{ + +/// @cond DO_NOT_DOCUMENT + +struct Configuration +{ + static constexpr int getMinLogLevel() { return 2; } + static constexpr std::string_view getDescription() { return "Configuration information"; } +}; + +/// @endcond +///@} + +} + +} + +#endif // GEOS_PHYSICSSOLVERS_CONTACT_LOGLEVELSINFO_HPP diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMBubbleKernels.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMBubbleKernels.hpp index 3235bca00c6..4b76b7a4a3d 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMBubbleKernels.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMBubbleKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -285,30 +285,7 @@ class ALMBubbleKernels : real64 strainBubbleMatrix[6][nBubbleUdof]; solidMechanicsALMKernelsHelper::assembleStrainOperator< 6, nBubbleUdof, numFacesPerElem >( strainBubbleMatrix, dBubbleNdX ); - // TODO: Use the following functions - //using namespace PDEUtilities; - //constexpr FunctionSpace displacementTrialSpace = FE_TYPE::template getFunctionSpace< numDofPerTrialSupportPoint >(); - //constexpr FunctionSpace displacementTestSpace = displacementTrialSpace; - //real64 Abb_bilinear[nBubbleUdof][nBubbleUdof]; - //BilinearFormUtilities::compute< displacementTrialSpace, - // displacementTestSpace, - // DifferentialOperator::SymmetricGradient, - // DifferentialOperator::SymmetricGradient > - //( - // Abb_bilinear, - // dBubbleNdX, - // stack.constitutiveStiffness, // fourth-order tensor handled via DiscretizationOps - // dBubbleNdX, - // -detJ ); - - - //LinearFormUtilities::compute< displacementTestSpace, - // DifferentialOperator::Identity > - //( - //stack.localResidualMomentum, - //N, - //stack.bodyForce, - //detJxW ); + // TODO: It would be nice use BilinearFormUtilities::compute real64 matBD[nBubbleUdof][6]; real64 Abb_gauss[nBubbleUdof][nBubbleUdof], Abu_gauss[nBubbleUdof][nUdof], Aub_gauss[nUdof][nBubbleUdof]; @@ -323,13 +300,29 @@ class ALMBubbleKernels : LvArray::tensorOps::Rij_eq_AikBkj< nBubbleUdof, nBubbleUdof, 6 >( Abb_gauss, matBD, strainBubbleMatrix ); // transp(B)DBb - tensorOps::transpose< nUdof, nBubbleUdof >( Aub_gauss, Abu_gauss ); + LvArray::tensorOps::transpose< nUdof, nBubbleUdof >( Aub_gauss, Abu_gauss ); // multiply by determinant and add to element matrix LvArray::tensorOps::scaledAdd< nBubbleUdof, nBubbleUdof >( stack.localAbb, Abb_gauss, -detJ ); LvArray::tensorOps::scaledAdd< nBubbleUdof, nUdof >( stack.localAbu, Abu_gauss, -detJ ); LvArray::tensorOps::scaledAdd< nUdof, nBubbleUdof >( stack.localAub, Aub_gauss, -detJ ); + // Compute the initial stress + // The following block assumes a linear elastic constitutive model + real64 rb_gauss[nBubbleUdof]{}; + real64 strain[6] = {0}; + LvArray::tensorOps::Ri_eq_AijBj< 6, nUdof >( strain, strainMatrix, stack.uLocal ); + + real64 initStressLocal[ 6 ] = {0}; + LvArray::tensorOps::Ri_eq_AijBj< 6, 6 >( initStressLocal, stack.constitutiveStiffness, strain ); + for( localIndex c = 0; c < 6; ++c ) + { + initStressLocal[ c ] -= m_constitutiveUpdate.m_newStress( k, q, c ); + } + + LvArray::tensorOps::Ri_eq_AjiBj< nBubbleUdof, 6 >( rb_gauss, strainBubbleMatrix, initStressLocal ); + LvArray::tensorOps::scaledAdd< nBubbleUdof >( stack.localRb, rb_gauss, detJ ); + } GEOS_HOST_DEVICE diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMJumpUpdateKernels.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMJumpUpdateKernels.hpp index 66916182df5..1f434b3a13e 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMJumpUpdateKernels.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMJumpUpdateKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernels.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernels.hpp index 60263a49390..9f5c53f5132 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernels.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -52,6 +52,7 @@ class ALM : using Base::m_elemsToFaces; using Base::m_faceToNodes; using Base::m_finiteElementSpace; + using Base::m_constitutiveUpdate; using Base::m_dofNumber; using Base::m_bDofNumber; using Base::m_dofRankOffset; @@ -80,7 +81,8 @@ class ALM : CRSMatrixView< real64, globalIndex const > const inputMatrix, arrayView1d< real64 > const inputRhs, real64 const inputDt, - arrayView1d< localIndex const > const & faceElementList ): + arrayView1d< localIndex const > const & faceElementList, + bool const isSymmetric ): Base( nodeManager, edgeManager, faceManager, @@ -95,7 +97,8 @@ class ALM : inputRhs, inputDt, faceElementList ), - m_traction( elementSubRegion.getField< fields::contact::traction >().toViewConst()) + m_traction( elementSubRegion.getField< fields::contact::traction >().toViewConst()), + m_symmetric( isSymmetric ) {} //*************************************************************************** @@ -223,11 +226,6 @@ class ALM : } } - // The minus sign is consistent with the sign of the Jacobian - stack.localPenalty[0][0] = -m_penalty( k, 0 ); - stack.localPenalty[1][1] = -m_penalty( k, 1 ); - stack.localPenalty[2][2] = -m_penalty( k, 1 ); - for( int i=0; i::epsilon; constexpr int numUdofs = numNodesPerElem * 3 * 2; @@ -259,13 +258,24 @@ class ALM : real64 matRRtAtu[3][numUdofs], matDRtAtu[3][numUdofs]; real64 matRRtAtb[3][numBdofs], matDRtAtb[3][numBdofs]; - real64 dispJumpR[numUdofs]; - real64 oldDispJumpR[numUdofs]; real64 tractionR[numUdofs]; - real64 dispJumpRb[numBdofs]; - real64 oldDispJumpRb[numBdofs]; real64 tractionRb[numBdofs]; + real64 tractionNew[3]; + + integer fractureState; + m_constitutiveUpdate.updateTraction( m_oldDispJump[k], + m_dispJump[k], + m_penalty[k], + m_traction[k], + m_symmetric, + m_symmetric, + zero, + zero, + stack.localPenalty, + tractionNew, + fractureState ); + // transp(R) * Atu LvArray::tensorOps::Rij_eq_AkiBkj< 3, numUdofs, 3 >( matRRtAtu, stack.localRotationMatrix, stack.localAtu ); @@ -274,8 +284,8 @@ class ALM : stack.localAtb ); // Compute the traction contribute of the local residuals - LvArray::tensorOps::Ri_eq_AjiBj< numUdofs, 3 >( tractionR, matRRtAtu, stack.tLocal ); - LvArray::tensorOps::Ri_eq_AjiBj< numBdofs, 3 >( tractionRb, matRRtAtb, stack.tLocal ); + LvArray::tensorOps::Ri_eq_AjiBj< numUdofs, 3 >( tractionR, matRRtAtu, tractionNew ); + LvArray::tensorOps::Ri_eq_AjiBj< numBdofs, 3 >( tractionRb, matRRtAtb, tractionNew ); // D*RtAtu LvArray::tensorOps::Rij_eq_AikBkj< 3, numUdofs, 3 >( matDRtAtu, stack.localPenalty, @@ -307,18 +317,9 @@ class ALM : matRRtAtb ); // Compute the local residuals - LvArray::tensorOps::Ri_eq_AjiBj< numUdofs, 3 >( dispJumpR, matDRtAtu, stack.dispJumpLocal ); - LvArray::tensorOps::Ri_eq_AjiBj< numUdofs, 3 >( oldDispJumpR, matDRtAtu, stack.oldDispJumpLocal ); - LvArray::tensorOps::Ri_eq_AjiBj< numBdofs, 3 >( dispJumpRb, matDRtAtb, stack.dispJumpLocal ); - LvArray::tensorOps::Ri_eq_AjiBj< numBdofs, 3 >( oldDispJumpRb, matDRtAtb, stack.oldDispJumpLocal ); - LvArray::tensorOps::scaledAdd< numUdofs >( stack.localRu, tractionR, -1 ); - LvArray::tensorOps::scaledAdd< numUdofs >( stack.localRu, dispJumpR, 1 ); - LvArray::tensorOps::scaledAdd< numUdofs >( stack.localRu, oldDispJumpR, -1 ); LvArray::tensorOps::scaledAdd< numBdofs >( stack.localRb, tractionRb, -1 ); - LvArray::tensorOps::scaledAdd< numBdofs >( stack.localRb, dispJumpRb, 1 ); - LvArray::tensorOps::scaledAdd< numBdofs >( stack.localRb, oldDispJumpRb, -1 ); for( localIndex i=0; i < numUdofs; ++i ) { @@ -369,6 +370,8 @@ class ALM : arrayView2d< real64 const > const m_traction; + bool const m_symmetric; + }; /// The factory used to construct the kernel. @@ -379,48 +382,45 @@ using ALMFactory = finiteElement::InterfaceKernelFactory< ALM, CRSMatrixView< real64, globalIndex const > const, arrayView1d< real64 > const, real64 const, - arrayView1d< localIndex const > const >; - + arrayView1d< localIndex const > const, + bool const >; /** - * @brief A struct to compute rotation matrices + * @brief A struct to compute the traction after nonlinear solve */ -struct ComputeRotationMatricesKernel +struct ComputeTractionKernel { /** - * @brief Launch the kernel function to comute rotation matrices + * @brief Launch the kernel function to compute the traction * @tparam POLICY the type of policy used in the kernel launch + * @tparam CONTACT_WRAPPER the type of contact wrapper doing the fracture traction updates * @param[in] size the size of the subregion - * @param[in] faceNormal the array of array containing the face to nodes map - * @param[in] elemsToFaces the array of array containing the element to faces map - * @param[out] rotationMatrix the array containing the rotation matrices + * @param[in] penalty the array containing the tangential penalty matrix + * @param[in] traction the array containing the current traction + * @param[in] dispJump the array containing the displacement jump + * @param[in] deltaDispJump the array containing the delta displacement jump + * @param[out] tractionNew the array containing the new traction */ - template< typename POLICY > + template< typename POLICY, typename CONTACT_WRAPPER > static void launch( localIndex const size, - arrayView2d< real64 const > const & faceNormal, - ArrayOfArraysView< localIndex const > const & elemsToFaces, - arrayView3d< real64 > const & rotationMatrix ) + CONTACT_WRAPPER const & contactWrapper, + arrayView2d< real64 const > const & penalty, + arrayView2d< real64 const > const & traction, + arrayView2d< real64 const > const & dispJump, + arrayView2d< real64 const > const & deltaDispJump, + arrayView2d< real64 > const & tractionNew ) { forAll< POLICY >( size, [=] GEOS_HOST_DEVICE ( localIndex const k ) { - localIndex const f0 = elemsToFaces[k][0]; - localIndex const f1 = elemsToFaces[k][1]; - - real64 Nbar[3]; - Nbar[0] = faceNormal[f0][0] - faceNormal[f1][0]; - Nbar[1] = faceNormal[f0][1] - faceNormal[f1][1]; - Nbar[2] = faceNormal[f0][2] - faceNormal[f1][2]; - - LvArray::tensorOps::normalize< 3 >( Nbar ); - computationalGeometry::RotationMatrix_3D( Nbar, rotationMatrix[k] ); + contactWrapper.updateTractionOnly( dispJump[k], deltaDispJump[k], + penalty[k], traction[k], tractionNew[k] ); } ); } - }; } // namespace SolidMechanicsALMKernels diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernelsBase.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernelsBase.hpp index 8fe9bdd0122..4f3504e3d5f 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernelsBase.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernelsBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -98,7 +98,7 @@ class ALMKernelsBase : m_rotationMatrix( elementSubRegion.getField< fields::contact::rotationMatrix >().toViewConst()), m_dispJump( elementSubRegion.getField< fields::contact::dispJump >().toView() ), m_oldDispJump( elementSubRegion.getField< fields::contact::oldDispJump >().toViewConst() ), - m_penalty( elementSubRegion.getField< fields::contact::penalty >().toViewConst() ) + m_penalty( elementSubRegion.getField< fields::contact::iterativePenalty >().toViewConst() ) {} //*************************************************************************** @@ -266,6 +266,182 @@ class ALMKernelsBase : }; +/** + * @brief A struct to compute rotation matrices + */ +struct ComputeRotationMatricesKernel +{ + + /** + * @brief Launch the kernel function to comute rotation matrices + * @tparam POLICY the type of policy used in the kernel launch + * @param[in] size the size of the subregion + * @param[in] faceNormal the array of array containing the face to nodes map + * @param[in] elemsToFaces the array of array containing the element to faces map + * @param[out] rotationMatrix the array containing the rotation matrices + */ + template< typename POLICY > + static void + launch( localIndex const size, + arrayView2d< real64 const > const & faceNormal, + ArrayOfArraysView< localIndex const > const & elemsToFaces, + arrayView3d< real64 > const & rotationMatrix ) + { + + forAll< POLICY >( size, [=] GEOS_HOST_DEVICE ( localIndex const k ) + { + + localIndex const & f0 = elemsToFaces[k][0]; + localIndex const & f1 = elemsToFaces[k][1]; + + real64 Nbar[3]; + Nbar[0] = faceNormal[f0][0] - faceNormal[f1][0]; + Nbar[1] = faceNormal[f0][1] - faceNormal[f1][1]; + Nbar[2] = faceNormal[f0][2] - faceNormal[f1][2]; + + LvArray::tensorOps::normalize< 3 >( Nbar ); + computationalGeometry::RotationMatrix_3D( Nbar, rotationMatrix[k] ); + + } ); + } + +}; + +/** + * @brief A struct to check for constraint satisfaction + */ +struct ConstraintCheckKernel +{ + + /** + * @brief Launch the kernel function to check the constraint satisfaction + * @tparam POLICY the type of policy used in the kernel launch + * @tparam CONTACT_WRAPPER the type of contact wrapper doing the fracture traction updates + * @param[in] size the size of the subregion + * @param[in] traction the array containing the current traction + * @param[in] dispJump the array containing the displacement jump + * @param[in] deltaDispJump the array containing the delta displacement jump + * @param[in] normalTractionTolerance Check tolerance (normal traction) + * @param[in] normalDisplacementTolerance Check tolerance (compenetration) + * @param[in] slidingTolerance Check tolerance (sliding) + * @param[in] slidingCheckTolerance Check tolerance (if shear strass exceeds tauLim) + * @param[in] area interface element area + * @param[in] fractureState the array containing the fracture state + * @param[out] condConv the array containing the convergence flag: + * 0: Constraint conditions satisfied + * 1: Open + * 2: Compenetration + * 3: Slip exceeds sliding tolerance + * 4: Shear stress exceeds tauLim + */ + template< typename POLICY, typename CONTACT_WRAPPER > + static void + launch( localIndex const size, + CONTACT_WRAPPER const & contactWrapper, + arrayView1d< integer const > const & ghostRank, + arrayView2d< real64 > const & traction, + arrayView2d< real64 const > const & dispJump, + arrayView2d< real64 const > const & deltaDispJump, + arrayView1d< real64 const > const & normalTractionTolerance, + arrayView1d< real64 const > const & normalDisplacementTolerance, + arrayView1d< real64 const > const & slidingTolerance, + real64 const slidingCheckTolerance, + arrayView1d< real64 const > const & area, + arrayView1d< integer const > const & fractureState, + arrayView1d< integer > const & condConv ) + { + + forAll< POLICY >( size, [=] GEOS_HOST_DEVICE ( localIndex const k ) + { + if( ghostRank[k] < 0 ) + { + contactWrapper.constraintCheck( dispJump[k], + deltaDispJump[k], + traction[k], + fractureState[k], + normalTractionTolerance[k], + normalDisplacementTolerance[k]*area[k], + slidingTolerance[k]*area[k], + slidingCheckTolerance, + condConv[k] ); + } + + } ); + } +}; + +/** + * @brief A struct to check for constraint satisfaction + */ +struct UpdateStateKernel +{ + + /** + * @brief Launch the kernel function to check the constraint satisfaction + * @tparam POLICY the type of policy used in the kernel launch + * @tparam CONTACT_WRAPPER the type of contact wrapper doing the fracture traction updates + * @param[in] size the size of the subregion + * @param[in] oldDispJump the array containing the old displacement jump (previous time step) + * @param[in] dispJump the array containing the displacement jump + * @param[in] penalty the array containing the penalty coefficients + * @param[in] symmetric flag to compute symmetric penalty matrix + * @param[in] normalTractionTolerance Check tolerance (normal traction) + * @param[in] traction the array containing the current traction + * @param[in] fractureState the array containing the fracture state + */ + template< typename POLICY, typename CONTACT_WRAPPER > + static void + launch( localIndex const size, + CONTACT_WRAPPER const & contactWrapper, + arrayView2d< real64 const > const & oldDispJump, + arrayView2d< real64 const > const & dispJump, + arrayView2d< real64 > const & penalty, + bool const symmetric, + arrayView1d< real64 const > const & normalTractionTolerance, + arrayView2d< real64 > const & traction, + arrayView1d< integer > const & fractureState ) + + { + forAll< POLICY >( size, [=] GEOS_HOST_DEVICE ( localIndex const k ) + { + + real64 const zero = LvArray::NumericLimits< real64 >::epsilon; + + real64 localPenalty[3][3]{}; + real64 localTractionNew[3]{}; + contactWrapper.updateTraction( oldDispJump[k], + dispJump[k], + penalty[k], + traction[k], + symmetric, + false, + normalTractionTolerance[k], + zero, + localPenalty, + localTractionNew, + fractureState[k] ); + + if( fractureState[k] == fields::contact::FractureState::Open ) + { + + LvArray::tensorOps::fill< 3 >( localTractionNew, 0.0 ); + } + else if( LvArray::math::abs( localTractionNew[ 0 ] ) < normalTractionTolerance[k] ) + { + LvArray::tensorOps::fill< 3 >( localTractionNew, 0.0 ); + fractureState[k] = fields::contact::FractureState::Slip; + } + + LvArray::tensorOps::copy< 3 >( traction[k], localTractionNew ); + penalty[k][2] = -localPenalty[1][1]; + penalty[k][3] = -localPenalty[2][2]; + penalty[k][4] = -localPenalty[1][2]; + + } ); + } + +}; + } // namespace SolidMechanicsALMKernels } // namespace geos diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernelsHelper.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernelsHelper.hpp index e737731a093..02250a60170 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernelsHelper.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMKernelsHelper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMSimultaneousKernels.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMSimultaneousKernels.hpp new file mode 100644 index 00000000000..f9cd307b6fe --- /dev/null +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsALMSimultaneousKernels.hpp @@ -0,0 +1,435 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 Total, S.A + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file SolidMechanicsALMSimultaneousKernels.hpp + */ + +#ifndef GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSALMSIMULTANEOUSKERNELS_HPP_ +#define GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSALMSIMULTANEOUSKERNELS_HPP_ + +#include "SolidMechanicsALMKernelsBase.hpp" + +namespace geos +{ + +namespace solidMechanicsALMKernels +{ + +/** + * @copydoc geos::finiteElement::ImplicitKernelBase + */ +template< typename CONSTITUTIVE_TYPE, + typename FE_TYPE > +class ALMSimultaneous : + public ALMKernelsBase< CONSTITUTIVE_TYPE, + FE_TYPE > +{ +public: + /// Alias for the base class. + using Base = ALMKernelsBase< CONSTITUTIVE_TYPE, + FE_TYPE >; + + /// Maximum number of nodes per element, which is equal to the maxNumTestSupportPointPerElem and + /// maxNumTrialSupportPointPerElem by definition. + static constexpr int numNodesPerElem = Base::maxNumTestSupportPointsPerElem; + + /// Compile time value for the number of quadrature points per element. + static constexpr int numQuadraturePointsPerElem = FE_TYPE::numQuadraturePoints; + + using Base::m_elemsToFaces; + using Base::m_faceToNodes; + using Base::m_finiteElementSpace; + using Base::m_dofNumber; + using Base::m_bDofNumber; + using Base::m_dofRankOffset; + using Base::m_X; + using Base::m_rotationMatrix; + using Base::m_penalty; + using Base::m_dispJump; + using Base::m_oldDispJump; + using Base::m_matrix; + using Base::m_rhs; + + /** + * @brief Constructor + * @copydoc geos::finiteElement::InterfaceKernelBase::InterfaceKernelBase + */ + ALMSimultaneous( NodeManager const & nodeManager, + EdgeManager const & edgeManager, + FaceManager const & faceManager, + localIndex const targetRegionIndex, + FaceElementSubRegion & elementSubRegion, + FE_TYPE const & finiteElementSpace, + CONSTITUTIVE_TYPE & inputConstitutiveType, + arrayView1d< globalIndex const > const uDofNumber, + arrayView1d< globalIndex const > const bDofNumber, + globalIndex const rankOffset, + CRSMatrixView< real64, globalIndex const > const inputMatrix, + arrayView1d< real64 > const inputRhs, + real64 const inputDt, + arrayView1d< localIndex const > const & faceElementList ): + Base( nodeManager, + edgeManager, + faceManager, + targetRegionIndex, + elementSubRegion, + finiteElementSpace, + inputConstitutiveType, + uDofNumber, + bDofNumber, + rankOffset, + inputMatrix, + inputRhs, + inputDt, + faceElementList ), + m_traction( elementSubRegion.getField< fields::contact::traction >().toViewConst()) + {} + + //*************************************************************************** + + /** + * @copydoc finiteElement::KernelBase::StackVariables + */ + struct StackVariables : public Base::StackVariables + { + + /// The number of displacement dofs per element. + static constexpr int numUdofs = numNodesPerElem * 3 * 2; + + /// The number of lagrange multiplier dofs per element. + static constexpr int numTdofs = 3; + + /// The number of bubble dofs per element. + static constexpr int numBdofs = 3*2; + +public: + + GEOS_HOST_DEVICE + StackVariables(): + Base::StackVariables(), + dispEqnRowIndices{}, + dispColIndices{}, + bEqnRowIndices{}, + bColIndices{}, + localRu{}, + localRb{}, + localAutAtu{ {} }, + localAbtAtb{ {} }, + localAbtAtu{ {} }, + localAutAtb{ {} }, + tLocal{} + {} + + /// C-array storage for the element local row degrees of freedom. + globalIndex dispEqnRowIndices[numUdofs]; + + /// C-array storage for the element local column degrees of freedom. + globalIndex dispColIndices[numUdofs]; + + /// C-array storage for the element local row degrees of freedom. + globalIndex bEqnRowIndices[numBdofs]; + + /// C-array storage for the element local column degrees of freedom. + globalIndex bColIndices[numBdofs]; + + /// C-array storage for the element local Ru residual vector. + real64 localRu[numUdofs]; + + /// C-array storage for the element local Rb residual vector. + real64 localRb[numBdofs]; + + /// C-array storage for the element local AutAtu matrix. + real64 localAutAtu[numUdofs][numUdofs]; + + /// C-array storage for the element local AbtAtb matrix. + real64 localAbtAtb[numBdofs][numBdofs]; + + /// C-array storage for the element local AbtAtu matrix. + real64 localAbtAtu[numBdofs][numUdofs]; + + /// C-array storage for the element local AbtAtu matrix. + real64 localAutAtb[numUdofs][numBdofs]; + + /// Stack storage for the element local lagrange multiplier vector + real64 tLocal[numTdofs]; + + }; + + //*************************************************************************** + + //START_kernelLauncher + template< typename POLICY, + typename KERNEL_TYPE > + static + real64 + kernelLaunch( localIndex const numElems, + KERNEL_TYPE const & kernelComponent ) + { + return Base::template kernelLaunch< POLICY, KERNEL_TYPE >( numElems, kernelComponent ); + } + //END_kernelLauncher + + /** + * @brief Copy global values from primary field to a local stack array. + * @copydoc ::geos::finiteElement::InterfaceKernelBase::setup + */ + GEOS_HOST_DEVICE + inline + void setup( localIndex const k, + StackVariables & stack ) const + { + constexpr int shift = numNodesPerElem * 3; + + constexpr int numTdofs = 3; + + int permutation[numNodesPerElem]; + m_finiteElementSpace.getPermutation( permutation ); + + localIndex const kf0 = m_elemsToFaces[k][0]; + localIndex const kf1 = m_elemsToFaces[k][1]; + for( localIndex a=0; a( tractionNew, stack.tLocal, -1.0 ); + LvArray::tensorOps::Ri_add_AijBj< 3, 3 >( tractionNew, stack.localPenalty, dispJump ); + + // If normal tangential trial is positive (opening) + //if (tractionNew[ 0 ] < -zero) + //{ + // tractionNew[0] = 0.0; + // stack.localPenalty[0][0] = 0.0; + //} + + // transp(R) * Atu + LvArray::tensorOps::Rij_eq_AkiBkj< 3, numUdofs, 3 >( matRRtAtu, stack.localRotationMatrix, + stack.localAtu ); + // transp(R) * Atb + LvArray::tensorOps::Rij_eq_AkiBkj< 3, numBdofs, 3 >( matRRtAtb, stack.localRotationMatrix, + stack.localAtb ); + + // Compute the traction contribute of the local residuals + LvArray::tensorOps::Ri_eq_AjiBj< numUdofs, 3 >( tractionR, matRRtAtu, tractionNew ); + LvArray::tensorOps::Ri_eq_AjiBj< numBdofs, 3 >( tractionRb, matRRtAtb, tractionNew ); + + // D*RtAtu + LvArray::tensorOps::Rij_eq_AikBkj< 3, numUdofs, 3 >( matDRtAtu, stack.localPenalty, + matRRtAtu ); + // D*RtAtb + LvArray::tensorOps::Rij_eq_AikBkj< 3, numBdofs, 3 >( matDRtAtb, stack.localPenalty, + matRRtAtb ); + + // R*RtAtu + LvArray::tensorOps::Rij_eq_AikBkj< 3, numUdofs, 3 >( matRRtAtu, stack.localRotationMatrix, + matDRtAtu ); + // R*RtAtb + LvArray::tensorOps::Rij_eq_AikBkj< 3, numBdofs, 3 >( matRRtAtb, stack.localRotationMatrix, + matDRtAtb ); + + // transp(Atu)*RRtAtu + LvArray::tensorOps::Rij_eq_AkiBkj< numUdofs, numUdofs, 3 >( stack.localAutAtu, stack.localAtu, + matRRtAtu ); + // transp(Atb)*RRtAtb + LvArray::tensorOps::Rij_eq_AkiBkj< numBdofs, numBdofs, 3 >( stack.localAbtAtb, stack.localAtb, + matRRtAtb ); + + // transp(Atb)*RRtAtu + LvArray::tensorOps::Rij_eq_AkiBkj< numBdofs, numUdofs, 3 >( stack.localAbtAtu, stack.localAtb, + matRRtAtu ); + + // transp(Atu)*RRtAtb + LvArray::tensorOps::Rij_eq_AkiBkj< numUdofs, numBdofs, 3 >( stack.localAutAtb, stack.localAtu, + matRRtAtb ); + + // Compute the local residuals + LvArray::tensorOps::scaledAdd< numUdofs >( stack.localRu, tractionR, 1 ); + + LvArray::tensorOps::scaledAdd< numBdofs >( stack.localRb, tractionRb, 1 ); + + for( localIndex i=0; i < numUdofs; ++i ) + { + localIndex const dof = LvArray::integerConversion< localIndex >( stack.dispEqnRowIndices[ i ] ); + + if( dof < 0 || dof >= m_matrix.numRows() ) continue; + + // Is it necessary? Each row should be indepenedent + RAJA::atomicAdd< parallelDeviceAtomic >( &m_rhs[dof], stack.localRu[i] ); + + // Fill in matrix + m_matrix.template addToRowBinarySearchUnsorted< parallelDeviceAtomic >( dof, + stack.dispColIndices, + stack.localAutAtu[i], + numUdofs ); + + m_matrix.template addToRowBinarySearchUnsorted< parallelDeviceAtomic >( dof, + stack.bColIndices, + stack.localAutAtb[i], + numBdofs ); + } + + for( localIndex i=0; i < numBdofs; ++i ) + { + localIndex const dof = LvArray::integerConversion< localIndex >( stack.bEqnRowIndices[ i ] ); + + if( dof < 0 || dof >= m_matrix.numRows() ) continue; + + // Is it necessary? Each row should be indepenedent + RAJA::atomicAdd< parallelDeviceAtomic >( &m_rhs[dof], stack.localRb[i] ); + + // Fill in matrix + m_matrix.template addToRowBinarySearchUnsorted< parallelDeviceAtomic >( dof, + stack.bColIndices, + stack.localAbtAtb[i], + numBdofs ); + + m_matrix.template addToRowBinarySearchUnsorted< parallelDeviceAtomic >( dof, + stack.dispColIndices, + stack.localAbtAtu[i], + numUdofs ); + } + + return 0.0; + } + +protected: + + arrayView2d< real64 const > const m_traction; +}; + +/// The factory used to construct the kernel. +using ALMSimultaneousFactory = finiteElement::InterfaceKernelFactory< ALMSimultaneous, + arrayView1d< globalIndex const > const, + arrayView1d< globalIndex const > const, + globalIndex const, + CRSMatrixView< real64, globalIndex const > const, + arrayView1d< real64 > const, + real64 const, + arrayView1d< localIndex const > const >; + +/** + * @brief A struct to compute the traction after nonlinear solve + */ +struct ComputeTractionSimultaneousKernel +{ + + /** + * @brief Launch the kernel function to comute traction + * @tparam POLICY the type of policy used in the kernel launch + * @param[in] size the size of the subregion + * @param[in] penalty the array containing the tangential penalty matrix + * @param[in] traction the array containing the current traction + * @param[in] dispJump the array containing the displacement jump + * @param[in] deltaDispJump the array containing the delta displacement jump + * @param[out] tractionNew the array containing the new traction + */ + template< typename POLICY > + static void + launch( localIndex const size, + arrayView2d< real64 const > const & penalty, + arrayView2d< real64 const > const & traction, + arrayView2d< real64 const > const & dispJump, + arrayView2d< real64 const > const & deltaDispJump, + arrayView2d< real64 > const & tractionNew ) + { + + forAll< POLICY >( size, [=] GEOS_HOST_DEVICE ( localIndex const kfe ) + { + tractionNew[kfe][0] = traction[kfe][0] + penalty[kfe][0] * dispJump[kfe][0]; + tractionNew[kfe][1] = traction[kfe][1] + penalty[kfe][2] * deltaDispJump[kfe][1] + + penalty[kfe][4] * deltaDispJump[kfe][2]; + tractionNew[kfe][2] = traction[kfe][2] + penalty[kfe][3] * deltaDispJump[kfe][2] + + penalty[kfe][4] * deltaDispJump[kfe][1]; + } ); + } + +}; + +} // namespace SolidMechanicsALMKernels + +} // namespace geos + + +#endif /* GEOS_PHYSICSSOLVERS_CONTACT_SOLIDMECHANICSALMKERNELS_HPP_ */ diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsAugmentedLagrangianContact.cpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsAugmentedLagrangianContact.cpp index 5d7ba39a73b..c9e13392126 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsAugmentedLagrangianContact.cpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsAugmentedLagrangianContact.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,8 +21,13 @@ #include "SolidMechanicsAugmentedLagrangianContact.hpp" #include "physicsSolvers/contact/SolidMechanicsALMKernels.hpp" +#include "physicsSolvers/contact/SolidMechanicsALMSimultaneousKernels.hpp" #include "physicsSolvers/contact/SolidMechanicsALMJumpUpdateKernels.hpp" #include "physicsSolvers/contact/SolidMechanicsALMBubbleKernels.hpp" +#include "physicsSolvers/contact/LogLevelsInfo.hpp" + +#include "constitutive/ConstitutiveManager.hpp" +#include "constitutive/contact/FrictionSelector.hpp" namespace geos { @@ -39,6 +44,8 @@ SolidMechanicsAugmentedLagrangianContact::SolidMechanicsAugmentedLagrangianConta m_faceTypeToFiniteElements["Quadrilateral"] = std::make_unique< finiteElement::H1_QuadrilateralFace_Lagrange1_GaussLegendre2 >(); m_faceTypeToFiniteElements["Triangle"] = std::make_unique< finiteElement::H1_TriangleFace_Lagrange1_Gauss1 >(); + addLogLevel< logInfo::Configuration >(); + // TODO Implement the MGR strategy // Set the default linear solver parameters @@ -95,9 +102,9 @@ void SolidMechanicsAugmentedLagrangianContact::registerDataOnMesh( dataRepositor subRegion.registerField< contact::oldDispJump >( this->getName() ). reference().resizeDimension< 1 >( 3 ); - // Register the displacement jump - subRegion.registerField< contact::penalty >( this->getName() ). - reference().resizeDimension< 1 >( 2 ); + // Register the penalty coefficients for the iterative procedure + subRegion.registerField< contact::iterativePenalty >( this->getName() ). + reference().resizeDimension< 1 >( 5 ); subRegion.registerWrapper< array1d< real64 > >( viewKeyStruct::normalTractionToleranceString() ). setPlotLevel( PlotLevel::NOPLOT ). @@ -114,6 +121,12 @@ void SolidMechanicsAugmentedLagrangianContact::registerDataOnMesh( dataRepositor setRegisteringObjects( this->getName()). setDescription( "An array that holds the sliding tolerance." ); + subRegion.registerWrapper< array2d< real64 > >( viewKeyStruct::dispJumpUpdPenaltyString() ). + setPlotLevel( PlotLevel::NOPLOT ). + setRegisteringObjects( this->getName()). + setDescription( "An array that stores the displacement jumps used to update the penalty coefficients." ). + reference().resizeDimension< 1 >( 3 ); + } ); } ); @@ -147,14 +160,6 @@ void SolidMechanicsAugmentedLagrangianContact::setupDofs( DomainPartition const solidMechanics::totalBubbleDisplacement::key(), DofManager::Connector::Elem ); - // The dofManager can not create the connection due to the coupling - // between totalDisplacement and totalBubbleDisplacement - // These connection are created using the two functions - // addCouplingNumNonzeros and addCouplingSparsityPattern - // dofManager.addCoupling( solidMechanics::totalDisplacement::key(), - // solidMechanics::totalBubbleDisplacement::key(), - // DofManager::Connector::Elem); - } void SolidMechanicsAugmentedLagrangianContact::setupSystem( DomainPartition & domain, @@ -168,9 +173,12 @@ void SolidMechanicsAugmentedLagrangianContact::setupSystem( DomainPartition & do GEOS_MARK_FUNCTION; GEOS_UNUSED_VAR( setSparsity ); - // Create the list of interface elements that have same type. + // Create the lists of interface elements that have same type. createFaceTypeList( domain ); + // Create the lists of interface elements that have same type and same fracture state. + updateStickSlipList( domain ); + // Create the list of cell elements that they are enriched with bubble functions. createBubbleCellList( domain ); @@ -236,9 +244,12 @@ void SolidMechanicsAugmentedLagrangianContact::implicitStepSetup( real64 const & SurfaceElementRegion & region = elemManager.getRegion< SurfaceElementRegion >( getUniqueFractureRegionName() ); FaceElementSubRegion & subRegion = region.getUniqueSubRegion< FaceElementSubRegion >(); - arrayView2d< real64 const > const & faceNormal = faceManager.faceNormal(); + arrayView2d< real64 const > const faceNormal = faceManager.faceNormal(); ArrayOfArraysView< localIndex const > const elemsToFaces = subRegion.faceList().toViewConst(); + arrayView2d< real64 > const incrBubbleDisp = + faceManager.getField< fields::solidMechanics::incrementalBubbleDisplacement >(); + arrayView3d< real64 > const rotationMatrix = subRegion.getField< fields::contact::rotationMatrix >().toView(); @@ -249,21 +260,67 @@ void SolidMechanicsAugmentedLagrangianContact::implicitStepSetup( real64 const & elemsToFaces, rotationMatrix ); + // Set the tollerances + computeTolerances( domain ); + + // Set array to update penalty coefficients + arrayView2d< real64 > const dispJumpUpdPenalty = + subRegion.getReference< array2d< real64 > >( viewKeyStruct::dispJumpUpdPenaltyString() ); + arrayView2d< real64 > const - penalty = subRegion.getField< fields::contact::penalty >().toView(); + iterativePenalty = subRegion.getField< fields::contact::iterativePenalty >().toView(); + arrayView1d< integer const > const fractureState = subRegion.getField< contact::fractureState >(); - // Set the penalty coefficients - // TODO: This is only temporary. The setting of penalty will be adaptive in the final version. - forAll< parallelDevicePolicy<> >( subRegion.size(), [=] GEOS_HOST_DEVICE ( localIndex const k ) + if( m_simultaneous ) { - penalty[k] [0] = 1.e+7; - penalty[k] [1] = 1.e+7; + // Set the iterative penalty coefficients + forAll< parallelDevicePolicy<> >( subRegion.size(), + [=] + GEOS_HOST_DEVICE ( localIndex const k ) + { + if( fractureState[k] == contact::FractureState::Stick ) + { + iterativePenalty[k][2] = iterativePenalty[k][1]; + iterativePenalty[k][3] = iterativePenalty[k][1]; + iterativePenalty[k][4] = 0.0; + } + else + { + iterativePenalty[k][2] = 0.0; + iterativePenalty[k][3] = 0.0; + iterativePenalty[k][4] = 0.0; + } + } ); + } + + forAll< parallelDevicePolicy<> >( subRegion.size(), + [ = ] + GEOS_HOST_DEVICE ( localIndex const k ) + { + LvArray::tensorOps::fill< 3 >( dispJumpUpdPenalty[k], 0.0 ); + localIndex const kf0 = elemsToFaces[k][0]; + localIndex const kf1 = elemsToFaces[k][1]; + LvArray::tensorOps::fill< 3 >( incrBubbleDisp[kf0], 0.0 ); + LvArray::tensorOps::fill< 3 >( incrBubbleDisp[kf1], 0.0 ); } ); + } ); + + // Sync iterativePenalty + forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, + MeshLevel & mesh, + arrayView1d< string const > const & ) + { + FieldIdentifiers fieldsToBeSync; + + fieldsToBeSync.addElementFields( { contact::iterativePenalty::key() }, + { getUniqueFractureRegionName() } ); + CommunicationTools::getInstance().synchronizeFields( fieldsToBeSync, + mesh, + domain.getNeighbors(), + true ); } ); - // Set the tollerances - computeTolerances( domain ); } void SolidMechanicsAugmentedLagrangianContact::assembleSystem( real64 const time, @@ -288,7 +345,6 @@ void SolidMechanicsAugmentedLagrangianContact::assembleSystem( real64 const time //ParallelMatrix parallel_matrix; //parallel_matrix.create( localMatrix.toViewConst(), dofManager.numLocalDofs(), MPI_COMM_GEOS ); //parallel_matrix.write("mech.mtx"); - //abort(); // Loop for assembling contributes from interface elements (Aut*eps^-1*Atu and Aub*eps^-1*Abu) forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const & meshName, @@ -308,31 +364,113 @@ void SolidMechanicsAugmentedLagrangianContact::assembleSystem( real64 const time string const & fractureRegionName = this->getUniqueFractureRegionName(); - forFiniteElementOnFractureSubRegions( meshName, [&] ( string const & finiteElementName, - arrayView1d< localIndex const > const & faceElementList ) + forFiniteElementOnStickFractureSubRegions( meshName, [&] ( string const &, + finiteElement::FiniteElementBase const & subRegionFE, + arrayView1d< localIndex const > const & faceElementList, + bool const ) { - finiteElement::FiniteElementBase & subRegionFE = *(m_faceTypeToFiniteElements[finiteElementName]); + if( m_simultaneous ) + { + solidMechanicsALMKernels::ALMSimultaneousFactory kernelFactory( dispDofNumber, + bubbleDofNumber, + dofManager.rankOffset(), + localMatrix, + localRhs, + dt, + faceElementList ); + + real64 maxTraction = finiteElement:: + interfaceBasedKernelApplication + < parallelDevicePolicy< >, + constitutive::CoulombFriction >( mesh, + fractureRegionName, + faceElementList, + subRegionFE, + viewKeyStruct::frictionLawNameString(), + kernelFactory ); + + GEOS_UNUSED_VAR( maxTraction ); - solidMechanicsALMKernels::ALMFactory kernelFactory( dispDofNumber, - bubbleDofNumber, - dofManager.rankOffset(), - localMatrix, - localRhs, - dt, - faceElementList ); + } + else + { + solidMechanicsALMKernels::ALMFactory kernelFactory( dispDofNumber, + bubbleDofNumber, + dofManager.rankOffset(), + localMatrix, + localRhs, + dt, + faceElementList, + m_symmetric ); + + real64 maxTraction = finiteElement:: + interfaceBasedKernelApplication + < parallelDevicePolicy< >, + constitutive::CoulombFriction >( mesh, + fractureRegionName, + faceElementList, + subRegionFE, + viewKeyStruct::frictionLawNameString(), + kernelFactory ); + + GEOS_UNUSED_VAR( maxTraction ); + } - real64 maxTraction = finiteElement:: - interfaceBasedKernelApplication - < parallelDevicePolicy< >, - constitutive::NullModel >( mesh, - fractureRegionName, - faceElementList, - subRegionFE, - "", - kernelFactory ); + } ); - GEOS_UNUSED_VAR( maxTraction ); + forFiniteElementOnSlipFractureSubRegions( meshName, [&] ( string const &, + finiteElement::FiniteElementBase const & subRegionFE, + arrayView1d< localIndex const > const & faceElementList, + bool const ) + { + + if( m_simultaneous ) + { + solidMechanicsALMKernels::ALMSimultaneousFactory kernelFactory( dispDofNumber, + bubbleDofNumber, + dofManager.rankOffset(), + localMatrix, + localRhs, + dt, + faceElementList ); + + real64 maxTraction = finiteElement:: + interfaceBasedKernelApplication + < parallelDevicePolicy< >, + constitutive::CoulombFriction >( mesh, + fractureRegionName, + faceElementList, + subRegionFE, + viewKeyStruct::frictionLawNameString(), + kernelFactory ); + + GEOS_UNUSED_VAR( maxTraction ); + + } + else + { + solidMechanicsALMKernels::ALMFactory kernelFactory( dispDofNumber, + bubbleDofNumber, + dofManager.rankOffset(), + localMatrix, + localRhs, + dt, + faceElementList, + m_symmetric ); + + real64 maxTraction = finiteElement:: + interfaceBasedKernelApplication + < parallelDevicePolicy< >, + constitutive::CoulombFriction >( mesh, + fractureRegionName, + faceElementList, + subRegionFE, + viewKeyStruct::frictionLawNameString(), + kernelFactory ); + + GEOS_UNUSED_VAR( maxTraction ); + } } ); @@ -384,7 +522,6 @@ void SolidMechanicsAugmentedLagrangianContact::implicitStepComplete( real64 cons DomainPartition & domain ) { - SolidMechanicsLagrangianFEM::implicitStepComplete( time_n, dt, domain ); forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, @@ -399,10 +536,16 @@ void SolidMechanicsAugmentedLagrangianContact::implicitStepComplete( real64 cons arrayView2d< real64 > const oldDispJump = subRegion.getField< contact::oldDispJump >(); arrayView2d< real64 > const deltaDispJump = subRegion.getField< contact::deltaDispJump >(); - forAll< parallelDevicePolicy<> >( subRegion.size(), [=] GEOS_HOST_DEVICE ( localIndex const kfe ) + arrayView1d< integer const > const fractureState = subRegion.getField< contact::fractureState >(); + arrayView1d< integer > const oldFractureState = subRegion.getField< contact::oldFractureState >(); + + forAll< parallelDevicePolicy<> >( subRegion.size(), + [ = ] + GEOS_HOST_DEVICE ( localIndex const kfe ) { LvArray::tensorOps::fill< 3 >( deltaDispJump[kfe], 0.0 ); LvArray::tensorOps::copy< 3 >( oldDispJump[kfe], dispJump[kfe] ); + oldFractureState[kfe] = fractureState[kfe]; } ); } ); @@ -441,13 +584,15 @@ real64 SolidMechanicsAugmentedLagrangianContact::calculateResidualNorm( real64 c SurfaceElementRegion const & region = elemManager.getRegion< SurfaceElementRegion >( getUniqueFractureRegionName() ); FaceElementSubRegion const & subRegion = region.getUniqueSubRegion< FaceElementSubRegion >(); - arrayView1d< integer const > const & ghostRank = subRegion.ghostRank(); + arrayView1d< integer const > const ghostRank = subRegion.ghostRank(); ArrayOfArraysView< localIndex const > const elemsToFaces = subRegion.faceList().toViewConst(); arrayView1d< globalIndex const > const bubbleDofNumber = faceManager.getReference< globalIndex_array >( bubbleDofKey ); - forAll< parallelDevicePolicy<> >( subRegion.size(), [ elemsToFaces, localRhs, localSum, bubbleDofNumber, rankOffset, ghostRank] GEOS_HOST_DEVICE ( localIndex const kfe ) + forAll< parallelDevicePolicy<> >( subRegion.size(), + [ = ] + GEOS_HOST_DEVICE ( localIndex const kfe ) { if( ghostRank[kfe] < 0 ) @@ -550,12 +695,11 @@ void SolidMechanicsAugmentedLagrangianContact::applySystemSolution( DofManager c CRSMatrix< real64, globalIndex > const voidMatrix; array1d< real64 > const voidRhs; - forFiniteElementOnFractureSubRegions( meshName, [&] ( string const & finiteElementName, + forFiniteElementOnFractureSubRegions( meshName, [&] ( string const &, + finiteElement::FiniteElementBase const & subRegionFE, arrayView1d< localIndex const > const & faceElementList ) { - finiteElement::FiniteElementBase & subRegionFE = *(m_faceTypeToFiniteElements[finiteElementName]); - solidMechanicsALMKernels::ALMJumpUpdateFactory kernelFactory( dispDofNumber, bubbleDofNumber, dofManager.rankOffset(), @@ -611,10 +755,9 @@ bool SolidMechanicsAugmentedLagrangianContact::updateConfiguration( DomainPartit { GEOS_MARK_FUNCTION; - int hasConfigurationConverged = true; - int condConv = true; - // TODO: This function's design is temporary and intended solely for testing the stick mode. - // In the final version the parallelHostPolicy will be substitute with the parallelDevicePolicy<>. + array1d< int > condConv; + localIndex globalCondConv[5] = {0, 0, 0, 0, 0}; + array2d< real64 > traction_new; forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, @@ -627,12 +770,16 @@ bool SolidMechanicsAugmentedLagrangianContact::updateConfiguration( DomainPartit FaceElementSubRegion & subRegion ) { - arrayView1d< integer const > const & ghostRank = subRegion.ghostRank(); + string const & frictionLawName = subRegion.template getReference< string >( viewKeyStruct::frictionLawNameString() ); + FrictionBase const & frictionLaw = getConstitutiveModel< FrictionBase >( subRegion, frictionLawName ); + + arrayView1d< integer const > const ghostRank = subRegion.ghostRank(); arrayView2d< real64 const > const traction = subRegion.getField< contact::traction >(); arrayView2d< real64 const > const dispJump = subRegion.getField< contact::dispJump >(); arrayView2d< real64 const > const deltaDispJump = subRegion.getField< contact::deltaDispJump >(); - arrayView2d< real64 const > const penalty = subRegion.getField< contact::penalty >(); + arrayView2d< real64 const > const iterativePenalty = subRegion.getField< contact::iterativePenalty >(); + arrayView1d< integer const > const fractureState = subRegion.getField< contact::fractureState >(); arrayView1d< real64 const > const normalDisplacementTolerance = subRegion.getReference< array1d< real64 > >( viewKeyStruct::normalDisplacementToleranceString() ); @@ -641,95 +788,317 @@ bool SolidMechanicsAugmentedLagrangianContact::updateConfiguration( DomainPartit arrayView1d< real64 const > const & normalTractionTolerance = subRegion.getReference< array1d< real64 > >( viewKeyStruct::normalTractionToleranceString() ); + arrayView1d< real64 const > const area = subRegion.getElementArea().toViewConst(); + std::ptrdiff_t const sizes[ 2 ] = {subRegion.size(), 3}; traction_new.resize( 2, sizes ); arrayView2d< real64 > const traction_new_v = traction_new.toView(); - // TODO: Create a Kernel to update Traction - forAll< parallelHostPolicy >( subRegion.size(), - [ traction_new_v, traction, penalty, dispJump, deltaDispJump ] ( localIndex const kfe ) + condConv.resize( subRegion.size()); + arrayView1d< int > const condConv_v = condConv.toView(); + + // Update the traction field based on the displacement results from the nonlinear solve + constitutiveUpdatePassThru( frictionLaw, [&] ( auto & castedFrictionLaw ) { - real64 eps_N = penalty[kfe][0]; - real64 eps_T = penalty[kfe][1]; - traction_new_v[kfe][0] = traction[kfe][0] + eps_N * dispJump[kfe][0]; - traction_new_v[kfe][1] = traction[kfe][1] + eps_T * deltaDispJump[kfe][1]; - traction_new_v[kfe][2] = traction[kfe][2] + eps_T * deltaDispJump[kfe][2]; + using FrictionType = TYPEOFREF( castedFrictionLaw ); + typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelUpdates(); + + if( m_simultaneous ) + { + solidMechanicsALMKernels::ComputeTractionSimultaneousKernel:: + launch< parallelDevicePolicy<> >( subRegion.size(), + iterativePenalty, + traction, + dispJump, + deltaDispJump, + traction_new_v ); + } + else + { + solidMechanicsALMKernels::ComputeTractionKernel:: + launch< parallelDevicePolicy<> >( subRegion.size(), + frictionWrapper, + iterativePenalty, + traction, + dispJump, + deltaDispJump, + traction_new_v ); + } + } ); + + real64 const slidingCheckTolerance = m_slidingCheckTolerance; + + constitutiveUpdatePassThru( frictionLaw, [&] ( auto & castedFrictionLaw ) + { + using FrictionType = TYPEOFREF( castedFrictionLaw ); + typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelUpdates(); + + solidMechanicsALMKernels::ConstraintCheckKernel:: + launch< parallelDevicePolicy<> >( subRegion.size(), + frictionWrapper, + ghostRank, + traction_new_v, + dispJump, + deltaDispJump, + normalTractionTolerance, + normalDisplacementTolerance, + slidingTolerance, + slidingCheckTolerance, + area, + fractureState, + condConv_v ); } ); - forAll< parallelHostPolicy >( subRegion.size(), - [ &condConv, ghostRank, traction_new_v, normalTractionTolerance, normalDisplacementTolerance, slidingTolerance, deltaDispJump, dispJump ] ( localIndex const kfe ) + RAJA::ReduceSum< parallelDeviceReduce, localIndex > localSum[5] = + { RAJA::ReduceSum< parallelDeviceReduce, localIndex >( 0 ), + RAJA::ReduceSum< parallelDeviceReduce, localIndex >( 0 ), + RAJA::ReduceSum< parallelDeviceReduce, localIndex >( 0 ), + RAJA::ReduceSum< parallelDeviceReduce, localIndex >( 0 ), + RAJA::ReduceSum< parallelDeviceReduce, localIndex >( 0 ) }; + forAll< parallelDevicePolicy<> >( subRegion.size(), [ = ] GEOS_HOST_DEVICE ( localIndex const kfe ) { if( ghostRank[kfe] < 0 ) { - if( traction_new_v[kfe][0] >= normalTractionTolerance[kfe] ) - { - GEOS_ERROR( "Unsuported open mode! Only stick mode is supported with ALM" ); - } - else + localSum[condConv_v[kfe]] += 1; + } + } ); + + localIndex const localConvCond[5] = { static_cast< localIndex >( localSum[0].get()), + static_cast< localIndex >( localSum[1].get()), + static_cast< localIndex >( localSum[2].get()), + static_cast< localIndex >( localSum[3].get()), + static_cast< localIndex >( localSum[4].get()) }; + + int const rank = MpiWrapper::commRank( MPI_COMM_GEOS ); + int const numRanks = MpiWrapper::commSize( MPI_COMM_GEOS ); + array1d< localIndex > globalValues( numRanks * 5 ); + + // Everything is done on rank 0 + MpiWrapper::gather( localConvCond, + 5, + globalValues.data(), + 5, + 0, + MPI_COMM_GEOS ); + + if( rank==0 ) + { + for( int r=0; r normalDisplacementTolerance[kfe] ) - { - //GEOS_LOG_LEVEL(2, - //GEOS_FMT( " Element: {}, Stick mode and g_n > tol1 => compenetration, g_n: {:4.2e} tol1: {:4.2e}", - //kfe,std::abs(dispJump[kfe][0]), normalDisplacementTolerance[kfe] )) - condConv = false; - } - if( deltaDisp > slidingTolerance[kfe] ) - { - //GEOS_LOG_LEVEL(2, - //GEOS_FMT( " Element: {}, Stick and dg_t > tol2, dg_t: {:4.2e} tol2: {:4.2e}", - //kfe, deltaDisp, slidingTolerance[kfe] )) - condConv = false; - } + globalCondConv[i] += globalValues[r*5+i]; } } - } ); + } + + MpiWrapper::bcast( globalCondConv, 5, 0, MPI_COMM_GEOS ); } ); } ); - forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, - MeshLevel & mesh, - arrayView1d< string const > const & regionNames ) + localIndex totCondNotConv = 0; + for( int i=0; i<4; ++i ) { - ElementRegionManager & elemManager = mesh.getElemManager(); + totCondNotConv+=globalCondConv[i+1]; + } - elemManager.forElementSubRegions< FaceElementSubRegion >( regionNames, [&]( localIndex const, - FaceElementSubRegion & subRegion ) + int hasConfigurationConvergedGlobally = (totCondNotConv == 0) ? true : false; + + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, + GEOS_FMT( " ALM convergence summary:" + " converged: {:6} | stick & gn>0: {:6} | compenetration: {:6} | stick & gt>lim: {:6} | tau>tauLim: {:6}\n", + globalCondConv[0], globalCondConv[1], globalCondConv[2], + globalCondConv[3], globalCondConv[4] )); + + if( hasConfigurationConvergedGlobally ) + { + + forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, + MeshLevel & mesh, + arrayView1d< string const > const & regionNames ) { + ElementRegionManager & elemManager = mesh.getElemManager(); - arrayView2d< real64 > const traction_new_v = traction_new.toView(); - arrayView2d< real64 > const traction = subRegion.getField< contact::traction >(); - forAll< parallelHostPolicy >( subRegion.size(), [ traction, traction_new_v ] ( localIndex const kfe ) + elemManager.forElementSubRegions< FaceElementSubRegion >( regionNames, [&]( localIndex const, + FaceElementSubRegion & subRegion ) { - traction[kfe][0] = traction_new_v( kfe, 0 ); - traction[kfe][1] = traction_new_v( kfe, 1 ); - traction[kfe][2] = traction_new_v( kfe, 2 ); + + arrayView2d< real64 > const traction_new_v = traction_new.toView(); + arrayView2d< real64 > const traction = subRegion.getField< contact::traction >(); + + forAll< parallelDevicePolicy<> >( subRegion.size(), [ = ] GEOS_HOST_DEVICE ( localIndex const kfe ) + { + LvArray::tensorOps::copy< 3 >( traction[kfe], traction_new_v[kfe] ); + } ); } ); } ); - } ); - - if( !condConv ) + } + else { - hasConfigurationConverged = false; + forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, + MeshLevel & mesh, + arrayView1d< string const > const & regionNames ) + { + ElementRegionManager & elemManager = mesh.getElemManager(); + + elemManager.forElementSubRegions< FaceElementSubRegion >( regionNames, [&]( localIndex const, + FaceElementSubRegion & subRegion ) + { + + string const & frictionLawName = subRegion.template getReference< string >( viewKeyStruct::frictionLawNameString() ); + FrictionBase const & frictionLaw = getConstitutiveModel< FrictionBase >( subRegion, frictionLawName ); + + arrayView2d< real64 > const traction = subRegion.getField< contact::traction >(); + + arrayView1d< real64 const > const normalTractionTolerance = + subRegion.getReference< array1d< real64 > >( viewKeyStruct::normalTractionToleranceString() ); + + arrayView2d< real64 > const iterativePenalty = subRegion.getField< fields::contact::iterativePenalty >().toView(); + + arrayView2d< real64 > const dispJumpUpdPenalty = + subRegion.getReference< array2d< real64 > >( viewKeyStruct::dispJumpUpdPenaltyString() ); + + arrayView1d< integer > const fractureState = subRegion.getField< contact::fractureState >(); + + arrayView2d< real64 const > const dispJump = subRegion.getField< contact::dispJump >(); + + arrayView2d< real64 const > const oldDispJump = subRegion.getField< contact::oldDispJump >(); + + arrayView2d< real64 const > const deltaDispJump = subRegion.getField< contact::deltaDispJump >(); + + constitutiveUpdatePassThru( frictionLaw, [&] ( auto & castedFrictionLaw ) + { + using FrictionType = TYPEOFREF( castedFrictionLaw ); + typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelUpdates(); + + solidMechanicsALMKernels::UpdateStateKernel:: + launch< parallelDevicePolicy<> >( subRegion.size(), + frictionWrapper, + oldDispJump, + dispJump, + iterativePenalty, + m_symmetric, + normalTractionTolerance, + traction, + fractureState ); + } ); + + forAll< parallelDevicePolicy<> >( subRegion.size(), [ = ] + GEOS_HOST_DEVICE ( localIndex const kfe ) + { + dispJumpUpdPenalty[kfe][0] = dispJump[kfe][0]; + dispJumpUpdPenalty[kfe][1] = deltaDispJump[kfe][1]; + dispJumpUpdPenalty[kfe][2] = deltaDispJump[kfe][2]; + } ); + } ); + } ); } // Need to synchronize the fracture state due to the use will be made of in AssemblyStabilization synchronizeFractureState( domain ); - // Compute if globally the fracture state has changed - int hasConfigurationConvergedGlobally; - MpiWrapper::allReduce( &hasConfigurationConverged, - &hasConfigurationConvergedGlobally, - 1, - MPI_LAND, - MPI_COMM_GEOS ); + // Update lists of stick and slip elements + if( !hasConfigurationConvergedGlobally ) + { + updateStickSlipList( domain ); + } return hasConfigurationConvergedGlobally; } +void SolidMechanicsAugmentedLagrangianContact::updateStickSlipList( DomainPartition const & domain ) +{ + + forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const & meshName, + MeshLevel const & mesh, + arrayView1d< string const > const & ) + + { + + ElementRegionManager const & elemManager = mesh.getElemManager(); + SurfaceElementRegion const & region = elemManager.getRegion< SurfaceElementRegion >( getUniqueFractureRegionName() ); + FaceElementSubRegion const & subRegion = region.getUniqueSubRegion< FaceElementSubRegion >(); + + arrayView1d< integer const > const fractureState = subRegion.getField< contact::fractureState >(); + + forFiniteElementOnFractureSubRegions( meshName, [&] ( string const & finiteElementName, + finiteElement::FiniteElementBase const &, + arrayView1d< localIndex const > const & faceElementList ) + { + + array1d< localIndex > keys( subRegion.size()); + array1d< localIndex > vals( subRegion.size()); + array1d< localIndex > stickList; + array1d< localIndex > slipList; + RAJA::ReduceSum< ReducePolicy< parallelDevicePolicy<> >, localIndex > nStick_r( 0 ); + RAJA::ReduceSum< ReducePolicy< parallelDevicePolicy<> >, localIndex > nSlip_r( 0 ); + + arrayView1d< localIndex > const keys_v = keys.toView(); + arrayView1d< localIndex > const vals_v = vals.toView(); + forAll< parallelDevicePolicy<> >( faceElementList.size(), + [ = ] + GEOS_HOST_DEVICE ( localIndex const kfe ) + { + + localIndex const faceIndex = faceElementList[kfe]; + if( fractureState[faceIndex] == contact::FractureState::Stick ) + { + keys_v[kfe]=0; + vals_v[kfe]=faceIndex; + nStick_r += 1; + } + else if(( fractureState[faceIndex] == contact::FractureState::Slip ) || + (fractureState[faceIndex] == contact::FractureState::NewSlip)) + { + keys_v[kfe]=1; + vals_v[kfe]=faceIndex; + nSlip_r += 1; + } + else + { + keys_v[kfe] = 2; + } + + } ); + + localIndex nStick = static_cast< localIndex >(nStick_r.get()); + localIndex nSlip = static_cast< localIndex >(nSlip_r.get()); + + // Sort vals according to keys to ensure that + // elements of the same type are adjacent in the vals list. + // This arrangement allows for efficient copying into the container + // by leveraging parallelism. + RAJA::sort_pairs< parallelDevicePolicy<> >( keys_v, vals_v ); + + stickList.resize( nStick ); + slipList.resize( nSlip ); + arrayView1d< localIndex > const stickList_v = stickList.toView(); + arrayView1d< localIndex > const slipList_v = slipList.toView(); + + forAll< parallelDevicePolicy<> >( nStick, [ = ] + GEOS_HOST_DEVICE ( localIndex const kfe ) + { + stickList_v[kfe] = vals_v[kfe]; + } ); + + forAll< parallelDevicePolicy<> >( nSlip, [ = ] + GEOS_HOST_DEVICE ( localIndex const kfe ) + { + slipList_v[kfe] = vals_v[nStick+kfe]; + } ); + + this->m_faceTypesToFaceElementsStick[meshName][finiteElementName] = stickList; + this->m_faceTypesToFaceElementsSlip[meshName][finiteElementName] = slipList; + + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Configuration, GEOS_FMT( "# stick elements: {}, # slip elements: {}", nStick, nSlip )) + } ); + } ); + +} + void SolidMechanicsAugmentedLagrangianContact::createFaceTypeList( DomainPartition const & domain ) { @@ -756,7 +1125,8 @@ void SolidMechanicsAugmentedLagrangianContact::createFaceTypeList( DomainPartiti arrayView1d< localIndex > const vals_v = vals.toView(); // Determine the size of the lists and generate the vector keys and vals for parallel indexing into lists. // (With RAJA, parallelizing this operation seems the most viable approach.) - forAll< parallelDevicePolicy<> >( subRegion.size(), [ nTri_r, nQuad_r, faceToNodeMap, keys_v, vals_v ] GEOS_HOST_DEVICE ( localIndex const kfe ) + forAll< parallelDevicePolicy<> >( subRegion.size(), + [ = ] GEOS_HOST_DEVICE ( localIndex const kfe ) { localIndex const numNodesPerFace = faceToNodeMap.sizeOfArray( kfe ); @@ -792,12 +1162,12 @@ void SolidMechanicsAugmentedLagrangianContact::createFaceTypeList( DomainPartiti arrayView1d< localIndex > const quadList_v = quadList.toView(); arrayView1d< localIndex > const triList_v = triList.toView(); - forAll< parallelDevicePolicy<> >( nTri, [triList_v, vals_v] GEOS_HOST_DEVICE ( localIndex const kfe ) + forAll< parallelDevicePolicy<> >( nTri, [ = ] GEOS_HOST_DEVICE ( localIndex const kfe ) { triList_v[kfe] = vals_v[kfe]; } ); - forAll< parallelDevicePolicy<> >( nQuad, [quadList_v, vals_v, nTri] GEOS_HOST_DEVICE ( localIndex const kfe ) + forAll< parallelDevicePolicy<> >( nQuad, [ = ] GEOS_HOST_DEVICE ( localIndex const kfe ) { quadList_v[kfe] = vals_v[nTri+kfe]; } ); @@ -819,6 +1189,7 @@ void SolidMechanicsAugmentedLagrangianContact::createBubbleCellList( DomainParti SurfaceElementRegion const & region = elemManager.getRegion< SurfaceElementRegion >( getUniqueFractureRegionName() ); FaceElementSubRegion const & subRegion = region.getUniqueSubRegion< FaceElementSubRegion >(); + // Array to store face indexes array1d< localIndex > tmpSpace( 2*subRegion.size()); SortedArray< localIndex > faceIdList; @@ -827,7 +1198,7 @@ void SolidMechanicsAugmentedLagrangianContact::createBubbleCellList( DomainParti { ArrayOfArraysView< localIndex const > const elemsToFaces = subRegion.faceList().toViewConst(); - forAll< parallelDevicePolicy<> >( subRegion.size(), [ tmpSpace_v, elemsToFaces ] GEOS_HOST_DEVICE ( localIndex const kfe ) + forAll< parallelDevicePolicy<> >( subRegion.size(), [ = ] GEOS_HOST_DEVICE ( localIndex const kfe ) { localIndex const kf0 = elemsToFaces[kfe][0], kf1 = elemsToFaces[kfe][1]; @@ -862,7 +1233,7 @@ void SolidMechanicsAugmentedLagrangianContact::createBubbleCellList( DomainParti SortedArrayView< localIndex const > const faceIdList_v = faceIdList.toViewConst(); forAll< parallelDevicePolicy<> >( cellElementSubRegion.size(), - [ keys_v, vals_v, perms_v, localFaceIds_v, nBubElems_r, elemsToFaces, faceIdList_v ] + [ = ] GEOS_HOST_DEVICE ( localIndex const kfe ) { for( int i=0; i < elemsToFaces.size( 1 ); ++i ) @@ -896,18 +1267,18 @@ void SolidMechanicsAugmentedLagrangianContact::createBubbleCellList( DomainParti arrayView1d< localIndex > const bubbleElemsList_v = bubbleElemsList.toView(); - forAll< parallelDevicePolicy<> >( n_max, [ keys_v, vals_v, perms_v ] GEOS_HOST_DEVICE ( localIndex const k ) + forAll< parallelDevicePolicy<> >( n_max, [ = ] GEOS_HOST_DEVICE ( localIndex const k ) { keys_v[k] = vals_v[perms_v[k]]; } ); - forAll< parallelDevicePolicy<> >( nBubElems, [ bubbleElemsList_v, keys_v ] GEOS_HOST_DEVICE ( localIndex const k ) + forAll< parallelDevicePolicy<> >( nBubElems, [ = ] GEOS_HOST_DEVICE ( localIndex const k ) { bubbleElemsList_v[k] = keys_v[k]; } ); cellElementSubRegion.setBubbleElementsList( bubbleElemsList.toViewConst()); - forAll< parallelDevicePolicy<> >( n_max, [ keys_v, localFaceIds_v, perms_v ] GEOS_HOST_DEVICE ( localIndex const k ) + forAll< parallelDevicePolicy<> >( n_max, [ = ] GEOS_HOST_DEVICE ( localIndex const k ) { keys_v[k] = localFaceIds_v[perms_v[k]]; } ); @@ -918,7 +1289,7 @@ void SolidMechanicsAugmentedLagrangianContact::createBubbleCellList( DomainParti arrayView2d< localIndex > const faceElemsList_v = faceElemsList.toView(); forAll< parallelDevicePolicy<> >( nBubElems, - [ faceElemsList_v, keys_v, elemsToFaces, bubbleElemsList_v ] + [ = ] GEOS_HOST_DEVICE ( localIndex const k ) { localIndex const kfe = bubbleElemsList_v[k]; @@ -1193,7 +1564,6 @@ void SolidMechanicsAugmentedLagrangianContact::addCouplingSparsityPattern( Domai } -// TODO: Is it possible to define this method once? Similar to SolidMechanicsLagrangeContact void SolidMechanicsAugmentedLagrangianContact::computeTolerances( DomainPartition & domain ) const { GEOS_MARK_FUNCTION; @@ -1208,16 +1578,16 @@ void SolidMechanicsAugmentedLagrangianContact::computeTolerances( DomainPartitio // Get the "face to element" map (valid for the entire mesh) FaceManager::ElemMapType const & faceToElem = faceManager.toElementRelation(); - arrayView2d< localIndex const > const & faceToElemRegion = faceToElem.m_toElementRegion; - arrayView2d< localIndex const > const & faceToElemSubRegion = faceToElem.m_toElementSubRegion; - arrayView2d< localIndex const > const & faceToElemIndex = faceToElem.m_toElementIndex; + arrayView2d< localIndex const > const faceToElemRegion = faceToElem.m_toElementRegion; + arrayView2d< localIndex const > const faceToElemSubRegion = faceToElem.m_toElementSubRegion; + arrayView2d< localIndex const > const faceToElemIndex = faceToElem.m_toElementIndex; // Get the volume for all elements ElementRegionManager::ElementViewAccessor< arrayView1d< real64 const > > const elemVolume = elemManager.constructViewAccessor< array1d< real64 >, arrayView1d< real64 const > >( ElementSubRegionBase::viewKeyStruct::elementVolumeString() ); // Get the coordinates for all nodes - arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const & nodePosition = nodeManager.referencePosition(); + arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const nodePosition = nodeManager.referencePosition(); // Bulk modulus accessor ElementRegionManager::ElementViewAccessor< arrayView1d< real64 const > > const bulkModulus = @@ -1235,20 +1605,25 @@ void SolidMechanicsAugmentedLagrangianContact::computeTolerances( DomainPartitio { if( subRegion.hasField< contact::traction >() ) { - arrayView1d< integer const > const & ghostRank = subRegion.ghostRank(); - arrayView1d< real64 const > const & faceArea = subRegion.getElementArea().toViewConst(); - arrayView3d< real64 const > const & faceRotationMatrix = subRegion.getField< fields::contact::rotationMatrix >().toView(); - ArrayOfArraysView< localIndex const > const & elemsToFaces = subRegion.faceList().toViewConst(); + arrayView1d< real64 const > const faceArea = subRegion.getElementArea().toViewConst(); + arrayView3d< real64 const > const faceRotationMatrix = subRegion.getField< fields::contact::rotationMatrix >().toView(); + ArrayOfArraysView< localIndex const > const elemsToFaces = subRegion.faceList().toViewConst(); - arrayView1d< real64 > const & normalTractionTolerance = + arrayView1d< real64 > const normalTractionTolerance = subRegion.getReference< array1d< real64 > >( viewKeyStruct::normalTractionToleranceString() ); - arrayView1d< real64 > const & normalDisplacementTolerance = + arrayView1d< real64 > const normalDisplacementTolerance = subRegion.getReference< array1d< real64 > >( viewKeyStruct::normalDisplacementToleranceString() ); - arrayView1d< real64 > const & slidingTolerance = + arrayView1d< real64 > const slidingTolerance = subRegion.getReference< array1d< real64 > >( viewKeyStruct::slidingToleranceString() ); + arrayView2d< real64 > const + iterativePenalty = subRegion.getField< fields::contact::iterativePenalty >().toView(); + + arrayView1d< integer const > const ghostRank = subRegion.ghostRank(); + forAll< parallelHostPolicy >( subRegion.size(), [=] ( localIndex const kfe ) { + if( ghostRank[kfe] < 0 ) { real64 const area = faceArea[kfe]; @@ -1330,10 +1705,13 @@ void SolidMechanicsAugmentedLagrangianContact::computeTolerances( DomainPartitio LvArray::tensorOps::scale< 3, 3 >( rotatedInvStiffApprox, area ); // Finally, compute tolerances for the given fracture element - normalDisplacementTolerance[kfe] = rotatedInvStiffApprox[ 0 ][ 0 ] * averageYoungModulus / 2.e+8; - slidingTolerance[kfe] = sqrt( rotatedInvStiffApprox[ 1 ][ 1 ] * rotatedInvStiffApprox[ 1 ][ 1 ] + - rotatedInvStiffApprox[ 2 ][ 2 ] * rotatedInvStiffApprox[ 2 ][ 2 ] ) * averageYoungModulus / 2.e+8; - normalTractionTolerance[kfe] = 1.0 / 2.0 * averageConstrainedModulus / averageBoxSize0 * normalDisplacementTolerance[kfe]; + normalDisplacementTolerance[kfe] = rotatedInvStiffApprox[ 0 ][ 0 ] * averageYoungModulus / 2.e+7; + slidingTolerance[kfe] = sqrt( pow( rotatedInvStiffApprox[ 1 ][ 1 ], 2 ) + + pow( rotatedInvStiffApprox[ 2 ][ 2 ], 2 )) * averageYoungModulus / 2.e+5; + normalTractionTolerance[kfe] = (1.0 / 2.0) * (averageConstrainedModulus / averageBoxSize0) * + (normalDisplacementTolerance[kfe]); + iterativePenalty[kfe][0] = 1e+01*averageConstrainedModulus/(averageBoxSize0*area); + iterativePenalty[kfe][1] = 1e-01*averageConstrainedModulus/(averageBoxSize0*area); } } ); } diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsAugmentedLagrangianContact.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsAugmentedLagrangianContact.hpp index 5a6ac7c2fec..54ffa40bab7 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsAugmentedLagrangianContact.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsAugmentedLagrangianContact.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -108,11 +108,76 @@ class SolidMechanicsAugmentedLagrangianContact : public ContactSolverBase for( const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements ) { arrayView1d< localIndex const > const faceElemList = faceElementList.toViewConst(); - lambda( finiteElementName, faceElemList ); + + finiteElement::FiniteElementBase const & subRegionFE = *(m_faceTypeToFiniteElements.at( finiteElementName )); + + lambda( finiteElementName, subRegionFE, faceElemList ); } } + /** + * @brief Loop over the finite element type on the stick fracture subregions of meshName and apply callback. + * @tparam LAMBDA The callback function type + * @param meshName The mesh name. + * @param lambda The callback function. Take the finite element type name and + * the list of face element of the same type. + */ + template< typename LAMBDA > + void forFiniteElementOnStickFractureSubRegions( string const & meshName, LAMBDA && lambda ) const + { + + bool const isStickState = true; + + std::map< string, array1d< localIndex > > const & + faceTypesToFaceElements = m_faceTypesToFaceElementsStick.at( meshName ); + + for( const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements ) + { + arrayView1d< localIndex const > const faceElemList = faceElementList.toViewConst(); + + finiteElement::FiniteElementBase const & subRegionFE = *(m_faceTypeToFiniteElements.at( finiteElementName )); + + lambda( finiteElementName, subRegionFE, faceElemList, isStickState ); + } + + } + + /** + * @brief Loop over the finite element type on the slip fracture subregions of meshName and apply callback. + * @tparam LAMBDA The callback function type + * @param meshName The mesh name. + * @param lambda The callback function. Take the finite element type name and + * the list of face element of the same type. + */ + template< typename LAMBDA > + void forFiniteElementOnSlipFractureSubRegions( string const & meshName, LAMBDA && lambda ) const + { + + bool const isStickState = false; + + std::map< string, array1d< localIndex > > const & + faceTypesToFaceElements = m_faceTypesToFaceElementsSlip.at( meshName ); + + for( const auto & [finiteElementName, faceElementList] : faceTypesToFaceElements ) + { + arrayView1d< localIndex const > const faceElemList = faceElementList.toViewConst(); + + finiteElement::FiniteElementBase const & subRegionFE = *(m_faceTypeToFiniteElements.at( finiteElementName )); + + lambda( finiteElementName, subRegionFE, faceElemList, isStickState ); + } + + } + + /** + * @brief Create the list of finite elements of the same type + * for each FaceElementSubRegion (Triangle or Quadrilateral) + * and of the same fracture state (Stick or Slip). + * @param domain The physical domain object + */ + void updateStickSlipList( DomainPartition const & domain ); + /** * @brief Create the list of finite elements of the same type * for each FaceElementSubRegion (Triangle or Quadrilateral). @@ -155,6 +220,12 @@ class SolidMechanicsAugmentedLagrangianContact : public ContactSolverBase /// Finite element type to face element index map std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElements; + /// Finite element type to face element index map (stick mode) + std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElementsStick; + + /// Finite element type to face element index map (slip mode) + std::map< string, std::map< string, array1d< localIndex > > > m_faceTypesToFaceElementsSlip; + /// Finite element type to finite element object map std::map< string, std::unique_ptr< geos::finiteElement::FiniteElementBase > > m_faceTypeToFiniteElements; @@ -166,8 +237,21 @@ class SolidMechanicsAugmentedLagrangianContact : public ContactSolverBase constexpr static char const * normalTractionToleranceString() { return "normalTractionTolerance"; } constexpr static char const * slidingToleranceString() { return "slidingTolerance"; } + + constexpr static char const * dispJumpUpdPenaltyString() { return "dispJumpUpdPenalty"; } }; + /// Tolerance for the sliding check: the tangential traction must exceed (1 + m_slidingCheckTolerance) * t_lim to activate the sliding + /// condition + real64 const m_slidingCheckTolerance = 0.05; + + /// Flag to update the Lagrange multiplier at each Newton iteration (true), or only after the Newton loop has converged (false) + bool m_simultaneous = true; + + /// Flag to neglect the non-symmetric contribution in the tangential matrix, i.e., the derivative of tangential traction with respect to + /// the normal displacement is neglected + bool m_symmetric = true; + }; } /* namespace geos */ diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMJumpUpdateKernels.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMJumpUpdateKernels.hpp index d22bd0a1fb7..26e6ea5abe0 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMJumpUpdateKernels.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMJumpUpdateKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernels.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernels.hpp index b5e530db12f..236637a6e35 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernels.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernelsBase.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernelsBase.hpp index 1664089d4c4..f04b533fb39 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernelsBase.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernelsBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernelsHelper.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernelsHelper.hpp index acb25833db1..3018fb975c7 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernelsHelper.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMKernelsHelper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMStaticCondensationKernels.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMStaticCondensationKernels.hpp index 4203daaf701..83dfa5fd884 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMStaticCondensationKernels.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEFEMStaticCondensationKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEmbeddedFractures.cpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEmbeddedFractures.cpp index 0d6af0ee41e..90f33a650e0 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEmbeddedFractures.cpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEmbeddedFractures.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -740,7 +740,7 @@ void SolidMechanicsEmbeddedFractures::updateState( DomainPartition & domain ) constitutiveUpdatePassThru( frictionLaw, [&] ( auto & castedFrictionLaw ) { using FrictionType = TYPEOFREF( castedFrictionLaw ); - typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelWrapper(); + typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelUpdates(); solidMechanicsEFEMKernels::StateUpdateKernel:: launch< parallelDevicePolicy<> >( subRegion.size(), @@ -776,7 +776,7 @@ bool SolidMechanicsEmbeddedFractures::updateConfiguration( DomainPartition & dom constitutiveUpdatePassThru( frictionLaw, [&] ( auto & castedFrictionLaw ) { using FrictionType = TYPEOFREF( castedFrictionLaw ); - typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelWrapper(); + typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelUpdates(); RAJA::ReduceMin< parallelHostReduce, integer > checkActiveSetSub( 1 ); diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEmbeddedFractures.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEmbeddedFractures.hpp index d601ccdf50d..669d9ce541b 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsEmbeddedFractures.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsEmbeddedFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -25,7 +25,6 @@ namespace geos { -using namespace constitutive; class SolidMechanicsEmbeddedFractures : public ContactSolverBase { diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsLagrangeContact.cpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsLagrangeContact.cpp index 75ac7e16f0e..bdb83a14ed6 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsLagrangeContact.cpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsLagrangeContact.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -35,6 +35,7 @@ #include "physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp" // needed to register pressure(_n) #include "physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp" #include "physicsSolvers/contact/ContactFields.hpp" +#include "physicsSolvers/contact/LogLevelsInfo.hpp" #include "common/GEOS_RAJA_Interface.hpp" #include "linearAlgebra/utilities/LAIHelperFunctions.hpp" #include "linearAlgebra/solvers/PreconditionerJacobi.hpp" @@ -71,6 +72,8 @@ SolidMechanicsLagrangeContact::SolidMechanicsLagrangeContact( const string & nam setApplyDefaultValue( 1.0 ). setDescription( "It be used to increase the scale of the stabilization entries. A value < 1.0 results in larger entries in the stabilization matrix." ); + addLogLevel< logInfo::Configuration >(); + LinearSolverParameters & linSolParams = m_linearSolverParameters.get(); linSolParams.mgr.strategy = LinearSolverParameters::MGR::StrategyType::lagrangianContactMechanics; linSolParams.mgr.separateComponents = true; @@ -426,10 +429,11 @@ void SolidMechanicsLagrangeContact::computeTolerances( DomainPartition & domain } ); } ); - GEOS_LOG_LEVEL_RANK_0( 2, GEOS_FMT( "{}: normal displacement tolerance = [{}, {}], sliding tolerance = [{}, {}], normal traction tolerance = [{}, {}]", - this->getName(), minNormalDisplacementTolerance, maxNormalDisplacementTolerance, - minSlidingTolerance, maxSlidingTolerance, - minNormalTractionTolerance, maxNormalTractionTolerance ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Configuration, + GEOS_FMT( "{}: normal displacement tolerance = [{}, {}], sliding tolerance = [{}, {}], normal traction tolerance = [{}, {}]", + this->getName(), minNormalDisplacementTolerance, maxNormalDisplacementTolerance, + minSlidingTolerance, maxSlidingTolerance, + minNormalTractionTolerance, maxNormalTractionTolerance ) ); } void SolidMechanicsLagrangeContact::resetStateToBeginningOfStep( DomainPartition & domain ) @@ -1476,7 +1480,7 @@ void SolidMechanicsLagrangeContact:: constitutiveUpdatePassThru( frictionLaw, [&] ( auto & castedFrictionLaw ) { using FrictionType = TYPEOFREF( castedFrictionLaw ); - typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelWrapper(); + typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelUpdates(); forAll< parallelHostPolicy >( subRegion.size(), [=] ( localIndex const kfe ) { @@ -2250,7 +2254,7 @@ bool SolidMechanicsLagrangeContact::updateConfiguration( DomainPartition & domai constitutiveUpdatePassThru( frictionLaw, [&] ( auto & castedFrictionLaw ) { using FrictionType = TYPEOFREF( castedFrictionLaw ); - typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelWrapper(); + typename FrictionType::KernelWrapper frictionWrapper = castedFrictionLaw.createKernelUpdates(); forAll< parallelHostPolicy >( subRegion.size(), [=] ( localIndex const kfe ) { @@ -2333,7 +2337,7 @@ bool SolidMechanicsLagrangeContact::updateConfiguration( DomainPartition & domai // and total area of fracture elements totalArea = MpiWrapper::sum( totalArea ); - GEOS_LOG_LEVEL_RANK_0( 2, GEOS_FMT( " {}: changed area {} out of {}", getName(), changedArea, totalArea ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Configuration, GEOS_FMT( " {}: changed area {} out of {}", getName(), changedArea, totalArea ) ); // Assume converged if changed area is below certain fraction of total area return changedArea <= m_nonlinearSolverParameters.m_configurationTolerance * totalArea; diff --git a/src/coreComponents/physicsSolvers/contact/SolidMechanicsLagrangeContact.hpp b/src/coreComponents/physicsSolvers/contact/SolidMechanicsLagrangeContact.hpp index 5a73c99c679..1e7483cd6c3 100644 --- a/src/coreComponents/physicsSolvers/contact/SolidMechanicsLagrangeContact.hpp +++ b/src/coreComponents/physicsSolvers/contact/SolidMechanicsLagrangeContact.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsConformingFractures.rst b/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsConformingFractures.rst index 0a8fe63a76f..5f70bfcbb5d 100644 --- a/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsConformingFractures.rst +++ b/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsConformingFractures.rst @@ -1,8 +1,8 @@ .. _SolidMechanicsConformingFractures: -##################################### +########################################### Solid mechanics conforming fractures solver -##################################### +########################################### Introduction ============ @@ -24,9 +24,9 @@ Parameters In the preceding XML block, The `SolidMechanicsLagrangeContact` is specified by the title of the subblock of the `Solvers` block. The following attributes are supported in the input block for `SolidMechanicsLagrangeContact`: -.. include:: /coreComponents/schema/docs/SolidMechanicsLagrangeContact.rst +.. include:: /docs/sphinx/datastructure/SolidMechanicsLagrangeContact.rst The following data are allocated and used by the solver: -.. include:: /coreComponents/schema/docs/SolidMechanicsLagrangeContact_other.rst +.. include:: /docs/sphinx/datastructure/SolidMechanicsLagrangeContact_other.rst diff --git a/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsEmbeddedFractures.rst b/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsEmbeddedFractures.rst index 0e138bd2b84..739c9ab5226 100644 --- a/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsEmbeddedFractures.rst +++ b/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsEmbeddedFractures.rst @@ -1,8 +1,8 @@ .. _SolidMechanicsEmbeddedFractures: -##################################### +######################################### Solid mechanics embedded fractures solver -##################################### +######################################### @@ -11,7 +11,7 @@ Introduction Discretization & soltuion strategy -========================= +================================== The linear momentum balance equation is discretized using a low order finite element method. Moreover, to account for the influence of the fractures on the overall behavior, we utilize the enriched finite element method (EFEM) with a piece-wise constant enrichment. This method employs an element-local enrichment of the FE space using the concept of assumedenhanced strain [1-6]. @@ -22,7 +22,7 @@ Example An example of a valid XML block is given here: -.. literalinclude:: ../../../../../inputFiles/efemFractureMechanics/Sneddon_embeddedFrac_base.xml +.. literalinclude:: ../../../../../inputFiles/efemFractureMechanics/Sneddon_embeddedFrac_smoke.xml :language: xml :start-after: :end-before: @@ -34,11 +34,11 @@ In the preceding XML block, The `SolidMechanicsEmbeddedFractures` is specified b Note that the `SolidMechanicsEmbeddedFractures` always relies on the existance of a The following attributes are supported in the input block for `SolidMechanicsEmbeddedFractures`: -.. include:: /coreComponents/schema/docs/SolidMechanicsEmbeddedFractures.rst +.. include:: /docs/sphinx/datastructure/SolidMechanicsEmbeddedFractures.rst The following data are allocated and used by the solver: -.. include:: /coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst +.. include:: /docs/sphinx/datastructure/SolidMechanicsEmbeddedFractures_other.rst References ========== diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CMakeLists.txt b/src/coreComponents/physicsSolvers/fluidFlow/CMakeLists.txt index 37b41360330..0f9bb90d40e 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CMakeLists.txt +++ b/src/coreComponents/physicsSolvers/fluidFlow/CMakeLists.txt @@ -42,6 +42,7 @@ set( physicsSolvers_headers fluidFlow/StencilDataCollection.hpp fluidFlow/ThermalSinglePhaseBaseKernels.hpp fluidFlow/ThermalSinglePhaseFVMKernels.hpp + fluidFlow/LogLevelsInfo.hpp fluidFlow/wells/CompositionalMultiphaseWell.hpp fluidFlow/wells/CompositionalMultiphaseWellFields.hpp fluidFlow/wells/CompositionalMultiphaseWellKernels.hpp @@ -52,6 +53,7 @@ set( physicsSolvers_headers fluidFlow/wells/WellControls.hpp fluidFlow/wells/WellSolverBase.hpp fluidFlow/wells/WellSolverBaseFields.hpp + fluidFlow/wells/LogLevelsInfo.hpp PARENT_SCOPE ) # Specify solver sources diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp index afed3fbe9fe..d863e690cc4 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -127,7 +127,7 @@ CompositionalMultiphaseBase::CompositionalMultiphaseBase( const string & name, this->registerWrapper( viewKeyStruct::maxRelativeCompDensChangeString(), &m_maxRelativeCompDensChange ). setSizedFromParent( 0 ). setInputFlag( InputFlags::OPTIONAL ). - setApplyDefaultValue( LvArray::NumericLimits< real64 >::max ). // disabled by default + setApplyDefaultValue( LvArray::NumericLimits< real64 >::max/1.0e100 ). // disabled by default setDescription( "Maximum (relative) change in a component density in a Newton iteration" ); this->registerWrapper( viewKeyStruct::allowLocalCompDensChoppingString(), &m_allowCompDensChopping ). @@ -140,7 +140,7 @@ CompositionalMultiphaseBase::CompositionalMultiphaseBase( const string & name, setApplyDefaultValue( -1. ). setInputFlag( InputFlags::OPTIONAL ). setDescription( "Target CFL condition `CFL condition `_" - "when computing the next timestep." ); + " when computing the next timestep." ); this->registerWrapper( viewKeyStruct::useTotalMassEquationString(), &m_useTotalMassEquation ). setSizedFromParent( 0 ). @@ -2153,39 +2153,39 @@ real64 CompositionalMultiphaseBase::setNextDtBasedOnStateChange( real64 const & maxRelativePresChange = MpiWrapper::max( maxRelativePresChange ); maxAbsolutePhaseVolFracChange = MpiWrapper::max( maxAbsolutePhaseVolFracChange ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: max relative pressure change during time step = {} %", - getName(), GEOS_FMT( "{:.{}f}", 100*maxRelativePresChange, 3 ) ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: max absolute phase volume fraction change during time step = {}", - getName(), GEOS_FMT( "{:.{}f}", maxAbsolutePhaseVolFracChange, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: max relative pressure change during time step = {} %", + getName(), GEOS_FMT( "{:.{}f}", 100*maxRelativePresChange, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: max absolute phase volume fraction change during time step = {}", + getName(), GEOS_FMT( "{:.{}f}", maxAbsolutePhaseVolFracChange, 3 ) ) ); if( m_targetRelativeCompDensChange < LvArray::NumericLimits< real64 >::max ) { maxRelativeCompDensChange = MpiWrapper::max( maxRelativeCompDensChange ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: max relative component density change during time step = {} %", - getName(), GEOS_FMT( "{:.{}f}", 100*maxRelativeCompDensChange, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: max relative component density change during time step = {} %", + getName(), GEOS_FMT( "{:.{}f}", 100*maxRelativeCompDensChange, 3 ) ) ); } if( m_isThermal ) { maxRelativeTempChange = MpiWrapper::max( maxRelativeTempChange ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: max relative temperature change during time step = {} %", - getName(), GEOS_FMT( "{:.{}f}", 100*maxRelativeTempChange, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: max relative temperature change during time step = {} %", + getName(), GEOS_FMT( "{:.{}f}", 100*maxRelativeTempChange, 3 ) ) ); } real64 const eps = LvArray::NumericLimits< real64 >::epsilon; - real64 const nextDtPressure = currentDt * ( 1.0 + m_solutionChangeScalingFactor ) * m_targetRelativePresChange + real64 const nextDtPressure = currentDt * ( 1.0 + m_solutionChangeScalingFactor ) * m_targetRelativePresChange / std::max( eps, maxRelativePresChange + m_solutionChangeScalingFactor * m_targetRelativePresChange ); if( m_nonlinearSolverParameters.getLogLevel() > 0 ) GEOS_LOG_RANK_0( GEOS_FMT( "{}: next time step based on pressure change = {}", getName(), nextDtPressure )); - real64 const nextDtPhaseVolFrac = currentDt * ( 1.0 + m_solutionChangeScalingFactor ) * m_targetPhaseVolFracChange + real64 const nextDtPhaseVolFrac = currentDt * ( 1.0 + m_solutionChangeScalingFactor ) * m_targetPhaseVolFracChange / std::max( eps, maxAbsolutePhaseVolFracChange + m_solutionChangeScalingFactor * m_targetPhaseVolFracChange ); if( m_nonlinearSolverParameters.getLogLevel() > 0 ) GEOS_LOG_RANK_0( GEOS_FMT( "{}: next time step based on phase volume fraction change = {}", getName(), nextDtPhaseVolFrac )); real64 nextDtCompDens = LvArray::NumericLimits< real64 >::max; if( m_targetRelativeCompDensChange < LvArray::NumericLimits< real64 >::max ) { - nextDtCompDens = currentDt * ( 1.0 + m_solutionChangeScalingFactor ) * m_targetRelativeCompDensChange + nextDtCompDens = currentDt * ( 1.0 + m_solutionChangeScalingFactor ) * m_targetRelativeCompDensChange / std::max( eps, maxRelativeCompDensChange + m_solutionChangeScalingFactor * m_targetRelativeCompDensChange ); if( m_nonlinearSolverParameters.getLogLevel() > 0 ) GEOS_LOG_RANK_0( GEOS_FMT( "{}: next time step based on component density change = {}", getName(), nextDtCompDens )); @@ -2209,11 +2209,11 @@ real64 CompositionalMultiphaseBase::setNextDtBasedOnCFL( const geos::real64 & cu computeCFLNumbers( domain, currentDt, maxPhaseCFL, maxCompCFL ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: max phase CFL number = {}", getName(), maxPhaseCFL ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: max component CFL number = {} ", getName(), maxCompCFL ) ); - - return std::min( m_targetFlowCFL*currentDt/maxCompCFL, m_targetFlowCFL*currentDt/maxPhaseCFL ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: max phase CFL number = {}", getName(), maxPhaseCFL ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "{}: max component CFL number = {} ", getName(), maxCompCFL ) ); + return std::min( m_targetFlowCFL * currentDt / maxCompCFL, + m_targetFlowCFL * currentDt / maxPhaseCFL ); } void CompositionalMultiphaseBase::computeCFLNumbers( geos::DomainPartition & domain, const geos::real64 & dt, @@ -2611,7 +2611,8 @@ void CompositionalMultiphaseBase::updateState( DomainPartition & domain ) maxDeltaPhaseVolFrac = MpiWrapper::max( maxDeltaPhaseVolFrac ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max phase volume fraction change = {}", getName(), fmt::format( "{:.{}f}", maxDeltaPhaseVolFrac, 4 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, + GEOS_FMT( " {}: Max phase volume fraction change = {}", getName(), fmt::format( "{:.{}f}", maxDeltaPhaseVolFrac, 4 ) ) ); } bool CompositionalMultiphaseBase::checkSequentialSolutionIncrements( DomainPartition & domain ) const @@ -2619,8 +2620,8 @@ bool CompositionalMultiphaseBase::checkSequentialSolutionIncrements( DomainParti bool isConverged = FlowSolverBase::checkSequentialSolutionIncrements( domain ); string const unit = m_useMass ? "kg/m3" : "mol/m3"; - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max component density change during outer iteration: {} {}", - getName(), fmt::format( "{:.{}f}", m_sequentialCompDensChange, 3 ), unit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( " {}: Max component density change during outer iteration: {} {}", + getName(), fmt::format( "{:.{}f}", m_sequentialCompDensChange, 3 ), unit ) ); return isConverged && (m_sequentialCompDensChange < m_maxSequentialCompDensChange); } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.hpp index 036a32095e8..55dcb3460b6 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBaseFields.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBaseFields.hpp index 8e57ab8f617..eb00898d8df 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBaseFields.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBaseFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.cpp index f9901f30490..3f850dcd1a5 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -330,7 +330,7 @@ real64 CompositionalMultiphaseFVM::calculateResidualNorm( real64 const & GEOS_UN { GEOS_MARK_FUNCTION; - integer constexpr numNorm = 2; // mass balance and energy balance + integer constexpr numNorm = 3; // mass/volume balance and energy balance array1d< real64 > localResidualNorm; array1d< real64 > localResidualNormalizer; localResidualNorm.resize( numNorm ); @@ -383,8 +383,8 @@ real64 CompositionalMultiphaseFVM::calculateResidualNorm( real64 const & GEOS_UN } else { - real64 subRegionFlowResidualNorm[1]{}; - real64 subRegionFlowResidualNormalizer[1]{}; + real64 subRegionFlowResidualNorm[2]{}; + real64 subRegionFlowResidualNormalizer[2]{}; isothermalCompositionalMultiphaseBaseKernels:: ResidualNormKernelFactory:: createAndLaunch< parallelDevicePolicy<> >( normType, @@ -398,8 +398,12 @@ real64 CompositionalMultiphaseFVM::calculateResidualNorm( real64 const & GEOS_UN m_nonlinearSolverParameters.m_minNormalizer, subRegionFlowResidualNorm, subRegionFlowResidualNormalizer ); + // mass subRegionResidualNorm[0] = subRegionFlowResidualNorm[0]; subRegionResidualNormalizer[0] = subRegionFlowResidualNormalizer[0]; + // volume + subRegionResidualNorm[1] = subRegionFlowResidualNorm[1]; + subRegionResidualNormalizer[1] = subRegionFlowResidualNormalizer[1]; } // step 2: first reduction across meshBodies/regions/subRegions @@ -422,7 +426,6 @@ real64 CompositionalMultiphaseFVM::calculateResidualNorm( real64 const & GEOS_UN real64 residualNorm = 0.0; if( m_isThermal ) { - array1d< real64 > globalResidualNorm; globalResidualNorm.resize( numNorm ); if( normType == solverBaseKernels::NormType::Linf ) @@ -435,31 +438,34 @@ real64 CompositionalMultiphaseFVM::calculateResidualNorm( real64 const & GEOS_UN solverBaseKernels::L2ResidualNormHelper:: computeGlobalNorm( localResidualNorm, localResidualNormalizer, globalResidualNorm ); } - residualNorm = sqrt( globalResidualNorm[0] * globalResidualNorm[0] + globalResidualNorm[1] * globalResidualNorm[1] ); + residualNorm = sqrt( globalResidualNorm[0] * globalResidualNorm[0] + globalResidualNorm[1] * globalResidualNorm[1] + globalResidualNorm[2] * globalResidualNorm[2] ); - if( getLogLevel() >= 1 && logger::internal::rank == 0 ) - { - std::cout << GEOS_FMT( " ( R{} ) = ( {:4.2e} ) ( Renergy ) = ( {:4.2e} )", - coupledSolverAttributePrefix(), globalResidualNorm[0], globalResidualNorm[1] ); - } + GEOS_LOG_LEVEL_INFO_RANK_0_NLR( logInfo::Convergence, GEOS_FMT( " ( Rmass Rvol ) = ( {:4.2e} {:4.2e} ) ( Renergy ) = ( {:4.2e} )", + globalResidualNorm[0], globalResidualNorm[1], globalResidualNorm[2] )); } else { - + array1d< real64 > globalResidualNorm; + globalResidualNorm.resize( numNorm - 1 ); if( normType == solverBaseKernels::NormType::Linf ) { - solverBaseKernels::LinfResidualNormHelper::computeGlobalNorm( localResidualNorm[0], residualNorm ); + solverBaseKernels::LinfResidualNormHelper:: + computeGlobalNorm( localResidualNorm, globalResidualNorm ); } else { - solverBaseKernels::L2ResidualNormHelper::computeGlobalNorm( localResidualNorm[0], localResidualNormalizer[0], residualNorm ); + solverBaseKernels::L2ResidualNormHelper:: + computeGlobalNorm( localResidualNorm, localResidualNormalizer, globalResidualNorm ); } + residualNorm = sqrt( globalResidualNorm[0] * globalResidualNorm[0] + globalResidualNorm[1] * globalResidualNorm[1] ); if( getLogLevel() >= 1 && logger::internal::rank == 0 ) { - std::cout << GEOS_FMT( " ( R{} ) = ( {:4.2e} )", coupledSolverAttributePrefix(), residualNorm ); + std::cout << GEOS_FMT( " ( Rmass Rvol ) = ( {:4.2e} {:4.2e} )", + globalResidualNorm[0], globalResidualNorm[1] ); } } + return residualNorm; } @@ -547,26 +553,26 @@ real64 CompositionalMultiphaseFVM::scalingForSystemSolution( DomainPartition & d minCompDensScalingFactor = MpiWrapper::min( minCompDensScalingFactor ); string const massUnit = m_useMass ? "kg/m3" : "mol/m3"; - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max pressure change = {} Pa (before scaling)", - getName(), GEOS_FMT( "{:.{}f}", maxDeltaPres, 3 ) ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max component density change = {} {} (before scaling)", - getName(), GEOS_FMT( "{:.{}f}", maxDeltaCompDens, 3 ), massUnit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Max pressure change = {} Pa (before scaling)", + getName(), GEOS_FMT( "{:.{}f}", maxDeltaPres, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Max component density change = {} {} (before scaling)", + getName(), GEOS_FMT( "{:.{}f}", maxDeltaCompDens, 3 ), massUnit ) ); if( m_isThermal ) { maxDeltaTemp = MpiWrapper::max( maxDeltaTemp ); minTempScalingFactor = MpiWrapper::min( minTempScalingFactor ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max temperature change = {} K (before scaling)", - getName(), GEOS_FMT( "{:.{}f}", maxDeltaTemp, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Max temperature change = {} K (before scaling)", + getName(), GEOS_FMT( "{:.{}f}", maxDeltaTemp, 3 ) ) ); } if( m_scalingType == ScalingType::Local ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Min pressure scaling factor = {}", getName(), minPresScalingFactor ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Min component density scaling factor = {}", getName(), minCompDensScalingFactor ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Min pressure scaling factor = {}", getName(), minPresScalingFactor ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Min component density scaling factor = {}", getName(), minCompDensScalingFactor ) ); if( m_isThermal ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Min temperature scaling factor = {}", getName(), minTempScalingFactor ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Min temperature scaling factor = {}", getName(), minTempScalingFactor ) ); } } @@ -662,15 +668,15 @@ bool CompositionalMultiphaseFVM::checkSystemSolution( DomainPartition & domain, numNegTotalDens = MpiWrapper::sum( numNegTotalDens ); if( numNegPres > 0 ) - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Number of negative pressure values: {}, minimum value: {} Pa", - getName(), numNegPres, fmt::format( "{:.{}f}", minPres, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Number of negative pressure values: {}, minimum value: {} Pa", + getName(), numNegPres, fmt::format( "{:.{}f}", minPres, 3 ) ) ); string const massUnit = m_useMass ? "kg/m3" : "mol/m3"; if( numNegDens > 0 ) - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Number of negative component density values: {}, minimum value: {} {} ", - getName(), numNegDens, fmt::format( "{:.{}f}", minDens, 3 ), massUnit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Number of negative component density values: {}, minimum value: {} {}}", + getName(), numNegDens, fmt::format( "{:.{}f}", minDens, 3 ), massUnit ) ); if( minTotalDens > 0 ) - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Number of negative total density values: {}, minimum value: {} {} ", - getName(), minTotalDens, fmt::format( "{:.{}f}", minDens, 3 ), massUnit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Number of negative total density values: {}, minimum value: {} {}}", + getName(), minTotalDens, fmt::format( "{:.{}f}", minDens, 3 ), massUnit ) ); return MpiWrapper::min( localCheck ); } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.hpp index f29bfcf464f..93b54d898a7 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp index 10436e0190e..70f9ba9ae8b 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -19,6 +19,7 @@ #include "CompositionalMultiphaseHybridFVM.hpp" +#include "mesh/DomainPartition.hpp" #include "constitutive/ConstitutivePassThru.hpp" #include "constitutive/fluid/multifluid/MultiFluidBase.hpp" #include "constitutive/relativePermeability/RelativePermeabilityBase.hpp" @@ -629,8 +630,8 @@ real64 CompositionalMultiphaseHybridFVM::calculateResidualNorm( real64 const & G [&]( localIndex const, ElementSubRegionBase const & subRegion ) { - real64 subRegionResidualNorm[1]{}; - real64 subRegionResidualNormalizer[1]{}; + real64 subRegionResidualNorm[2]{}; + real64 subRegionResidualNormalizer[2]{}; string const & fluidName = subRegion.getReference< string >( viewKeyStruct::fluidNamesString() ); MultiFluidBase const & fluid = getConstitutiveModel< MultiFluidBase >( subRegion, fluidName ); @@ -658,6 +659,8 @@ real64 CompositionalMultiphaseHybridFVM::calculateResidualNorm( real64 const & G if( normType == solverBaseKernels::NormType::Linf ) { + // take max between mass and volume residual + subRegionResidualNorm[0] = LvArray::math::max( subRegionResidualNorm[0], subRegionResidualNorm[1] ); if( subRegionResidualNorm[0] > localResidualNorm ) { localResidualNorm = subRegionResidualNorm[0]; @@ -665,6 +668,8 @@ real64 CompositionalMultiphaseHybridFVM::calculateResidualNorm( real64 const & G } else { + // sum up mass and volume residual + subRegionResidualNorm[0] = subRegionResidualNorm[0] + subRegionResidualNorm[1]; localResidualNorm += subRegionResidualNorm[0]; localResidualNormalizer += subRegionResidualNormalizer[0]; } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.hpp index 5d1a749c72f..5562f6202c9 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels.cpp index fe0b452865e..5ad239a5a1b 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -29,6 +29,7 @@ namespace geos { +using namespace constitutive; namespace compositionalMultiphaseHybridFVMKernels { diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels.hpp index b0a12568c7a..6953bfb7be2 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -41,9 +41,6 @@ namespace geos namespace compositionalMultiphaseHybridFVMKernels { -using namespace constitutive; - - // struct to specify local and neighbor derivatives struct Pos { @@ -90,13 +87,13 @@ struct UpwindingHelper static void upwindViscousCoefficient( localIndex const (&localIds)[ 3 ], localIndex const (&neighborIds)[ 3 ], - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseDens, ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & phaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_PHASE_DC > > const & dPhaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_COMP_DC > > const & dCompFrac_dCompDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const & phaseCompFrac, - ElementViewConst< arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const & phaseCompFrac, + ElementViewConst< arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, ElementViewConst< arrayView1d< globalIndex const > > const & elemDofNumber, real64 const & oneSidedVolFlux, real64 ( &upwPhaseViscCoef )[ NP ][ NC ], @@ -134,15 +131,15 @@ struct UpwindingHelper upwindBuoyancyCoefficient( localIndex const (&localIds)[ 3 ], localIndex const (&neighborIds)[ 3 ], real64 const & transGravCoef, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseDens, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseMassDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseMassDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseMassDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseMassDens, ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & phaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_PHASE_DC > > const & dPhaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_COMP_DC > > const & dCompFrac_dCompDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const & phaseCompFrac, - ElementViewConst< arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const & phaseCompFrac, + ElementViewConst< arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, real64 ( &phaseGravTerm )[ NP ][ NP-1 ], real64 ( &dPhaseGravTerm_dPres )[ NP ][ NP-1 ][ 2 ], real64 ( &dPhaseGravTerm_dCompDens )[ NP ][ NP-1 ][ 2 ][ NC ], @@ -170,8 +167,8 @@ struct UpwindingHelper computePhaseGravTerm( localIndex const (&localIds)[ 3 ], localIndex const (&neighborIds)[ 3 ], real64 const & transGravCoef, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseMassDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseMassDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseMassDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseMassDens, ElementViewConst< arrayView3d< real64 const, compflow::USD_COMP_DC > > const & dCompFrac_dCompDens, real64 ( &phaseGravTerm )[ NP ][ NP-1 ], real64 ( &dPhaseGravTerm_dPres )[ NP ][ NP-1 ][ 2 ], @@ -286,8 +283,8 @@ struct AssemblerKernelHelper arraySlice1d< localIndex const > const & elemToFaces, real64 const & elemPres, real64 const & elemGravCoef, - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const & elemPhaseMassDens, - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const & dElemPhaseMassDens, + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const & elemPhaseMassDens, + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const & dElemPhaseMassDens, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const & elemPhaseMob, arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > const & dElemPhaseMob, arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > const & dElemCompFrac_dCompDens, @@ -337,15 +334,15 @@ struct AssemblerKernelHelper arraySlice1d< localIndex const > const & elemToFaces, real64 const & elemGravCoef, integer const useTotalMassEquation, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseDens, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseMassDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseMassDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseMassDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseMassDens, ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & phaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_PHASE_DC > > const & dPhaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_COMP_DC > > const & dCompFrac_dCompDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const & phaseCompFrac, - ElementViewConst< arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const & phaseCompFrac, + ElementViewConst< arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, ElementViewConst< arrayView1d< globalIndex const > > const & elemDofNumber, arraySlice2d< real64 const > const & transMatrixGrav, real64 const (&oneSidedVolFlux)[ NF ], @@ -525,15 +522,15 @@ struct AssemblerKernel real64 const & elemPres, real64 const & elemGravCoef, const integer useTotalMassEquation, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseDens, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseMassDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseMassDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseMassDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseMassDens, ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & phaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_PHASE_DC > > const & dPhaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_COMP_DC > > const & dCompFrac_dCompDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const & phaseCompFrac, - ElementViewConst< arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const & phaseCompFrac, + ElementViewConst< arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, ElementViewConst< arrayView1d< globalIndex const > > const & elemDofNumber, integer const elemGhostRank, globalIndex const rankOffset, @@ -566,7 +563,7 @@ struct FluxKernel fields::flow::dGlobalCompFraction_dGlobalCompDensity >; using MultiFluidAccessors = - StencilMaterialAccessors< MultiFluidBase, + StencilMaterialAccessors< constitutive::MultiFluidBase, fields::multifluid::phaseDensity, fields::multifluid::dPhaseDensity, fields::multifluid::phaseMassDensity, @@ -629,12 +626,12 @@ struct FluxKernel ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & phaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_PHASE_DC > > const & dPhaseMob, ElementViewConst< arrayView3d< real64 const, compflow::USD_COMP_DC > > const & dCompFrac_dCompDens, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseDens, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseMassDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseMassDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const & phaseCompFrac, - ElementViewConst< arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseMassDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseMassDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const & phaseCompFrac, + ElementViewConst< arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, ElementViewConst< arrayView1d< globalIndex const > > const & elemDofNumber, globalIndex const rankOffset, real64 const lengthTolerance, @@ -672,8 +669,8 @@ class PhaseMobilityKernel : public isothermalCompositionalMultiphaseBaseKernels: * @param[in] relperm the relperm model */ PhaseMobilityKernel( ObjectManagerBase & subRegion, - MultiFluidBase const & fluid, - RelativePermeabilityBase const & relperm ) + constitutive::MultiFluidBase const & fluid, + constitutive::RelativePermeabilityBase const & relperm ) : Base(), m_phaseVolFrac( subRegion.getField< fields::flow::phaseVolumeFraction >() ), m_dPhaseVolFrac( subRegion.getField< fields::flow::dPhaseVolumeFraction >() ), @@ -697,13 +694,13 @@ class PhaseMobilityKernel : public isothermalCompositionalMultiphaseBaseKernels: void compute( localIndex const ei, FUNC && phaseMobilityKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > const dCompFrac_dCompDens = m_dCompFrac_dCompDens[ei]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const phaseVisc = m_phaseVisc[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseVisc = m_dPhaseVisc[ei][0]; - arraySlice1d< real64 const, relperm::USD_RELPERM - 2 > const phaseRelPerm = m_phaseRelPerm[ei][0]; - arraySlice2d< real64 const, relperm::USD_RELPERM_DS - 2 > const dPhaseRelPerm_dPhaseVolFrac = m_dPhaseRelPerm_dPhaseVolFrac[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseVisc = m_phaseVisc[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseVisc = m_dPhaseVisc[ei][0]; + arraySlice1d< real64 const, constitutive::relperm::USD_RELPERM - 2 > const phaseRelPerm = m_phaseRelPerm[ei][0]; + arraySlice2d< real64 const, constitutive::relperm::USD_RELPERM_DS - 2 > const dPhaseRelPerm_dPhaseVolFrac = m_dPhaseRelPerm_dPhaseVolFrac[ei][0]; arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > const dPhaseVolFrac = m_dPhaseVolFrac[ei]; arraySlice1d< real64, compflow::USD_PHASE - 1 > const phaseMob = m_phaseMob[ei]; @@ -778,12 +775,12 @@ class PhaseMobilityKernel : public isothermalCompositionalMultiphaseBaseKernels: arrayView3d< real64 const, compflow::USD_COMP_DC > m_dCompFrac_dCompDens; /// Views on the phase viscosities - arrayView3d< real64 const, multifluid::USD_PHASE > m_phaseVisc; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > m_dPhaseVisc; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > m_phaseVisc; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > m_dPhaseVisc; /// Views on the phase relative permeabilities - arrayView3d< real64 const, relperm::USD_RELPERM > m_phaseRelPerm; - arrayView4d< real64 const, relperm::USD_RELPERM_DS > m_dPhaseRelPerm_dPhaseVolFrac; + arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > m_phaseRelPerm; + arrayView4d< real64 const, constitutive::relperm::USD_RELPERM_DS > m_dPhaseRelPerm_dPhaseVolFrac; // outputs @@ -814,8 +811,8 @@ class PhaseMobilityKernelFactory createAndLaunch( integer const numComp, integer const numPhase, ObjectManagerBase & subRegion, - MultiFluidBase const & fluid, - RelativePermeabilityBase const & relperm ) + constitutive::MultiFluidBase const & fluid, + constitutive::RelativePermeabilityBase const & relperm ) { if( numPhase == 2 ) { @@ -976,7 +973,7 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 1 > ElementViewConst< arrayView2d< real64 const > > const m_porosity_n; /// View on total mass/molar density at the previous converged time step - ElementViewConst< arrayView2d< real64 const, multifluid::USD_FLUID > > const m_totalDens_n; + ElementViewConst< arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > > const m_totalDens_n; }; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp index 0573858876d..c40cd769f20 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -32,6 +32,7 @@ #include "physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp" #include "physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseBaseKernels.hpp" #include "physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.hpp" +#include "physicsSolvers/fluidFlow/LogLevelsInfo.hpp" namespace geos @@ -60,6 +61,9 @@ CompositionalMultiphaseStatistics::CompositionalMultiphaseStatistics( const stri setApplyDefaultValue( 1e-6 ). setInputFlag( InputFlags::OPTIONAL ). setDescription( "Flag to decide whether a phase is considered mobile (when the relperm is above the threshold) or immobile (when the relperm is below the threshold) in metric 2" ); + + addLogLevel< logInfo::CFL >(); + addLogLevel< logInfo::Statistics >(); } void CompositionalMultiphaseStatistics::postInputInitialization() @@ -391,8 +395,8 @@ void CompositionalMultiphaseStatistics::computeRegionStatistics( real64 const ti { regionStatistics.averagePressure = 0.0; regionStatistics.averageTemperature = 0.0; - GEOS_LOG_LEVEL_RANK_0( 1, getName() << ", " << regionNames[i] - << ": Cannot compute average pressure because region pore volume is zero." ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{}, {}: Cannot compute average pressure because region pore volume is zero.", getName(), regionNames[i] ) ); } @@ -406,34 +410,46 @@ void CompositionalMultiphaseStatistics::computeRegionStatistics( real64 const ti } string_view massUnit = units::getSymbol( m_solver->getMassUnit() ); - - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Pressure (min, average, max): {}, {}, {} Pa", - getName(), regionNames[i], time, regionStatistics.minPressure, regionStatistics.averagePressure, regionStatistics.maxPressure ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Delta pressure (min, max): {}, {} Pa", - getName(), regionNames[i], time, regionStatistics.minDeltaPressure, regionStatistics.maxDeltaPressure ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Temperature (min, average, max): {}, {}, {} K", - getName(), regionNames[i], time, regionStatistics.minTemperature, regionStatistics.averageTemperature, regionStatistics.maxTemperature ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Total dynamic pore volume: {} rm^3", - getName(), regionNames[i], time, regionStatistics.totalPoreVolume ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Phase dynamic pore volume: {} rm^3", - getName(), regionNames[i], time, regionStatistics.phasePoreVolume ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Phase mass: {} {}", - getName(), regionNames[i], time, regionStatistics.phaseMass, massUnit ) ); + string statPrefix = GEOS_FMT( "{}, {} (time {} s):", getName(), regionNames[i], time ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Pressure (min, average, max): {}, {}, {} Pa", + statPrefix, regionStatistics.minPressure, regionStatistics.averagePressure, regionStatistics.maxPressure ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Delta pressure (min, max): {}, {} Pa", + statPrefix, regionStatistics.minDeltaPressure, regionStatistics.maxDeltaPressure ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Temperature (min, average, max): {}, {}, {} K", + statPrefix, regionStatistics.minTemperature, regionStatistics.averageTemperature, + regionStatistics.maxTemperature ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Total dynamic pore volume: {} rm^3", + statPrefix, regionStatistics.totalPoreVolume ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Phase dynamic pore volume: {} rm^3", + statPrefix, regionStatistics.phasePoreVolume ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Phase mass: {} {}", + statPrefix, regionStatistics.phaseMass, massUnit ) ); // metric 1: trapping computed with the Land trapping coefficient (similar to Eclipse) - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Trapped phase mass (metric 1): {} {}", - getName(), regionNames[i], time, regionStatistics.trappedPhaseMass, massUnit ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Non-trapped phase mass (metric 1): {} {}", - getName(), regionNames[i], time, nonTrappedPhaseMass, massUnit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Trapped phase mass (metric 1): {} {}", + statPrefix, regionStatistics.trappedPhaseMass, massUnit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Non-trapped phase mass (metric 1): {} {}", + statPrefix, nonTrappedPhaseMass, massUnit ) ); // metric 2: immobile phase mass computed with a threshold on relative permeability - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Immobile phase mass (metric 2): {} {}", - getName(), regionNames[i], time, regionStatistics.immobilePhaseMass, massUnit ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Mobile phase mass (metric 2): {} {}", - getName(), regionNames[i], time, mobilePhaseMass, massUnit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Immobile phase mass (metric 2): {} {}", + statPrefix, regionStatistics.immobilePhaseMass, massUnit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Mobile phase mass (metric 2): {} {}", + statPrefix, mobilePhaseMass, massUnit ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Component mass: {} {}", - getName(), regionNames[i], time, regionStatistics.componentMass, massUnit ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Component mass: {} {}", + statPrefix, regionStatistics.componentMass, massUnit ) ); if( m_writeCSV > 0 && MpiWrapper::commRank() == 0 ) { @@ -472,8 +488,8 @@ void CompositionalMultiphaseStatistics::computeCFLNumbers( real64 const time, real64 maxPhaseCFL, maxCompCFL; m_solver->computeCFLNumbers( domain, dt, maxPhaseCFL, maxCompCFL ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{} (time {} s): Max phase CFL number: {}", getName(), time, maxPhaseCFL ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{} (time {} s): Max component CFL number: {}", getName(), time, maxCompCFL ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::CFL, GEOS_FMT( "{} (time {} s): Max phase CFL number: {}", getName(), time, maxPhaseCFL ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::CFL, GEOS_FMT( "{} (time {} s): Max component CFL number: {}", getName(), time, maxCompCFL ) ); } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.hpp index 51bac86d928..ad81a74f521 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseStatistics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseUtilities.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseUtilities.hpp index 8803d2fc966..ea13aa7ec05 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseUtilities.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/DissipationCompositionalMultiphaseFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/DissipationCompositionalMultiphaseFVMKernels.hpp index 10b42f0e79a..7a316a92355 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/DissipationCompositionalMultiphaseFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/DissipationCompositionalMultiphaseFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -30,8 +30,6 @@ namespace geos namespace dissipationCompositionalMultiphaseFVMKernels { -using namespace constitutive; - static constexpr integer newtonContinuationCutoffIteration = 5; static constexpr real64 initialDirectionalCoef = 100; static constexpr real64 multiplierDirectionalCoef = 1000; @@ -85,9 +83,9 @@ class FaceBasedAssemblyKernel : public isothermalCompositionalMultiphaseFVMKerne fields::elementVolume >; using PorosityAccessors = - StencilMaterialAccessors< PorosityBase, fields::porosity::porosity_n >; + StencilMaterialAccessors< constitutive::PorosityBase, fields::porosity::porosity_n >; - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; /** * @brief Constructor for the kernel interface diff --git a/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.cpp index 3e63e5e00c2..041b30899e8 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -795,13 +795,13 @@ void FlowSolverBase::updateStencilWeights( DomainPartition & domain ) const bool FlowSolverBase::checkSequentialSolutionIncrements( DomainPartition & GEOS_UNUSED_PARAM( domain ) ) const { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max pressure change during outer iteration: {} Pa", - getName(), fmt::format( "{:.{}f}", m_sequentialPresChange, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( " {}: Max pressure change during outer iteration: {} Pa", + getName(), fmt::format( "{:.{}f}", m_sequentialPresChange, 3 ) ) ); if( m_isThermal ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max temperature change during outer iteration: {} K", - getName(), fmt::format( "{:.{}f}", m_sequentialTempChange, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( " {}: Max temperature change during outer iteration: {} K", + getName(), fmt::format( "{:.{}f}", m_sequentialTempChange, 3 ) ) ); } return (m_sequentialPresChange < m_maxSequentialPresChange) && (m_sequentialTempChange < m_maxSequentialTempChange); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.hpp b/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.hpp index ef97e9a7fb8..883661f25a0 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp b/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp index 14206735dc0..d9f01e908b9 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBaseKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBaseKernels.hpp index 3935cbfeb69..4c3b0f0df36 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBaseKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/FlowSolverBaseKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/FluxKernelsHelper.hpp b/src/coreComponents/physicsSolvers/fluidFlow/FluxKernelsHelper.hpp index 0d11dbe9ff2..5a61816e13c 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/FluxKernelsHelper.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/FluxKernelsHelper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/HybridFVMHelperKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/HybridFVMHelperKernels.hpp index 89db8fc596b..8aff3af7d74 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/HybridFVMHelperKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/HybridFVMHelperKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseBaseKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseBaseKernels.hpp index 7836591b72d..a7541e66e4f 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseBaseKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseBaseKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -43,8 +43,6 @@ namespace geos namespace isothermalCompositionalMultiphaseBaseKernels { -using namespace constitutive; - static constexpr real64 minDensForDivision = 1e-10; enum class ElementBasedAssemblyKernelFlags @@ -277,7 +275,7 @@ class PhaseVolumeFractionKernel : public PropertyKernelBase< NUM_COMP > * @param[in] fluid the fluid model */ PhaseVolumeFractionKernel( ObjectManagerBase & subRegion, - MultiFluidBase const & fluid ) + constitutive::MultiFluidBase const & fluid ) : Base(), m_phaseVolFrac( subRegion.getField< fields::flow::phaseVolumeFraction >() ), m_dPhaseVolFrac( subRegion.getField< fields::flow::dPhaseVolumeFraction >() ), @@ -300,14 +298,14 @@ class PhaseVolumeFractionKernel : public PropertyKernelBase< NUM_COMP > real64 compute( localIndex const ei, FUNC && phaseVolFractionKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; arraySlice1d< real64 const, compflow::USD_COMP - 1 > const compDens = m_compDens[ei]; arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > const dCompFrac_dCompDens = m_dCompFrac_dCompDens[ei]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const phaseDens = m_phaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseDens = m_dPhaseDens[ei][0]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const phaseFrac = m_phaseFrac[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseFrac = m_dPhaseFrac[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseDens = m_phaseDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseDens = m_dPhaseDens[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseFrac = m_phaseFrac[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseFrac = m_dPhaseFrac[ei][0]; arraySlice1d< real64, compflow::USD_PHASE - 1 > const phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64, compflow::USD_PHASE_DC - 1 > const dPhaseVolFrac = m_dPhaseVolFrac[ei]; @@ -418,12 +416,12 @@ class PhaseVolumeFractionKernel : public PropertyKernelBase< NUM_COMP > arrayView3d< real64 const, compflow::USD_COMP_DC > m_dCompFrac_dCompDens; /// Views on phase fractions - arrayView3d< real64 const, multifluid::USD_PHASE > m_phaseFrac; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > m_dPhaseFrac; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > m_phaseFrac; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > m_dPhaseFrac; /// Views on phase densities - arrayView3d< real64 const, multifluid::USD_PHASE > m_phaseDens; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > m_dPhaseDens; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > m_phaseDens; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > m_dPhaseDens; }; @@ -447,7 +445,7 @@ class PhaseVolumeFractionKernelFactory createAndLaunch( integer const numComp, integer const numPhase, ObjectManagerBase & subRegion, - MultiFluidBase const & fluid ) + constitutive::MultiFluidBase const & fluid ) { real64 maxDeltaPhaseVolFrac = 0.0; if( numPhase == 2 ) @@ -582,8 +580,8 @@ class ElementBasedAssemblyKernel globalIndex const rankOffset, string const dofKey, ElementSubRegionBase const & subRegion, - MultiFluidBase const & fluid, - CoupledSolidBase const & solid, + constitutive::MultiFluidBase const & fluid, + constitutive::CoupledSolidBase const & solid, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs, BitFlags< ElementBasedAssemblyKernelFlags > const kernelFlags ) @@ -706,7 +704,7 @@ class ElementBasedAssemblyKernel } else { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // construct the slices for variables accessed multiple times arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > dCompFrac_dCompDens = m_dCompFrac_dCompDens[ei]; @@ -714,11 +712,11 @@ class ElementBasedAssemblyKernel arraySlice1d< real64 const, compflow::USD_PHASE - 1 > phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > dPhaseVolFrac = m_dPhaseVolFrac[ei]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > phaseDens = m_phaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > dPhaseDens = m_dPhaseDens[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > phaseDens = m_phaseDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > dPhaseDens = m_dPhaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_COMP - 2 > phaseCompFrac = m_phaseCompFrac[ei][0]; - arraySlice3d< real64 const, multifluid::USD_PHASE_COMP_DC - 2 > dPhaseCompFrac = m_dPhaseCompFrac[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_COMP - 2 > phaseCompFrac = m_phaseCompFrac[ei][0]; + arraySlice3d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC - 2 > dPhaseCompFrac = m_dPhaseCompFrac[ei][0]; // temporary work arrays real64 dPhaseAmount_dC[numComp]{}; @@ -795,7 +793,7 @@ class ElementBasedAssemblyKernel StackVariables & stack, FUNC && phaseVolFractionSumKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; arraySlice1d< real64 const, compflow::USD_PHASE - 1 > phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > dPhaseVolFrac = m_dPhaseVolFrac[ei]; @@ -920,12 +918,12 @@ class ElementBasedAssemblyKernel arrayView3d< real64 const, compflow::USD_PHASE_DC > const m_dPhaseVolFrac; /// Views on the phase densities - arrayView3d< real64 const, multifluid::USD_PHASE > const m_phaseDens; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > const m_dPhaseDens; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const m_phaseDens; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > const m_dPhaseDens; /// Views on the phase component fraction - arrayView4d< real64 const, multifluid::USD_PHASE_COMP > const m_phaseCompFrac; - arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > const m_dPhaseCompFrac; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > const m_phaseCompFrac; + arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > const m_dPhaseCompFrac; // View on component densities arrayView2d< real64 const, compflow::USD_COMP > m_compDens; @@ -970,8 +968,8 @@ class ElementBasedAssemblyKernelFactory integer const useSimpleAccumulation, string const dofKey, ElementSubRegionBase const & subRegion, - MultiFluidBase const & fluid, - CoupledSolidBase const & solid, + constitutive::MultiFluidBase const & fluid, + constitutive::CoupledSolidBase const & solid, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs ) { @@ -1788,11 +1786,11 @@ class SolutionCheckKernelFactory /** * @class ResidualNormKernel */ -class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 1 > +class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 2 > { public: - using Base = solverBaseKernels::ResidualNormKernelBase< 1 >; + using Base = solverBaseKernels::ResidualNormKernelBase< 2 >; using Base::m_minNormalizer; using Base::m_rankOffset; using Base::m_localResidual; @@ -1804,8 +1802,8 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 1 > arrayView1d< localIndex const > const & ghostRank, integer const numComponents, ElementSubRegionBase const & subRegion, - MultiFluidBase const & fluid, - CoupledSolidBase const & solid, + constitutive::MultiFluidBase const & fluid, + constitutive::CoupledSolidBase const & solid, real64 const minNormalizer ) : Base( rankOffset, localResidual, @@ -1840,9 +1838,9 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 1 > // step 2: volume residual real64 const valVol = LvArray::math::abs( m_localResidual[stack.localRow + m_numComponents] ) / volumeNormalizer; - if( valVol > stack.localValue[0] ) + if( valVol > stack.localValue[1] ) { - stack.localValue[0] = valVol; + stack.localValue[1] = valVol; } } @@ -1866,8 +1864,8 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 1 > real64 const val = m_localResidual[stack.localRow + m_numComponents] * m_totalDens_n[ei][0]; // we need a mass here, hence the // multiplication - stack.localValue[0] += val * val; - stack.localNormalizer[0] += massNormalizer; + stack.localValue[1] += val * val; + stack.localNormalizer[1] += massNormalizer; } @@ -1883,7 +1881,7 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 1 > arrayView2d< real64 const > const m_porosity_n; /// View on total mass/molar density at the previous converged time step - arrayView2d< real64 const, multifluid::USD_FLUID > const m_totalDens_n; + arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > const m_totalDens_n; }; @@ -1916,11 +1914,11 @@ class ResidualNormKernelFactory string const dofKey, arrayView1d< real64 const > const & localResidual, ElementSubRegionBase const & subRegion, - MultiFluidBase const & fluid, - CoupledSolidBase const & solid, + constitutive::MultiFluidBase const & fluid, + constitutive::CoupledSolidBase const & solid, real64 const minNormalizer, - real64 (& residualNorm)[1], - real64 (& residualNormalizer)[1] ) + real64 (& residualNorm)[2], + real64 (& residualNormalizer)[2] ) { arrayView1d< globalIndex const > const dofNumber = subRegion.getReference< array1d< globalIndex > >( dofKey ); arrayView1d< integer const > const ghostRank = subRegion.ghostRank(); @@ -1968,11 +1966,11 @@ struct StatisticsKernel arrayView1d< real64 const > const & temp, arrayView1d< real64 const > const & refPorosity, arrayView2d< real64 const > const & porosity, - arrayView3d< real64 const, multifluid::USD_PHASE > const & phaseDensity, - arrayView4d< real64 const, multifluid::USD_PHASE_COMP > const & phaseCompFraction, + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const & phaseDensity, + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > const & phaseCompFraction, arrayView2d< real64 const, compflow::USD_PHASE > const & phaseVolFrac, - arrayView3d< real64 const, relperm::USD_RELPERM > const & phaseTrappedVolFrac, - arrayView3d< real64 const, relperm::USD_RELPERM > const & phaseRelperm, + arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > const & phaseTrappedVolFrac, + arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > const & phaseRelperm, real64 & minPres, real64 & avgPresNumerator, real64 & maxPres, @@ -2127,14 +2125,14 @@ struct HydrostaticPressureKernel { // fluid properties at this elevation StackArray< real64, 2, constitutive::MultiFluidBase::MAX_NUM_COMPONENTS, compflow::LAYOUT_COMP > compFrac( 1, numComps ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > phaseFrac( 1, 1, numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > phaseDens( 1, 1, numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > phaseMassDens( 1, 1, numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > phaseVisc( 1, 1, numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > phaseEnthalpy( 1, 1, numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > phaseInternalEnergy( 1, 1, numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > phaseFrac( 1, 1, numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > phaseDens( 1, 1, numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > phaseMassDens( 1, 1, numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > phaseVisc( 1, 1, numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > phaseEnthalpy( 1, 1, numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > phaseInternalEnergy( 1, 1, numPhases ); StackArray< real64, 4, constitutive::MultiFluidBase::MAX_NUM_PHASES *constitutive::MultiFluidBase::MAX_NUM_COMPONENTS, - multifluid::LAYOUT_PHASE_COMP > phaseCompFrac( 1, 1, numPhases, numComps ); + constitutive::multifluid::LAYOUT_PHASE_COMP > phaseCompFrac( 1, 1, numPhases, numComps ); real64 totalDens = 0.0; bool isSinglePhaseFlow = true; @@ -2155,18 +2153,18 @@ struct HydrostaticPressureKernel // Step 3: compute the mass density at this elevation using the guess, and update pressure - MultiFluidBase::KernelWrapper::computeValues( fluidWrapper, - pres0, - temp, - compFrac[0], - phaseFrac[0][0], - phaseDens[0][0], - phaseMassDens[0][0], - phaseVisc[0][0], - phaseEnthalpy[0][0], - phaseInternalEnergy[0][0], - phaseCompFrac[0][0], - totalDens ); + constitutive::MultiFluidBase::KernelWrapper::computeValues( fluidWrapper, + pres0, + temp, + compFrac[0], + phaseFrac[0][0], + phaseDens[0][0], + phaseMassDens[0][0], + phaseVisc[0][0], + phaseEnthalpy[0][0], + phaseInternalEnergy[0][0], + phaseCompFrac[0][0], + totalDens ); pres1 = refPres - 0.5 * ( refPhaseMassDens[ipInit] + phaseMassDens[0][0][ipInit] ) * gravCoef; // Step 4: fixed-point iteration until convergence @@ -2201,18 +2199,18 @@ struct HydrostaticPressureKernel } // compute the mass density at this elevation using the previous pressure, and compute the new pressure - MultiFluidBase::KernelWrapper::computeValues( fluidWrapper, - pres0, - temp, - compFrac[0], - phaseFrac[0][0], - phaseDens[0][0], - phaseMassDens[0][0], - phaseVisc[0][0], - phaseEnthalpy[0][0], - phaseInternalEnergy[0][0], - phaseCompFrac[0][0], - totalDens ); + constitutive::MultiFluidBase::KernelWrapper::computeValues( fluidWrapper, + pres0, + temp, + compFrac[0], + phaseFrac[0][0], + phaseDens[0][0], + phaseMassDens[0][0], + phaseVisc[0][0], + phaseEnthalpy[0][0], + phaseInternalEnergy[0][0], + phaseCompFrac[0][0], + totalDens ); pres1 = refPres - 0.5 * ( refPhaseMassDens[ipInit] + phaseMassDens[0][0][ipInit] ) * gravCoef; } @@ -2264,13 +2262,13 @@ struct HydrostaticPressureKernel // datum fluid properties array2d< real64, compflow::LAYOUT_COMP > datumCompFrac( 1, numComps ); - array3d< real64, multifluid::LAYOUT_PHASE > datumPhaseFrac( 1, 1, numPhases ); - array3d< real64, multifluid::LAYOUT_PHASE > datumPhaseDens( 1, 1, numPhases ); - array3d< real64, multifluid::LAYOUT_PHASE > datumPhaseMassDens( 1, 1, numPhases ); - array3d< real64, multifluid::LAYOUT_PHASE > datumPhaseVisc( 1, 1, numPhases ); - array3d< real64, multifluid::LAYOUT_PHASE > datumPhaseEnthalpy( 1, 1, numPhases ); - array3d< real64, multifluid::LAYOUT_PHASE > datumPhaseInternalEnergy( 1, 1, numPhases ); - array4d< real64, multifluid::LAYOUT_PHASE_COMP > datumPhaseCompFrac( 1, 1, numPhases, numComps ); + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > datumPhaseFrac( 1, 1, numPhases ); + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > datumPhaseDens( 1, 1, numPhases ); + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > datumPhaseMassDens( 1, 1, numPhases ); + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > datumPhaseVisc( 1, 1, numPhases ); + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > datumPhaseEnthalpy( 1, 1, numPhases ); + array3d< real64, constitutive::multifluid::LAYOUT_PHASE > datumPhaseInternalEnergy( 1, 1, numPhases ); + array4d< real64, constitutive::multifluid::LAYOUT_PHASE_COMP > datumPhaseCompFrac( 1, 1, numPhases, numComps ); real64 datumTotalDens = 0.0; real64 const datumTemp = tempTableWrapper.compute( &datumElevation ); @@ -2278,18 +2276,18 @@ struct HydrostaticPressureKernel { datumCompFrac[0][ic] = compFracTableWrappers[ic].compute( &datumElevation ); } - MultiFluidBase::KernelWrapper::computeValues( fluidWrapper, - datumPres, - datumTemp, - datumCompFrac[0], - datumPhaseFrac[0][0], - datumPhaseDens[0][0], - datumPhaseMassDens[0][0], - datumPhaseVisc[0][0], - datumPhaseEnthalpy[0][0], - datumPhaseInternalEnergy[0][0], - datumPhaseCompFrac[0][0], - datumTotalDens ); + constitutive::MultiFluidBase::KernelWrapper::computeValues( fluidWrapper, + datumPres, + datumTemp, + datumCompFrac[0], + datumPhaseFrac[0][0], + datumPhaseDens[0][0], + datumPhaseMassDens[0][0], + datumPhaseVisc[0][0], + datumPhaseEnthalpy[0][0], + datumPhaseInternalEnergy[0][0], + datumPhaseCompFrac[0][0], + datumTotalDens ); // Step 2: find the closest elevation to datumElevation diff --git a/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernelUtilities.hpp b/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernelUtilities.hpp index a8bfa806c77..7284f48d985 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernelUtilities.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernelUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.cpp b/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.cpp index 53e0e77be7a..6670a649a03 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -28,6 +28,7 @@ namespace geos { +using namespace constitutive; namespace isothermalCompositionalMultiphaseFVMKernels { diff --git a/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.hpp index e873db36651..08359bc0d6a 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/IsothermalCompositionalMultiphaseFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -56,8 +56,6 @@ namespace geos namespace isothermalCompositionalMultiphaseFVMKernels { -using namespace constitutive; - enum class FaceBasedAssemblyKernelFlags { /// Flag to specify whether capillary pressure is used or not @@ -101,8 +99,8 @@ class PhaseMobilityKernel : public isothermalCompositionalMultiphaseBaseKernels: * @param[in] relperm the relperm model */ PhaseMobilityKernel( ObjectManagerBase & subRegion, - MultiFluidBase const & fluid, - RelativePermeabilityBase const & relperm ) + constitutive::MultiFluidBase const & fluid, + constitutive::RelativePermeabilityBase const & relperm ) : Base(), m_phaseVolFrac( subRegion.getField< fields::flow::phaseVolumeFraction >() ), m_dPhaseVolFrac( subRegion.getField< fields::flow::dPhaseVolumeFraction >() ), @@ -128,15 +126,15 @@ class PhaseMobilityKernel : public isothermalCompositionalMultiphaseBaseKernels: void compute( localIndex const ei, FUNC && phaseMobilityKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > const dCompFrac_dCompDens = m_dCompFrac_dCompDens[ei]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const phaseDens = m_phaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseDens = m_dPhaseDens[ei][0]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const phaseVisc = m_phaseVisc[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseVisc = m_dPhaseVisc[ei][0]; - arraySlice1d< real64 const, relperm::USD_RELPERM - 2 > const phaseRelPerm = m_phaseRelPerm[ei][0]; - arraySlice2d< real64 const, relperm::USD_RELPERM_DS - 2 > const dPhaseRelPerm_dPhaseVolFrac = m_dPhaseRelPerm_dPhaseVolFrac[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseDens = m_phaseDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseDens = m_dPhaseDens[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseVisc = m_phaseVisc[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseVisc = m_dPhaseVisc[ei][0]; + arraySlice1d< real64 const, constitutive::relperm::USD_RELPERM - 2 > const phaseRelPerm = m_phaseRelPerm[ei][0]; + arraySlice2d< real64 const, constitutive::relperm::USD_RELPERM_DS - 2 > const dPhaseRelPerm_dPhaseVolFrac = m_dPhaseRelPerm_dPhaseVolFrac[ei][0]; arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > const dPhaseVolFrac = m_dPhaseVolFrac[ei]; arraySlice1d< real64, compflow::USD_PHASE - 1 > const phaseMob = m_phaseMob[ei]; @@ -216,16 +214,16 @@ class PhaseMobilityKernel : public isothermalCompositionalMultiphaseBaseKernels: arrayView3d< real64 const, compflow::USD_COMP_DC > m_dCompFrac_dCompDens; /// Views on the phase densities - arrayView3d< real64 const, multifluid::USD_PHASE > m_phaseDens; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > m_dPhaseDens; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > m_phaseDens; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > m_dPhaseDens; /// Views on the phase viscosities - arrayView3d< real64 const, multifluid::USD_PHASE > m_phaseVisc; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > m_dPhaseVisc; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > m_phaseVisc; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > m_dPhaseVisc; /// Views on the phase relative permeabilities - arrayView3d< real64 const, relperm::USD_RELPERM > m_phaseRelPerm; - arrayView4d< real64 const, relperm::USD_RELPERM_DS > m_dPhaseRelPerm_dPhaseVolFrac; + arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > m_phaseRelPerm; + arrayView4d< real64 const, constitutive::relperm::USD_RELPERM_DS > m_dPhaseRelPerm_dPhaseVolFrac; // outputs @@ -256,8 +254,8 @@ class PhaseMobilityKernelFactory createAndLaunch( integer const numComp, integer const numPhase, ObjectManagerBase & subRegion, - MultiFluidBase const & fluid, - RelativePermeabilityBase const & relperm ) + constitutive::MultiFluidBase const & fluid, + constitutive::RelativePermeabilityBase const & relperm ) { if( numPhase == 2 ) { @@ -312,7 +310,7 @@ class FaceBasedAssemblyKernelBase fields::flow::phaseMobility, fields::flow::dPhaseMobility >; using MultiFluidAccessors = - StencilMaterialAccessors< MultiFluidBase, + StencilMaterialAccessors< constitutive::MultiFluidBase, fields::multifluid::phaseDensity, fields::multifluid::dPhaseDensity, fields::multifluid::phaseMassDensity, @@ -321,12 +319,12 @@ class FaceBasedAssemblyKernelBase fields::multifluid::dPhaseCompFraction >; using CapPressureAccessors = - StencilMaterialAccessors< CapillaryPressureBase, + StencilMaterialAccessors< constitutive::CapillaryPressureBase, fields::cappres::phaseCapPressure, fields::cappres::dPhaseCapPressure_dPhaseVolFraction >; using PermeabilityAccessors = - StencilMaterialAccessors< PermeabilityBase, + StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::permeability, fields::permeability::dPerm_dPressure >; @@ -380,8 +378,8 @@ class FaceBasedAssemblyKernelBase ElementViewConst< arrayView3d< real64 const, compflow::USD_PHASE_DC > > const m_dPhaseVolFrac; /// Views on phase component fractions - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const m_phaseCompFrac; - ElementViewConst< arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > > const m_dPhaseCompFrac; + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const m_phaseCompFrac; + ElementViewConst< arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > > const m_dPhaseCompFrac; // Residual and jacobian @@ -826,12 +824,12 @@ class FaceBasedAssemblyKernel : public FaceBasedAssemblyKernelBase ElementViewConst< arrayView3d< real64 const, compflow::USD_PHASE_DC > > const m_dPhaseMob; /// Views on phase mass densities - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const m_phaseMassDens; - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const m_dPhaseMassDens; + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const m_phaseMassDens; + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const m_dPhaseMassDens; /// Views on phase capillary pressure - ElementViewConst< arrayView3d< real64 const, cappres::USD_CAPPRES > > const m_phaseCapPressure; - ElementViewConst< arrayView4d< real64 const, cappres::USD_CAPPRES_DS > > const m_dPhaseCapPressure_dPhaseVolFrac; + ElementViewConst< arrayView3d< real64 const, constitutive::cappres::USD_CAPPRES > > const m_phaseCapPressure; + ElementViewConst< arrayView4d< real64 const, constitutive::cappres::USD_CAPPRES_DS > > const m_dPhaseCapPressure_dPhaseVolFrac; // Stencil information @@ -959,17 +957,17 @@ class DiffusionDispersionFaceBasedAssemblyKernel : public FaceBasedAssemblyKerne using AbstractBase::m_kernelFlags; using DiffusionAccessors = - StencilMaterialAccessors< DiffusionBase, + StencilMaterialAccessors< constitutive::DiffusionBase, fields::diffusion::diffusivity, fields::diffusion::dDiffusivity_dTemperature, fields::diffusion::phaseDiffusivityMultiplier >; using DispersionAccessors = - StencilMaterialAccessors< DispersionBase, + StencilMaterialAccessors< constitutive::DispersionBase, fields::dispersion::dispersivity >; using PorosityAccessors = - StencilMaterialAccessors< PorosityBase, + StencilMaterialAccessors< constitutive::PorosityBase, fields::porosity::referencePorosity >; /** @@ -1127,7 +1125,7 @@ class DiffusionDispersionFaceBasedAssemblyKernel : public FaceBasedAssemblyKerne StackVariables & stack, FUNC && diffusionFluxKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // first, compute the transmissibilities at this face m_stencilWrapper.computeWeights( iconn, @@ -1260,7 +1258,7 @@ class DiffusionDispersionFaceBasedAssemblyKernel : public FaceBasedAssemblyKerne StackVariables & stack, FUNC && dispersionFluxKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // first, compute the transmissibilities at this face // note that the dispersion tensor is lagged in iteration @@ -1389,7 +1387,7 @@ class DiffusionDispersionFaceBasedAssemblyKernel : public FaceBasedAssemblyKerne real64 (& dCompFracGrad_dP)[numFluxSupportPoints], real64 (& dCompFracGrad_dC)[numFluxSupportPoints][numComp] ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; real64 dCompFrac_dC[numComp]{}; @@ -1548,8 +1546,8 @@ class DiffusionDispersionFaceBasedAssemblyKernel : public FaceBasedAssemblyKerne ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const m_phaseVolFrac; /// Views on phase densities - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const m_phaseDens; - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const m_dPhaseDens; + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const m_phaseDens; + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const m_dPhaseDens; /// Views on diffusivity ElementViewConst< arrayView3d< real64 const > > const m_diffusivity; @@ -1831,7 +1829,7 @@ class DirichletFaceBasedAssemblyKernel : public FaceBasedAssemblyKernel< NUM_COM StackVariables & stack, FUNC && compFluxKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; using Order = BoundaryStencil::Order; localIndex const er = m_seri( iconn, Order::ELEM ); @@ -1852,28 +1850,28 @@ class DirichletFaceBasedAssemblyKernel : public FaceBasedAssemblyKernel< NUM_COM // This is needed to get the phase mass density and the phase comp fraction at the face // Because we approximate the face mobility using the total element mobility - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > facePhaseFrac( 1, 1, m_numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > facePhaseDens( 1, 1, m_numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > facePhaseMassDens( 1, 1, m_numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > facePhaseVisc( 1, 1, m_numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > facePhaseEnthalpy( 1, 1, m_numPhases ); - StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, multifluid::LAYOUT_PHASE > facePhaseInternalEnergy( 1, 1, m_numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > facePhaseFrac( 1, 1, m_numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > facePhaseDens( 1, 1, m_numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > facePhaseMassDens( 1, 1, m_numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > facePhaseVisc( 1, 1, m_numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > facePhaseEnthalpy( 1, 1, m_numPhases ); + StackArray< real64, 3, constitutive::MultiFluidBase::MAX_NUM_PHASES, constitutive::multifluid::LAYOUT_PHASE > facePhaseInternalEnergy( 1, 1, m_numPhases ); StackArray< real64, 4, constitutive::MultiFluidBase::MAX_NUM_PHASES * NUM_COMP, - multifluid::LAYOUT_PHASE_COMP > facePhaseCompFrac( 1, 1, m_numPhases, NUM_COMP ); + constitutive::multifluid::LAYOUT_PHASE_COMP > facePhaseCompFrac( 1, 1, m_numPhases, NUM_COMP ); real64 faceTotalDens = 0.0; - MultiFluidBase::KernelWrapper::computeValues( m_fluidWrapper, - m_facePres[kf], - m_faceTemp[kf], - m_faceCompFrac[kf], - facePhaseFrac[0][0], - facePhaseDens[0][0], - facePhaseMassDens[0][0], - facePhaseVisc[0][0], - facePhaseEnthalpy[0][0], - facePhaseInternalEnergy[0][0], - facePhaseCompFrac[0][0], - faceTotalDens ); + constitutive::MultiFluidBase::KernelWrapper::computeValues( m_fluidWrapper, + m_facePres[kf], + m_faceTemp[kf], + m_faceCompFrac[kf], + facePhaseFrac[0][0], + facePhaseDens[0][0], + facePhaseMassDens[0][0], + facePhaseVisc[0][0], + facePhaseEnthalpy[0][0], + facePhaseInternalEnergy[0][0], + facePhaseCompFrac[0][0], + faceTotalDens ); // Step 3: loop over phases, compute and upwind phase flux and sum contributions to each component's flux @@ -1952,9 +1950,9 @@ class DirichletFaceBasedAssemblyKernel : public FaceBasedAssemblyKernel< NUM_COM } // slice some constitutive arrays to avoid too much indexing in component loop - arraySlice1d< real64 const, multifluid::USD_PHASE_COMP-3 > phaseCompFracSub = + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE_COMP-3 > phaseCompFracSub = m_phaseCompFrac[er][esr][ei][0][ip]; - arraySlice2d< real64 const, multifluid::USD_PHASE_COMP_DC-3 > dPhaseCompFracSub = + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC-3 > dPhaseCompFracSub = m_dPhaseCompFrac[er][esr][ei][0][ip]; // compute component fluxes and derivatives using element composition @@ -2120,7 +2118,7 @@ class DirichletFaceBasedAssemblyKernelFactory FaceManager const & faceManager, ElementRegionManager const & elemManager, BoundaryStencilWrapper const & stencilWrapper, - MultiFluidBase & fluidBase, + constitutive::MultiFluidBase & fluidBase, real64 const dt, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs ) @@ -2185,20 +2183,20 @@ struct CFLFluxKernel fields::flow::componentOutflux >; using MultiFluidAccessors = - StencilMaterialAccessors< MultiFluidBase, + StencilMaterialAccessors< constitutive::MultiFluidBase, fields::multifluid::phaseViscosity, fields::multifluid::phaseDensity, fields::multifluid::phaseMassDensity, fields::multifluid::phaseCompFraction >; using PermeabilityAccessors = - StencilMaterialAccessors< PermeabilityBase, + StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::permeability, fields::permeability::dPerm_dPressure >; using RelPermAccessors = - StencilMaterialAccessors< RelativePermeabilityBase, fields::relperm::phaseRelPerm >; + StencilMaterialAccessors< constitutive::RelativePermeabilityBase, fields::relperm::phaseRelPerm >; template< integer NC, localIndex NUM_ELEMS, localIndex maxStencilSize > GEOS_HOST_DEVICE @@ -2214,11 +2212,11 @@ struct CFLFluxKernel ElementViewConst< arrayView1d< real64 const > > const & pres, ElementViewConst< arrayView1d< real64 const > > const & gravCoef, ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & phaseVolFrac, - ElementViewConst< arrayView3d< real64 const, relperm::USD_RELPERM > > const & phaseRelPerm, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseVisc, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseDens, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseMassDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const & phaseCompFrac, + ElementViewConst< arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > > const & phaseRelPerm, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseVisc, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseMassDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const & phaseCompFrac, ElementView< arrayView2d< real64, compflow::USD_PHASE > > const & phaseOutflux, ElementView< arrayView2d< real64, compflow::USD_COMP > > const & compOutflux ); @@ -2232,11 +2230,11 @@ struct CFLFluxKernel ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & phaseVolFrac, ElementViewConst< arrayView3d< real64 const > > const & permeability, ElementViewConst< arrayView3d< real64 const > > const & dPerm_dPres, - ElementViewConst< arrayView3d< real64 const, relperm::USD_RELPERM > > const & phaseRelPerm, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseVisc, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseDens, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseMassDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const & phaseCompFrac, + ElementViewConst< arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > > const & phaseRelPerm, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseVisc, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseMassDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const & phaseCompFrac, ElementView< arrayView2d< real64, compflow::USD_PHASE > > const & phaseOutflux, ElementView< arrayView2d< real64, compflow::USD_COMP > > const & compOutflux ); }; @@ -2258,9 +2256,9 @@ struct CFLKernel static void computePhaseCFL( real64 const poreVol, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > phaseVolFrac, - arraySlice1d< real64 const, relperm::USD_RELPERM - 2 > phaseRelPerm, - arraySlice2d< real64 const, relperm::USD_RELPERM_DS - 2 > dPhaseRelPerm_dPhaseVolFrac, - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > phaseVisc, + arraySlice1d< real64 const, constitutive::relperm::USD_RELPERM - 2 > phaseRelPerm, + arraySlice2d< real64 const, constitutive::relperm::USD_RELPERM_DS - 2 > dPhaseRelPerm_dPhaseVolFrac, + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > phaseVisc, arraySlice1d< real64 const, compflow::USD_PHASE- 1 > phaseOutflux, real64 & phaseCFLNumber ); @@ -2282,9 +2280,9 @@ struct CFLKernel arrayView2d< real64 const, compflow::USD_COMP > const & compDens, arrayView2d< real64 const, compflow::USD_COMP > const & compFrac, arrayView2d< real64 const, compflow::USD_PHASE > const & phaseVolFrac, - arrayView3d< real64 const, relperm::USD_RELPERM > const & phaseRelPerm, - arrayView4d< real64 const, relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, - arrayView3d< real64 const, multifluid::USD_PHASE > const & phaseVisc, + arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > const & phaseRelPerm, + arrayView4d< real64 const, constitutive::relperm::USD_RELPERM_DS > const & dPhaseRelPerm_dPhaseVolFrac, + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const & phaseVisc, arrayView2d< real64 const, compflow::USD_PHASE > const & phaseOutflux, arrayView2d< real64 const, compflow::USD_COMP > const & compOutflux, arrayView1d< real64 > const & phaseCFLNumber, @@ -2321,7 +2319,7 @@ struct AquiferBCKernel fields::flow::dGlobalCompFraction_dGlobalCompDensity >; using MultiFluidAccessors = - StencilMaterialAccessors< MultiFluidBase, + StencilMaterialAccessors< constitutive::MultiFluidBase, fields::multifluid::phaseDensity, fields::multifluid::dPhaseDensity, fields::multifluid::phaseCompFraction, @@ -2338,12 +2336,12 @@ struct AquiferBCKernel real64 const dAquiferVolFlux_dPres, real64 const aquiferWaterPhaseDens, arrayView1d< real64 const > const & aquiferWaterPhaseCompFrac, - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > phaseDens, - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > dPhaseDens, + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > phaseDens, + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > dPhaseDens, arraySlice1d< real64 const, compflow::USD_PHASE - 1 > phaseVolFrac, arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > dPhaseVolFrac, - arraySlice2d< real64 const, multifluid::USD_PHASE_COMP - 2 > phaseCompFrac, - arraySlice3d< real64 const, multifluid::USD_PHASE_COMP_DC - 2 > dPhaseCompFrac, + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_COMP - 2 > phaseCompFrac, + arraySlice3d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC - 2 > dPhaseCompFrac, arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > dCompFrac_dCompDens, real64 const dt, real64 ( &localFlux )[NC], @@ -2368,10 +2366,10 @@ struct AquiferBCKernel ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & phaseVolFrac, ElementViewConst< arrayView3d< real64 const, compflow::USD_PHASE_DC > > const & dPhaseVolFrac, ElementViewConst< arrayView3d< real64 const, compflow::USD_COMP_DC > > const & dCompFrac_dCompDens, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & phaseDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const & dPhaseDens, - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const & phaseCompFrac, - ElementViewConst< arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & phaseDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const & dPhaseDens, + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const & phaseCompFrac, + ElementViewConst< arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > > const & dPhaseCompFrac, real64 const timeAtBeginningOfStep, real64 const dt, CRSMatrixView< real64, globalIndex const > const & localMatrix, diff --git a/src/coreComponents/physicsSolvers/fluidFlow/LogLevelsInfo.hpp b/src/coreComponents/physicsSolvers/fluidFlow/LogLevelsInfo.hpp new file mode 100644 index 00000000000..cd9f3eb5322 --- /dev/null +++ b/src/coreComponents/physicsSolvers/fluidFlow/LogLevelsInfo.hpp @@ -0,0 +1,57 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file LogLevelsInfo.hpp + * This file contains log level informations for flow solvers + */ + +#ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_LOGLEVELSINFO_HPP +#define GEOS_PHYSICSSOLVERS_FLUIDFLOW_LOGLEVELSINFO_HPP + +#include "common/DataTypes.hpp" + +namespace geos +{ + +namespace logInfo +{ + +/** + * @name Wells LogLevels info structures. They must comply with the `is_log_level_info` trait. + */ +///@{ + +/// @cond DO_NOT_DOCUMENT + +struct CFL +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "CFL information"; } +}; + +struct Statistics +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Print statistics"; } +}; + +/// @endcond +///@} + +} + +} + +#endif // GEOS_PHYSICSSOLVERS_FLUIDFLOW_LOGLEVELSINFO_HPP diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp index b4c23209be8..4e7e14b7ac0 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -367,10 +367,7 @@ real64 ReactiveCompositionalMultiphaseOBL::calculateResidualNorm( real64 const & real64 const residual = m_useDARTSL2Norm ? MpiWrapper::max( localResidualNorm ) : std::sqrt( MpiWrapper::sum( localResidualNorm ) ); - if( getLogLevel() >= 1 && logger::internal::rank==0 ) - { - std::cout << GEOS_FMT( " ( Rflow ) = ( {:4.2e} )", residual ); - } + GEOS_LOG_LEVEL_INFO_RANK_0_NLR( logInfo::Convergence, GEOS_FMT( " ( Rflow ) = ( {:4.2e} )", residual ) ); return residual; } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.hpp b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.hpp index 7f2fee4d3bd..8e12090e9aa 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBLFields.hpp b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBLFields.hpp index 303e86655d2..84d9f0e5f54 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBLFields.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBLFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBLKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBLKernels.hpp index 6cb7be8bd40..168bb83da93 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBLKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBLKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -40,8 +40,6 @@ namespace geos namespace reactiveCompositionalMultiphaseOBLKernels { -using namespace constitutive; - static constexpr real64 minValueForDivision = 1e-10; @@ -643,7 +641,7 @@ class FaceBasedAssemblyKernelBase fields::flow::OBLOperatorDerivatives >; using PermeabilityAccessors = - StencilMaterialAccessors< PermeabilityBase, + StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::permeability, fields::permeability::dPerm_dPressure >; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp index 5edba2269c7..29bb60d7ad2 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -318,29 +318,24 @@ void SinglePhaseBase::updateEnergy( ElementSubRegionBase & subRegion ) const void SinglePhaseBase::updateSolidInternalEnergyModel( ObjectManagerBase & dataGroup ) const { - arrayView1d< real64 const > const temp = dataGroup.getField< fields::flow::temperature >(); + arrayView1d< real64 const > const temperature = dataGroup.getField< fields::flow::temperature >(); string const & solidInternalEnergyName = dataGroup.getReference< string >( viewKeyStruct::solidInternalEnergyNamesString() ); SolidInternalEnergy & solidInternalEnergy = getConstitutiveModel< SolidInternalEnergy >( dataGroup, solidInternalEnergyName ); SolidInternalEnergy::KernelWrapper solidInternalEnergyWrapper = solidInternalEnergy.createKernelUpdates(); - thermalSinglePhaseBaseKernels::SolidInternalEnergyUpdateKernel::launch< parallelDevicePolicy<> >( dataGroup.size(), solidInternalEnergyWrapper, temp ); + thermalSinglePhaseBaseKernels::SolidInternalEnergyUpdateKernel::launch< parallelDevicePolicy<> >( dataGroup.size(), solidInternalEnergyWrapper, temperature ); } void SinglePhaseBase::updateThermalConductivity( ElementSubRegionBase & subRegion ) const { - //START_SPHINX_INCLUDE_COUPLEDSOLID - CoupledSolidBase const & porousSolid = - getConstitutiveModel< CoupledSolidBase >( subRegion, subRegion.template getReference< string >( viewKeyStruct::solidNamesString() ) ); - //END_SPHINX_INCLUDE_COUPLEDSOLID - - arrayView2d< real64 const > const porosity = porousSolid.getPorosity(); - string const & thermalConductivityName = subRegion.template getReference< string >( viewKeyStruct::thermalConductivityNamesString() ); SinglePhaseThermalConductivityBase const & conductivityMaterial = getConstitutiveModel< SinglePhaseThermalConductivityBase >( subRegion, thermalConductivityName ); - conductivityMaterial.update( porosity ); + + arrayView1d< real64 const > const & temperature = subRegion.template getField< fields::flow::temperature >(); + conductivityMaterial.updateFromTemperature( temperature ); } real64 SinglePhaseBase::updateFluidState( ElementSubRegionBase & subRegion ) const @@ -1133,7 +1128,7 @@ void SinglePhaseBase::applySourceFluxBC( real64 const time_n, real64 const rhsValue = rhsContributionArrayView[a] / sizeScalingFactor; // scale the contribution by the sizeScalingFactor here! localRhs[massRowIndex] += rhsValue; massProd += rhsValue; - //add the value to the energey balance equation if the flux is positive (i.e., it's a producer) + //add the value to the energy balance equation if the flux is positive (i.e., it's a producer) if( rhsContributionArrayView[a] > 0.0 ) { globalIndex const pressureDofIndex = dofNumber[ei] - rankOffset; @@ -1344,8 +1339,8 @@ real64 SinglePhaseBase::scalingForSystemSolution( DomainPartition & domain, scalingFactor = MpiWrapper::min( scalingFactor ); maxDeltaPres = MpiWrapper::max( maxDeltaPres ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max pressure change = {} Pa (before scaling)", - getName(), fmt::format( "{:.{}f}", maxDeltaPres, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Max pressure change = {} Pa (before scaling)", + getName(), fmt::format( "{:.{}f}", maxDeltaPres, 3 ) ) ); return scalingFactor; } @@ -1386,8 +1381,8 @@ bool SinglePhaseBase::checkSystemSolution( DomainPartition & domain, numNegativePressures = MpiWrapper::sum( numNegativePressures ); if( numNegativePressures > 0 ) - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Number of negative pressure values: {}, minimum value: {} Pa", - getName(), numNegativePressures, fmt::format( "{:.{}f}", minPressure, 3 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Number of negative pressure values: {}, minimum value: {} Pa", + getName(), numNegativePressures, fmt::format( "{:.{}f}", minPressure, 3 ) ) ); return (m_allowNegativePressure || numNegativePressures == 0) ? 1 : 0; } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.hpp index cc7f9bb3a03..59ad25124b4 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -416,7 +416,7 @@ class SinglePhaseBase : public FlowSolverBase * * This function enables derived solvers to substitute SingleFluidBase for a different, * unrelated fluid class, and customize property extraction. For example, it is used by - * SinglePhaseProppantBase to allow using SlurryFluidBase, which does not inherit from + * SinglePhaseProppantBase to allow using constitutive::SlurryFluidBase, which does not inherit from * SingleFluidBase currently (but this design may need to be revised). */ virtual FluidPropViews getFluidProperties( constitutive::ConstitutiveBase const & fluid ) const; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBaseFields.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBaseFields.hpp index 9728e612ce9..8b3f80b95c9 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBaseFields.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBaseFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBaseKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBaseKernels.hpp index dbb2d46ffd6..ddbf08c4080 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBaseKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBaseKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVM.cpp index a0f4c85bffe..c5f10cd5f7f 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -228,11 +228,8 @@ real64 SinglePhaseFVM< BASE >::calculateResidualNorm( real64 const & GEOS_UNUSED } residualNorm = sqrt( globalResidualNorm[0] * globalResidualNorm[0] + globalResidualNorm[1] * globalResidualNorm[1] ); - if( getLogLevel() >= 1 && logger::internal::rank == 0 ) - { - std::cout << GEOS_FMT( " ( R{} ) = ( {:4.2e} ) ( Renergy ) = ( {:4.2e} )", - FlowSolverBase::coupledSolverAttributePrefix(), globalResidualNorm[0], globalResidualNorm[1] ); - } + GEOS_LOG_LEVEL_INFO_RANK_0_NLR( logInfo::Convergence, GEOS_FMT( " ( R{} ) = ( {:4.2e} ) ( Renergy ) = ( {:4.2e} )", + FlowSolverBase::coupledSolverAttributePrefix(), globalResidualNorm[0], globalResidualNorm[1] )); } else { @@ -246,10 +243,8 @@ real64 SinglePhaseFVM< BASE >::calculateResidualNorm( real64 const & GEOS_UNUSED solverBaseKernels::L2ResidualNormHelper::computeGlobalNorm( localResidualNorm[0], localResidualNormalizer[0], residualNorm ); } - if( getLogLevel() >= 1 && logger::internal::rank == 0 ) - { - std::cout << GEOS_FMT( " ( R{} ) = ( {:4.2e} )", FlowSolverBase::coupledSolverAttributePrefix(), residualNorm ); - } + GEOS_LOG_LEVEL_INFO_RANK_0_NLR( logInfo::Convergence, + GEOS_FMT( " ( R{} ) = ( {:4.2e} )", FlowSolverBase::coupledSolverAttributePrefix(), residualNorm )); } return residualNorm; } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVM.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVM.hpp index c219295ae99..882ae4c7e8b 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVM.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVMKernels.hpp index fe0474e4cfd..0a04b330ae9 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -37,13 +37,13 @@ #include "physicsSolvers/fluidFlow/SinglePhaseBaseFields.hpp" #include "physicsSolvers/fluidFlow/SinglePhaseBaseKernels.hpp" #include "physicsSolvers/fluidFlow/StencilAccessors.hpp" +#include "physicsSolvers/fluidFlow/FluxKernelsHelper.hpp" namespace geos { namespace singlePhaseFVMKernels { -using namespace constitutive; /******************************** FaceBasedAssemblyKernelBase ********************************/ @@ -75,22 +75,22 @@ class FaceBasedAssemblyKernelBase fields::flow::dMobility_dPressure >; using SinglePhaseFluidAccessors = - StencilMaterialAccessors< SingleFluidBase, + StencilMaterialAccessors< constitutive::SingleFluidBase, fields::singlefluid::density, fields::singlefluid::dDensity_dPressure >; using SlurryFluidAccessors = - StencilMaterialAccessors< SlurryFluidBase, + StencilMaterialAccessors< constitutive::SlurryFluidBase, fields::singlefluid::density, fields::singlefluid::dDensity_dPressure >; using PermeabilityAccessors = - StencilMaterialAccessors< PermeabilityBase, + StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::permeability, fields::permeability::dPerm_dPressure >; using ProppantPermeabilityAccessors = - StencilMaterialAccessors< PermeabilityBase, + StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::permeability, fields::permeability::dPerm_dPressure, fields::permeability::dPerm_dDispJump, @@ -346,135 +346,33 @@ class FaceBasedAssemblyKernel : public FaceBasedAssemblyKernelBase { for( k[1] = k[0] + 1; k[1] < stack.numFluxElems; ++k[1] ) { - // clear working arrays - real64 densMean = 0.0; - real64 dDensMean_dP[2]{0.0, 0.0}; - - // create local work arrays real64 fluxVal = 0.0; - real64 dFlux_dP[2]{0.0, 0.0}; - - real64 const trans[2] = { stack.transmissibility[connectionIndex][0], stack.transmissibility[connectionIndex][1] }; - real64 const dTrans_dP[2] = { stack.dTrans_dPres[connectionIndex][0], stack.dTrans_dPres[connectionIndex][1] }; - - real64 presGrad = 0.0; - real64 dPresGrad_dP[2]{0.0, 0.0}; - - real64 gravHead = 0.0; - real64 dGravHead_dP[2]{0.0, 0.0}; - - localIndex const seri[2] = {m_seri( iconn, k[0] ), m_seri( iconn, k[1] )}; - localIndex const sesri[2] = {m_sesri( iconn, k[0] ), m_sesri( iconn, k[1] )}; - localIndex const sei[2] = {m_sei( iconn, k[0] ), m_sei( iconn, k[1] )}; - - // calculate quantities on primary connected cells - for( integer ke = 0; ke < 2; ++ke ) - { - // density - real64 const density = m_dens[seri[ke]][sesri[ke]][sei[ke]][0]; - real64 const dDens_dP = m_dDens_dPres[seri[ke]][sesri[ke]][sei[ke]][0]; - - // average density and derivatives - densMean += 0.5 * density; - dDensMean_dP[ke] = 0.5 * dDens_dP; - } - - //***** calculation of flux ***** - - // compute potential difference - real64 potScale = 0.0; - real64 dPresGrad_dTrans = 0.0; - real64 dGravHead_dTrans = 0.0; - int signPotDiff[2] = {1, -1}; - - for( integer ke = 0; ke < 2; ++ke ) - { - localIndex const er = seri[ke]; - localIndex const esr = sesri[ke]; - localIndex const ei = sei[ke]; - - real64 const pressure = m_pres[er][esr][ei]; - presGrad += trans[ke] * pressure; - dPresGrad_dTrans += signPotDiff[ke] * pressure; - dPresGrad_dP[ke] = trans[ke]; - - real64 const gravD = trans[ke] * m_gravCoef[er][esr][ei]; - real64 const pot = trans[ke] * pressure - densMean * gravD; - - gravHead += densMean * gravD; - dGravHead_dTrans += signPotDiff[ke] * densMean * m_gravCoef[er][esr][ei]; - - for( integer i = 0; i < 2; ++i ) - { - dGravHead_dP[i] += dDensMean_dP[i] * gravD; - } - - potScale = fmax( potScale, fabs( pot ) ); - } - - for( integer ke = 0; ke < 2; ++ke ) - { - dPresGrad_dP[ke] += dTrans_dP[ke] * dPresGrad_dTrans; - dGravHead_dP[ke] += dTrans_dP[ke] * dGravHead_dTrans; - } - - // *** upwinding *** - - // compute potential gradient - real64 const potGrad = presGrad - gravHead; - - // compute upwinding tolerance - real64 constexpr upwRelTol = 1e-8; - real64 const upwAbsTol = fmax( potScale * upwRelTol, LvArray::NumericLimits< real64 >::epsilon ); - - // decide mobility coefficients - smooth variation in [-upwAbsTol; upwAbsTol] - real64 const alpha = ( potGrad + upwAbsTol ) / ( 2 * upwAbsTol ); - - // choose upstream cell - real64 mobility{}; - real64 dMob_dP[2]{}; - if( alpha <= 0.0 || alpha >= 1.0 ) - { - localIndex const k_up = 1 - localIndex( fmax( fmin( alpha, 1.0 ), 0.0 ) ); - - mobility = m_mob[seri[k_up]][sesri[k_up]][sei[k_up]]; - dMob_dP[k_up] = m_dMob_dPres[seri[k_up]][sesri[k_up]][sei[k_up]]; - } - else - { - real64 const mobWeights[2] = { alpha, 1.0 - alpha }; - for( integer ke = 0; ke < 2; ++ke ) - { - mobility += mobWeights[ke] * m_mob[seri[ke]][sesri[ke]][sei[ke]]; - dMob_dP[ke] = mobWeights[ke] * m_dMob_dPres[seri[ke]][sesri[ke]][sei[ke]]; - } - } - - // pressure gradient depends on all points in the stencil - for( integer ke = 0; ke < 2; ++ke ) - { - dFlux_dP[ke] += dPresGrad_dP[ke]; - } - - // gravitational head depends only on the two cells connected (same as mean density) - for( integer ke = 0; ke < 2; ++ke ) - { - dFlux_dP[ke] -= dGravHead_dP[ke]; - } - - // compute the flux and derivatives using upstream cell mobility - fluxVal = mobility * potGrad; - - for( integer ke = 0; ke < 2; ++ke ) - { - dFlux_dP[ke] *= mobility; - } - - // add contribution from upstream cell mobility derivatives - for( integer ke = 0; ke < 2; ++ke ) - { - dFlux_dP[ke] += dMob_dP[ke] * potGrad; - } + real64 dFlux_dTrans = 0.0; + real64 alpha = 0.0; + real64 mobility = 0.0; + real64 potGrad = 0.0; + real64 trans[2] = { stack.transmissibility[connectionIndex][0], stack.transmissibility[connectionIndex][1] }; + real64 dTrans[2] = { stack.dTrans_dPres[connectionIndex][0], stack.dTrans_dPres[connectionIndex][1] }; + real64 dFlux_dP[2] = {0.0, 0.0}; + localIndex const regionIndex[2] = {m_seri( iconn, k[0] ), m_seri( iconn, k[1] )}; + localIndex const subRegionIndex[2] = {m_sesri( iconn, k[0] ), m_sesri( iconn, k[1] )}; + localIndex const elementIndex[2] = {m_sei( iconn, k[0] ), m_sei( iconn, k[1] )}; + + fluxKernelsHelper::computeSinglePhaseFlux( regionIndex, subRegionIndex, elementIndex, + trans, + dTrans, + m_pres, + m_gravCoef, + m_dens, + m_dDens_dPres, + m_mob, + m_dMob_dPres, + alpha, + mobility, + potGrad, + fluxVal, + dFlux_dP, + dFlux_dTrans ); // populate local flux vector and derivatives stack.localFlux[k[0]*numEqn] += m_dt * fluxVal; @@ -488,7 +386,7 @@ class FaceBasedAssemblyKernel : public FaceBasedAssemblyKernelBase } // Customize the kernel with this lambda - kernelOp( k, seri, sesri, sei, connectionIndex, alpha, mobility, potGrad, fluxVal, dFlux_dP ); + kernelOp( k, regionIndex, subRegionIndex, elementIndex, connectionIndex, alpha, mobility, potGrad, fluxVal, dFlux_dP ); connectionIndex++; } @@ -779,7 +677,7 @@ class DirichletFaceBasedAssemblyKernel : public FaceBasedAssemblyKernel< NUM_EQN // Get flow quantities on the elem/face real64 faceDens, faceVisc; - SingleFluidBaseUpdate::computeValues( m_fluidWrapper, m_facePres[kf], faceDens, faceVisc ); + constitutive::SingleFluidBaseUpdate::computeValues( m_fluidWrapper, m_facePres[kf], faceDens, faceVisc ); mobility[Order::ELEM] = m_mob[er][esr][ei]; singlePhaseBaseKernels::MobilityKernel::compute( faceDens, faceVisc, mobility[Order::FACE] ); @@ -899,7 +797,7 @@ class DirichletFaceBasedAssemblyKernelFactory FaceManager const & faceManager, ElementRegionManager const & elemManager, BoundaryStencilWrapper const & stencilWrapper, - SingleFluidBase & fluidBase, + constitutive::SingleFluidBase & fluidBase, real64 const & dt, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs ) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp index 8688597c4b9..6cbabf723f7 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.hpp index cb5b55395e4..21c1bcaf09d 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVMKernels.hpp index c5088a91bdd..2d05cc82c43 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.cpp index 362b6ac137a..38d95f212e5 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp index 9ee6e763ba8..ab07e60f9aa 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBaseKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBaseKernels.hpp index e1845cd7e1b..6f3395bad2e 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBaseKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBaseKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantFluxKernels.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantFluxKernels.cpp index 71aa6ea3050..63f3f538b8e 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantFluxKernels.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantFluxKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantFluxKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantFluxKernels.hpp index 2a37b5ffcc4..d64e374f9d2 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantFluxKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantFluxKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp index 9d16ac881fd..44be8ac53ac 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -25,6 +25,7 @@ #include "physicsSolvers/fluidFlow/SinglePhaseBaseFields.hpp" #include "physicsSolvers/fluidFlow/SinglePhaseBaseKernels.hpp" #include "physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp" +#include "physicsSolvers/fluidFlow/LogLevelsInfo.hpp" namespace geos { @@ -35,7 +36,9 @@ using namespace dataRepository; SinglePhaseStatistics::SinglePhaseStatistics( const string & name, Group * const parent ): Base( name, parent ) -{} +{ + addLogLevel< logInfo::Statistics >(); +} void SinglePhaseStatistics::registerDataOnMesh( Group & meshBodies ) { @@ -247,16 +250,23 @@ void SinglePhaseStatistics::computeRegionStatistics( real64 const time, GEOS_WARNING( GEOS_FMT( "{}, {}: Cannot compute average pressure & temperature because region pore volume is zero.", getName(), regionNames[i] ) ); } - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Pressure (min, average, max): {}, {}, {} Pa", - getName(), regionNames[i], time, regionStatistics.minPressure, regionStatistics.averagePressure, regionStatistics.maxPressure ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Delta pressure (min, max): {}, {} Pa", - getName(), regionNames[i], time, regionStatistics.minDeltaPressure, regionStatistics.maxDeltaPressure ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Temperature (min, average, max): {}, {}, {} K", - getName(), regionNames[i], time, regionStatistics.minTemperature, regionStatistics.averageTemperature, regionStatistics.maxTemperature ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Total dynamic pore volume: {} rm^3", - getName(), regionNames[i], time, regionStatistics.totalPoreVolume ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}, {} (time {} s): Total fluid mass: {} kg", - getName(), regionNames[i], time, regionStatistics.totalMass ) ); + string statPrefix = GEOS_FMT( "{}, {} (time {} s):", getName(), regionNames[i], time ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Pressure (min, average, max): {}, {}, {} Pa", + statPrefix, regionStatistics.minPressure, regionStatistics.averagePressure, regionStatistics.maxPressure ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Delta pressure (min, max): {}, {} Pa", + statPrefix, regionStatistics.minDeltaPressure, regionStatistics.maxDeltaPressure ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Temperature (min, average, max): {}, {}, {} K", + statPrefix, regionStatistics.minTemperature, regionStatistics.averageTemperature, + regionStatistics.maxTemperature ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Total dynamic pore volume: {} rm^3", + statPrefix, regionStatistics.totalPoreVolume ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, + GEOS_FMT( "{} Total fluid mass: {} kg", + statPrefix, regionStatistics.totalMass ) ); if( m_writeCSV > 0 && MpiWrapper::commRank() == 0 ) { diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp index a6e364d9ea7..99d5c57f9d3 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp index 85c552fe3fa..9667e4270f7 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -31,7 +31,7 @@ SourceFluxStatsAggregator::SourceFluxStatsAggregator( const string & name, Group * const parent ): Base( name, parent ) { - getWrapper< integer >( Group::viewKeyStruct::logLevelString() ). + getWrapperBase( Group::viewKeyStruct::logLevelString() ). appendDescription( GEOS_FMT( "\n- Log Level 1 outputs the sum of all {0}(s) produced rate & mass,\n" "- Log Level 2 details values for each {0},\n" "- Log Level 3 details values for each region.", diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.hpp index b4aee90b0a6..2be2995f0aa 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/StabilizedCompositionalMultiphaseFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/StabilizedCompositionalMultiphaseFVMKernels.hpp index 0e484bf1902..7da02f8d6e2 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/StabilizedCompositionalMultiphaseFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/StabilizedCompositionalMultiphaseFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -28,9 +28,6 @@ namespace geos namespace stabilizedCompositionalMultiphaseFVMKernels { -using namespace constitutive; - - /******************************** FaceBasedAssemblyKernel ********************************/ /** @@ -67,12 +64,12 @@ class FaceBasedAssemblyKernel : public isothermalCompositionalMultiphaseFVMKerne fields::flow::pressure_n >; using StabMultiFluidAccessors = - StencilMaterialAccessors< MultiFluidBase, + StencilMaterialAccessors< constitutive::MultiFluidBase, fields::multifluid::phaseDensity_n, fields::multifluid::phaseCompFraction_n >; using RelPermAccessors = - StencilMaterialAccessors< RelativePermeabilityBase, fields::relperm::phaseRelPerm_n >; + StencilMaterialAccessors< constitutive::RelativePermeabilityBase, fields::relperm::phaseRelPerm_n >; using AbstractBase::m_dt; using AbstractBase::m_numPhases; @@ -288,9 +285,9 @@ class FaceBasedAssemblyKernel : public isothermalCompositionalMultiphaseFVMKerne /// Views on flow properties at the previous converged time step ElementViewConst< arrayView1d< real64 const > > const m_pres_n; - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const m_phaseDens_n; - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_COMP > > const m_phaseCompFrac_n; - ElementViewConst< arrayView3d< real64 const, relperm::USD_RELPERM > > const m_phaseRelPerm_n; + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const m_phaseDens_n; + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const m_phaseCompFrac_n; + ElementViewConst< arrayView3d< real64 const, constitutive::relperm::USD_RELPERM > > const m_phaseRelPerm_n; /// Views on the macroelement indices and stab constant ElementViewConst< arrayView1d< integer const > > const m_macroElementIndex; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/StabilizedSinglePhaseFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/StabilizedSinglePhaseFVMKernels.hpp index 272b27d8227..23dcfafea9d 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/StabilizedSinglePhaseFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/StabilizedSinglePhaseFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -28,8 +28,6 @@ namespace geos namespace stabilizedSinglePhaseFVMKernels { -using namespace constitutive; - /******************************** FaceBasedAssemblyKernel ********************************/ @@ -59,7 +57,7 @@ class FaceBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyK fields::flow::pressure_n >; using StabSinglePhaseFluidAccessors = - StencilMaterialAccessors< SingleFluidBase, + StencilMaterialAccessors< constitutive::SingleFluidBase, fields::singlefluid::density_n >; using AbstractBase::m_dt; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/StencilAccessors.hpp b/src/coreComponents/physicsSolvers/fluidFlow/StencilAccessors.hpp index 53869fade9d..59f0215a0d4 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/StencilAccessors.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/StencilAccessors.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/StencilDataCollection.cpp b/src/coreComponents/physicsSolvers/fluidFlow/StencilDataCollection.cpp index 9a4a4dc06aa..dcd795ec3ed 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/StencilDataCollection.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/StencilDataCollection.cpp @@ -24,7 +24,6 @@ #include "constitutive/permeability/PermeabilityBase.hpp" #include "constitutive/permeability/PermeabilityFields.hpp" #include "physicsSolvers/fluidFlow/StencilAccessors.hpp" -#include "mainInterface/ProblemManager.hpp" #include "physicsSolvers/PhysicsSolverManager.hpp" #include "common/format/table/TableFormatter.hpp" @@ -61,10 +60,10 @@ StencilDataCollection::StencilDataCollection( const string & name, void StencilDataCollection::postInputInitialization() { - ProblemManager & problemManager = this->getGroupByPath< ProblemManager >( "/Problem" ); + Group & problemManager = this->getGroupByPath( "/Problem" ); { // find targeted solver - PhysicsSolverManager & physicsSolverManager = problemManager.getPhysicsSolverManager(); + Group & physicsSolverManager = problemManager.getGroup( "Solvers" ); m_solver = physicsSolverManager.getGroupPointer< FlowSolverBase >( m_solverName ); GEOS_THROW_IF( m_solver == nullptr, @@ -75,7 +74,8 @@ void StencilDataCollection::postInputInitialization() } { // find mesh & discretization - DomainPartition & domain = problemManager.getDomainPartition(); +// DomainPartition & domain = problemManager.getDomainPartition(); + DomainPartition & domain = problemManager.getGroup< DomainPartition >( "domain" ); MeshBody const & meshBody = domain.getMeshBody( m_meshName ); m_meshLevel = &meshBody.getBaseDiscretization(); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ThermalCompositionalMultiphaseBaseKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/ThermalCompositionalMultiphaseBaseKernels.hpp index 898f4944b63..65a93ad5487 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ThermalCompositionalMultiphaseBaseKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ThermalCompositionalMultiphaseBaseKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -30,8 +30,6 @@ namespace geos namespace thermalCompositionalMultiphaseBaseKernels { -using namespace constitutive; - /******************************** PhaseVolumeFractionKernel ********************************/ @@ -57,7 +55,7 @@ class PhaseVolumeFractionKernel : public isothermalCompositionalMultiphaseBaseKe * @param[in] fluid the fluid model */ PhaseVolumeFractionKernel( ObjectManagerBase & subRegion, - MultiFluidBase const & fluid ) + constitutive::MultiFluidBase const & fluid ) : Base( subRegion, fluid ) {} @@ -68,10 +66,10 @@ class PhaseVolumeFractionKernel : public isothermalCompositionalMultiphaseBaseKe GEOS_HOST_DEVICE real64 compute( localIndex const ei ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseDens = m_dPhaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseFrac = m_dPhaseFrac[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseDens = m_dPhaseDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseFrac = m_dPhaseFrac[ei][0]; arraySlice2d< real64, compflow::USD_PHASE_DC - 1 > const dPhaseVolFrac = m_dPhaseVolFrac[ei]; @@ -110,7 +108,7 @@ class PhaseVolumeFractionKernelFactory createAndLaunch( integer const numComp, integer const numPhase, ObjectManagerBase & subRegion, - MultiFluidBase const & fluid ) + constitutive::MultiFluidBase const & fluid ) { real64 maxDeltaPhaseVolFrac = 0.0; if( numPhase == 2 ) @@ -187,8 +185,8 @@ class ElementBasedAssemblyKernel : public isothermalCompositionalMultiphaseBaseK globalIndex const rankOffset, string const dofKey, ElementSubRegionBase const & subRegion, - MultiFluidBase const & fluid, - CoupledSolidBase const & solid, + constitutive::MultiFluidBase const & fluid, + constitutive::CoupledSolidBase const & solid, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs, BitFlags< isothermalCompositionalMultiphaseBaseKernels::ElementBasedAssemblyKernelFlags > const kernelFlags ) @@ -267,7 +265,7 @@ class ElementBasedAssemblyKernel : public isothermalCompositionalMultiphaseBaseK void computeAccumulation( localIndex const ei, StackVariables & stack ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // start with old time step value stack.localResidual[numEqn-1] = -m_energy_n[ei]; @@ -288,12 +286,12 @@ class ElementBasedAssemblyKernel : public isothermalCompositionalMultiphaseBaseK arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > dCompFrac_dCompDens = m_dCompFrac_dCompDens[ei]; arraySlice1d< real64 const, compflow::USD_PHASE - 1 > phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > dPhaseVolFrac = m_dPhaseVolFrac[ei]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > phaseDens = m_phaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > dPhaseDens = m_dPhaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_COMP - 2 > phaseCompFrac = m_phaseCompFrac[ei][0]; - arraySlice3d< real64 const, multifluid::USD_PHASE_COMP_DC - 2 > dPhaseCompFrac = m_dPhaseCompFrac[ei][0]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > phaseInternalEnergy = m_phaseInternalEnergy[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > dPhaseInternalEnergy = m_dPhaseInternalEnergy[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > phaseDens = m_phaseDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > dPhaseDens = m_dPhaseDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_COMP - 2 > phaseCompFrac = m_phaseCompFrac[ei][0]; + arraySlice3d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC - 2 > dPhaseCompFrac = m_dPhaseCompFrac[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > phaseInternalEnergy = m_phaseInternalEnergy[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > dPhaseInternalEnergy = m_dPhaseInternalEnergy[ei][0]; // Step 1: assemble the derivatives of the component mass balance equations with respect to temperature @@ -348,7 +346,7 @@ class ElementBasedAssemblyKernel : public isothermalCompositionalMultiphaseBaseK void computeVolumeBalance( localIndex const ei, StackVariables & stack ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; Base::computeVolumeBalance( ei, stack, [&] ( real64 const & oneMinusPhaseVolFraction ) { @@ -384,8 +382,8 @@ class ElementBasedAssemblyKernel : public isothermalCompositionalMultiphaseBaseK arrayView2d< real64 const > const m_dPoro_dTemp; /// Views on phase internal energy - arrayView3d< real64 const, multifluid::USD_PHASE > m_phaseInternalEnergy; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > m_dPhaseInternalEnergy; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > m_phaseInternalEnergy; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > m_dPhaseInternalEnergy; /// Views on rock internal energy arrayView2d< real64 const > m_rockInternalEnergy; @@ -424,8 +422,8 @@ class ElementBasedAssemblyKernelFactory integer const useTotalMassEquation, string const dofKey, ElementSubRegionBase const & subRegion, - MultiFluidBase const & fluid, - CoupledSolidBase const & solid, + constitutive::MultiFluidBase const & fluid, + constitutive::CoupledSolidBase const & solid, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs ) { @@ -858,11 +856,11 @@ class SolutionCheckKernelFactory /** * @class ResidualNormKernel */ -class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 2 > +class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 3 > { public: - using Base = ResidualNormKernelBase< 2 >; + using Base = ResidualNormKernelBase< 3 >; using Base::m_minNormalizer; using Base::m_rankOffset; using Base::m_localResidual; @@ -875,9 +873,9 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 2 > integer const numComponents, integer const numPhases, ElementSubRegionBase const & subRegion, - MultiFluidBase const & fluid, - CoupledSolidBase const & solid, - SolidInternalEnergy const & solidInternalEnergy, + constitutive::MultiFluidBase const & fluid, + constitutive::CoupledSolidBase const & solid, + constitutive::SolidInternalEnergy const & solidInternalEnergy, real64 const minNormalizer ) : Base( rankOffset, localResidual, @@ -935,7 +933,7 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 2 > real64 const valVol = LvArray::math::abs( m_localResidual[stack.localRow + m_numComponents] ) / volumeNormalizer; if( valVol > stack.localValue[0] ) { - stack.localValue[0] = valVol; + stack.localValue[1] = valVol; } // step 3: energy residual @@ -943,7 +941,7 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 2 > real64 const valEnergy = LvArray::math::abs( m_localResidual[stack.localRow + m_numComponents + 1] ) / energyNormalizer; if( valEnergy > stack.localValue[1] ) { - stack.localValue[1] = valEnergy; + stack.localValue[2] = valEnergy; } } @@ -967,13 +965,13 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 2 > real64 const valVol = m_localResidual[stack.localRow + m_numComponents] * m_totalDens_n[ei][0]; // we need a mass here, hence the // multiplication - stack.localValue[0] += valVol * valVol; - stack.localNormalizer[0] += massNormalizer; + stack.localValue[1] += valVol * valVol; + stack.localNormalizer[1] += massNormalizer; // step 3: energy residual - stack.localValue[1] += m_localResidual[stack.localRow + m_numComponents + 1] * m_localResidual[stack.localRow + m_numComponents + 1]; - stack.localNormalizer[1] += energyNormalizer; + stack.localValue[2] += m_localResidual[stack.localRow + m_numComponents + 1] * m_localResidual[stack.localRow + m_numComponents + 1]; + stack.localNormalizer[2] += energyNormalizer; } protected: @@ -992,9 +990,9 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 2 > /// View on phase properties at the previous converged time step arrayView2d< real64 const, compflow::USD_PHASE > const m_phaseVolFrac_n; - arrayView2d< real64 const, multifluid::USD_FLUID > const m_totalDens_n; - arrayView3d< real64 const, multifluid::USD_PHASE > const m_phaseDens_n; - arrayView3d< real64 const, multifluid::USD_PHASE > const m_phaseInternalEnergy_n; + arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > const m_totalDens_n; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const m_phaseDens_n; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const m_phaseInternalEnergy_n; /// View on solid properties at the previous converged time step arrayView2d< real64 const > const m_solidInternalEnergy_n; @@ -1033,12 +1031,12 @@ class ResidualNormKernelFactory string const & dofKey, arrayView1d< real64 const > const & localResidual, ElementSubRegionBase const & subRegion, - MultiFluidBase const & fluid, - CoupledSolidBase const & solid, - SolidInternalEnergy const & solidInternalEnergy, + constitutive::MultiFluidBase const & fluid, + constitutive::CoupledSolidBase const & solid, + constitutive::SolidInternalEnergy const & solidInternalEnergy, real64 const minNormalizer, - real64 (& residualNorm)[2], - real64 (& residualNormalizer)[2] ) + real64 (& residualNorm)[3], + real64 (& residualNormalizer)[3] ) { arrayView1d< globalIndex const > const dofNumber = subRegion.getReference< array1d< globalIndex > >( dofKey ); arrayView1d< integer const > const ghostRank = subRegion.ghostRank(); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ThermalCompositionalMultiphaseFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/ThermalCompositionalMultiphaseFVMKernels.hpp index 8b9de7e2650..98d4be4d813 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ThermalCompositionalMultiphaseFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ThermalCompositionalMultiphaseFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -31,8 +31,6 @@ namespace geos namespace thermalCompositionalMultiphaseFVMKernels { -using namespace constitutive; - /******************************** PhaseMobilityKernel ********************************/ /** @@ -63,8 +61,8 @@ class PhaseMobilityKernel : public isothermalCompositionalMultiphaseFVMKernels:: * @param[in] relperm the relperm model */ PhaseMobilityKernel( ObjectManagerBase & subRegion, - MultiFluidBase const & fluid, - RelativePermeabilityBase const & relperm ) + constitutive::MultiFluidBase const & fluid, + constitutive::RelativePermeabilityBase const & relperm ) : Base( subRegion, fluid, relperm ) {} @@ -76,13 +74,13 @@ class PhaseMobilityKernel : public isothermalCompositionalMultiphaseFVMKernels:: inline void compute( localIndex const ei ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const phaseDens = m_phaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseDens = m_dPhaseDens[ei][0]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > const phaseVisc = m_phaseVisc[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > const dPhaseVisc = m_dPhaseVisc[ei][0]; - arraySlice2d< real64 const, relperm::USD_RELPERM_DS - 2 > const dPhaseRelPerm_dPhaseVolFrac = m_dPhaseRelPerm_dPhaseVolFrac[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseDens = m_phaseDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseDens = m_dPhaseDens[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseVisc = m_phaseVisc[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseVisc = m_dPhaseVisc[ei][0]; + arraySlice2d< real64 const, constitutive::relperm::USD_RELPERM_DS - 2 > const dPhaseRelPerm_dPhaseVolFrac = m_dPhaseRelPerm_dPhaseVolFrac[ei][0]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > const dPhaseVolFrac = m_dPhaseVolFrac[ei]; Base::compute( ei, [&] ( localIndex const ip, @@ -125,8 +123,8 @@ class PhaseMobilityKernelFactory createAndLaunch( integer const numComp, integer const numPhase, ObjectManagerBase & subRegion, - MultiFluidBase const & fluid, - RelativePermeabilityBase const & relperm ) + constitutive::MultiFluidBase const & fluid, + constitutive::RelativePermeabilityBase const & relperm ) { if( numPhase == 2 ) { @@ -213,12 +211,12 @@ class FaceBasedAssemblyKernel : public isothermalCompositionalMultiphaseFVMKerne StencilAccessors< fields::flow::temperature >; using ThermalMultiFluidAccessors = - StencilMaterialAccessors< MultiFluidBase, + StencilMaterialAccessors< constitutive::MultiFluidBase, fields::multifluid::phaseEnthalpy, fields::multifluid::dPhaseEnthalpy >; using ThermalConductivityAccessors = - StencilMaterialAccessors< MultiPhaseThermalConductivityBase, + StencilMaterialAccessors< constitutive::MultiPhaseThermalConductivityBase, fields::thermalconductivity::effectiveConductivity >; // for now, we treat thermal conductivity explicitly @@ -305,7 +303,7 @@ class FaceBasedAssemblyKernel : public isothermalCompositionalMultiphaseFVMKerne void computeFlux( localIndex const iconn, StackVariables & stack ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // *********************************************** // First, we call the base computeFlux to compute: @@ -416,9 +414,9 @@ class FaceBasedAssemblyKernel : public isothermalCompositionalMultiphaseFVMKerne // Step 3.2: compute the derivative of component flux wrt temperature // slice some constitutive arrays to avoid too much indexing in component loop - arraySlice1d< real64 const, multifluid::USD_PHASE_COMP - 3 > phaseCompFracSub = + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE_COMP - 3 > phaseCompFracSub = m_phaseCompFrac[er_up][esr_up][ei_up][0][ip]; - arraySlice2d< real64 const, multifluid::USD_PHASE_COMP_DC - 3 > dPhaseCompFracSub = + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC - 3 > dPhaseCompFracSub = m_dPhaseCompFrac[er_up][esr_up][ei_up][0][ip]; for( integer ic = 0; ic < numComp; ++ic ) @@ -588,8 +586,8 @@ class FaceBasedAssemblyKernel : public isothermalCompositionalMultiphaseFVMKerne ElementViewConst< arrayView1d< real64 const > > const m_temp; /// Views on phase enthalpies - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const m_phaseEnthalpy; - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const m_dPhaseEnthalpy; + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const m_phaseEnthalpy; + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const m_dPhaseEnthalpy; /// View on thermal conductivity ElementViewConst< arrayView3d< real64 const > > const m_thermalConductivity; @@ -784,7 +782,7 @@ class DiffusionDispersionFaceBasedAssemblyKernel : void computeDiffusionFlux( localIndex const iconn, StackVariables & stack ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // *********************************************** // First, we call the base computeFlux to compute the diffusionFlux and its derivatives (including derivatives wrt temperature), @@ -856,7 +854,7 @@ class DiffusionDispersionFaceBasedAssemblyKernel : void computeDispersionFlux( localIndex const iconn, StackVariables & stack ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // *********************************************** // First, we call the base computeFlux to compute the dispersionFlux and its derivatives (including derivatives wrt temperature), @@ -1046,12 +1044,12 @@ class DirichletFaceBasedAssemblyKernel : public isothermalCompositionalMultiphas StencilAccessors< fields::flow::temperature >; using ThermalMultiFluidAccessors = - StencilMaterialAccessors< MultiFluidBase, + StencilMaterialAccessors< constitutive::MultiFluidBase, fields::multifluid::phaseEnthalpy, fields::multifluid::dPhaseEnthalpy >; using ThermalConductivityAccessors = - StencilMaterialAccessors< MultiPhaseThermalConductivityBase, + StencilMaterialAccessors< constitutive::MultiPhaseThermalConductivityBase, fields::thermalconductivity::effectiveConductivity >; // for now, we treat thermal conductivity explicitly @@ -1160,7 +1158,7 @@ class DirichletFaceBasedAssemblyKernel : public isothermalCompositionalMultiphas StackVariables & stack ) const { using Order = BoundaryStencil::Order; - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // *********************************************** // First, we call the base computeFlux to compute: @@ -1177,8 +1175,8 @@ class DirichletFaceBasedAssemblyKernel : public isothermalCompositionalMultiphas localIndex const kf, real64 const f, // potGrad times trans real64 const facePhaseMob, - arraySlice1d< const real64, multifluid::USD_PHASE - 2 > const & facePhaseEnthalpy, - arraySlice2d< const real64, multifluid::USD_PHASE_COMP-2 > const & facePhaseCompFrac, + arraySlice1d< const real64, constitutive::multifluid::USD_PHASE - 2 > const & facePhaseEnthalpy, + arraySlice2d< const real64, constitutive::multifluid::USD_PHASE_COMP-2 > const & facePhaseCompFrac, real64 const phaseFlux, real64 const dPhaseFlux_dP, real64 const (&dPhaseFlux_dC)[numComp] ) @@ -1211,9 +1209,9 @@ class DirichletFaceBasedAssemblyKernel : public isothermalCompositionalMultiphas // Step 3.2.a: compute the derivative of component flux wrt temperature // slice some constitutive arrays to avoid too much indexing in component loop - arraySlice1d< real64 const, multifluid::USD_PHASE_COMP - 3 > phaseCompFracSub = + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE_COMP - 3 > phaseCompFracSub = m_phaseCompFrac[er][esr][ei][0][ip]; - arraySlice2d< real64 const, multifluid::USD_PHASE_COMP_DC - 3 > dPhaseCompFracSub = + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC - 3 > dPhaseCompFracSub = m_dPhaseCompFrac[er][esr][ei][0][ip]; for( integer ic = 0; ic < numComp; ++ic ) @@ -1346,8 +1344,8 @@ class DirichletFaceBasedAssemblyKernel : public isothermalCompositionalMultiphas ElementViewConst< arrayView1d< real64 const > > const m_temp; /// Views on phase enthalpies - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const m_phaseEnthalpy; - ElementViewConst< arrayView4d< real64 const, multifluid::USD_PHASE_DC > > const m_dPhaseEnthalpy; + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const m_phaseEnthalpy; + ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > > const m_dPhaseEnthalpy; /// View on thermal conductivity ElementViewConst< arrayView3d< real64 const > > const m_thermalConductivity; @@ -1390,7 +1388,7 @@ class DirichletFaceBasedAssemblyKernelFactory FaceManager const & faceManager, ElementRegionManager const & elemManager, STENCILWRAPPER const & stencilWrapper, - MultiFluidBase & fluidBase, + constitutive::MultiFluidBase & fluidBase, real64 const dt, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs ) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ThermalSinglePhaseBaseKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/ThermalSinglePhaseBaseKernels.hpp index 65966a54695..d3d678d6239 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ThermalSinglePhaseBaseKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ThermalSinglePhaseBaseKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ThermalSinglePhaseFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/ThermalSinglePhaseFVMKernels.hpp index d1759b86120..b108ae79339 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ThermalSinglePhaseFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ThermalSinglePhaseFVMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -30,8 +30,6 @@ namespace geos namespace thermalSinglePhaseFVMKernels { -using namespace constitutive; - /******************************** FaceBasedAssemblyKernel ********************************/ /** @@ -83,15 +81,17 @@ class FaceBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyK fields::flow::dMobility_dTemperature >; using ThermalSinglePhaseFluidAccessors = - StencilMaterialAccessors< SingleFluidBase, + StencilMaterialAccessors< constitutive::SingleFluidBase, fields::singlefluid::dDensity_dTemperature, fields::singlefluid::enthalpy, fields::singlefluid::dEnthalpy_dPressure, fields::singlefluid::dEnthalpy_dTemperature >; using ThermalConductivityAccessors = - StencilMaterialAccessors< SinglePhaseThermalConductivityBase, - fields::thermalconductivity::effectiveConductivity >; + StencilMaterialAccessors< constitutive::SinglePhaseThermalConductivityBase, + fields::thermalconductivity::effectiveConductivity, + fields::thermalconductivity::dEffectiveConductivity_dT >; + /** * @brief Constructor for the kernel interface @@ -135,7 +135,8 @@ class FaceBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyK m_enthalpy( thermalSinglePhaseFluidAccessors.get( fields::singlefluid::enthalpy {} ) ), m_dEnthalpy_dPres( thermalSinglePhaseFluidAccessors.get( fields::singlefluid::dEnthalpy_dPressure {} ) ), m_dEnthalpy_dTemp( thermalSinglePhaseFluidAccessors.get( fields::singlefluid::dEnthalpy_dTemperature {} ) ), - m_thermalConductivity( thermalConductivityAccessors.get( fields::thermalconductivity::effectiveConductivity {} ) ) + m_thermalConductivity( thermalConductivityAccessors.get( fields::thermalconductivity::effectiveConductivity {} ) ), + m_dThermalCond_dT( thermalConductivityAccessors.get( fields::thermalconductivity::dEffectiveConductivity_dT {} ) ) {} struct StackVariables : public Base::StackVariables @@ -158,10 +159,12 @@ class FaceBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyK using Base::StackVariables::localFlux; using Base::StackVariables::localFluxJacobian; - // Thermal transmissibility (for now, no derivatives) - + // Thermal transmissibility real64 thermalTransmissibility[maxNumConns][2]{}; + /// Derivatives of thermal transmissibility with respect to temperature + real64 dThermalTrans_dT[maxNumConns][2]{}; + // Energy fluxes and derivatives /// Energy fluxes @@ -330,9 +333,9 @@ class FaceBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyK // We follow how the thermal compositional multi-phase solver does to update the thermal transmissibility m_stencilWrapper.computeWeights( iconn, m_thermalConductivity, - m_thermalConductivity, // we have to pass something here, so we just use thermal conductivity + m_dThermalCond_dT, stack.thermalTransmissibility, - stack.dTrans_dPres ); // again, we have to pass something here, but this is unused for now + stack.dThermalTrans_dT ); localIndex k[2]; localIndex connectionIndex = 0; @@ -342,6 +345,7 @@ class FaceBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyK for( k[1] = k[0] + 1; k[1] < stack.numFluxElems; ++k[1] ) { real64 const thermalTrans[2] = { stack.thermalTransmissibility[connectionIndex][0], stack.thermalTransmissibility[connectionIndex][1] }; + real64 const dThermalTrans_dT[2] = { stack.dThermalTrans_dT[connectionIndex][0], stack.dThermalTrans_dT[connectionIndex][1] }; localIndex const seri[2] = {m_seri( iconn, k[0] ), m_seri( iconn, k[1] )}; localIndex const sesri[2] = {m_sesri( iconn, k[0] ), m_sesri( iconn, k[1] )}; @@ -355,7 +359,7 @@ class FaceBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyK localIndex const ei = sei[ke]; stack.energyFlux += thermalTrans[ke] * m_temp[er][esr][ei]; - stack.dEnergyFlux_dT[ke] += thermalTrans[ke]; + stack.dEnergyFlux_dT[ke] += thermalTrans[ke] + dThermalTrans_dT[ke] * m_temp[er][esr][ei]; } // add energyFlux and its derivatives to localFlux and localFluxJacobian @@ -422,6 +426,9 @@ class FaceBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyK /// View on thermal conductivity ElementViewConst< arrayView3d< real64 const > > m_thermalConductivity; + /// View on derivatives of thermal conductivity w.r.t. temperature + ElementViewConst< arrayView3d< real64 const > > m_dThermalCond_dT; + }; /** @@ -533,15 +540,16 @@ class DirichletFaceBasedAssemblyKernel : public singlePhaseFVMKernels::Dirichlet fields::flow::dMobility_dTemperature >; using ThermalSinglePhaseFluidAccessors = - StencilMaterialAccessors< SingleFluidBase, + StencilMaterialAccessors< constitutive::SingleFluidBase, fields::singlefluid::dDensity_dTemperature, fields::singlefluid::enthalpy, fields::singlefluid::dEnthalpy_dPressure, fields::singlefluid::dEnthalpy_dTemperature >; using ThermalConductivityAccessors = - StencilMaterialAccessors< SinglePhaseThermalConductivityBase, - fields::thermalconductivity::effectiveConductivity >; + StencilMaterialAccessors< constitutive::SinglePhaseThermalConductivityBase, + fields::thermalconductivity::effectiveConductivity, + fields::thermalconductivity::dEffectiveConductivity_dT >; /** * @brief Constructor for the kernel interface @@ -593,7 +601,8 @@ class DirichletFaceBasedAssemblyKernel : public singlePhaseFVMKernels::Dirichlet m_enthalpy( thermalSinglePhaseFluidAccessors.get( fields::singlefluid::enthalpy {} ) ), m_dEnthalpy_dPres( thermalSinglePhaseFluidAccessors.get( fields::singlefluid::dEnthalpy_dPressure {} ) ), m_dEnthalpy_dTemp( thermalSinglePhaseFluidAccessors.get( fields::singlefluid::dEnthalpy_dTemperature {} ) ), - m_thermalConductivity( thermalConductivityAccessors.get( fields::thermalconductivity::effectiveConductivity {} ) ) + m_thermalConductivity( thermalConductivityAccessors.get( fields::thermalconductivity::effectiveConductivity {} ) ), + m_dThermalCond_dT( thermalConductivityAccessors.get( fields::thermalconductivity::dEffectiveConductivity_dT {} ) ) {} @@ -684,14 +693,17 @@ class DirichletFaceBasedAssemblyKernel : public singlePhaseFVMKernels::Dirichlet // Contribution of energy conduction through the solid phase real64 thermalTrans = 0.0; - real64 dThermalTrans_dPerm[3]{}; // not used + real64 dThermalTrans_dThermalCond[3]{}; m_stencilWrapper.computeWeights( iconn, m_thermalConductivity, thermalTrans, - dThermalTrans_dPerm ); + dThermalTrans_dThermalCond ); + + real64 const dThermalTrans_dT = LvArray::tensorOps::AiBi< 3 >( dThermalTrans_dThermalCond, m_dThermalCond_dT[er][esr][ei][0] ); - stack.energyFlux += thermalTrans * ( m_temp[er][esr][ei] - m_faceTemp[kf] ); - stack.dEnergyFlux_dT += thermalTrans; + real64 const deltaT = m_temp[er][esr][ei] - m_faceTemp[kf]; + stack.energyFlux += thermalTrans * deltaT; + stack.dEnergyFlux_dT += thermalTrans + dThermalTrans_dT * deltaT; // Add energyFlux and its derivatives to localFlux and localFluxJacobian integer const localRowIndexEnergy = numEqn - 1; @@ -746,6 +758,9 @@ class DirichletFaceBasedAssemblyKernel : public singlePhaseFVMKernels::Dirichlet /// View on thermal conductivity ElementViewConst< arrayView3d< real64 const > > m_thermalConductivity; + /// View on derivatives of thermal conductivity w.r.t. temperature + ElementViewConst< arrayView3d< real64 const > > m_dThermalCond_dT; + }; @@ -778,7 +793,7 @@ class DirichletFaceBasedAssemblyKernelFactory FaceManager const & faceManager, ElementRegionManager const & elemManager, BoundaryStencilWrapper const & stencilWrapper, - SingleFluidBase & fluidBase, + constitutive::SingleFluidBase & fluidBase, real64 const & dt, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs ) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/docs/CompositionalMultiphaseFlow.rst b/src/coreComponents/physicsSolvers/fluidFlow/docs/CompositionalMultiphaseFlow.rst index 533b01385db..2197a50f5b1 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/docs/CompositionalMultiphaseFlow.rst +++ b/src/coreComponents/physicsSolvers/fluidFlow/docs/CompositionalMultiphaseFlow.rst @@ -182,7 +182,7 @@ Parameters The following attributes are supported: -.. include:: /coreComponents/schema/docs/CompositionalMultiphaseFVM.rst +.. include:: /docs/sphinx/datastructure/CompositionalMultiphaseFVM.rst .. _input_example: diff --git a/src/coreComponents/physicsSolvers/fluidFlow/docs/ProppantTransport.rst b/src/coreComponents/physicsSolvers/fluidFlow/docs/ProppantTransport.rst index 180e9050196..52f681bc6c2 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/docs/ProppantTransport.rst +++ b/src/coreComponents/physicsSolvers/fluidFlow/docs/ProppantTransport.rst @@ -207,7 +207,7 @@ Like any solver, time stepping is driven by events, see :ref:`EventManager`. The following attributes are supported: -.. include:: /coreComponents/schema/docs/ProppantTransport.rst +.. include:: /docs/sphinx/datastructure/ProppantTransport.rst In particular: diff --git a/src/coreComponents/physicsSolvers/fluidFlow/docs/SinglePhaseFlow.rst b/src/coreComponents/physicsSolvers/fluidFlow/docs/SinglePhaseFlow.rst index 9b87049a3c6..3840591994b 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/docs/SinglePhaseFlow.rst +++ b/src/coreComponents/physicsSolvers/fluidFlow/docs/SinglePhaseFlow.rst @@ -90,7 +90,7 @@ Like any solver, time stepping is driven by events, see :ref:`EventManager`. The following attributes are supported: -.. include:: /coreComponents/schema/docs/SinglePhaseFVM.rst +.. include:: /docs/sphinx/datastructure/SinglePhaseFVM.rst In particular: diff --git a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp index ec5d7a531a6..57ea2675a45 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.hpp b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.hpp index 89dd25c6021..dc352b9cef0 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportFields.hpp b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportFields.hpp index 9ca730e1ad8..7c324a399a8 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportFields.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportKernels.cpp b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportKernels.cpp index 3f72a80296a..c0c1b3b02ed 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportKernels.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportKernels.hpp index 7ff85e5ac44..35baef938f0 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransportKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -40,8 +40,6 @@ namespace geos namespace proppantTransportKernels { -using namespace constitutive; - /******************************** FluidUpdateKernel ********************************/ struct FluidUpdateKernel @@ -191,7 +189,7 @@ struct FluxKernel fields::elementAperture >; using ParticleFluidAccessors = - StencilMaterialAccessors< ParticleFluidBase, + StencilMaterialAccessors< constitutive::ParticleFluidBase, fields::particlefluid::settlingFactor, fields::particlefluid::dSettlingFactor_dPressure, fields::particlefluid::dSettlingFactor_dProppantConcentration, @@ -200,7 +198,7 @@ struct FluxKernel fields::particlefluid::dCollisionFactor_dProppantConcentration >; using SlurryFluidAccessors = - StencilMaterialAccessors< SlurryFluidBase, + StencilMaterialAccessors< constitutive::SlurryFluidBase, fields::singlefluid::density, fields::singlefluid::dDensity_dPressure, fields::slurryfluid::dDensity_dProppantConcentration, @@ -217,12 +215,12 @@ struct FluxKernel fields::slurryfluid::dFluidDensity_dComponentConcentration >; using CellBasedFluxSlurryFluidAccessors = - StencilMaterialAccessors< SlurryFluidBase, + StencilMaterialAccessors< constitutive::SlurryFluidBase, fields::singlefluid::density, fields::singlefluid::viscosity >; using PermeabilityAccessors = - StencilMaterialAccessors< PermeabilityBase, + StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::permeability, fields::permeability::permeabilityMultiplier >; @@ -362,10 +360,10 @@ struct ProppantPackVolumeKernel fields::proppant::isProppantBoundary >; using ParticleFluidAccessors = - StencilMaterialAccessors< ParticleFluidBase, fields::particlefluid::settlingFactor >; + StencilMaterialAccessors< constitutive::ParticleFluidBase, fields::particlefluid::settlingFactor >; using SlurryFluidAccessors = - StencilMaterialAccessors< SlurryFluidBase, + StencilMaterialAccessors< constitutive::SlurryFluidBase, fields::singlefluid::density, fields::slurryfluid::fluidDensity, fields::slurryfluid::fluidViscosity >; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.cpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.cpp index d7ca4afda62..08815b83e92 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -45,6 +45,7 @@ #include "physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.hpp" #include "physicsSolvers/fluidFlow/wells/WellSolverBaseFields.hpp" #include "physicsSolvers/fluidFlow/wells/WellControls.hpp" +#include "physicsSolvers/fluidFlow/wells/LogLevelsInfo.hpp" #include "physicsSolvers/fluidFlow/wells/WellFields.hpp" @@ -91,7 +92,7 @@ CompositionalMultiphaseWell::CompositionalMultiphaseWell( const string & name, this->registerWrapper( viewKeyStruct::maxRelativeCompDensChangeString(), &m_maxRelativeCompDensChange ). setSizedFromParent( 0 ). setInputFlag( InputFlags::OPTIONAL ). - setApplyDefaultValue( LvArray::NumericLimits< real64 >::max ). // disabled by default + setApplyDefaultValue( LvArray::NumericLimits< real64 >::max/1.0e100 ). // disabled by default setDescription( "Maximum (relative) change in a component density between two Newton iterations" ); this->registerWrapper( viewKeyStruct::maxRelativePresChangeString(), &m_maxRelativePresChange ). @@ -622,7 +623,7 @@ void CompositionalMultiphaseWell::updateBHPForConstraint( WellElementSubRegion & if( logLevel >= 2 ) { - GEOS_LOG_RANK( GEOS_FMT( "{}: BHP (at the specified reference elevation): {} Pa", + GEOS_LOG_RANK( GEOS_FMT( "{}: BHP (at the specified reference elevation) = {} Pa", wellControlsName, currentBHP ) ); } @@ -785,10 +786,8 @@ void CompositionalMultiphaseWell::updateVolRatesForConstraint( WellElementSubReg if( logLevel >= 2 && useSurfaceConditions ) { - GEOS_LOG_RANK( GEOS_FMT( "{}: The total fluid density at surface conditions is {} {}/sm3. \n" - "The total rate is {} {}/s, which corresponds to a total surface volumetric rate of {} sm3/s", - wellControlsName, totalDens[iwelemRef][0], massUnit, - currentTotalRate, massUnit, currentTotalVolRate ) ); + GEOS_LOG_RANK( GEOS_FMT( "{}: total fluid density at surface conditions = {} {}/sm3, total rate = {} {}/s, total surface volumetric rate = {} sm3/s", + wellControlsName, totalDens[iwelemRef][0], massUnit, currentTotalRate, massUnit, currentTotalVolRate ) ); } // Step 3: update the phase volume rate @@ -831,8 +830,7 @@ void CompositionalMultiphaseWell::updateVolRatesForConstraint( WellElementSubReg if( logLevel >= 2 && useSurfaceConditions ) { - GEOS_LOG_RANK( GEOS_FMT( "{}: The density of phase {} at surface conditions is {} {}/sm3. \n" - "The phase surface volumetric rate is {} sm3/s", + GEOS_LOG_RANK( GEOS_FMT( "{}: density of phase {} at surface conditions = {} {}/sm3, phase surface volumetric rate = {} sm3/s", wellControlsName, ip, phaseDens[iwelemRef][0][ip], massUnit, currentPhaseVolRate[ip] ) ); } } @@ -1516,8 +1514,8 @@ CompositionalMultiphaseWell::checkSystemSolution( DomainPartition & domain, if( !subRegionData.localMinVal ) { - GEOS_LOG_LEVEL( 1, "Solution is invalid in well " << subRegion.getName() - << " (either a negative pressure or a negative component density was found)." ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, + GEOS_FMT( "Solution is invalid in well {} (either a negative pressure or a negative component density was found)", subRegion.getName()) ); } localCheck = std::min( localCheck, subRegionData.localMinVal ); @@ -1872,9 +1870,9 @@ void CompositionalMultiphaseWell::assemblePressureRelations( real64 const & time { GEOS_MARK_FUNCTION; - forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, - MeshLevel const & mesh, - arrayView1d< string const > const & regionNames ) + forDiscretizationOnMeshTargets ( domain.getMeshBodies(), [&] ( string const &, + MeshLevel const & mesh, + arrayView1d< string const > const & regionNames ) { ElementRegionManager const & elemManager = mesh.getElemManager(); @@ -1912,12 +1910,12 @@ void CompositionalMultiphaseWell::assemblePressureRelations( real64 const & time bool controlHasSwitched = false; isothermalCompositionalMultiphaseBaseKernels:: - KernelLaunchSelectorCompTherm< PressureRelationKernel >( numFluidComponents(), isThermal, + KernelLaunchSelectorCompTherm< PressureRelationKernel >( numFluidComponents(), + isThermal, subRegion.size(), dofManager.rankOffset(), subRegion.isLocallyOwned(), subRegion.getTopWellElementIndex(), - isThermal, m_targetPhaseIndex, wellControls, time_n + dt, // controls evaluated with BHP/rate of the end of step @@ -1943,24 +1941,25 @@ void CompositionalMultiphaseWell::assemblePressureRelations( real64 const & time if( wellControls.isProducer() ) { wellControls.switchToPhaseRateControl( wellControls.getTargetPhaseRate( timeAtEndOfStep ) ); - GEOS_LOG_LEVEL( 1, "Control switch for well " << subRegion.getName() - << " from BHP constraint to phase volumetric rate constraint" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::WellControl, + GEOS_FMT( "Control switch for well {} from BHP constraint to phase volumetric rate constraint", subRegion.getName() ) ); } else { wellControls.switchToTotalRateControl( wellControls.getTargetTotalRate( timeAtEndOfStep ) ); - GEOS_LOG_LEVEL( 1, "Control switch for well " << subRegion.getName() - << " from BHP constraint to total volumetric rate constraint" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::WellControl, + GEOS_FMT( "Control switch for well {} from BHP constraint to total volumetric rate constraint", subRegion.getName()) ); } } else { wellControls.switchToBHPControl( wellControls.getTargetBHP( timeAtEndOfStep ) ); - GEOS_LOG_LEVEL( 1, "Control switch for well " << subRegion.getName() - << " from rate constraint to BHP constraint" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::WellControl, + GEOS_FMT( "Control switch for well {} from rate constraint to BHP constraint", subRegion.getName() ) ); } } } + } ); } ); } @@ -2241,4 +2240,4 @@ void CompositionalMultiphaseWell::printRates( real64 const & time_n, } REGISTER_CATALOG_ENTRY( SolverBase, CompositionalMultiphaseWell, string const &, Group * const ) -} // namespace geos +} // namespace geos diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.hpp index f77c381dc9d..c996896734c 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellFields.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellFields.hpp index 9a3b649bbbc..be0aa3e48ae 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellFields.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.cpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.cpp index 8be39397ed2..7b592d049d5 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -26,6 +26,7 @@ namespace geos { +using namespace constitutive; namespace compositionalMultiphaseWellKernels { @@ -305,7 +306,6 @@ PressureRelationKernel:: globalIndex const rankOffset, bool const isLocallyOwned, localIndex const iwelemControl, - bool const isThermal, integer const targetPhaseIndex, WellControls const & wellControls, real64 const & timeAtEndOfStep, @@ -319,7 +319,6 @@ PressureRelationKernel:: CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs ) { - GEOS_UNUSED_VAR( isThermal ); using COFFSET_WJ = compositionalMultiphaseWellKernels::ColOffset_WellJac< NC, IS_THERMAL >; // static well control data bool const isProducer = wellControls.isProducer(); @@ -449,7 +448,6 @@ PressureRelationKernel:: globalIndex const rankOffset, \ bool const isLocallyOwned, \ localIndex const iwelemControl, \ - bool const isThermal, \ integer const targetPhaseIndex, \ WellControls const & wellControls, \ real64 const & timeAtEndOfStep, \ diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.hpp index ce48868edea..220df6a5abc 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -45,8 +45,6 @@ namespace geos namespace compositionalMultiphaseWellKernels { -using namespace constitutive; - static constexpr real64 minDensForDivision = 1e-10; // tag to access well and reservoir elements in perforation rates computation @@ -173,7 +171,7 @@ struct ControlEquationHelper struct PressureRelationKernel { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; using TAG = compositionalMultiphaseWellKernels::ElemTag; using ROFFSET = compositionalMultiphaseWellKernels::RowOffset; using COFFSET = compositionalMultiphaseWellKernels::ColOffset; @@ -199,7 +197,6 @@ struct PressureRelationKernel globalIndex const rankOffset, bool const isLocallyOwned, localIndex const iwelemControl, - bool const isThermal, integer const targetPhaseIndex, WellControls const & wellControls, real64 const & timeAtEndOfStep, @@ -261,7 +258,7 @@ struct PresTempCompFracInitializationKernel fields::flow::phaseVolumeFraction >; using MultiFluidAccessors = - StencilMaterialAccessors< MultiFluidBase, + StencilMaterialAccessors< constitutive::MultiFluidBase, fields::multifluid::phaseMassDensity >; @@ -287,7 +284,7 @@ struct PresTempCompFracInitializationKernel ElementViewConst< arrayView1d< real64 const > > const & resTemp, ElementViewConst< arrayView2d< real64 const, compflow::USD_COMP > > const & resCompDens, ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const & resPhaseVolFrac, - ElementViewConst< arrayView3d< real64 const, multifluid::USD_PHASE > > const & resPhaseMassDens, + ElementViewConst< arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > > const & resPhaseMassDens, arrayView1d< localIndex const > const & resElementRegion, arrayView1d< localIndex const > const & resElementSubRegion, arrayView1d< localIndex const > const & resElementIndex, @@ -308,7 +305,7 @@ struct CompDensInitializationKernel launch( localIndex const subRegionSize, integer const numComponents, arrayView2d< real64 const, compflow::USD_COMP > const & wellElemCompFrac, - arrayView2d< real64 const, multifluid::USD_FLUID > const & wellElemTotalDens, + arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > const & wellElemTotalDens, arrayView2d< real64, compflow::USD_COMP > const & wellElemCompDens ); }; @@ -323,8 +320,8 @@ struct RateInitializationKernel integer const targetPhaseIndex, WellControls const & wellControls, real64 const & currentTime, - arrayView3d< real64 const, multifluid::USD_PHASE > const & phaseDens, - arrayView2d< real64 const, multifluid::USD_FLUID > const & totalDens, + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const & phaseDens, + arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > const & totalDens, arrayView1d< real64 > const & connRate ); }; @@ -355,7 +352,7 @@ class TotalMassDensityKernel : public isothermalCompositionalMultiphaseBaseKerne * @param[in] fluid the fluid model */ TotalMassDensityKernel( ObjectManagerBase & subRegion, - MultiFluidBase const & fluid ) + constitutive::MultiFluidBase const & fluid ) : Base(), m_phaseVolFrac( subRegion.getField< fields::well::phaseVolumeFraction >() ), m_dPhaseVolFrac( subRegion.getField< fields::well::dPhaseVolumeFraction >() ), @@ -378,14 +375,13 @@ class TotalMassDensityKernel : public isothermalCompositionalMultiphaseBaseKerne void compute( localIndex const ei, FUNC && totalMassDensityKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; arraySlice1d< real64 const, compflow::USD_PHASE - 1 > phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > dPhaseVolFrac = m_dPhaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > dCompFrac_dCompDens = m_dCompFrac_dCompDens[ei]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > phaseMassDens = m_phaseMassDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > dPhaseMassDens = m_dPhaseMassDens[ei][0]; - + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > phaseMassDens = m_phaseMassDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > dPhaseMassDens = m_dPhaseMassDens[ei][0]; real64 & totalMassDens = m_totalMassDens[ei]; arraySlice1d< real64, compflow::USD_FLUID_DC - 1 > dTotalMassDens = m_dTotalMassDens[ei]; @@ -426,8 +422,8 @@ class TotalMassDensityKernel : public isothermalCompositionalMultiphaseBaseKerne arrayView3d< real64 const, compflow::USD_COMP_DC > m_dCompFrac_dCompDens; /// Views on phase mass densities - arrayView3d< real64 const, multifluid::USD_PHASE > m_phaseMassDens; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > m_dPhaseMassDens; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > m_phaseMassDens; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > m_dPhaseMassDens; // outputs @@ -458,7 +454,7 @@ class TotalMassDensityKernelFactory createAndLaunch( integer const numComp, integer const numPhase, ObjectManagerBase & subRegion, - MultiFluidBase const & fluid ) + constitutive::MultiFluidBase const & fluid ) { if( numPhase == 2 ) { @@ -505,7 +501,7 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 1 > integer const numDof, integer const targetPhaseIndex, WellElementSubRegion const & subRegion, - MultiFluidBase const & fluid, + constitutive::MultiFluidBase const & fluid, WellControls const & wellControls, real64 const timeAtEndOfStep, real64 const dt, @@ -681,8 +677,8 @@ class ResidualNormKernel : public solverBaseKernels::ResidualNormKernelBase< 1 > arrayView1d< real64 const > const m_volume; /// View on phase/total density at the previous converged time step - arrayView3d< real64 const, multifluid::USD_PHASE > const m_phaseDens_n; - arrayView2d< real64 const, multifluid::USD_FLUID > const m_totalDens_n; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const m_phaseDens_n; + arrayView2d< real64 const, constitutive::multifluid::USD_FLUID > const m_totalDens_n; }; @@ -718,7 +714,7 @@ class ResidualNormKernelFactory string const & dofKey, arrayView1d< real64 const > const & localResidual, WellElementSubRegion const & subRegion, - MultiFluidBase const & fluid, + constitutive::MultiFluidBase const & fluid, WellControls const & wellControls, real64 const timeAtEndOfStep, real64 const dt, @@ -851,7 +847,7 @@ class ElementBasedAssemblyKernel // Well jacobian column and row indicies // tjb - change NUM_DOF to IS_THERMAL - using FLUID_PROP_COFFSET = multifluid::DerivativeOffsetC< NUM_COMP, IS_THERMAL >; + using FLUID_PROP_COFFSET = constitutive::multifluid::DerivativeOffsetC< NUM_COMP, IS_THERMAL >; using WJ_COFFSET = compositionalMultiphaseWellKernels::ColOffset_WellJac< NUM_COMP, IS_THERMAL >; using WJ_ROFFSET = compositionalMultiphaseWellKernels::RowOffset_WellJac< NUM_COMP, IS_THERMAL >; /// Compile time value for the number of components @@ -880,7 +876,7 @@ class ElementBasedAssemblyKernel globalIndex const rankOffset, string const dofKey, WellElementSubRegion const & subRegion, - MultiFluidBase const & fluid, + constitutive::MultiFluidBase const & fluid, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs, BitFlags< isothermalCompositionalMultiphaseBaseKernels::ElementBasedAssemblyKernelFlags > const kernelFlags ) @@ -1011,7 +1007,7 @@ class ElementBasedAssemblyKernel FUNC && phaseAmountKernelOp = NoOpFunc{} ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; // construct the slices for variables accessed multiple times arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > dCompFrac_dCompDens = m_dCompFrac_dCompDens[ei]; @@ -1020,13 +1016,13 @@ class ElementBasedAssemblyKernel arraySlice1d< real64 const, compflow::USD_PHASE - 1 > phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > dPhaseVolFrac = m_dPhaseVolFrac[ei]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > phaseDens_n = m_phaseDens_n[ei][0]; - arraySlice1d< real64 const, multifluid::USD_PHASE - 2 > phaseDens = m_phaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_DC - 2 > dPhaseDens = m_dPhaseDens[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > phaseDens_n = m_phaseDens_n[ei][0]; + arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > phaseDens = m_phaseDens[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > dPhaseDens = m_dPhaseDens[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_COMP - 2 > phaseCompFrac_n = m_phaseCompFrac_n[ei][0]; - arraySlice2d< real64 const, multifluid::USD_PHASE_COMP - 2 > phaseCompFrac = m_phaseCompFrac[ei][0]; - arraySlice3d< real64 const, multifluid::USD_PHASE_COMP_DC - 2 > dPhaseCompFrac = m_dPhaseCompFrac[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_COMP - 2 > phaseCompFrac_n = m_phaseCompFrac_n[ei][0]; + arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_COMP - 2 > phaseCompFrac = m_phaseCompFrac[ei][0]; + arraySlice3d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC - 2 > dPhaseCompFrac = m_dPhaseCompFrac[ei][0]; // temporary work arrays real64 dPhaseAmount[FLUID_PROP_COFFSET::nDer]{}; @@ -1127,7 +1123,7 @@ class ElementBasedAssemblyKernel void computeVolumeBalance( localIndex const ei, StackVariables & stack ) const { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; arraySlice1d< real64 const, compflow::USD_PHASE - 1 > phaseVolFrac = m_phaseVolFrac[ei]; arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > dPhaseVolFrac = m_dPhaseVolFrac[ei]; @@ -1287,14 +1283,14 @@ class ElementBasedAssemblyKernel arrayView3d< real64 const, compflow::USD_PHASE_DC > const m_dPhaseVolFrac; /// Views on the phase densities - arrayView3d< real64 const, multifluid::USD_PHASE > const m_phaseDens_n; - arrayView3d< real64 const, multifluid::USD_PHASE > const m_phaseDens; - arrayView4d< real64 const, multifluid::USD_PHASE_DC > const m_dPhaseDens; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const m_phaseDens_n; + arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const m_phaseDens; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > const m_dPhaseDens; /// Views on the phase component fraction - arrayView4d< real64 const, multifluid::USD_PHASE_COMP > const m_phaseCompFrac_n; - arrayView4d< real64 const, multifluid::USD_PHASE_COMP > const m_phaseCompFrac; - arrayView5d< real64 const, multifluid::USD_PHASE_COMP_DC > const m_dPhaseCompFrac; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > const m_phaseCompFrac_n; + arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > const m_phaseCompFrac; + arrayView5d< real64 const, constitutive::multifluid::USD_PHASE_COMP_DC > const m_dPhaseCompFrac; // Views on component densities arrayView2d< real64 const, compflow::USD_COMP > m_compDens; @@ -1336,7 +1332,7 @@ class ElementBasedAssemblyKernelFactory integer const useTotalMassEquation, string const dofKey, WellElementSubRegion const & subRegion, - MultiFluidBase const & fluid, + constitutive::MultiFluidBase const & fluid, CRSMatrixView< real64, globalIndex const > const & localMatrix, arrayView1d< real64 > const & localRhs ) { @@ -1374,11 +1370,11 @@ class FaceBasedAssemblyKernel using ROFFSET = compositionalMultiphaseWellKernels::RowOffset; using TAG = compositionalMultiphaseWellKernels::ElemTag; - using FLUID_PROP_COFFSET = multifluid::DerivativeOffsetC< NC, IS_THERMAL >; + using FLUID_PROP_COFFSET = constitutive::multifluid::DerivativeOffsetC< NC, IS_THERMAL >; using WJ_COFFSET = compositionalMultiphaseWellKernels::ColOffset_WellJac< NC, IS_THERMAL >; using WJ_ROFFSET = compositionalMultiphaseWellKernels::RowOffset_WellJac< NC, IS_THERMAL >; - using CP_Deriv = multifluid::DerivativeOffsetC< NC, IS_THERMAL >; + using CP_Deriv = constitutive::multifluid::DerivativeOffsetC< NC, IS_THERMAL >; /// Compile time value for the number of components static constexpr integer numComp = NC; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/LogLevelsInfo.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/LogLevelsInfo.hpp new file mode 100644 index 00000000000..9e9b9f20b50 --- /dev/null +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/LogLevelsInfo.hpp @@ -0,0 +1,57 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file LogLevelsInfo.hpp + * This file contains log level informations for wells + */ + +#ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_LOGLEVELSINFO_HPP +#define GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_LOGLEVELSINFO_HPP + +#include "common/DataTypes.hpp" + +namespace geos +{ + +namespace logInfo +{ + +/** + * @name Wells LogLevels info structures. They must comply with the `is_log_level_info` trait. + */ +///@{ + +/// @cond DO_NOT_DOCUMENT + +struct WellControl +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Well control information"; } +}; + +struct Crossflow +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Crossflow information"; } +}; + +/// @endcond +///@} + +} + +} + +#endif // GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_LOGLEVELSINFO_HPP diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWell.cpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWell.cpp index 284058afa30..0c8fac303ba 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWell.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWell.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -35,6 +35,7 @@ #include "physicsSolvers/fluidFlow/wells/SinglePhaseWellFields.hpp" #include "physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.hpp" #include "physicsSolvers/fluidFlow/wells/WellControls.hpp" +#include "physicsSolvers/fluidFlow/wells/LogLevelsInfo.hpp" namespace geos { @@ -51,6 +52,11 @@ SinglePhaseWell::SinglePhaseWell( const string & name, m_numDofPerResElement = 1; m_numPhases = 1; m_numComponents = 1; + + this->registerWrapper( FlowSolverBase::viewKeyStruct::allowNegativePressureString(), &m_allowNegativePressure ). + setApplyDefaultValue( 1 ). // negative pressure is allowed by default + setInputFlag( InputFlags::OPTIONAL ). + setDescription( "Flag indicating if negative pressure is allowed" ); } void SinglePhaseWell::registerDataOnMesh( Group & meshBodies ) @@ -189,7 +195,7 @@ void SinglePhaseWell::updateBHPForConstraint( WellElementSubRegion & subRegion ) if( logLevel >= 2 ) { - GEOS_LOG_RANK( GEOS_FMT( "{}: The BHP (at the specified reference elevation) is {} Pa", + GEOS_LOG_RANK( GEOS_FMT( "{}: The BHP (at the specified reference elevation) = {} Pa", wellControlsName, currentBHP ) ); } @@ -285,10 +291,8 @@ void SinglePhaseWell::updateVolRateForConstraint( WellElementSubRegion & subRegi if( logLevel >= 2 && useSurfaceConditions ) { - GEOS_LOG_RANK( GEOS_FMT( "{}: The total fluid density at surface conditions is {} kg/sm3. \n" - "The total rate is {} kg/s, which corresponds to a total surface volumetric rate of {} sm3/s", - wellControlsName, dens[iwelemRef][0], - connRate[iwelemRef], currentVolRate ) ); + GEOS_LOG_RANK( GEOS_FMT( "{}: total fluid density at surface conditions = {} kg/sm3, total rate = {} kg/s, total surface volumetric rate = {} sm3/s", + wellControlsName, dens[iwelemRef][0], connRate[iwelemRef], currentVolRate ) ); } } ); } ); @@ -534,14 +538,12 @@ void SinglePhaseWell::assemblePressureRelations( real64 const & time_n, if( wellControls.getControl() == WellControls::Control::BHP ) { wellControls.switchToTotalRateControl( wellControls.getTargetTotalRate( timeAtEndOfStep ) ); - GEOS_LOG_LEVEL( 1, "Control switch for well " << subRegion.getName() - << " from BHP constraint to rate constraint" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::WellControl, GEOS_FMT( "Control switch for well {} from BHP constraint to rate constraint", subRegion.getName()) ); } else { wellControls.switchToBHPControl( wellControls.getTargetBHP( timeAtEndOfStep ) ); - GEOS_LOG_LEVEL( 1, "Control switch for well " << subRegion.getName() - << " from rate constraint to BHP constraint" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::WellControl, GEOS_FMT( "Control switch for well {} from rate constraint to BHP constraint", subRegion.getName()) ); } } @@ -845,8 +847,9 @@ bool SinglePhaseWell::checkSystemSolution( DomainPartition & domain, { GEOS_MARK_FUNCTION; - localIndex localCheck = 1; string const wellDofKey = dofManager.getKey( wellElementDofName() ); + integer numNegativePressures = 0; + real64 minPressure = 0.0; forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &, MeshLevel const & mesh, @@ -860,33 +863,32 @@ bool SinglePhaseWell::checkSystemSolution( DomainPartition & domain, WellElementSubRegion const & subRegion ) { + globalIndex const rankOffset = dofManager.rankOffset(); // get the degree of freedom numbers on well elements - arrayView1d< globalIndex const > const & wellElemDofNumber = + arrayView1d< globalIndex const > const & dofNumber = subRegion.getReference< array1d< globalIndex > >( wellDofKey ); - arrayView1d< integer const > const & wellElemGhostRank = subRegion.ghostRank(); + arrayView1d< integer const > const & ghostRank = subRegion.ghostRank(); // get a reference to the primary variables on well elements - arrayView1d< real64 const > const & wellElemPressure = + arrayView1d< real64 const > const & pres = subRegion.getField< fields::well::pressure >(); - // here we can reuse the flow solver kernel checking that pressures are positive - localIndex const subRegionSolutionCheck = - singlePhaseWellKernels:: - SolutionCheckKernel::launch< parallelDevicePolicy<> >( localSolution, - dofManager.rankOffset(), - wellElemDofNumber, - wellElemGhostRank, - wellElemPressure, - scalingFactor ); - - if( subRegionSolutionCheck == 0 ) - { - localCheck = 0; - } + auto const statistics = + singlePhaseBaseKernels::SolutionCheckKernel:: + launch< parallelDevicePolicy<> >( localSolution, rankOffset, dofNumber, ghostRank, pres, scalingFactor ); + + numNegativePressures += statistics.first; + minPressure = std::min( minPressure, statistics.second ); } ); } ); - return MpiWrapper::min( localCheck ); + numNegativePressures = MpiWrapper::sum( numNegativePressures ); + + if( numNegativePressures > 0 ) + GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Number of negative pressure values: {}, minimum value: {} Pa", + getName(), numNegativePressures, fmt::format( "{:.{}f}", minPressure, 3 ) ) ); + + return (m_allowNegativePressure || numNegativePressures == 0) ? 1 : 0; } void diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWell.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWell.hpp index 15df41a2e83..bd95ac6d2d4 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWell.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWell.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -263,6 +263,9 @@ class SinglePhaseWell : public WellSolverBase real64 const & dt, DomainPartition & domain ) override; + /// flag if negative pressure is allowed + integer m_allowNegativePressure; + private: /** diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellFields.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellFields.hpp index 0c157158908..3d733dde731 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellFields.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.cpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.cpp index 41039c2542b..f006802654c 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.hpp index 12767869b48..4c4a249aa82 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/SinglePhaseWellKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -469,38 +469,6 @@ class ResidualNormKernelFactory }; -/******************************** SolutionCheckKernel ********************************/ - -struct SolutionCheckKernel -{ - template< typename POLICY > - static localIndex - launch( arrayView1d< real64 const > const & localSolution, - globalIndex const rankOffset, - arrayView1d< globalIndex const > const & presDofNumber, - arrayView1d< integer const > const & ghostRank, - arrayView1d< real64 const > const & pres, - real64 const scalingFactor ) - { - RAJA::ReduceMin< ReducePolicy< POLICY >, localIndex > minVal( 1 ); - - forAll< POLICY >( presDofNumber.size(), [=] GEOS_HOST_DEVICE ( localIndex const ei ) - { - if( ghostRank[ei] < 0 && presDofNumber[ei] >= 0 ) - { - localIndex const lid = presDofNumber[ei] - rankOffset; - real64 const newPres = pres[ei] + scalingFactor * localSolution[lid]; - - if( newPres < 0.0 ) - { - minVal.min( 0 ); - } - } - } ); - return minVal.get(); - } -}; - } // end namespace singlePhaseWellKernels } // end namespace geos diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellConstants.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellConstants.hpp index 3d7cc6dfec5..9b24c9f61df 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellConstants.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellConstants.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellControls.cpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellControls.cpp index 11a170abcbe..30ed4a17f09 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellControls.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellControls.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,6 +21,8 @@ #include "WellConstants.hpp" #include "dataRepository/InputFlags.hpp" #include "functions/FunctionManager.hpp" +#include "physicsSolvers/fluidFlow/wells/LogLevelsInfo.hpp" + namespace geos { @@ -340,8 +342,8 @@ void WellControls::postInputInitialization() else if( m_targetBHP <= 0.0 && m_targetBHPTableName.empty() ) { m_targetBHP = isProducer() ? WellConstants::defaultProducerBHP : WellConstants::defaultInjectorBHP; - GEOS_LOG_LEVEL_RANK_0( 1, "WellControls " << getDataContext() << ": Setting " << viewKeyStruct::targetBHPString() << " to default value " - << m_targetBHP << "." ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::WellControl, + GEOS_FMT( "WellControls {}: Setting {} to default value {}", getDataContext(), viewKeyStruct::targetBHPString(), m_targetBHP )); } // 6.2) Check incoherent information @@ -383,7 +385,7 @@ void WellControls::postInputInitialization() m_targetBHPTable = &(functionManager.getGroup< TableFunction const >( m_targetBHPTableName )); GEOS_THROW_IF( m_targetBHPTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "WellControls " << getDataContext() << ": The interpolation method for the time-dependent rate table " + "WellControls " << getDataContext() << ": The interpolation method for the time-dependent BHP table " << m_targetBHPTable->getName() << " should be TableFunction::InterpolationType::Lower", InputError ); } @@ -400,7 +402,7 @@ void WellControls::postInputInitialization() m_targetTotalRateTable = &(functionManager.getGroup< TableFunction const >( m_targetTotalRateTableName )); GEOS_THROW_IF( m_targetTotalRateTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "WellControls " << getDataContext() << ": The interpolation method for the time-dependent rate table " + "WellControls " << getDataContext() << ": The interpolation method for the time-dependent total rate table " << m_targetTotalRateTable->getName() << " should be TableFunction::InterpolationType::Lower", InputError ); } @@ -417,7 +419,7 @@ void WellControls::postInputInitialization() m_targetPhaseRateTable = &(functionManager.getGroup< TableFunction const >( m_targetPhaseRateTableName )); GEOS_THROW_IF( m_targetPhaseRateTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "WellControls " << getDataContext() << ": The interpolation method for the time-dependent rate table " + "WellControls " << getDataContext() << ": The interpolation method for the time-dependent phase rate table " << m_targetPhaseRateTable->getName() << " should be TableFunction::InterpolationType::Lower", InputError ); } @@ -455,8 +457,8 @@ void WellControls::postInputInitialization() m_statusTable = &(functionManager.getGroup< TableFunction const >( m_statusTableName )); GEOS_THROW_IF( m_statusTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "WellControls " << getDataContext() << ": The interpolation method for the time-dependent rate table " - << m_targetPhaseRateTable->getName() << " should be TableFunction::InterpolationType::Lower", + "WellControls " << getDataContext() << ": The interpolation method for the time-dependent status table " + << m_statusTable->getName() << " should be TableFunction::InterpolationType::Lower", InputError ); } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellControls.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellControls.hpp index 2089d45ddbb..107c013cfd3 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellControls.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellControls.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.cpp index 14bd1fcab70..b87c37c7dd3 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -27,6 +27,7 @@ #include "physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp" #include "physicsSolvers/fluidFlow/wells/WellControls.hpp" #include "physicsSolvers/fluidFlow/wells/WellSolverBaseFields.hpp" +#include "physicsSolvers/fluidFlow/wells/LogLevelsInfo.hpp" #include "physicsSolvers/fluidFlow/wells/ThermalCompositionalMultiphaseWellKernels.hpp" #include "fileIO/Outputs/OutputBase.hpp" @@ -58,6 +59,9 @@ WellSolverBase::WellSolverBase( string const & name, setApplyDefaultValue( 0 ). setInputFlag( dataRepository::InputFlags::OPTIONAL ). setDescription( "Write rates into a CSV file" ); + + addLogLevel< logInfo::WellControl >(); + addLogLevel< logInfo::Crossflow >(); } Group *WellSolverBase::createChild( string const & childKey, string const & childName ) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.hpp index 73d4d255731..628db6681cf 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBaseFields.hpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBaseFields.hpp index 81cc0502ddb..1c6f4d4a748 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBaseFields.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBaseFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/docs/CompositionalMultiphaseWell.rst b/src/coreComponents/physicsSolvers/fluidFlow/wells/docs/CompositionalMultiphaseWell.rst index b78c7b6583b..dccbaa36cff 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/docs/CompositionalMultiphaseWell.rst +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/docs/CompositionalMultiphaseWell.rst @@ -127,7 +127,7 @@ Parameters The following attributes are supported: -.. include:: /coreComponents/schema/docs/CompositionalMultiphaseWell.rst +.. include:: /docs/sphinx/datastructure/CompositionalMultiphaseWell.rst .. _well_input_example: diff --git a/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRate.cpp b/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRate.cpp index 14ae9707b43..c35871c173b 100644 --- a/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRate.cpp +++ b/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRate.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,6 +21,7 @@ #include "dataRepository/InputFlags.hpp" #include "mainInterface/GeosxState.hpp" +#include "mesh/DomainPartition.hpp" #include "mesh/mpiCommunications/CommunicationTools.hpp" #include "physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp" #include "SeismicityRateKernels.hpp" @@ -39,11 +40,11 @@ SeismicityRate::SeismicityRate( const string & name, { this->registerWrapper( viewKeyStruct::directEffectString(), &m_directEffect ). setInputFlag( InputFlags::REQUIRED ). - setDescription( "Rate-and-state friction direct effect parameter" ); + setDescription( "Rate-and-state friction direct effect parameter." ); this->registerWrapper( viewKeyStruct::backgroundStressingRateString(), &m_backgroundStressingRate ). setInputFlag( InputFlags::REQUIRED ). - setDescription( "Background stressing rate" ); + setDescription( "Background stressing rate (Pa/s)." ); this->registerWrapper( viewKeyStruct::stressSolverNameString(), &m_stressSolverName ). setInputFlag( InputFlags::OPTIONAL ). @@ -184,12 +185,12 @@ void SeismicityRate::updateFaultTraction( ElementSubRegionBase & subRegion ) con } } -void SeismicityRate::computeTotalStressOnFault( arrayView1d< real64 const > const biotCoefficient, - arrayView1d< real64 const > const pres, +void SeismicityRate::computeTotalStressOnFault( arrayView1d< real64 const > const & biotCoefficient, + arrayView1d< real64 const > const & pres, real64 const (&faultNormalProjectionTensor)[6], real64 const (&faultShearProjectionTensor)[6], - arrayView1d< real64 > const sig, - arrayView1d< real64 > const tau ) const + arrayView1d< real64 > const & sig, + arrayView1d< real64 > const & tau ) const { // To calculate the action of the total stress on the fault from our previous calculations, // we need to project the action of the pore pressure on the stress tensor onto the fault @@ -207,6 +208,7 @@ void SeismicityRate::computeTotalStressOnFault( arrayView1d< real64 const > cons sig[k] += pressureOnFaultNormal; tau[k] += pressureOnFaultShear; } ); + } void SeismicityRate::initializeFaultTraction( real64 const time_n, integer const cycleNumber, DomainPartition & domain ) const diff --git a/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRate.hpp b/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRate.hpp index eb49f9270a7..f99582b6c12 100644 --- a/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRate.hpp +++ b/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRate.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -98,12 +98,12 @@ class SeismicityRate : public SolverBase * @param sig * @param tau */ - void computeTotalStressOnFault( arrayView1d< real64 const > const biotCoefficient, - arrayView1d< real64 const > const pres, + void computeTotalStressOnFault( arrayView1d< real64 const > const & biotCoefficient, + arrayView1d< real64 const > const & pres, real64 const (&faultNormalProjectionTensor)[6], real64 const (&faultShearProjectionTensor)[6], - arrayView1d< real64 > const sig, - arrayView1d< real64 > const tau ) const; + arrayView1d< real64 > const & sig, + arrayView1d< real64 > const & tau ) const; /** * @brief called in SolverStep before member stress solver is called to diff --git a/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRateKernels.hpp b/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRateKernels.hpp index 9dfcd31d210..8bbb0f5865f 100644 --- a/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRateKernels.hpp +++ b/src/coreComponents/physicsSolvers/inducedSeismicity/SeismicityRateKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -104,16 +104,17 @@ class SeismicityRateKernel { // arguments of stress exponential at current and previous time step - real64 const g = ( m_tau[k] + stack.backgroundStressingRateValue*(time_n+dt))/(stack.directEffectValue*stack.effectiveNormalTraction ) - - m_tau_0[k]/(stack.directEffectValue * stack.effectiveNormalTraction_0 ); + real64 const g = ( LvArray::math::abs( m_tau[k] ) + stack.backgroundStressingRateValue*(time_n+dt) ) / ( stack.directEffectValue*stack.effectiveNormalTraction ) - + LvArray::math::abs( m_tau_0[k] ) / (stack.directEffectValue * stack.effectiveNormalTraction_0 ); - real64 const g_n = ( m_tau_n[k] + stack.backgroundStressingRateValue*time_n)/(stack.directEffectValue*stack.effectiveNormalTraction_n ) - - m_tau_0[k]/(stack.directEffectValue*stack.effectiveNormalTraction_0); + real64 const g_n = ( LvArray::math::abs( m_tau_n[k] ) + stack.backgroundStressingRateValue*time_n ) / ( stack.directEffectValue*stack.effectiveNormalTraction_n ) - + LvArray::math::abs( m_tau_0[k] ) / (stack.directEffectValue*stack.effectiveNormalTraction_0); // Compute the difference of the log of the denominator of closed for integral solution. // This avoids directly computing the exponential of the current stress state which is more prone to overflow. - m_logDenom[k] += std::log( 1 + dt/(2*(stack.directEffectValue*stack.effectiveNormalTraction_0/stack.backgroundStressingRateValue)) - *(std::exp( g - m_logDenom[k] ) + std::exp( g_n - m_logDenom[k] ) )); + m_logDenom[k] += + LvArray::math::log( 1 + dt/(2*(stack.directEffectValue*stack.effectiveNormalTraction_0/stack.backgroundStressingRateValue) ) * + ( LvArray::math::exp( g - m_logDenom[k] ) + LvArray::math::exp( g_n - m_logDenom[k] ) )); // Convert log seismicity rate to raw value m_R[k] = LvArray::math::exp( g - m_logDenom[k] ); @@ -157,7 +158,7 @@ class SeismicityRateKernelPoroelastic : public SeismicityRateKernel { stack.effectiveNormalTraction_0 = -m_sigma_0[k] - m_pressure_0[k]; stack.effectiveNormalTraction_n = -m_sigma_n[k] - m_pressure_n[k]; - stack.effectiveNormalTraction = -m_sigma[k] - m_pressure[k]; + stack.effectiveNormalTraction = -m_sigma[k] - m_pressure[k]; } private: diff --git a/src/coreComponents/physicsSolvers/inducedSeismicity/inducedSeismicityFields.hpp b/src/coreComponents/physicsSolvers/inducedSeismicity/inducedSeismicityFields.hpp index 1b6433bc1b4..756f0d09e5d 100644 --- a/src/coreComponents/physicsSolvers/inducedSeismicity/inducedSeismicityFields.hpp +++ b/src/coreComponents/physicsSolvers/inducedSeismicity/inducedSeismicityFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/CMakeLists.txt b/src/coreComponents/physicsSolvers/multiphysics/CMakeLists.txt index 60408e700ec..89a34cbc276 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/CMakeLists.txt +++ b/src/coreComponents/physicsSolvers/multiphysics/CMakeLists.txt @@ -13,6 +13,7 @@ set( physicsSolvers_headers multiphysics/PoromechanicsInitialization.hpp multiphysics/PoromechanicsFields.hpp multiphysics/PoromechanicsInitialization.hpp + multiphysics/LogLevelsInfo.hpp multiphysics/poromechanicsKernels/MultiphasePoromechanics.hpp multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp multiphysics/poromechanicsKernels/PoromechanicsBase.hpp diff --git a/src/coreComponents/physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.cpp b/src/coreComponents/physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.cpp index 1e44bbc5b7c..fcc7bdf2227 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,6 +21,7 @@ #include "CompositionalMultiphaseReservoirAndWells.hpp" #include "common/TimingMacros.hpp" +#include "dataRepository/LogLevelsInfo.hpp" #include "constitutive/fluid/multifluid/MultiFluidBase.hpp" #include "mesh/PerforationFields.hpp" #include "physicsSolvers/multiphysics/CoupledReservoirAndWellKernels.hpp" @@ -31,6 +32,7 @@ #include "physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellFields.hpp" #include "physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWellKernels.hpp" #include "physicsSolvers/fluidFlow/wells/WellControls.hpp" +#include "physicsSolvers/fluidFlow/wells/LogLevelsInfo.hpp" #include "physicsSolvers/multiphysics/MultiphasePoromechanics.hpp" @@ -45,7 +47,9 @@ CompositionalMultiphaseReservoirAndWells< RESERVOIR_SOLVER >:: CompositionalMultiphaseReservoirAndWells( const string & name, Group * const parent ) : Base( name, parent ) -{} +{ + Base::template addLogLevel< logInfo::Crossflow >(); +} template< typename RESERVOIR_SOLVER > CompositionalMultiphaseReservoirAndWells< RESERVOIR_SOLVER >:: @@ -98,7 +102,7 @@ setMGRStrategy() // flow solver here is indeed flow solver, not poromechanics solver if( flowSolver()->getLinearSolverParameters().mgr.strategy == LinearSolverParameters::MGR::StrategyType::compositionalMultiphaseHybridFVM ) { - GEOS_LOG_RANK_0( "The poromechanics MGR strategy for hybrid FVM is not implemented" ); + GEOS_ERROR( "The poromechanics MGR strategy for hybrid FVM is not implemented" ); } else { @@ -345,10 +349,10 @@ assembleCouplingTerms( real64 const time_n, globalIndex const totalNumCrossflowPerforations = MpiWrapper::sum( numCrossflowPerforations ); if( totalNumCrossflowPerforations > 0 ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "CompositionalMultiphaseReservoir '{}': Warning! Crossflow detected at {} perforations in well {}" - "To disable crossflow for injectors, you can use the field '{}' in the WellControls '{}' section", - this->getName(), totalNumCrossflowPerforations, subRegion.getName(), - WellControls::viewKeyStruct::enableCrossflowString(), wellControls.getName() ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Crossflow, GEOS_FMT( "CompositionalMultiphaseReservoir '{}': Warning! Crossflow detected at {} perforations in well {}" + "To disable crossflow for injectors, you can use the field '{}' in the WellControls '{}' section", + this->getName(), totalNumCrossflowPerforations, subRegion.getName(), + WellControls::viewKeyStruct::enableCrossflowString(), wellControls.getName() )); } } diff --git a/src/coreComponents/physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.hpp b/src/coreComponents/physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.hpp index 60464e4d163..5aae361b31d 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/CoupledReservoirAndWellsBase.cpp b/src/coreComponents/physicsSolvers/multiphysics/CoupledReservoirAndWellsBase.cpp index d59063ad3f1..4314a716444 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/CoupledReservoirAndWellsBase.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/CoupledReservoirAndWellsBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/CoupledReservoirAndWellsBase.hpp b/src/coreComponents/physicsSolvers/multiphysics/CoupledReservoirAndWellsBase.hpp index 665d3bee319..ab65f9eef38 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/CoupledReservoirAndWellsBase.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/CoupledReservoirAndWellsBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -364,8 +364,8 @@ class CoupledReservoirAndWellsBase : public CoupledSolver< RESERVOIR_SOLVER, WEL forAll< serialPolicy >( perforationData.size(), [=] ( localIndex const iperf ) { GEOS_UNUSED_VAR( iperf ); // unused if geos_error_if is nulld - GEOS_LOG_RANK( GEOS_FMT( "Perforation at ({},{},{}); perforated element center: ({},{},{}); transmissibility: {} [{}]", - perfLocation[iperf][0], perfLocation[iperf][1], perfLocation[iperf][2], + GEOS_LOG_RANK( GEOS_FMT( "{}: perforation at ({},{},{}), perforated element center = ({},{},{}), transmissibility = {} [{}]", + this->getName(), perfLocation[iperf][0], perfLocation[iperf][1], perfLocation[iperf][2], elemCenter[resElemRegion[iperf]][resElemSubRegion[iperf]][resElemIndex[iperf]][0], elemCenter[resElemRegion[iperf]][resElemSubRegion[iperf]][resElemIndex[iperf]][1], elemCenter[resElemRegion[iperf]][resElemSubRegion[iperf]][resElemIndex[iperf]][2], diff --git a/src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp b/src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp index cd70c11b165..cf04bbabc94 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -22,6 +22,7 @@ #define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_COUPLEDSOLVER_HPP_ #include "physicsSolvers/SolverBase.hpp" +#include "physicsSolvers/multiphysics/LogLevelsInfo.hpp" #include @@ -55,6 +56,8 @@ class CoupledSolver : public SolverBase this->getWrapper< string >( SolverBase::viewKeyStruct::discretizationString() ). setInputFlag( dataRepository::InputFlags::FALSE ); + + addLogLevel< logInfo::Coupling >(); } /// deleted copy constructor @@ -88,7 +91,7 @@ class CoupledSolver : public SolverBase getDataContext(), solverName, solverType ), InputError ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{}: found {} solver named {}", getName(), solver->getCatalogName(), solverName ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Coupling, GEOS_FMT( "{}: found {} solver named {}", getName(), solver->getCatalogName(), solverName ) ); } ); } @@ -282,6 +285,10 @@ class CoupledSolver : public SolverBase forEachArgInTuple( m_solvers, [&]( auto & solver, auto ) { bool const validSinglePhysicsSolution = solver->checkSystemSolution( domain, dofManager, localSolution, scalingFactor ); + if( !validSinglePhysicsSolution ) + { + GEOS_LOG_RANK_0( GEOS_FMT( " {}/{}: Solution check failed. Newton loop terminated.", getName(), solver->getName()) ); + } validSolution = validSolution && validSinglePhysicsSolution; } ); return validSolution; @@ -479,7 +486,7 @@ class CoupledSolver : public SolverBase // Solve the subproblems nonlinearly forEachArgInTuple( m_solvers, [&]( auto & solver, auto idx ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " Iteration {:2}: {}", iter + 1, solver->getName() ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::NonlinearSolver, GEOS_FMT( " Iteration {:2}: {}", iter + 1, solver->getName() ) ); real64 solverDt = solver->nonlinearImplicitStep( time_n, stepDt, cycleNumber, @@ -530,7 +537,7 @@ class CoupledSolver : public SolverBase { // cut timestep, go back to beginning of step and restart the Newton loop stepDt *= dtCutFactor; - GEOS_LOG_LEVEL_RANK_0 ( 1, GEOS_FMT( "New dt = {}", stepDt ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::TimeStep, GEOS_FMT( "New dt = {}", stepDt ) ); // notify the solver statistics counter that this is a time step cut m_solverStatistics.logTimeStepCut(); @@ -582,11 +589,11 @@ class CoupledSolver : public SolverBase if( params.m_subcyclingOption == 0 ) { - GEOS_LOG_LEVEL_RANK_0( 1, "***** Single Pass solver, no subcycling *****" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, "***** Single Pass solver, no subcycling *****" ); } else { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " Iteration {:2}: outer-loop convergence check", iter + 1 ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( " Iteration {:2}: outer-loop convergence check", iter + 1 ) ); if( params.sequentialConvergenceCriterion() == NonlinearSolverParameters::SequentialConvergenceCriterion::ResidualNorm ) { @@ -627,7 +634,7 @@ class CoupledSolver : public SolverBase // finally, we perform the convergence check on the multiphysics residual residualNorm = sqrt( residualNorm ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " ( R ) = ( {:4.2e} )", residualNorm ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( " ( R ) = ( {:4.2e} )", residualNorm ) ); isConverged = ( residualNorm < params.m_newtonTol ); } @@ -654,7 +661,7 @@ class CoupledSolver : public SolverBase if( isConverged ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "***** The iterative coupling has converged in {} iteration(s) *****", iter + 1 ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( "***** The iterative coupling has converged in {} iteration(s) *****", iter + 1 ) ); } } return isConverged; @@ -669,7 +676,7 @@ class CoupledSolver : public SolverBase bool const usesLineSearch = getNonlinearSolverParameters().m_lineSearchAction != NonlinearSolverParameters::LineSearchAction::None; GEOS_THROW_IF( isSequential && usesLineSearch, GEOS_FMT( "{}: line search is not supported by the coupled solver when {} is set to `{}`. Please set {} to `{}` to remove this error", - getWrapperDataContext( NonlinearSolverParameters::viewKeysStruct::couplingTypeString() ), + getNonlinearSolverParameters().getWrapperDataContext( NonlinearSolverParameters::viewKeysStruct::couplingTypeString() ), NonlinearSolverParameters::viewKeysStruct::couplingTypeString(), EnumStrings< NonlinearSolverParameters::CouplingType >::toString( NonlinearSolverParameters::CouplingType::Sequential ), NonlinearSolverParameters::viewKeysStruct::lineSearchActionString(), diff --git a/src/coreComponents/physicsSolvers/multiphysics/FlowProppantTransportSolver.cpp b/src/coreComponents/physicsSolvers/multiphysics/FlowProppantTransportSolver.cpp index 551b8684b70..b0b07f0c2b0 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/FlowProppantTransportSolver.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/FlowProppantTransportSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -102,7 +102,7 @@ real64 FlowProppantTransportSolver::sequentiallyCoupledSolverStep( real64 const resetStateToBeginningOfStep( domain ); } - GEOS_LOG_LEVEL_RANK_0( 1, " Iteration: " << iter+1 << ", FlowSolver: " ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::NonlinearSolver, GEOS_FMT( " Iteration: {}, FlowSolver: ", iter+1 ) ); dtReturnTemporary = flowSolver()->nonlinearImplicitStep( time_n, dtReturn, cycleNumber, domain ); @@ -117,11 +117,11 @@ real64 FlowProppantTransportSolver::sequentiallyCoupledSolverStep( real64 const if( fluidNonLinearParams.m_numNewtonIterations <= this->m_nonlinearSolverParameters.m_minIterNewton && iter > 0 ) { m_solverStatistics.logNonlinearIteration(); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "***** The iterative coupling has converged in {} iterations *****", iter ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Convergence, GEOS_FMT( "***** The iterative coupling has converged in {} iterations *****", iter ) ); break; } - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " Iteration: {}, Proppant Solver: ", iter+1 ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::NonlinearSolver, GEOS_FMT( " Iteration: {}, Proppant Solver: ", iter+1 ) ); dtReturnTemporary = proppantTransportSolver()->nonlinearImplicitStep( time_n, dtReturn, cycleNumber, domain ); diff --git a/src/coreComponents/physicsSolvers/multiphysics/FlowProppantTransportSolver.hpp b/src/coreComponents/physicsSolvers/multiphysics/FlowProppantTransportSolver.hpp index 98cf52302a9..3f81dceeeb2 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/FlowProppantTransportSolver.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/FlowProppantTransportSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.cpp b/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.cpp index 3c108c21daa..dfb47daebbe 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOS Contributors * All rights reserved * @@ -26,6 +26,8 @@ #include "physicsSolvers/multiphysics/SinglePhasePoromechanics.hpp" #include "physicsSolvers/multiphysics/MultiphasePoromechanics.hpp" #include "physicsSolvers/fluidFlow/SinglePhaseBase.hpp" +#include "physicsSolvers/surfaceGeneration/LogLevelsInfo.hpp" +#include "dataRepository/LogLevelsInfo.hpp" #include "mesh/MeshFields.hpp" #include "constitutive/fluid/singlefluid/SingleFluidFields.hpp" @@ -70,6 +72,8 @@ HydrofractureSolver< POROMECHANICS_SOLVER >::HydrofractureSolver( const string & setApplyDefaultValue( 0 ). setInputFlag( InputFlags::OPTIONAL ); + Base::template addLogLevel< logInfo::SurfaceGenerator >(); + registerWrapper( viewKeyStruct::isLaggingFractureStencilWeightsUpdateString(), &m_isLaggingFractureStencilWeightsUpdate ). setApplyDefaultValue( 0 ). setInputFlag( InputFlags::OPTIONAL ). @@ -362,13 +366,12 @@ void HydrofractureSolver< POROMECHANICS_SOLVER >::updateHydraulicApertureAndFrac minHydraulicAperture = MpiWrapper::min( minHydraulicAperture ); maxHydraulicAperture = MpiWrapper::max( maxHydraulicAperture ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max aperture change: {} m, max hydraulic aperture change: {} m", - this->getName(), fmt::format( "{:.{}f}", maxApertureChange, 6 ), fmt::format( "{:.{}f}", maxHydraulicApertureChange, 6 ) ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Min aperture: {} m, max aperture: {} m", - this->getName(), fmt::format( "{:.{}f}", minAperture, 6 ), fmt::format( "{:.{}f}", maxAperture, 6 ) ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Min hydraulic aperture: {} m, max hydraulic aperture: {} m", - this->getName(), fmt::format( "{:.{}f}", minHydraulicAperture, 6 ), fmt::format( "{:.{}f}", maxHydraulicAperture, 6 ) ) ); - + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Max aperture change: {} m, max hydraulic aperture change: {} m", + this->getName(), fmt::format( "{:.{}f}", maxApertureChange, 6 ), fmt::format( "{:.{}f}", maxHydraulicApertureChange, 6 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Min aperture: {} m, max aperture: {} m", + this->getName(), fmt::format( "{:.{}f}", minAperture, 6 ), fmt::format( "{:.{}f}", maxAperture, 6 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, GEOS_FMT( " {}: Min hydraulic aperture: {} m, max hydraulic aperture: {} m", + this->getName(), fmt::format( "{:.{}f}", minHydraulicAperture, 6 ), fmt::format( "{:.{}f}", maxHydraulicAperture, 6 ) ) ); } template< typename POROMECHANICS_SOLVER > void HydrofractureSolver< POROMECHANICS_SOLVER >::setupCoupling( DomainPartition const & domain, @@ -918,7 +921,6 @@ real64 HydrofractureSolver< POROMECHANICS_SOLVER >::setNextDt( real64 const & cu nextDt = m_surfaceGenerator->getTimestepRequest() < 1e99 ? m_surfaceGenerator->getTimestepRequest() : currentDt; } - GEOS_LOG_LEVEL_RANK_0( 3, this->getName() << ": nextDt request is " << nextDt ); return nextDt; } template< typename POROMECHANICS_SOLVER > @@ -1110,8 +1112,9 @@ void HydrofractureSolver< POROMECHANICS_SOLVER >::initializeNewFractureFields( D aperture[newElemIndex] = 0; } } - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "New elem index = {:4d} , init aper = {:4.2e}, init press = {:4.2e} ", - newElemIndex, aperture[newElemIndex], fluidPressure[newElemIndex] ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::SurfaceGenerator, + GEOS_FMT( "New elem index = {:4d} , init aper = {:4.2e}, init press = {:4.2e} ", + newElemIndex, aperture[newElemIndex], fluidPressure[newElemIndex] ) ); } ); if( m_newFractureInitializationType == InitializationType::Displacement ) diff --git a/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.hpp b/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.hpp index c9598839401..952415312d7 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -24,6 +24,7 @@ #include "physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp" #include "physicsSolvers/multiphysics/SinglePhasePoromechanics.hpp" #include "physicsSolvers/fluidFlow/SinglePhaseBase.hpp" +#include "dataRepository/LogLevelsInfo.hpp" namespace geos { diff --git a/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolverKernels.hpp b/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolverKernels.hpp index e555a51d551..18416ef2083 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolverKernels.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolverKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/LogLevelsInfo.hpp b/src/coreComponents/physicsSolvers/multiphysics/LogLevelsInfo.hpp new file mode 100644 index 00000000000..fb9322e1021 --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/LogLevelsInfo.hpp @@ -0,0 +1,51 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file LogLevelsInfo.hpp + * This file contains log level informations for coupled multiphysics solvers + */ + +#ifndef GEOS_PHYSICSSOLVERS_MULTIPHYSICS_LOGLEVELSINFO_HPP +#define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_LOGLEVELSINFO_HPP + +#include "common/DataTypes.hpp" + +namespace geos +{ + +namespace logInfo +{ + +/** + * @name Wells LogLevels info structures. They must comply with the `is_log_level_info` trait. + */ +///@{ + +/// @cond DO_NOT_DOCUMENT + +struct Coupling +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Coupling information"; } +}; + +/// @endcond +///@} + +} + +} + +#endif // GEOS_PHYSICSSOLVERS_MULTIPHYSICS_LOGLEVELSINFO_HPP diff --git a/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanics.cpp b/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanics.cpp index 7f17bbfb419..1f4f06d0db3 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanics.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanics.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,6 +21,7 @@ #include "MultiphasePoromechanics.hpp" +#include "dataRepository/LogLevelsInfo.hpp" #include "constitutive/fluid/multifluid/MultiFluidBase.hpp" #include "constitutive/solid/PorousSolid.hpp" #include "physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp" @@ -45,7 +46,6 @@ MultiphasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >::MultiphasePoromechanic Group * const parent ) : Base( name, parent ) { - LinearSolverParameters & linearSolverParameters = this->m_linearSolverParameters.get(); linearSolverParameters.mgr.strategy = LinearSolverParameters::MGR::StrategyType::multiphasePoromechanics; linearSolverParameters.mgr.separateComponents = true; @@ -245,8 +245,9 @@ void MultiphasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >::updateState( Doma maxDeltaPhaseVolFrac = MpiWrapper::max( maxDeltaPhaseVolFrac ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( " {}: Max phase volume fraction change = {}", - this->getName(), GEOS_FMT( "{:.{}f}", maxDeltaPhaseVolFrac, 4 ) ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Solution, + GEOS_FMT( " {}: Max phase volume fraction change = {}", + this->getName(), GEOS_FMT( "{:.{}f}", maxDeltaPhaseVolFrac, 4 ) ) ); } template< typename FLOW_SOLVER, typename MECHANICS_SOLVER > @@ -296,7 +297,7 @@ void MultiphasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >::updateBulkDensity // update the bulk density poromechanicsKernels:: MultiphaseBulkDensityKernelFactory:: - createAndLaunch< parallelDevicePolicy<> >( this->flowSolver()->numFluidPhases(), + createAndLaunch< parallelDevicePolicy<> >( this->flowSolver()->numFluidComponents(), fluid, solid, subRegion ); diff --git a/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanics.hpp b/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanics.hpp index 0874c1237ec..578df76e3cf 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanics.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -41,6 +41,7 @@ class MultiphasePoromechanics : public PoromechanicsSolver< FLOW_SOLVER, MECHANI using Base::m_stabilizationType; using Base::m_stabilizationRegionNames; using Base::m_stabilizationMultiplier; + using Base::getLogLevel; /** * @brief main constructor for MultiphasePoromechanics Objects diff --git a/src/coreComponents/physicsSolvers/multiphysics/PhaseFieldFractureSolver.cpp b/src/coreComponents/physicsSolvers/multiphysics/PhaseFieldFractureSolver.cpp index 3073b63dfbf..0057e882ca2 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/PhaseFieldFractureSolver.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/PhaseFieldFractureSolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/PhaseFieldFractureSolver.hpp b/src/coreComponents/physicsSolvers/multiphysics/PhaseFieldFractureSolver.hpp index f0c8b9edacd..68ff98950c2 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/PhaseFieldFractureSolver.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/PhaseFieldFractureSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsFields.hpp b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsFields.hpp index 7e5eb557f23..1d38ccf74e4 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsFields.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsInitialization.cpp b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsInitialization.cpp index 9505e80bfb3..295eaa33321 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsInitialization.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsInitialization.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -19,18 +19,18 @@ #include "PoromechanicsInitialization.hpp" +#include "events/tasks/TasksManager.hpp" #include "physicsSolvers/PhysicsSolverManager.hpp" +#include "physicsSolvers/fluidFlow/SinglePhaseBase.hpp" +#include "physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp" #include "physicsSolvers/multiphysics/MultiphasePoromechanics.hpp" #include "physicsSolvers/multiphysics/SinglePhasePoromechanics.hpp" #include "physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.hpp" #include "physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.hpp" #include "physicsSolvers/multiphysics/HydrofractureSolver.hpp" -#include "mainInterface/ProblemManager.hpp" -#include "physicsSolvers/fluidFlow/SinglePhaseBase.hpp" #include "physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.hpp" #include "physicsSolvers/multiphysics/CompositionalMultiphaseReservoirAndWells.hpp" -#include "physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp" -#include "events/tasks/TasksManager.hpp" +#include "physicsSolvers/multiphysics/LogLevelsInfo.hpp" namespace geos { @@ -58,6 +58,8 @@ PoromechanicsInitialization( const string & name, setInputFlag( InputFlags::OPTIONAL ). setApplyDefaultValue( "" ). setDescription( "Name of the solid mechanics statistics" ); + + addLogLevel< logInfo::Initialization >(); } template< typename POROMECHANICS_SOLVER > @@ -68,8 +70,8 @@ void PoromechanicsInitialization< POROMECHANICS_SOLVER >:: postInputInitialization() { - ProblemManager & problemManager = this->getGroupByPath< ProblemManager >( "/Problem" ); - PhysicsSolverManager & physicsSolverManager = problemManager.getPhysicsSolverManager(); + Group & problemManager = this->getGroupByPath( "/Problem" ); + Group & physicsSolverManager = problemManager.getGroup( "Solvers" ); GEOS_THROW_IF( !physicsSolverManager.hasGroup( m_poromechanicsSolverName ), GEOS_FMT( "{}: {} solver named {} not found", @@ -82,7 +84,7 @@ postInputInitialization() if( !m_solidMechanicsStatisticsName.empty()) { - TasksManager & tasksManager = problemManager.getTasksManager(); + TasksManager & tasksManager = problemManager.getGroup< TasksManager >( "Tasks" ); GEOS_THROW_IF( !tasksManager.hasGroup( m_solidMechanicsStatisticsName ), GEOS_FMT( "{}: statistics task named {} not found", @@ -108,16 +110,16 @@ execute( real64 const time_n, real64 const eventProgress, DomainPartition & domain ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "Task `{}`: at time {}s, physics solver `{}` is set to perform stress initialization during the next time step(s)", - getName(), time_n, m_poromechanicsSolverName ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Initialization, GEOS_FMT( "Task `{}`: at time {}s, physics solver `{}` is set to perform stress initialization during the next time step(s)", + getName(), time_n, m_poromechanicsSolverName ) ); m_poromechanicsSolver->setStressInitialization( true ); m_solidMechanicsStateResetTask.execute( time_n, dt, cycleNumber, eventCounter, eventProgress, domain ); m_poromechanicsSolver->execute( time_n, dt, cycleNumber, eventCounter, eventProgress, domain ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "Task `{}`: at time {}s, physics solver `{}` has completed stress initialization", - getName(), time_n + dt, m_poromechanicsSolverName ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Initialization, GEOS_FMT( "Task `{}`: at time {}s, physics solver `{}` has completed stress initialization", + getName(), time_n + dt, m_poromechanicsSolverName ) ); m_poromechanicsSolver->setStressInitialization( false ); if( m_solidMechanicsStatistics != nullptr ) @@ -137,6 +139,7 @@ typedef PoromechanicsInitialization< MultiphasePoromechanics<> > MultiphasePorom typedef PoromechanicsInitialization< MultiphasePoromechanics< CompositionalMultiphaseReservoirAndWells<> > > MultiphaseReservoirPoromechanicsInitialization; typedef PoromechanicsInitialization< SinglePhasePoromechanics<> > SinglePhasePoromechanicsInitialization; typedef PoromechanicsInitialization< SinglePhasePoromechanicsConformingFractures<> > SinglePhasePoromechanicsConformingFracturesInitialization; +typedef PoromechanicsInitialization< SinglePhasePoromechanicsConformingFractures< SinglePhaseReservoirAndWells<> > > SinglePhaseReservoirPoromechanicsConformingFracturesInitialization; typedef PoromechanicsInitialization< SinglePhasePoromechanicsEmbeddedFractures > SinglePhasePoromechanicsEmbeddedFracturesInitialization; typedef PoromechanicsInitialization< SinglePhasePoromechanics< SinglePhaseReservoirAndWells<> > > SinglePhaseReservoirPoromechanicsInitialization; typedef PoromechanicsInitialization< HydrofractureSolver< SinglePhasePoromechanics<> > > HydrofractureInitialization; @@ -144,6 +147,7 @@ REGISTER_CATALOG_ENTRY( TaskBase, MultiphasePoromechanicsInitialization, string REGISTER_CATALOG_ENTRY( TaskBase, MultiphaseReservoirPoromechanicsInitialization, string const &, Group * const ) REGISTER_CATALOG_ENTRY( TaskBase, SinglePhasePoromechanicsInitialization, string const &, Group * const ) REGISTER_CATALOG_ENTRY( TaskBase, SinglePhasePoromechanicsConformingFracturesInitialization, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( TaskBase, SinglePhaseReservoirPoromechanicsConformingFracturesInitialization, string const &, Group * const ) REGISTER_CATALOG_ENTRY( TaskBase, SinglePhasePoromechanicsEmbeddedFracturesInitialization, string const &, Group * const ) REGISTER_CATALOG_ENTRY( TaskBase, SinglePhaseReservoirPoromechanicsInitialization, string const &, Group * const ) REGISTER_CATALOG_ENTRY( TaskBase, HydrofractureInitialization, string const &, Group * const ) diff --git a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsInitialization.hpp b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsInitialization.hpp index c76494e31c5..aa13564261b 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsInitialization.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsInitialization.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp index bf6446aa0a6..b2fd6d4a603 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -50,10 +50,6 @@ ENUM_STRINGS( StabilizationType, "Local" ); } -using namespace stabilization; -using namespace fields; -using namespace constitutive; -using namespace dataRepository; template< typename FLOW_SOLVER, typename MECHANICS_SOLVER = SolidMechanicsLagrangianFEM > class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER > @@ -99,9 +95,9 @@ class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER this->registerWrapper( viewKeyStruct::stabilizationTypeString(), &m_stabilizationType ). setInputFlag( dataRepository::InputFlags::OPTIONAL ). setDescription( "StabilizationType. Options are:\n" + - toString( StabilizationType::None ) + "- Add no stabilization to mass equation \n" + - toString( StabilizationType::Global ) + "- Add jump stabilization to all faces \n" + - toString( StabilizationType::Local ) + "- Add jump stabilization on interior of macro elements" ); + toString( stabilization::StabilizationType::None ) + "- Add no stabilization to mass equation \n" + + toString( stabilization::StabilizationType::Global ) + "- Add jump stabilization to all faces \n" + + toString( stabilization::StabilizationType::Local ) + "- Add jump stabilization on interior of macro elements" ); this->registerWrapper( viewKeyStruct::stabilizationRegionNamesString(), &m_stabilizationRegionNames ). setRTTypeName( rtTypes::CustomTypes::groupNameRefArray ). @@ -129,12 +125,12 @@ class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER if( dynamic_cast< SurfaceElementSubRegion * >( &subRegion ) ) { subRegion.registerWrapper< string >( viewKeyStruct::hydraulicApertureRelationNameString() ). - setPlotLevel( PlotLevel::NOPLOT ). - setRestartFlags( RestartFlags::NO_WRITE ). + setPlotLevel( dataRepository::PlotLevel::NOPLOT ). + setRestartFlags( dataRepository::RestartFlags::NO_WRITE ). setSizedFromParent( 0 ); string & hydraulicApertureModelName = subRegion.getReference< string >( viewKeyStruct::hydraulicApertureRelationNameString() ); - hydraulicApertureModelName = SolverBase::getConstitutiveName< HydraulicApertureBase >( subRegion ); + hydraulicApertureModelName = SolverBase::getConstitutiveName< constitutive::HydraulicApertureBase >( subRegion ); GEOS_ERROR_IF( hydraulicApertureModelName.empty(), GEOS_FMT( "{}: HydraulicApertureBase model not found on subregion {}", this->getDataContext(), subRegion.getDataContext() ) ); } @@ -145,7 +141,7 @@ class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER { Base::initializePreSubGroups(); - GEOS_THROW_IF( m_stabilizationType == StabilizationType::Local, + GEOS_THROW_IF( m_stabilizationType == stabilization::StabilizationType::Local, this->getWrapperDataContext( viewKeyStruct::stabilizationTypeString() ) << ": Local stabilization has been temporarily disabled", InputError ); @@ -197,7 +193,7 @@ class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER flowSolver()->enableFixedStressPoromechanicsUpdate(); } - if( m_stabilizationType == StabilizationType::Global || m_stabilizationType == StabilizationType::Local ) + if( m_stabilizationType == stabilization::StabilizationType::Global || m_stabilizationType == stabilization::StabilizationType::Local ) { flowSolver()->enableJumpStabilization(); } @@ -230,7 +226,7 @@ class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER subRegion.registerField< fields::poromechanics::bulkDensity >( this->getName() ); } - if( m_stabilizationType == StabilizationType::Global || m_stabilizationType == StabilizationType::Local ) + if( m_stabilizationType == stabilization::StabilizationType::Global || m_stabilizationType == stabilization::StabilizationType::Local ) { subRegion.registerField< fields::flow::macroElementIndex >( this->getName()); subRegion.registerField< fields::flow::elementStabConstant >( this->getName()); @@ -245,7 +241,7 @@ class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER { flowSolver()->setKeepFlowVariablesConstantDuringInitStep( m_performStressInitialization ); - if( this->m_stabilizationType == StabilizationType::Global || this->m_stabilizationType == StabilizationType::Local ) + if( this->m_stabilizationType == stabilization::StabilizationType::Global || this->m_stabilizationType == stabilization::StabilizationType::Local ) { this->updateStabilizationParameters( domain ); } diff --git a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.cpp b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.cpp index c11d8bab189..6411c8f190e 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -39,6 +39,7 @@ namespace geos using namespace constitutive; using namespace dataRepository; using namespace fields; +using namespace stabilization; template< typename FLOW_SOLVER, typename MECHANICS_SOLVER > SinglePhasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >::SinglePhasePoromechanics( const string & name, @@ -338,7 +339,7 @@ template class SinglePhasePoromechanics<>; template class SinglePhasePoromechanics< SinglePhaseBase, SolidMechanicsLagrangeContact >; template class SinglePhasePoromechanics< SinglePhaseBase, SolidMechanicsEmbeddedFractures >; template class SinglePhasePoromechanics< SinglePhaseReservoirAndWells<> >; -//template class SinglePhasePoromechanics< SinglePhaseReservoirAndWells<>, SolidMechanicsLagrangeContact >; +template class SinglePhasePoromechanics< SinglePhaseReservoirAndWells<>, SolidMechanicsLagrangeContact >; //template class SinglePhasePoromechanics< SinglePhaseReservoirAndWells<>, SolidMechanicsEmbeddedFractures >; namespace diff --git a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.hpp b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.hpp index 76cd2a1120d..ed8cf47b964 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.cpp b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.cpp index 2f0a16dc9ef..7f5f69c81a5 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -19,6 +19,7 @@ #include "SinglePhasePoromechanicsConformingFractures.hpp" +#include "dataRepository/LogLevelsInfo.hpp" #include "constitutive/solid/PorousSolid.hpp" #include "constitutive/fluid/singlefluid/SingleFluidBase.hpp" #include "linearAlgebra/solvers/BlockPreconditioner.hpp" @@ -81,11 +82,6 @@ void SinglePhasePoromechanicsConformingFractures< FLOW_SOLVER >::setupSystem( Do this->setupDofs( domain, dofManager ); dofManager.reorderByRank(); - if( this->getLogLevel() > 2 ) - { - dofManager.printFieldInfo(); - } - /// 2. Add coupling terms not added by the DofManager. localIndex const numLocalRows = dofManager.numLocalDofs(); @@ -371,7 +367,7 @@ addTransmissibilityCouplingPattern( DomainPartition const & domain, // Get the finite volume method used to compute the stabilization NumericalMethodsManager const & numericalMethodManager = domain.getNumericalMethodManager(); FiniteVolumeManager const & fvManager = numericalMethodManager.getFiniteVolumeManager(); - FluxApproximationBase const & stabilizationMethod = fvManager.getFluxApproximation( this->solidMechanicsSolver()->getStabilizationName() ); + FluxApproximationBase const & fvDiscretization = fvManager.getFluxApproximation( this->flowSolver()->getDiscretizationName() ); SurfaceElementRegion const & fractureRegion = elemManager.getRegion< SurfaceElementRegion >( this->solidMechanicsSolver()->getUniqueFractureRegionName() ); @@ -390,7 +386,7 @@ addTransmissibilityCouplingPattern( DomainPartition const & domain, ArrayOfArraysView< localIndex const > const & elemsToFaces = fractureSubRegion.faceList().toViewConst(); - stabilizationMethod.forStencils< SurfaceElementStencil >( mesh, [&]( SurfaceElementStencil const & stencil ) + fvDiscretization.forStencils< SurfaceElementStencil >( mesh, [&]( SurfaceElementStencil const & stencil ) { forAll< serialPolicy >( stencil.size(), [=] ( localIndex const iconn ) { @@ -405,13 +401,15 @@ addTransmissibilityCouplingPattern( DomainPartition const & domain, for( localIndex kf = 0; kf < 2; ++kf ) { // Set row DOF index - globalIndex const rowIndex = presDofNumber[sei[iconn][1-kf]] - rankOffset; + // Note that the 1-kf index is intentional, as this is coupling the pressure of one face cell + // to the nodes of the adjacent cell + localIndex const rowIndex = presDofNumber[sei[iconn][1-kf]] - rankOffset; - if( rowIndex > 0 && rowIndex < pattern.numRows() ) + if( rowIndex >= 0 && rowIndex < pattern.numRows() ) { // Get fracture, face and region/subregion/element indices (for elements on both sides) - localIndex fractureIndex = sei[iconn][kf]; + localIndex const fractureIndex = sei[iconn][kf]; // Get the number of nodes localIndex const numNodesPerFace = faceToNodeMap.sizeOfArray( elemsToFaces[fractureIndex][0] ); @@ -653,7 +651,7 @@ assembleFluidMassResidualDerivativeWrtDisplacement( MeshLevel const & mesh, localIndex const localRow = LvArray::integerConversion< localIndex >( elemDOF[0] - rankOffset ); - if( localRow > 0 && localRow < localMatrix.numRows() ) + if( localRow >= 0 && localRow < localMatrix.numRows() ) { localMatrix.addToRowBinarySearchUnsorted< serialAtomic >( localRow, @@ -709,7 +707,7 @@ assembleFluidMassResidualDerivativeWrtDisplacement( MeshLevel const & mesh, { localIndex const localRow = LvArray::integerConversion< localIndex >( elemDOF[0] - rankOffset ); - if( localRow > 0 && localRow < localMatrix.numRows() ) + if( localRow >= 0 && localRow < localMatrix.numRows() ) { localMatrix.addToRowBinarySearchUnsorted< serialAtomic >( localRow, nodeDOF, @@ -801,13 +799,12 @@ void SinglePhasePoromechanicsConformingFractures< FLOW_SOLVER >::updateHydraulic } template class SinglePhasePoromechanicsConformingFractures<>; -//template class SinglePhasePoromechanicsConformingFractures< SinglePhaseReservoirAndWells<> >; +template class SinglePhasePoromechanicsConformingFractures< SinglePhaseReservoirAndWells<> >; namespace { -//typedef SinglePhasePoromechanicsConformingFractures< SinglePhaseReservoirAndWells<> > -// SinglePhaseReservoirPoromechanicsConformingFractures; -//REGISTER_CATALOG_ENTRY( SolverBase, SinglePhaseReservoirPoromechanicsConformingFractures, string const &, Group * const ) +typedef SinglePhasePoromechanicsConformingFractures< SinglePhaseReservoirAndWells<> > SinglePhaseReservoirPoromechanicsConformingFractures; +REGISTER_CATALOG_ENTRY( SolverBase, SinglePhaseReservoirPoromechanicsConformingFractures, string const &, Group * const ) typedef SinglePhasePoromechanicsConformingFractures<> SinglePhasePoromechanicsConformingFractures; REGISTER_CATALOG_ENTRY( SolverBase, SinglePhasePoromechanicsConformingFractures, string const &, Group * const ) } diff --git a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.hpp b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.hpp index 72cfd3d68ca..a522d389b86 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.cpp b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.cpp index 79dba986aa4..d2c1c2ddecb 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.hpp b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.hpp index ce82208f461..1094ae5f678 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsEmbeddedFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.cpp b/src/coreComponents/physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.cpp index 4a56172c477..4e3dacbd699 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.hpp b/src/coreComponents/physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.hpp index 06b434b8c32..3ad673bbb21 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/SinglePhaseReservoirAndWells.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/Initialization.rst b/src/coreComponents/physicsSolvers/multiphysics/docs/Initialization.rst new file mode 100644 index 00000000000..a80e5152f58 --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/Initialization.rst @@ -0,0 +1,14 @@ +.. _PoromechanicalInitialization: + +Poromechanical Models Intialization +=========================================== + +This section demonstrates the intializaton of poromechanical models in GEOS. + + +.. toctree:: + :maxdepth: 1 + + gravityInducedStressInitialization/Example + + userTableStressInitialization/Example diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/Poromechanics.rst b/src/coreComponents/physicsSolvers/multiphysics/docs/Poromechanics.rst index f745e30e86b..28579e26852 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/docs/Poromechanics.rst +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/Poromechanics.rst @@ -48,7 +48,7 @@ In the main solver, it requires the specification of solidSolverName, flowSolver The following attributes are supported: -.. include:: /coreComponents/schema/docs/SinglePhasePoromechanics.rst +.. include:: /docs/sphinx/datastructure/SinglePhasePoromechanics.rst * ``couplingTypeOption``: defines the coupling scheme. diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/Example.rst b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/Example.rst new file mode 100644 index 00000000000..14eb7d136f3 --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/Example.rst @@ -0,0 +1,232 @@ +.. _gravityinducedhydrostaticinitialization: + + +################################################################################# + Model Initialization: Hydrostatic and Mechanical Equilibrium +################################################################################# + + +**Context** + +Prior to simulating underground operations, it is necessary to run a few steps of a fully coupled geomechanical simulation to reach the equilibrium state. In this example, we perform a gravity-only stress initialization for a reservoir with a hydrostatic in-situ pressure. The problem is solved using a single-phase poromechanics solver (see :ref:`PoroelasticSolver`) and the HydrostaticEquilibrium initialization procedure (see :ref:`EquilibriumInitialCondition`) in GEOS to predict the initial state of stress with depth in the reservoir, subject to the reservoir rock properties and the prevailing hydrostatic pressure condition. This way, the poromechanical model is initialized at mechanical equilibrium and all displacements are set to zero after initialization. We verify numerical results obtained by GEOS against an analytical equation (Eaton's equation). + + +**Input file** + +The xml input files for the test case are located at: + +.. code-block:: console + + inputFiles/initialization/gravityInducedStress_initialization_base.xml + inputFiles/initialization/gravityInducedStress_initialization_benchmark.xml + + +A Python script for post-processing the simulation results is provided: + +.. code-block:: console + + src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/gravityInitializationFigure.py + + +------------------------------------------------------------------ +Description of the Case +------------------------------------------------------------------ + +We model the in-situ state of stress of a subsurface reservoir subject to a gravity-only induced stress and hydrostatic in-situ pressure condition. The domain is homogenous, isotropic and isothermal. The domain is subject to roller boundary conditions on lateral surfaces and at the base of the model, while the top of the model is a free surface. + +.. _problemSketch1InitializationTest: +.. figure:: sketch_of_problem.png + :align: center + :width: 300 + :figclass: align-center + + Sketch of the problem + + +We set up and solve a PoroMechanics model to obtain the gradient of total stresses (principal stress components) across the domain due to gravity effects and hydrostatic pressure only. These numerical predictions are compared with the analytical solutions derived from `Eaton et al. (1969, 1975) `__ + + + +For this example, we focus on the ``Mesh``, +the ``Constitutive``, and the ``FieldSpecifications`` tags. + + +------------------------------------------------------------------ +Mesh +------------------------------------------------------------------ + +The following figure shows the mesh used for solving this poromechanical problem: + +.. _problemSketch2InitializationTest: +.. figure:: mesh.png + :align: center + :width: 500 + :figclass: align-center + + Generated mesh + + +The mesh was created with the internal mesh generator and parametrized in the ``InternalMesh`` XML tag. +It contains 20x20x40 eight-node brick elements in the x, y, and z directions respectively. +Such eight-node hexahedral elements are defined as ``C3D8`` elementTypes, and their collection forms a mesh +with one group of cell blocks named here ``cellBlockNames``. + + +.. literalinclude:: ../../../../../../inputFiles/initialization/gravityInducedStress_initialization_benchmark.xml + :language: xml + :start-after: + :end-before: + + +------------------------ +Poro-Mechanics Solver +------------------------ + +For the initialization test, a hydrostatic pore pressure is imposed on the system. This is done using the Hydrostatic Equilibrium tag under Field Specifications. We then define a poro-mechanics solver called here poroSolve. +This solid mechanics solver (see :ref:`SolidMechanicsLagrangianFEM`) called ``lagSolve`` is based on the Lagrangian finite element formulation. +The problem is run as ``QuasiStatic`` without considering inertial effects. +The computational domain is discretized by ``FE1``, defined in the ``NumericalMethods`` section. +We use the ``targetRegions`` attribute to define the regions where the poromechanics solver is applied. +Since we only have one cellBlockName type called ``Domain``, the poromechanics solver is applied to every element of the model. +The flow solver for this problem (see :ref:`SinglePhaseFlow`) called ``SinglePhaseFlow`` is discretized by ``fluidTPFA``, defined in the ``NumericalMethods`` section. + +.. literalinclude:: ../../../../../../inputFiles/initialization/gravityInducedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + +.. literalinclude:: ../../../../../../inputFiles/initialization/gravityInducedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + + +------------------------------ +Constitutive Laws +------------------------------ + +A homogeneous domain with one solid material is assumed, and its mechanical and fluid properties are specified in the ``Constitutive`` section: + +.. literalinclude:: ../../../../../../inputFiles/initialization/gravityInducedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + + +As shown above, in the ``CellElementRegion`` section, +``rock`` is the solid material in the computational domain and ``water`` is the fluid material. +Here, Porous Elastic Isotropic model ``PorousElasticIsotropic`` is used to simulate the elastic behavior of ``rock``. +As for the solid material parameters, ``defaultDensity``, ``defaultPoissonRatio``, ``defaultYoungModulus``, ``grainBulkModulus``, ``defaultReferencePorosity``, and ``permeabilityComponents`` denote the rock density, Poisson ratio, Young modulus, grain bulk modulus, porosity, and permeability components respectively. In additon, the fluid property (``water``) of density, viscosity, compressibility and viscosibility are specified with ``defaultDensity``, ``defaultViscosity``, ``compressibility``, and ``viscosibility``. +All properties are specified in the International System of Units. + + +------------------------------ +Stress Initialization Function +------------------------------ + +In the ``Tasks`` section, ``SinglePhasePoromechanicsInitialization`` tasks are defined to initialize the model by calling the poro-mechanics solver ``poroSolve``. This task is used to determine stress gradients through designated densities and established constitutive relationships to maintain mechanical equilibrium and reset all initial displacements to zero following the initialization process. + +.. literalinclude:: ../../../../../../inputFiles/initialization/gravityInducedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + +The initialization is triggered into action using the ``Event`` management section, where the ``soloEvent`` function calls the task at the target time (in this case -1e10s). + +.. literalinclude:: ../../../../../../inputFiles/initialization/gravityInducedStress_initialization_benchmark.xml + :language: xml + :start-after: + :end-before: + +The ``PeriodicEvent`` function is used here to define recurring tasks that progress for a stipulated time during the simuation. We also use it in this example to save the vtkOuput results. + +.. literalinclude:: ../../../../../../inputFiles/initialization/gravityInducedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + +We use Paraview to extract the data from the vtkOutput files at the initialization time, and then use a Python script to read and plot the stress and pressure gradients for verification and visualization. + + + +----------------------------------- +Initial and Boundary Conditions +----------------------------------- + +The next step is to specify fields, including: + + - The initial value (hydrostatic equilibrium), + - The boundary conditions (the displacement control of the outer boundaries have to be set). + +In this problem, all outer boundaries of the domain are subject to roller constraints except the top of the model, left as a free surface. + +These boundary conditions are set up through the ``FieldSpecifications`` section. + +.. literalinclude:: ../../../../../../inputFiles/initialization/gravityInducedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + + +The parameters used in the simulation are summarized in the following table. + ++------------------+-------------------------+------------------+--------------------+ +| Symbol | Parameter | Unit | Value | ++==================+=========================+==================+====================+ +| :math:`E` | Young Modulus | [MPa] | 100 | ++------------------+-------------------------+------------------+--------------------+ +| :math:`v` | Poisson Ratio | [-] | 0.25 | ++------------------+-------------------------+------------------+--------------------+ +| :math:`\rho_b` | Bulk Density | [kg/m\ :sup:`3`] | 2500 | ++------------------+-------------------------+------------------+--------------------+ +| :math:`\phi` | Porosity | [-] | 0.375 | ++------------------+-------------------------+------------------+--------------------+ +| :math:`K_s` | Grain Bulk Modulus | [Pa] | 10\ :sup:`27` | ++------------------+-------------------------+------------------+--------------------+ +| :math:`\kappa` | Permeability | [m\ :sup:`2`] | 10\ :sup:`-12` | ++------------------+-------------------------+------------------+--------------------+ +| :math:`\rho_f` | Fluid Density | [kg/m\ :sup:`3`] | 1000 | ++------------------+-------------------------+------------------+--------------------+ +| :math:`c_f` | Fluid compressibility | [Pa\ :sup:`-1`] | 4.4x10\ :sup:`-10` | ++------------------+-------------------------+------------------+--------------------+ +| :math:`\mu` | Fluid viscosity | [Pa s] | 10\ :sup:`-3` | ++------------------+-------------------------+------------------+--------------------+ + + +--------------------------------- +Inspecting Results +--------------------------------- + +In the example, we request vtk output files for time-series (time history). We use paraview to visualize the outcome at the time 0s. +The following figure shows the final gradient of pressure and of the effective vertical stress after initialization is completed. + +.. _problemInitializationPressure: +.. figure:: pressure_field.png + :align: center + :width: 500 + :figclass: align-center + + Simulation result of pressure + +.. _problemInitializationStressZZ: +.. figure:: effective_SZZ.png + :align: center + :width: 500 + :figclass: align-center + + Simulation result of effective vertical stress + + +The figure below shows the comparison between the total stress computed by GEOS(marks) and with an analytical solutions (solid lines). Note that, because of the use of an isotropic model, the minimum and maximul horizontal stresses are equal. + +.. plot:: coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/gravityInitializationFigure.py + + +------------------------------------------------------------------ +To go further +------------------------------------------------------------------ + + +**Feedback on this example** + +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/effective_SZZ.png b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/effective_SZZ.png new file mode 100644 index 00000000000..1bd5ed57fe6 Binary files /dev/null and b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/effective_SZZ.png differ diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/gravityInitializationFigure.py b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/gravityInitializationFigure.py new file mode 100644 index 00000000000..17d26c5174f --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/gravityInitializationFigure.py @@ -0,0 +1,155 @@ +import matplotlib +import matplotlib.pyplot as plt +import numpy as np +import h5py +import xml.etree.ElementTree as ElementTree +import math +from math import sin,cos,tan,exp,atan,asin +import csv +import os +import argparse + + +def getHydromechanicalParametersFromXML(xmlFilePath): + tree = ElementTree.parse(xmlFilePath) + + param1 = tree.find('Constitutive/ElasticIsotropic') + param2 = tree.find('Constitutive/BiotPorosity') + param3 = tree.find('Constitutive/CompressibleSinglePhaseFluid') + + hydromechanicalParameters = dict.fromkeys([ + "bulkModulus", "shearModulus", "youngModulus", "poissonRatio", "rockDensity", "poissonRatio", "biotCoefficient", "porosity", "fluidDensity", "traction"]) + + hydromechanicalParameters["rockDensity"] = float(param1.get("defaultDensity")) + hydromechanicalParameters["poissonRatio"] = float(param1.get("defaultPoissonRatio")) + hydromechanicalParameters["youngModulus"] = float(param1.get("defaultYoungModulus")) + + E = hydromechanicalParameters["youngModulus"] + nu = hydromechanicalParameters["poissonRatio"] + K = E / (3 * (1 - 2 * nu)) + G = E / (2 * (1 + nu)) + + hydromechanicalParameters["poissonRatio"] = nu + hydromechanicalParameters["bulkModulus"] = K + hydromechanicalParameters["shearModulus"] = G + + Ks = float(param2.get("defaultGrainBulkModulus")) + hydromechanicalParameters["biotCoefficient"] = 1.0 - K / Ks + + hydromechanicalParameters["porosity"] = float(param2.get("defaultReferencePorosity")) + + hydromechanicalParameters["fluidDensity"] = float(param3.get("defaultDensity")) + + param4 = tree.findall('FieldSpecifications/Traction') + found_stress = False + for elem in param4: + if elem.get("name") == "tractionTop" and elem.get("tractionType") == "normal": + traction = float(elem.get("scale")) * (-1) + found_stress = True + if found_stress: break + + return hydromechanicalParameters + + +def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File path + outputDir = args.outputDir + geosDir = args.geosDir + xmlFile1Path = geosDir + "/inputFiles/initialization/gravityInducedStress_initialization_base.xml" + xmlFile2Path = geosDir + "/inputFiles/initialization/gravityInducedStress_initialization_benchmark.xml" + + hydromechanicalParameters = getHydromechanicalParametersFromXML(xmlFile1Path) + + BiotCoefficient = hydromechanicalParameters["biotCoefficient"] + nu = hydromechanicalParameters["poissonRatio"] + rhoF = hydromechanicalParameters["fluidDensity"] + rhoR = hydromechanicalParameters["rockDensity"] + phi = hydromechanicalParameters["porosity"] + rhoB = (1-phi)*rhoR + phi*rhoF + + traction = hydromechanicalParameters["traction"] + gravity = 9.81 + + # rename this file to the name of your Paraview output file + file = open(outputDir + "/simulation_result_0.csv") + csvreader = csv.reader(file) + header = next(csvreader) + header_index = {column_name: index for index, column_name in enumerate(header)} + + rows = [] + for row in csvreader: + rows.append(row) + file.close() + + zloc_index = header_index["elementCenter:2"] + pressure_index = header_index["pressure"] + tsxx_index = header_index["rockSolid_stress:0"] # the solidModelName="rockSolid" has been defined in the gravityInducedStress_initialization_base.xml file, please change if you have a different solidModelName + tsyy_index = header_index["rockSolid_stress:1"] + tszz_index = header_index["rockSolid_stress:2"] + + + rows = np.array(rows) + zloc_0 = np.empty(len(rows[:,1])) + pressure_0 = np.empty(len(rows[:,1])) + tsxx_0 = np.empty(len(rows[:,1])) + tsyy_0 = np.empty(len(rows[:,1])) + tszz_0 = np.empty(len(rows[:,1])) + for i in range(0,len(rows[:,1])): + zloc_0[i]=-(float(rows[i,zloc_index])) + pressure_0[i]=float(rows[i,pressure_index]) + tsxx_0[i]=-(float(rows[i,tsxx_index])-BiotCoefficient*pressure_0[i])/1.0e6 + tsyy_0[i]=-(float(rows[i,tsyy_index])-BiotCoefficient*pressure_0[i])/1.0e6 + tszz_0[i]=-(float(rows[i,tszz_index])-BiotCoefficient*pressure_0[i])/1.0e6 + + + z_analytical= np.linspace(0, 1000, 100) + pp_analytical= rhoF*gravity*z_analytical/1.0e6 + szz_analtyical= rhoB*gravity*z_analytical/1.0e6 + + sxx_analtyical=nu/(1-nu)*(szz_analtyical-BiotCoefficient*pp_analytical)+BiotCoefficient*pp_analytical + + fsize = 20 + msize = 12 + lw = 6 + mew = 2 + malpha = 0.6 + lalpha = 0.8 + N1=1 + + fig = plt.figure(figsize=(10,8)) + cmap = plt.get_cmap("tab10") + + + plt.plot(tsxx_0[::N1], zloc_0[::N1], 'o', color=cmap(0), markersize=msize, alpha=malpha, mec=cmap(0), fillstyle='none', mew=mew, label= 'Sxx_Total_GEOS') + plt.plot(sxx_analtyical, z_analytical, lw=lw, alpha=0.8, color='orange', linestyle= ':', label='Sxx_Total_Analytical') + plt.plot(tsyy_0[::N1], zloc_0[::N1], 's', color=cmap(1), markersize=msize, alpha=malpha, mec=cmap(1), fillstyle='none', mew=mew, label= 'Syy_Total_GEOS') + plt.plot(tszz_0[::N1], zloc_0[::N1], 'd', color=cmap(2), markersize=msize, alpha=malpha, mec=cmap(2), fillstyle='none', mew=mew, label= 'Szz_Total_GEOS') + plt.plot(szz_analtyical, z_analytical, lw=lw, alpha=0.8, color='g', linestyle= ':', label='Szz_Total_Analytical') + plt.plot(pressure_0[::N1]/1.0e6, zloc_0[::N1], 'x', color=cmap(3), markersize=msize, alpha=malpha, mec=cmap(3), fillstyle='none', mew=mew, label= 'Pore Pressure_GEOS') + plt.plot(pp_analytical, z_analytical, lw=lw, alpha=0.8, color='r', linestyle= ':', label='Pore Pressure_Analytical') + plt.xlabel('Total Stresses [MPa]', size=fsize, weight="bold") + plt.ylabel('Depth [m]', size=fsize, weight="bold") + plt.legend(loc='upper right',fontsize=fsize*0.5) + plt.grid(True) + ax = plt.gca() + ax.xaxis.set_tick_params(labelsize=fsize) + ax.yaxis.set_tick_params(labelsize=fsize) + ax.invert_yaxis() + + plt.show() + + +if __name__ == "__main__": + main() + diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/mesh.png b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/mesh.png new file mode 100644 index 00000000000..16e043636c3 Binary files /dev/null and b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/mesh.png differ diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/pressure_field.png b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/pressure_field.png new file mode 100644 index 00000000000..f8a23bc4d31 Binary files /dev/null and b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/pressure_field.png differ diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/simulation_result_0.csv b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/simulation_result_0.csv new file mode 100644 index 00000000000..76f10c48621 --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/simulation_result_0.csv @@ -0,0 +1,1002 @@ +"elementCenter:0","elementCenter:1","elementCenter:2","pressure","rockSolid_stress:0","rockSolid_stress:1","rockSolid_stress:2","rockSolid_stress:3","rockSolid_stress:4","rockSolid_stress:5","Points:0","Points:1","Points:2" +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-1000 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-999 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-998 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-997 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-996 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-995 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-994 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-993 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-992 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-991 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-990 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-989 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-988 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-987 +525,525,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-1.1991e-09,-1.1232e-09,9.354e-09,500,500,-986 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-985 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-984 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-983 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-982 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-981 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-980 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-979 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-978 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-977 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-976 +525,475,-987.5,9.7081e+06,-3.023e+06,-3.023e+06,-9.069e+06,-5.6053e-10,-1.7456e-09,7.6652e-09,500,500,-975 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-974 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-973 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-972 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-971 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-970 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-969 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-968 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-967 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-966 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-965 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-964 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-963 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-962 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-961 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-960 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-959 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-958 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-957 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-956 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-955 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-954 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-953 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-952 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-951 +525,475,-962.5,9.4618e+06,-2.9466e+06,-2.9466e+06,-8.8397e+06,-1.0896e-08,-8.1315e-10,7.7823e-09,500,500,-950 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-949 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-948 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-947 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-946 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-945 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-944 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-943 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-942 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-941 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-940 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-939 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-938 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-937 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-936 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-935 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-934 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-933 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-932 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-931 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-930 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-929 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-928 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-927 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-926 +525,475,-937.5,9.2155e+06,-2.8701e+06,-2.8701e+06,-8.6104e+06,-4.1503e-09,1.586e-08,7.7569e-09,500,500,-925 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-924 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-923 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-922 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-921 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-920 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-919 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-918 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-917 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-916 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-915 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-914 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-913 +525,475,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-1.1501e-08,-5.6552e-09,7.2616e-09,500,500,-912 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-911 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-910 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-909 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-908 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-907 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-906 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-905 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-904 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-903 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-902 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-901 +525,525,-912.5,8.9693e+06,-2.7937e+06,-2.7937e+06,-8.3811e+06,-8.8688e-09,-6.1626e-09,1.1097e-08,500,500,-900 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-899 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-898 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-897 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-896 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-895 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-894 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-893 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-892 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-891 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-890 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-889 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-888 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-887 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-886 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-885 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-884 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-883 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-882 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-881 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-880 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-879 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-878 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-877 +525,525,-887.5,8.7231e+06,-2.7173e+06,-2.7173e+06,-8.1518e+06,-2.4893e-09,-6.2797e-09,1.0626e-08,500,500,-876 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-875 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-874 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-873 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-872 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-871 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-870 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-869 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-868 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-867 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-866 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-865 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-864 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-863 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-862 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-861 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-860 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-859 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-858 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-857 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-856 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-855 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-854 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-853 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-852 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-851 +525,525,-862.5,8.4769e+06,-2.6408e+06,-2.6408e+06,-7.9224e+06,-2.5917e-08,-2.7981e-08,1.011e-08,500,500,-850 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-849 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-848 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-847 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-846 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-845 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-844 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-843 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-842 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-841 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-840 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-839 +525,525,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-1.9889e-08,-1.5031e-08,9.5237e-09,500,500,-838 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-837 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-836 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-835 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-834 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-833 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-832 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-831 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-830 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-829 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-828 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-827 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-826 +525,475,-837.5,8.2307e+06,-2.5644e+06,-2.5644e+06,-7.6931e+06,-2.021e-08,-1.8614e-08,7.1723e-09,500,500,-825 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-824 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-823 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-822 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-821 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-820 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-819 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-818 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-817 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-816 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-815 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-814 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-813 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-812 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-811 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-810 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-809 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-808 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-807 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-806 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-805 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-804 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-803 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-802 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-801 +525,475,-812.5,7.9846e+06,-2.4879e+06,-2.4879e+06,-7.4637e+06,-2.2916e-08,-2.1406e-08,6.9877e-09,500,500,-800 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-799 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-798 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-797 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-796 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-795 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-794 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-793 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-792 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-791 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-790 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-789 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-788 +525,475,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-2.0244e-08,-1.1675e-08,7.6617e-09,500,500,-787 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-786 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-785 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-784 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-783 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-782 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-781 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-780 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-779 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-778 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-777 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-776 +525,525,-787.5,7.7385e+06,-2.4114e+06,-2.4114e+06,-7.2343e+06,-1.8987e-08,-8.4655e-09,9.1127e-09,500,500,-775 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-774 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-773 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-772 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-771 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-770 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-769 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-768 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-767 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-766 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-765 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-764 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-763 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-762 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-761 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-760 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-759 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-758 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-757 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-756 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-755 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-754 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-753 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-752 +525,525,-762.5,7.4924e+06,-2.335e+06,-2.335e+06,-7.0049e+06,-2.5787e-08,-3.2986e-08,1.1376e-08,500,500,-751 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-750 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-749 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-748 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-747 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-746 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-745 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-744 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-743 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-742 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-741 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-740 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-739 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-738 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-737 +525,525,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.3592e-08,-3.3602e-08,1.2525e-08,500,500,-736 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-735 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-734 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-733 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-732 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-731 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-730 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-729 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-728 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-727 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-726 +525,475,-737.5,7.2464e+06,-2.2585e+06,-2.2585e+06,-6.7755e+06,-2.9716e-08,-3.78e-08,6.2774e-09,500,500,-725 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-724 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-723 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-722 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-721 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-720 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-719 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-718 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-717 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-716 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-715 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-714 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-713 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-712 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-711 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-710 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-709 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-708 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-707 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-706 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-705 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-704 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-703 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-702 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-701 +525,475,-712.5,7.0004e+06,-2.182e+06,-2.182e+06,-6.5461e+06,-3.2734e-08,-4.0593e-08,7.9573e-09,500,500,-700 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-699 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-698 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-697 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-696 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-695 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-694 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-693 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-692 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-691 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-690 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-689 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-688 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-687 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-686 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-685 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-684 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-683 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-682 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-681 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-680 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-679 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-678 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-677 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-676 +525,475,-687.5,6.7544e+06,-2.1055e+06,-2.1055e+06,-6.3166e+06,-2.6333e-08,-5.3447e-08,8.153e-09,500,500,-675 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-674 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-673 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-672 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-671 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-670 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-669 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-668 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-667 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-666 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-665 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-664 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-663 +525,475,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.2499e-08,-5.2094e-08,9.2601e-09,500,500,-662 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-661 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-660 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-659 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-658 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-657 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-656 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-655 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-654 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-653 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-652 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-651 +525,525,-662.5,6.5084e+06,-2.029e+06,-2.029e+06,-6.0871e+06,-2.8345e-08,-4.7393e-08,1.6922e-08,500,500,-650 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-649 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-648 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-647 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-646 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-645 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-644 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-643 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-642 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-641 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-640 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-639 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-638 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-637 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-636 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-635 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-634 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-633 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-632 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-631 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-630 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-629 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-628 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-627 +525,525,-637.5,6.2625e+06,-1.9525e+06,-1.9525e+06,-5.8576e+06,-2.6992e-08,-5.0203e-08,1.7557e-08,500,500,-626 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-625 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-624 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-623 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-622 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-621 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-620 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-619 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-618 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-617 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-616 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-615 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-614 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-613 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-612 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-611 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-610 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-609 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-608 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-607 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-606 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-605 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-604 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-603 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-602 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-601 +525,525,-612.5,6.0166e+06,-1.876e+06,-1.876e+06,-5.6281e+06,-3.2491e-08,-6.9944e-08,1.5866e-08,500,500,-600 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-599 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-598 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-597 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-596 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-595 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-594 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-593 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-592 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-591 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-590 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-589 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-588 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-587 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-586 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-585 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-584 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-583 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-582 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-581 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-580 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-579 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-578 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-577 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-576 +525,525,-587.5,5.7707e+06,-1.7995e+06,-1.7995e+06,-5.3986e+06,-3.0479e-08,-7.7507e-08,1.647e-08,500,500,-575 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-574 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-573 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-572 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-571 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-570 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-569 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-568 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-567 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-566 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-565 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-564 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-563 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-562 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-561 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-560 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-559 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-558 +525,525,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.3775e-08,-8.8349e-08,1.9547e-08,500,500,-557 +525,475,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.6325e-08,-9.338e-08,1.7773e-08,500,500,-556 +525,475,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.6325e-08,-9.338e-08,1.7773e-08,500,500,-555 +525,475,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.6325e-08,-9.338e-08,1.7773e-08,500,500,-554 +525,475,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.6325e-08,-9.338e-08,1.7773e-08,500,500,-553 +525,475,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.6325e-08,-9.338e-08,1.7773e-08,500,500,-552 +525,475,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.6325e-08,-9.338e-08,1.7773e-08,500,500,-551 +525,475,-562.5,5.5248e+06,-1.723e+06,-1.723e+06,-5.1691e+06,-3.6325e-08,-9.338e-08,1.7773e-08,500,500,-550 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-549 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-548 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-547 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-546 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-545 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-544 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-543 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-542 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-541 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-540 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-539 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-538 +525,475,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.0922e-08,-8.9685e-08,1.9473e-08,500,500,-537 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-536 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-535 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-534 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-533 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-532 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-531 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-530 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-529 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-528 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-527 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-526 +525,525,-537.5,5.279e+06,-1.6465e+06,-1.6465e+06,-4.9395e+06,-4.2483e-08,-8.8263e-08,2.2753e-08,500,500,-525 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-524 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-523 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-522 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-521 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-520 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-519 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-518 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-517 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-516 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-515 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-514 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-513 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-512 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-511 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-510 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-509 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-508 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-507 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-506 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-505 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-504 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-503 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-502 +525,525,-512.5,5.0332e+06,-1.57e+06,-1.57e+06,-4.7099e+06,-4.6282e-08,-8.5001e-08,2.4689e-08,500,500,-501 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-500 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-499 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-498 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-497 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-496 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-495 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-494 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-493 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-492 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-491 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-490 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-489 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-488 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-487 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-486 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-485 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-484 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-483 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-482 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-481 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-480 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-479 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-478 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-477 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-476 +525,525,-487.5,4.7874e+06,-1.4934e+06,-1.4934e+06,-4.4803e+06,-4.859e-08,-8.3197e-08,2.5083e-08,500,500,-475 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-474 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-473 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-472 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-471 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-470 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-469 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-468 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-467 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-466 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-465 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-464 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-463 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-462 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-461 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-460 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-459 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-458 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-457 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-456 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-455 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-454 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-453 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-452 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-451 +525,525,-462.5,4.5417e+06,-1.4169e+06,-1.4169e+06,-4.2507e+06,-5.4505e-08,-8.2e-08,2.7127e-08,500,500,-450 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-449 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-448 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-447 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-446 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-445 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-444 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-443 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-442 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-441 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-440 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-439 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-438 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-437 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-436 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-435 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-434 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-433 +525,525,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-4.7306e-08,-7.7143e-08,2.8496e-08,500,500,-432 +525,475,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-2.9143e-08,-6.2086e-08,2.9651e-08,500,500,-431 +525,475,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-2.9143e-08,-6.2086e-08,2.9651e-08,500,500,-430 +525,475,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-2.9143e-08,-6.2086e-08,2.9651e-08,500,500,-429 +525,475,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-2.9143e-08,-6.2086e-08,2.9651e-08,500,500,-428 +525,475,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-2.9143e-08,-6.2086e-08,2.9651e-08,500,500,-427 +525,475,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-2.9143e-08,-6.2086e-08,2.9651e-08,500,500,-426 +525,475,-437.5,4.2959e+06,-1.3404e+06,-1.3404e+06,-4.0211e+06,-2.9143e-08,-6.2086e-08,2.9651e-08,500,500,-425 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-424 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-423 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-422 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-421 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-420 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-419 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-418 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-417 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-416 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-415 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-414 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-413 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-412 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-411 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-410 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-409 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-408 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-407 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-406 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-405 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-404 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-403 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-402 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-401 +525,475,-412.5,4.0502e+06,-1.2638e+06,-1.2638e+06,-3.7915e+06,-3.8719e-08,-6.8279e-08,3.0795e-08,500,500,-400 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-399 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-398 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-397 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-396 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-395 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-394 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-393 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-392 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-391 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-390 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-389 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-388 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-387 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-386 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-385 +525,475,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-3.8407e-08,-6.7273e-08,3.1651e-08,500,500,-384 +525,525,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-4.9197e-08,-6.9927e-08,2.468e-08,500,500,-383 +525,525,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-4.9197e-08,-6.9927e-08,2.468e-08,500,500,-382 +525,525,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-4.9197e-08,-6.9927e-08,2.468e-08,500,500,-381 +525,525,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-4.9197e-08,-6.9927e-08,2.468e-08,500,500,-380 +525,525,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-4.9197e-08,-6.9927e-08,2.468e-08,500,500,-379 +525,525,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-4.9197e-08,-6.9927e-08,2.468e-08,500,500,-378 +525,525,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-4.9197e-08,-6.9927e-08,2.468e-08,500,500,-377 +525,525,-387.5,3.8046e+06,-1.1873e+06,-1.1873e+06,-3.5618e+06,-4.9197e-08,-6.9927e-08,2.468e-08,500,500,-376 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-375 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-374 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-373 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-372 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-371 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-370 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-369 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-368 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-367 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-366 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-365 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-364 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-363 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-362 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-361 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-360 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-359 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-358 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-357 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-356 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-355 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-354 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-353 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-352 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-351 +525,525,-362.5,3.5589e+06,-1.1107e+06,-1.1107e+06,-3.3321e+06,-4.7306e-08,-6.4879e-08,2.9061e-08,500,500,-350 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-349 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-348 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-347 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-346 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-345 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-344 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-343 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-342 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-341 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-340 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-339 +525,525,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-4.2969e-08,-6.9684e-08,3.4663e-08,500,500,-338 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-337 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-336 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-335 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-334 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-333 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-332 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-331 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-330 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-329 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-328 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-327 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-326 +525,475,-337.5,3.3133e+06,-1.0341e+06,-1.0341e+06,-3.1024e+06,-5.1886e-08,-7.1349e-08,2.4023e-08,500,500,-325 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-324 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-323 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-322 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-321 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-320 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-319 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-318 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-317 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-316 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-315 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-314 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-313 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-312 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-311 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-310 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-309 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-308 +525,475,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-6.2797e-08,-7.6363e-08,2.071e-08,500,500,-307 +525,525,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-4.0003e-08,-6.5711e-08,3.2505e-08,500,500,-306 +525,525,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-4.0003e-08,-6.5711e-08,3.2505e-08,500,500,-305 +525,525,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-4.0003e-08,-6.5711e-08,3.2505e-08,500,500,-304 +525,525,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-4.0003e-08,-6.5711e-08,3.2505e-08,500,500,-303 +525,525,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-4.0003e-08,-6.5711e-08,3.2505e-08,500,500,-302 +525,525,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-4.0003e-08,-6.5711e-08,3.2505e-08,500,500,-301 +525,525,-312.5,3.0677e+06,-9.5758e+05,-9.5758e+05,-2.8727e+06,-4.0003e-08,-6.5711e-08,3.2505e-08,500,500,-300 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-299 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-298 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-297 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-296 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-295 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-294 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-293 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-292 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-291 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-290 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-289 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-288 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-287 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-286 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-285 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-284 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-283 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-282 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-281 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-280 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-279 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-278 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-277 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-276 +525,525,-287.5,2.8221e+06,-8.81e+05,-8.81e+05,-2.643e+06,-4.7427e-08,-6.5087e-08,2.1632e-08,500,500,-275 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-274 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-273 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-272 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-271 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-270 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-269 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-268 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-267 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-266 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-265 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-264 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-263 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-262 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-261 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-260 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-259 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-258 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-257 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-256 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-255 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-254 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-253 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-252 +525,525,-262.5,2.5766e+06,-8.0442e+05,-8.0442e+05,-2.4133e+06,-5.4921e-08,-6.134e-08,1.3059e-08,500,500,-251 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-250 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-249 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-248 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-247 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-246 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-245 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-244 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-243 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-242 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-241 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-240 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-239 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-238 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-237 +525,525,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.9674e-08,-5.2597e-08,1.5083e-08,500,500,-236 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-235 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-234 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-233 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-232 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-231 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-230 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-229 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-228 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-227 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-226 +525,475,-237.5,2.3311e+06,-7.2784e+05,-7.2784e+05,-2.1835e+06,-5.7176e-08,-7.5634e-08,1.9129e-08,500,500,-225 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-224 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-223 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-222 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-221 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-220 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-219 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-218 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-217 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-216 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-215 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-214 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-213 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-212 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-211 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-210 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-209 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-208 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-207 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-206 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-205 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-204 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-203 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-202 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-201 +525,475,-212.5,2.0856e+06,-6.5125e+05,-6.5125e+05,-1.9537e+06,-4.8121e-08,-6.4219e-08,2.1104e-08,500,500,-200 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-199 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-198 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-197 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-196 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-195 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-194 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-193 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-192 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-191 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-190 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-189 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-188 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-187 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-186 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-185 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-184 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-183 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-182 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-181 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-180 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-179 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-178 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-177 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-176 +525,475,-187.5,1.8401e+06,-5.7465e+05,-5.7465e+05,-1.7239e+06,-4.8052e-08,-5.2736e-08,2.2656e-08,500,500,-175 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-174 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-173 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-172 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-171 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-170 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-169 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-168 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-167 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-166 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-165 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-164 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-163 +525,475,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-4.6733e-08,-5.2215e-08,1.9757e-08,500,500,-162 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-161 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-160 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-159 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-158 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-157 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-156 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-155 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-154 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-153 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-152 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-151 +525,525,-162.5,1.5947e+06,-4.9805e+05,-4.9805e+05,-1.4941e+06,-6.1583e-08,-3.6741e-08,1.6738e-08,500,500,-150 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-149 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-148 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-147 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-146 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-145 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-144 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-143 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-142 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-141 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-140 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-139 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-138 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-137 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-136 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-135 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-134 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-133 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-132 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-131 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-130 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-129 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-128 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-127 +525,525,-137.5,1.3493e+06,-4.2144e+05,-4.2144e+05,-1.2643e+06,-4.9162e-08,-3.3654e-08,1.4931e-08,500,500,-126 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-125 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-124 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-123 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-122 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-121 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-120 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-119 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-118 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-117 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-116 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-115 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-114 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-113 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-112 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-111 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-110 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-109 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-108 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-107 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-106 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-105 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-104 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-103 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-102 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-101 +525,525,-112.5,1.1039e+06,-3.4483e+05,-3.4483e+05,-1.0345e+06,-3.8719e-08,-2.6229e-08,1.699e-08,500,500,-100 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-99 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-98 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-97 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-96 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-95 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-94 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-93 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-92 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-91 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-90 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-89 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-88 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-87 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-86 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-85 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-84 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-83 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-82 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-81 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-80 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-79 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-78 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-77 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-76 +525,525,-87.5,8.5854e+05,-2.6821e+05,-2.6821e+05,-8.0463e+05,-3.5562e-08,-7.841e-09,1.8485e-08,500,500,-75 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-74 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-73 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-72 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-71 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-70 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-69 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-68 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-67 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-66 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-65 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-64 +525,525,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.2717e-08,-3.4348e-09,1.3681e-08,500,500,-63 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-62 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-61 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-60 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-59 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-58 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-57 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-56 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-55 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-54 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-53 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-52 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-51 +525,475,-62.5,6.1321e+05,-1.9158e+05,-1.9158e+05,-5.7475e+05,-3.629e-08,-1.8839e-08,1.0223e-08,500,500,-50 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-49 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-48 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-47 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-46 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-45 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-44 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-43 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-42 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-41 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-40 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-39 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-38 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-37 +525,475,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-3.3827e-08,-1.648e-08,8.0362e-09,500,500,-36 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-35 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-34 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-33 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-32 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-31 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-30 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-29 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-28 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-27 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-26 +525,525,-37.5,3.679e+05,-1.1496e+05,-1.1496e+05,-3.4487e+05,-1.8111e-08,-1.3427e-08,7.6771e-09,500,500,-25 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-24 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-23 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-22 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-21 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-20 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-19 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-18 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-17 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-16 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-15 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-14 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-13 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-12 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-11 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-10 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-9 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-8 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-7 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-6 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-5 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-4 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-3 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-2 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,-1 +525,525,-12.5,1.2263e+05,-38320,-38320,-1.1496e+05,-3.1919e-09,-9.1593e-09,6.9718e-09,500,500,0 diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/sketch_of_problem.png b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/sketch_of_problem.png new file mode 100644 index 00000000000..e878da52b4b Binary files /dev/null and b/src/coreComponents/physicsSolvers/multiphysics/docs/gravityInducedStressInitialization/sketch_of_problem.png differ diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/Example.rst b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/Example.rst new file mode 100644 index 00000000000..6ec3b78de4f --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/Example.rst @@ -0,0 +1,116 @@ +.. _userdefinedstressinitialization: + + +################################################################################# + Model Initialization: User Defined Tables +################################################################################# + + +**Context** + +This example uses the same reservoir model as the gravity-induced hydrostatic stress initialization case (see :ref:`gravityinducedhydrostaticinitialization`). Instead of using the gravity based equilibrium initialization procedure, we collect the interpretated stress and pore pressure gradients for a reservoir and then request the simulator to perform an initialization with the provided pressure and stresses in every element in the model. The problem is solved by using the single-phase poromechanics solver (see :ref:`PoroelasticSolver`) in GEOS. + +**Input file** + +The xml input files for the test case are located at: + +.. code-block:: console + + inputFiles/initialization/userdefinedStress_initialization_base.xml + inputFiles/initialization/userdefinedStress_initialization_benchmark.xml + + +This example also uses a set of table files located at: + +.. code-block:: console + + inputFiles/initialization/userTables/ + + +Last, a Python script for post-processing the results is provided: + +.. code-block:: console + + src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/tableInitializationFigure.py + + +------------------------------------- +Stress Initialization Table Functions +------------------------------------- + +The major distinction between this "user-defined" initialization and the "gravity-based" initialization is that in the user-defined case, the user provides the following additional information: + + - The distribution of effective stresses and pore pressure across the domain, with their gradients assumed constant along the depth in this example. We use a table function (see :ref:`FunctionManager`) to specify pressure and stress conditions throughout the area. + + +This is shown in the following tags under the ``FieldSpecifications`` section below + +.. literalinclude:: ../../../../../../inputFiles/initialization/userdefinedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + +The tables for ``sigma_xx``, ``sigma_yy``, ``sigma_zz`` and ``init_pressure`` are listed under the ``Functions`` section as shown below. + +.. literalinclude:: ../../../../../../inputFiles/initialization/userdefinedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + +The required input files: x.csv, y.csv, z.csv, effectiveSigma_xx.csv, effectiveSigma_yy.csv, effectiveSigma_zz.csv, and porePressure.csv are generated based on the expected stress-gradients in the model. + +A Python script to generate these files is provided: + +.. code-block:: console + + src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/genetrateTable.py + +In addition to generating the files listed above, the script prints out the corresponding fluid density and rock density based on the model parameters provided. These values are then input into the ``defaultDensity`` parameter of the ``CompressibleSinglePhaseFluid`` and ``ElasticIsotropic`` tags respectively, as shown below: + +.. literalinclude:: ../../../../../../inputFiles/initialization/userdefinedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + +.. literalinclude:: ../../../../../../inputFiles/initialization/userdefinedStress_initialization_base.xml + :language: xml + :start-after: + :end-before: + + +--------------------------------- +Inspecting Results +--------------------------------- + +In the example, we request vtk output files for time-series (time history). We use paraview to visualize the outcome at the time 0s. +The following figure shows the final gradient of pressure and of the effective vertical stress after initialization is completed. + +.. _problemInitializationPres: +.. figure:: pressure_field.png + :align: center + :width: 500 + :figclass: align-center + + Simulation result of pressure + +.. _problemInitializationSZZ: +.. figure:: stressZZ_field.png + :align: center + :width: 500 + :figclass: align-center + + Simulation result of effective vertical stress + +The figure below shows the comparisons between the numerical predictions (marks) and the corresponding user-provided stress gradients. Note that anisotropic horizontal stresses are obtained through this intialization procedure; however, mechanical equilibrium might not be guaranteed, especially for the heterogeneous models. + +.. plot:: coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/tableInitializationFigure.py + + +------------------------------------------------------------------ +To go further +------------------------------------------------------------------ + + +**Feedback on this example** + +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/generateTable.py b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/generateTable.py new file mode 100644 index 00000000000..c8e8eb08ff2 --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/generateTable.py @@ -0,0 +1,49 @@ +import math +import numpy as np + + +model_top = 0.0 # in m +model_base = -1000.0 # in m +num_Points = 2 +z_table = np.linspace(model_base, model_top, num_Points) +pp_gradient = 0.1 # in MPa/m +sigma_xx_gradient = 0.17 # in MPa/m +sigma_yy_gradient = 0.27 # in MPa/m +sigma_zz_gradient = 0.24 # in MPa/m + + + +PoissonRatio = 0.25 +YoungModulus = 100e6 # in Pa +grainBulkModulus = 1e27 # in #Pa +bulkModulus = YoungModulus/3.0/(1.0-2.0*PoissonRatio) # in Pa +BiotCoefficient = 1.0-bulkModulus/grainBulkModulus +porosity = 0.375 +Gravity = 9.81 + + +pp_table = abs(z_table)*pp_gradient*100000 +fluidDensity = pp_gradient*100000/Gravity +effectiveSigma_xx_table = z_table*sigma_xx_gradient*100000 + BiotCoefficient*pp_table +effectiveSigma_yy_table = z_table*sigma_yy_gradient*100000 + BiotCoefficient*pp_table +effectiveSigma_zz_table = z_table*sigma_zz_gradient*100000 + BiotCoefficient*pp_table + +bulkDensity = sigma_zz_gradient*100000/Gravity +rockDensity = (bulkDensity - porosity*fluidDensity)/(1.0-porosity) +print(f'Fluid Density = {fluidDensity} kg/m3, Rock Density = {rockDensity} kg/m3') + +np.savetxt('porePressure.csv', pp_table, fmt='%1.2f', delimiter=',') + +np.savetxt('effectiveSigma_xx.csv', effectiveSigma_xx_table, fmt='%1.2f', delimiter=',') + +np.savetxt('effectiveSigma_yy.csv', effectiveSigma_yy_table, fmt='%1.2f', delimiter=',') + +np.savetxt('effectiveSigma_zz.csv', effectiveSigma_zz_table, fmt='%1.2f', delimiter=',') + +x_table = np.linspace(0.0, 0.0, 1) +np.savetxt('x.csv', x_table, fmt='%1.2f', delimiter=',') + +y_table = np.linspace(0.0, 0.0, 1) +np.savetxt('y.csv', x_table, fmt='%1.2f', delimiter=',') + +np.savetxt('z.csv', z_table, fmt='%1.2f', delimiter=',') diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/pressure_field.png b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/pressure_field.png new file mode 100644 index 00000000000..9145f77b897 Binary files /dev/null and b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/pressure_field.png differ diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/simulation_result_0.csv b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/simulation_result_0.csv new file mode 100644 index 00000000000..837edf3cc67 --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/simulation_result_0.csv @@ -0,0 +1,1002 @@ +"elementCenter:0","elementCenter:1","elementCenter:2","pressure","rockSolid_stress:0","rockSolid_stress:1","rockSolid_stress:2","rockSolid_stress:3","rockSolid_stress:4","rockSolid_stress:5","Points:0","Points:1","Points:2" +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-1000 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-999 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-998 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-997 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-996 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-995 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-994 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-993 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-992 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-991 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-990 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-989 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-988 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-987 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-986 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-985 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-984 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-983 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-982 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-981 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-980 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-979 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-978 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-977 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-976 +525,525,-987.5,9.875e+06,-6.8917e+06,-1.6767e+07,-1.3763e+07,2.231e-09,-1.1239e-09,4.8216e-09,500,500,-975 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-974 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-973 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-972 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-971 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-970 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-969 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-968 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-967 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-966 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-965 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-964 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-963 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-962 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-961 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-960 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-959 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-958 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-957 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-956 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-955 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-954 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-953 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-952 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-951 +525,525,-962.5,9.625e+06,-6.7171e+06,-1.6342e+07,-1.3414e+07,-1.4554e-08,4.3977e-09,4.9082e-09,500,500,-950 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-949 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-948 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-947 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-946 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-945 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-944 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-943 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-942 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-941 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-940 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-939 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-938 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-937 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-936 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-935 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-934 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-933 +525,525,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,8.0922e-09,2.9974e-08,5.203e-09,500,500,-932 +525,475,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,7.4834e-09,3.0448e-08,3.7313e-09,500,500,-931 +525,475,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,7.4834e-09,3.0448e-08,3.7313e-09,500,500,-930 +525,475,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,7.4834e-09,3.0448e-08,3.7313e-09,500,500,-929 +525,475,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,7.4834e-09,3.0448e-08,3.7313e-09,500,500,-928 +525,475,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,7.4834e-09,3.0448e-08,3.7313e-09,500,500,-927 +525,475,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,7.4834e-09,3.0448e-08,3.7313e-09,500,500,-926 +525,475,-937.5,9.375e+06,-6.5426e+06,-1.5918e+07,-1.3065e+07,7.4834e-09,3.0448e-08,3.7313e-09,500,500,-925 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-924 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-923 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-922 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-921 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-920 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-919 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-918 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-917 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-916 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-915 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-914 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-913 +525,475,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,2.3555e-09,4.198e-09,3.9418e-09,500,500,-912 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-911 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-910 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-909 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-908 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-907 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-906 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-905 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-904 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-903 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-902 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-901 +525,525,-912.5,9.125e+06,-6.3681e+06,-1.5493e+07,-1.2717e+07,1.7691e-09,3.352e-09,5.2129e-09,500,500,-900 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-899 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-898 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-897 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-896 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-895 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-894 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-893 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-892 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-891 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-890 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-889 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-888 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-887 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-886 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-885 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-884 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-883 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-882 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-881 +525,525,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6027e-08,6.0936e-09,4.9075e-09,500,500,-880 +525,475,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6876e-08,6.3486e-09,3.6317e-09,500,500,-879 +525,475,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6876e-08,6.3486e-09,3.6317e-09,500,500,-878 +525,475,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6876e-08,6.3486e-09,3.6317e-09,500,500,-877 +525,475,-887.5,8.875e+06,-6.1935e+06,-1.5069e+07,-1.2368e+07,1.6876e-08,6.3486e-09,3.6317e-09,500,500,-876 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-875 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-874 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-873 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-872 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-871 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-870 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-869 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-868 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-867 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-866 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-865 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-864 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-863 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-862 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-861 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-860 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-859 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-858 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-857 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-856 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-855 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-854 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-853 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-852 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-851 +525,525,-862.5,8.625e+06,-6.019e+06,-1.4644e+07,-1.202e+07,-2.2885e-08,-2.095e-08,4.3994e-09,500,500,-850 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-849 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-848 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-847 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-846 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-845 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-844 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-843 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-842 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-841 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-840 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-839 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-838 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-837 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-836 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-835 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-834 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-833 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-832 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-831 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-830 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-829 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-828 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-827 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-826 +525,525,-837.5,8.375e+06,-5.8445e+06,-1.422e+07,-1.1671e+07,2.533e-10,-2.026e-09,3.9873e-09,500,500,-825 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-824 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-823 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-822 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-821 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-820 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-819 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-818 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-817 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-816 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-815 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-814 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-813 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-812 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-811 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-810 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-809 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-808 +525,525,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,1.4824e-09,1.3732e-09,3.8487e-09,500,500,-807 +525,475,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,2.5881e-09,1.2905e-09,3.5733e-09,500,500,-806 +525,475,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,2.5881e-09,1.2905e-09,3.5733e-09,500,500,-805 +525,475,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,2.5881e-09,1.2905e-09,3.5733e-09,500,500,-804 +525,475,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,2.5881e-09,1.2905e-09,3.5733e-09,500,500,-803 +525,475,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,2.5881e-09,1.2905e-09,3.5733e-09,500,500,-802 +525,475,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,2.5881e-09,1.2905e-09,3.5733e-09,500,500,-801 +525,475,-812.5,8.125e+06,-5.67e+06,-1.3795e+07,-1.1322e+07,2.5881e-09,1.2905e-09,3.5733e-09,500,500,-800 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-799 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-798 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-797 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-796 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-795 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-794 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-793 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-792 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-791 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-790 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-789 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-788 +525,475,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.2955e-09,1.8767e-08,3.2627e-09,500,500,-787 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-786 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-785 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-784 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-783 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-782 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-781 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-780 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-779 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-778 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-777 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-776 +525,525,-787.5,7.875e+06,-5.4955e+06,-1.337e+07,-1.0974e+07,9.1293e-09,1.8739e-08,3.8989e-09,500,500,-775 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-774 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-773 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-772 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-771 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-770 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-769 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-768 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-767 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-766 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-765 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-764 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-763 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-762 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-761 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-760 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-759 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-758 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-757 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-756 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-755 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-754 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-753 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-752 +525,525,-762.5,7.625e+06,-5.321e+06,-1.2946e+07,-1.0625e+07,-7.4289e-09,-7.4071e-09,3.9814e-09,500,500,-751 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-750 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-749 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-748 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-747 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-746 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-745 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-744 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-743 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-742 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-741 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-740 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-739 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-738 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-737 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-736 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-735 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-734 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-733 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-732 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-731 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-730 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-729 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-728 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-727 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-726 +525,525,-737.5,7.375e+06,-5.1465e+06,-1.2521e+07,-1.0277e+07,-5.2577e-09,-3.0772e-09,3.7433e-09,500,500,-725 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-724 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-723 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-722 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-721 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-720 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-719 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-718 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-717 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-716 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-715 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-714 +525,525,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2317e-08,6.709e-09,3.617e-09,500,500,-713 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-712 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-711 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-710 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-709 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-708 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-707 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-706 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-705 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-704 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-703 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-702 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-701 +525,475,-712.5,7.125e+06,-4.9719e+06,-1.2097e+07,-9.9283e+06,-1.2673e-08,8.1302e-09,2.7197e-09,500,500,-700 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-699 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-698 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-697 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-696 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-695 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-694 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-693 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-692 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-691 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-690 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-689 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-688 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-687 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-686 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-685 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-684 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-683 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-682 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-681 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-680 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-679 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-678 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-677 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-676 +525,475,-687.5,6.875e+06,-4.7974e+06,-1.1672e+07,-9.5798e+06,-7.8735e-09,-2.8248e-09,2.8188e-09,500,500,-675 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-674 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-673 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-672 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-671 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-670 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-669 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-668 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-667 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-666 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-665 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-664 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-663 +525,475,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,3.2449e-09,7.996e-11,2.6142e-09,500,500,-662 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-661 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-660 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-659 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-658 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-657 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-656 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-655 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-654 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-653 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-652 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-651 +525,525,-662.5,6.625e+06,-4.623e+06,-1.1248e+07,-9.2314e+06,2.8008e-09,-1.5585e-11,3.0555e-09,500,500,-650 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-649 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-648 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-647 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-646 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-645 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-644 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-643 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-642 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-641 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-640 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-639 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-638 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-637 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-636 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-635 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-634 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-633 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-632 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-631 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-630 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-629 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-628 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-627 +525,525,-637.5,6.375e+06,-4.4485e+06,-1.0823e+07,-8.8829e+06,8.6973e-09,1.137e-08,2.5422e-09,500,500,-626 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-625 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-624 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-623 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-622 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-621 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-620 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-619 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-618 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-617 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-616 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-615 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-614 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-613 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-612 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-611 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-610 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-609 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-608 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-607 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-606 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-605 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-604 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-603 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-602 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-601 +525,525,-612.5,6.125e+06,-4.274e+06,-1.0399e+07,-8.5344e+06,-7.1658e-09,1.2119e-09,2.4478e-09,500,500,-600 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-599 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-598 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-597 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-596 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-595 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-594 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-593 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-592 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-591 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-590 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-589 +525,525,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,5.7147e-09,5.744e-09,2.6549e-09,500,500,-588 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-587 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-586 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-585 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-584 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-583 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-582 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-581 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-580 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-579 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-578 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-577 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-576 +525,475,-587.5,5.875e+06,-4.0995e+06,-9.9745e+06,-8.1859e+06,6.0238e-09,5.5572e-09,1.1504e-09,500,500,-575 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-574 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-573 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-572 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-571 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-570 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-569 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-568 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-567 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-566 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-565 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-564 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-563 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-562 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-561 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-560 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-559 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-558 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-557 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-556 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-555 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-554 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-553 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-552 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-551 +525,475,-562.5,5.625e+06,-3.925e+06,-9.55e+06,-7.8375e+06,5.6524e-09,-2.5183e-09,1.1073e-09,500,500,-550 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-549 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-548 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-547 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-546 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-545 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-544 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-543 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-542 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-541 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-540 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-539 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-538 +525,475,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2223e-09,-4.6824e-09,1.507e-09,500,500,-537 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-536 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-535 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-534 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-533 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-532 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-531 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-530 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-529 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-528 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-527 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-526 +525,525,-537.5,5.375e+06,-3.7505e+06,-9.1255e+06,-7.489e+06,2.2087e-09,-4.6421e-09,2.4099e-09,500,500,-525 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-524 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-523 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-522 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-521 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-520 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-519 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-518 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-517 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-516 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-515 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-514 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-513 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-512 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-511 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-510 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-509 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-508 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-507 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-506 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-505 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-504 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-503 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-502 +525,525,-512.5,5.125e+06,-3.576e+06,-8.701e+06,-7.1406e+06,4.5432e-09,1.9792e-09,2.5512e-09,500,500,-501 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-500 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-499 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-498 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-497 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-496 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-495 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-494 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-493 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-492 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-491 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-490 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-489 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-488 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-487 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-486 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-485 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-484 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-483 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-482 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-481 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-480 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-479 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-478 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-477 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-476 +525,525,-487.5,4.875e+06,-3.4016e+06,-8.2766e+06,-6.7922e+06,5.7245e-09,1.9448e-09,2.7185e-09,500,500,-475 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-474 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-473 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-472 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-471 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-470 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-469 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-468 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-467 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-466 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-465 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-464 +525,525,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.4137e-09,-2.4198e-09,2.5927e-09,500,500,-463 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-462 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-461 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-460 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-459 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-458 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-457 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-456 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-455 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-454 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-453 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-452 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-451 +525,475,-462.5,4.625e+06,-3.2271e+06,-7.8521e+06,-6.4438e+06,2.3894e-09,-2.4077e-09,1.2297e-09,500,500,-450 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-449 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-448 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-447 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-446 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-445 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-444 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-443 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-442 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-441 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-440 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-439 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-438 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-437 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-436 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-435 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-434 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-433 +525,475,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,3.2504e-09,2.9329e-09,1.2885e-09,500,500,-432 +525,525,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,2.8413e-09,2.4755e-09,2.6738e-09,500,500,-431 +525,525,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,2.8413e-09,2.4755e-09,2.6738e-09,500,500,-430 +525,525,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,2.8413e-09,2.4755e-09,2.6738e-09,500,500,-429 +525,525,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,2.8413e-09,2.4755e-09,2.6738e-09,500,500,-428 +525,525,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,2.8413e-09,2.4755e-09,2.6738e-09,500,500,-427 +525,525,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,2.8413e-09,2.4755e-09,2.6738e-09,500,500,-426 +525,525,-437.5,4.375e+06,-3.0526e+06,-7.4276e+06,-6.0954e+06,2.8413e-09,2.4755e-09,2.6738e-09,500,500,-425 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-424 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-423 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-422 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-421 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-420 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-419 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-418 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-417 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-416 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-415 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-414 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-413 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-412 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-411 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-410 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-409 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-408 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-407 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-406 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-405 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-404 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-403 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-402 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-401 +525,525,-412.5,4.125e+06,-2.8782e+06,-7.0032e+06,-5.747e+06,-4.8032e-09,1.1377e-09,2.5232e-09,500,500,-400 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-399 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-398 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-397 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-396 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-395 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-394 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-393 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-392 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-391 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-390 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-389 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-388 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-387 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-386 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-385 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-384 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-383 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-382 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-381 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-380 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-379 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-378 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-377 +525,525,-387.5,3.875e+06,-2.7037e+06,-6.5787e+06,-5.3986e+06,4.6369e-09,-3.2797e-11,2.1925e-09,500,500,-376 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-375 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-374 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-373 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-372 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-371 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-370 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-369 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-368 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-367 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-366 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-365 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-364 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-363 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-362 +525,525,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,9.6765e-10,1.6844e-09,1.9055e-09,500,500,-361 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-360 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-359 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-358 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-357 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-356 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-355 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-354 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-353 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-352 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-351 +525,475,-362.5,3.625e+06,-2.5292e+06,-6.1542e+06,-5.0502e+06,1.1919e-09,1.9178e-09,1.1725e-09,500,500,-350 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-349 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-348 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-347 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-346 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-345 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-344 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-343 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-342 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-341 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-340 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-339 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-338 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-337 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-336 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-335 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-334 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-333 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-332 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-331 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-330 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-329 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-328 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-327 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-326 +525,475,-337.5,3.375e+06,-2.3548e+06,-5.7298e+06,-4.7019e+06,2.6102e-10,-4.9738e-10,1.173e-09,500,500,-325 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-324 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-323 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-322 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-321 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-320 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-319 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-318 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-317 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-316 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-315 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-314 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-313 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-312 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-311 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-310 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-309 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-308 +525,475,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,2.0344e-09,3.0247e-09,1.2099e-09,500,500,-307 +525,525,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,1.5852e-09,2.9935e-09,1.6606e-09,500,500,-306 +525,525,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,1.5852e-09,2.9935e-09,1.6606e-09,500,500,-305 +525,525,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,1.5852e-09,2.9935e-09,1.6606e-09,500,500,-304 +525,525,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,1.5852e-09,2.9935e-09,1.6606e-09,500,500,-303 +525,525,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,1.5852e-09,2.9935e-09,1.6606e-09,500,500,-302 +525,525,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,1.5852e-09,2.9935e-09,1.6606e-09,500,500,-301 +525,525,-312.5,3.125e+06,-2.1803e+06,-5.3053e+06,-4.3535e+06,1.5852e-09,2.9935e-09,1.6606e-09,500,500,-300 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-299 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-298 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-297 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-296 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-295 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-294 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-293 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-292 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-291 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-290 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-289 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-288 +525,525,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,2.5181e-10,2.8519e-09,1.5497e-09,500,500,-287 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-286 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-285 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-284 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-283 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-282 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-281 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-280 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-279 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-278 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-277 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-276 +525,475,-287.5,2.875e+06,-2.0059e+06,-4.8809e+06,-4.0052e+06,9.0531e-10,2.5587e-09,1.1061e-09,500,500,-275 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-274 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-273 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-272 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-271 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-270 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-269 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-268 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-267 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-266 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-265 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-264 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-263 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-262 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-261 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-260 +525,475,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.7614e-09,1.7419e-09,1.03e-09,500,500,-259 +525,525,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.6197e-09,2.0688e-09,1.59e-09,500,500,-258 +525,525,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.6197e-09,2.0688e-09,1.59e-09,500,500,-257 +525,525,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.6197e-09,2.0688e-09,1.59e-09,500,500,-256 +525,525,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.6197e-09,2.0688e-09,1.59e-09,500,500,-255 +525,525,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.6197e-09,2.0688e-09,1.59e-09,500,500,-254 +525,525,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.6197e-09,2.0688e-09,1.59e-09,500,500,-253 +525,525,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.6197e-09,2.0688e-09,1.59e-09,500,500,-252 +525,525,-262.5,2.625e+06,-1.8315e+06,-4.4565e+06,-3.6569e+06,1.6197e-09,2.0688e-09,1.59e-09,500,500,-251 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-250 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-249 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-248 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-247 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-246 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-245 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-244 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-243 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-242 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-241 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-240 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-239 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-238 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-237 +525,525,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.7162e-09,1.1193e-09,1.3168e-09,500,500,-236 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-235 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-234 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-233 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-232 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-231 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-230 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-229 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-228 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-227 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-226 +525,475,-237.5,2.375e+06,-1.657e+06,-4.032e+06,-3.3085e+06,1.6792e-09,7.0582e-10,8.0772e-10,500,500,-225 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-224 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-223 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-222 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-221 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-220 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-219 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-218 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-217 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-216 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-215 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-214 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-213 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-212 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-211 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-210 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-209 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-208 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-207 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-206 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-205 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-204 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-203 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-202 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-201 +525,475,-212.5,2.125e+06,-1.4826e+06,-3.6076e+06,-2.9602e+06,3.0572e-09,1.9361e-09,6.0434e-10,500,500,-200 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-199 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-198 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-197 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-196 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-195 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-194 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-193 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-192 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-191 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-190 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-189 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-188 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-187 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-186 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-185 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-184 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-183 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-182 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-181 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-180 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-179 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-178 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-177 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-176 +525,475,-187.5,1.875e+06,-1.3081e+06,-3.1831e+06,-2.6119e+06,3.0927e-10,9.9923e-10,4.4779e-10,500,500,-175 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-174 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-173 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-172 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-171 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-170 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-169 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-168 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-167 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-166 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-165 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-164 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-163 +525,475,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,5.9889e-10,5.2977e-10,3.3278e-10,500,500,-162 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-161 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-160 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-159 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-158 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-157 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-156 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-155 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-154 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-153 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-152 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-151 +525,525,-162.5,1.625e+06,-1.1337e+06,-2.7587e+06,-2.2636e+06,7.1002e-10,8.5869e-10,7.5644e-10,500,500,-150 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-149 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-148 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-147 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-146 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-145 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-144 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-143 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-142 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-141 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-140 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-139 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-138 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-137 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-136 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-135 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-134 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-133 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-132 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-131 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-130 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-129 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-128 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-127 +525,525,-137.5,1.375e+06,-9.5929e+05,-2.3343e+06,-1.9154e+06,1.4539e-09,1.0711e-09,5.463e-10,500,500,-126 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-125 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-124 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-123 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-122 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-121 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-120 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-119 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-118 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-117 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-116 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-115 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-114 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-113 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-112 +525,525,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,1.0895e-09,6.821e-10,3.7359e-10,500,500,-111 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-110 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-109 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-108 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-107 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-106 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-105 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-104 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-103 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-102 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-101 +525,475,-112.5,1.125e+06,-7.8486e+05,-1.9099e+06,-1.5671e+06,9.0843e-10,4.9507e-10,1.8174e-10,500,500,-100 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-99 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-98 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-97 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-96 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-95 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-94 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-93 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-92 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-91 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-90 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-89 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-88 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-87 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-86 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-85 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-84 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-83 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-82 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-81 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-80 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-79 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-78 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-77 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-76 +525,475,-87.5,8.75e+05,-6.1044e+05,-1.4854e+06,-1.2188e+06,1.0079e-09,4.7515e-10,1.6434e-10,500,500,-75 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-74 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-73 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-72 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-71 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-70 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-69 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-68 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-67 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-66 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-65 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-64 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-63 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-62 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-61 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-60 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-59 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-58 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-57 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-56 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-55 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-54 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-53 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-52 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-51 +525,475,-62.5,6.25e+05,-4.3603e+05,-1.061e+06,-8.7058e+05,7.3943e-10,3.2228e-10,1.1758e-10,500,500,-50 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-49 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-48 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-47 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-46 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-45 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-44 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-43 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-42 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-41 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-40 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-39 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-38 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-37 +525,475,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.9873e-10,2.556e-10,9.2379e-12,500,500,-36 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-35 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-34 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-33 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-32 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-31 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-30 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-29 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-28 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-27 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-26 +525,525,-37.5,3.75e+05,-2.6161e+05,-6.3661e+05,-5.2234e+05,4.3531e-10,3.5968e-10,1.4975e-10,500,500,-25 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-24 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-23 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-22 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-21 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-20 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-19 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-18 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-17 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-16 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-15 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-14 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-13 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-12 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-11 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-10 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-9 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-8 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-7 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-6 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-5 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-4 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-3 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-2 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,-1 +525,525,-12.5,1.25e+05,-87204,-2.122e+05,-1.7411e+05,9.3783e-11,1.7537e-10,1.3591e-10,500,500,0 diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/stressZZ_field.png b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/stressZZ_field.png new file mode 100644 index 00000000000..8c02e28c428 Binary files /dev/null and b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/stressZZ_field.png differ diff --git a/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/tableInitializationFigure.py b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/tableInitializationFigure.py new file mode 100644 index 00000000000..6dbd1fa0e30 --- /dev/null +++ b/src/coreComponents/physicsSolvers/multiphysics/docs/userTableStressInitialization/tableInitializationFigure.py @@ -0,0 +1,168 @@ +import matplotlib +import matplotlib.pyplot as plt +import numpy as np +import h5py +import xml.etree.ElementTree as ElementTree +from mpmath import * +import math +from math import sin,cos,tan,exp,atan,asin +import csv +import os +import argparse + +def getHydromechanicalParametersFromXML(xmlFilePath): + tree = ElementTree.parse(xmlFilePath) + + param1 = tree.find('Constitutive/ElasticIsotropic') + param2 = tree.find('Constitutive/BiotPorosity') + param3 = tree.find('Constitutive/CompressibleSinglePhaseFluid') + + hydromechanicalParameters = dict.fromkeys([ + "bulkModulus", "shearModulus", "youngModulus", "poissonRatio", "rockDensity", "poissonRatio", "biotCoefficient", "porosity", "fluidDensity", "traction"]) + + hydromechanicalParameters["rockDensity"] = float(param1.get("defaultDensity")) + hydromechanicalParameters["poissonRatio"] = float(param1.get("defaultPoissonRatio")) + hydromechanicalParameters["youngModulus"] = float(param1.get("defaultYoungModulus")) + + E = hydromechanicalParameters["youngModulus"] + nu = hydromechanicalParameters["poissonRatio"] + K = E / (3 * (1 - 2 * nu)) + G = E / (2 * (1 + nu)) + + hydromechanicalParameters["poissonRatio"] = nu + hydromechanicalParameters["bulkModulus"] = K + hydromechanicalParameters["shearModulus"] = G + + Ks = float(param2.get("defaultGrainBulkModulus")) + hydromechanicalParameters["biotCoefficient"] = 1.0 - K / Ks + + hydromechanicalParameters["porosity"] = float(param2.get("defaultReferencePorosity")) + + hydromechanicalParameters["fluidDensity"] = float(param3.get("defaultDensity")) + + param4 = tree.findall('FieldSpecifications/Traction') + found_stress = False + for elem in param4: + if elem.get("name") == "tractionTop" and elem.get("tractionType") == "normal": + traction = float(elem.get("scale")) * (-1) + found_stress = True + if found_stress: break + + return hydromechanicalParameters + +def inputStressGradientsMPa(stressXX=None, stressYY=None, stressZZ=None,porePressure=None): + stress_gradients = { + 'stressXX': stressXX, + 'stressYY': stressYY, + 'stressZZ': stressZZ, + 'porePressure': porePressure + } + return stress_gradients + +def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File path + outputDir = args.outputDir + geosDir = args.geosDir + xmlFile1Path = geosDir + "/inputFiles/initialization/userdefinedStress_initialization_base.xml" + xmlFile2Path = geosDir + "/inputFiles/initialization/userdefinedStress_initialization_benchmark.xml" + + + hydromechanicalParameters = getHydromechanicalParametersFromXML(xmlFile1Path) + stress_gradients = inputStressGradientsMPa(0.17,0.27,0.24,0.1) + sxx_grad = stress_gradients["stressXX"] + syy_grad = stress_gradients["stressYY"] + szz_grad = stress_gradients["stressZZ"] + pp_grad = stress_gradients["porePressure"] + BiotCoefficient = hydromechanicalParameters["biotCoefficient"] + nu = hydromechanicalParameters["poissonRatio"] + rhoF = hydromechanicalParameters["fluidDensity"] + rhoR = hydromechanicalParameters["rockDensity"] + phi = hydromechanicalParameters["porosity"] + rhoB = (1-phi)*rhoR + phi*rhoF + + traction = hydromechanicalParameters["traction"] + gravity = 9.81 + + # rename this file to the name of your Paraview output file + file = open(outputDir + "/simulation_result_0.csv") + csvreader = csv.reader(file) + header = next(csvreader) + header_index = {column_name: index for index, column_name in enumerate(header)} + + rows = [] + for row in csvreader: + rows.append(row) + file.close() + + zloc_index = header_index["elementCenter:2"] + pressure_index = header_index["pressure"] + tsxx_index = header_index["rockSolid_stress:0"] # the solidModelName="rockSolid" has been defined in the gravityInducedStress_initialization_base.xml file, please change if you have a different solidModelName + tsyy_index = header_index["rockSolid_stress:1"] + tszz_index = header_index["rockSolid_stress:2"] + + + rows = np.array(rows) + zloc_0 = np.empty(len(rows[:,1])) + pressure_0 = np.empty(len(rows[:,1])) + tsxx_0 = np.empty(len(rows[:,1])) + tsyy_0 = np.empty(len(rows[:,1])) + tszz_0 = np.empty(len(rows[:,1])) + for i in range(0,len(rows[:,1])): + zloc_0[i]=-(float(rows[i,zloc_index])) + pressure_0[i]=float(rows[i,pressure_index]) + tsxx_0[i]=-(float(rows[i,tsxx_index])-BiotCoefficient*pressure_0[i])/1.0e6 + tsyy_0[i]=-(float(rows[i,tsyy_index])-BiotCoefficient*pressure_0[i])/1.0e6 + tszz_0[i]=-(float(rows[i,tszz_index])-BiotCoefficient*pressure_0[i])/1.0e6 + + + z_analytical= np.linspace(0, 1000, 100) + + pp_analytical= pp_grad*100000*z_analytical/1.0e6 + szz_analtyical= szz_grad*100000*z_analytical/1.0e6 + sxx_analtyical = sxx_grad*100000*z_analytical/1.0e6 + syy_analtyical = syy_grad*100000*z_analytical/1.0e6 + + fsize = 20 + msize = 12 + lw = 6 + mew = 2 + malpha = 0.6 + lalpha = 0.8 + N1=1 + + fig = plt.figure(figsize=(10,8)) + cmap = plt.get_cmap("tab10") + + + plt.plot(tsxx_0[::N1], zloc_0[::N1], 'o', color=cmap(0), markersize=msize, alpha=malpha, mec=cmap(0), fillstyle='none', mew=mew, label= 'Sxx_Total_GEOS') + plt.plot(sxx_analtyical, z_analytical, lw=lw, alpha=0.8, color='b', linestyle= ':', label='Sxx_Total_Reference') + plt.plot(tsyy_0[::N1], zloc_0[::N1], 's', color=cmap(1), markersize=msize, alpha=malpha, mec=cmap(1), fillstyle='none', mew=mew, label= 'Syy_Total_GEOS') + plt.plot(syy_analtyical, z_analytical, lw=lw, alpha=0.8, color='orange', linestyle= ':', label='Syy_Total_Reference') + plt.plot(tszz_0[::N1], zloc_0[::N1], 'd', color=cmap(2), markersize=msize, alpha=malpha, mec=cmap(2), fillstyle='none', mew=mew, label= 'Szz_Total_GEOS') + plt.plot(szz_analtyical, z_analytical, lw=lw, alpha=0.8, color='y', linestyle= ':', label='Szz_Total_Reference') + plt.plot(pressure_0[::N1]/1.0e6, zloc_0[::N1], 'x', color=cmap(3), markersize=msize, alpha=malpha, mec=cmap(3), fillstyle='none', mew=mew, label= 'Pore Pressure_GEOS') + plt.plot(pp_analytical, z_analytical, lw=lw, alpha=0.8, color='r', linestyle= ':', label='Pore Pressure_Reference') + plt.xlabel('Total Stresses [MPa]', size=fsize, weight="bold") + plt.ylabel('Depth [m]', size=fsize, weight="bold") + plt.legend(loc='upper right',fontsize=fsize*0.5) + plt.grid(True) + ax = plt.gca() + ax.xaxis.set_tick_params(labelsize=fsize) + ax.yaxis.set_tick_params(labelsize=fsize) + ax.invert_yaxis() + + plt.show() + +if __name__ == "__main__": + main() diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics.hpp index 95c18014e58..a0f81fce935 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -342,8 +342,10 @@ class MultiphasePoromechanics : arrayView3d< real64 const, compflow::USD_COMP_DC > const m_dGlobalCompFraction_dGlobalCompDensity; // Views on component densities + bool m_useMass; arrayView2d< real64 const, compflow::USD_COMP > m_compDens; arrayView2d< real64 const, compflow::USD_COMP > m_compDens_n; + arrayView1d< real64 const > m_componentMolarWeight; /// Number of components localIndex const m_numComponents; @@ -386,20 +388,21 @@ class MultiphaseBulkDensityKernel /** * @brief Constructor - * @param[in] numPhases the number of fluid phases + * @param[in] numComponents the number of fluid components (species) * @param[in] fluid the fluid model * @param[in] solid the porous solid model * @param[in] subRegion the element subregion */ - MultiphaseBulkDensityKernel( integer const numPhases, + MultiphaseBulkDensityKernel( integer const numComponents, constitutive::MultiFluidBase const & fluid, constitutive::CoupledSolidBase const & solid, ElementSubRegionBase & subRegion ) - : m_numPhases( numPhases ), + : m_numComponents( numComponents ), m_bulkDensity( subRegion.getField< fields::poromechanics::bulkDensity >() ), - m_fluidPhaseVolFrac( subRegion.getField< fields::flow::phaseVolumeFraction >() ), + m_compDens( subRegion.getField< fields::flow::globalCompDensity >() ), + m_useMass( fluid.getMassFlag()), m_rockDensity( solid.getDensity() ), - m_fluidPhaseDensity( fluid.phaseMassDensity() ), + m_componentMolarWeight( fluid.componentMolarWeights() ), m_porosity( solid.getPorosity() ) {} @@ -413,12 +416,12 @@ class MultiphaseBulkDensityKernel localIndex const q ) const { m_bulkDensity[ei][q] = 0.0; - for( integer ip = 0; ip < m_numPhases; ++ip ) + for( integer ic = 0; ic < m_numComponents; ++ic ) { - m_bulkDensity[ei][q] += m_fluidPhaseVolFrac[ei][ip] * m_fluidPhaseDensity[ei][q][ip]; + m_bulkDensity[ei][q] = m_bulkDensity[ei][q] + ( m_useMass ? m_compDens[ei][ic] : m_compDens[ei][ic] * m_componentMolarWeight[ic] ); } m_bulkDensity[ei][q] *= m_porosity[ei][q]; - m_bulkDensity[ei][q] += ( 1 - m_porosity[ei][q] ) * m_rockDensity[ei][q]; + m_bulkDensity[ei][q] = m_bulkDensity[ei][q] + ( 1 - m_porosity[ei][q] ) * m_rockDensity[ei][q]; } /** @@ -446,20 +449,23 @@ class MultiphaseBulkDensityKernel protected: - // number of fluid phases - integer const m_numPhases; + // number of fluid components (species) + integer const m_numComponents; // the bulk density arrayView2d< real64 > const m_bulkDensity; - // the fluid phase saturation - arrayView2d< real64 const, compflow::USD_PHASE > const m_fluidPhaseVolFrac; + // the fluid component densities + arrayView2d< real64 const, compflow::USD_PHASE > const m_compDens; + + // the flag for selecting mass formulation instead of molar formulation + bool m_useMass; // the rock density arrayView2d< real64 const > const m_rockDensity; - // the fluid density - arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const m_fluidPhaseDensity; + // the molar component weights + arrayView1d< real64 const > m_componentMolarWeight; // the porosity arrayView2d< real64 const > const m_porosity; @@ -476,19 +482,19 @@ class MultiphaseBulkDensityKernelFactory /** * @brief Create a new kernel and launch * @tparam POLICY the policy used in the RAJA kernel - * @param[in] numPhases number of phases + * @param[in] numComponents number of phases components (species) * @param[in] fluid the fluid model * @param[in] solid the porous solid model * @param[in] subRegion the element subregion */ template< typename POLICY > static void - createAndLaunch( integer const numPhases, + createAndLaunch( integer const numComponents, constitutive::MultiFluidBase const & fluid, constitutive::CoupledSolidBase const & solid, ElementSubRegionBase & subRegion ) { - MultiphaseBulkDensityKernel kernel( numPhases, fluid, solid, subRegion ); + MultiphaseBulkDensityKernel kernel( numComponents, fluid, solid, subRegion ); MultiphaseBulkDensityKernel::launch< POLICY >( subRegion.size(), subRegion.getField< fields::poromechanics::bulkDensity >().size( 1 ), kernel ); diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp index a654610a7c2..d12925a3daf 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -104,6 +104,9 @@ MultiphasePoromechanics( NodeManager const & nodeManager, m_fluidPhaseMassDensity = fluid.phaseMassDensity(); m_dFluidPhaseMassDensity = fluid.dPhaseMassDensity(); + + m_useMass = fluid.getMassFlag(); + m_componentMolarWeight = fluid.componentMolarWeights(); } } @@ -214,39 +217,18 @@ computeBodyForce( localIndex const k, StackVariables & stack, FUNC && bodyForceKernelOp ) const { - using Deriv = constitutive::multifluid::DerivativeOffset; - GEOS_UNUSED_VAR( dPorosity_dTemperature ); - arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseMassDensity = m_fluidPhaseMassDensity[k][q]; - arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseMassDensity = m_dFluidPhaseMassDensity[k][q]; - arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const phaseVolFrac = m_fluidPhaseVolFrac[k]; - arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > const dPhaseVolFrac = m_dFluidPhaseVolFrac[k]; - arraySlice2d< real64 const, compflow::USD_COMP_DC - 1 > const dGlobalCompFrac_dGlobalCompDensity = m_dGlobalCompFraction_dGlobalCompDensity[k]; - // Step 1: compute fluid total mass density and its derivatives real64 totalMassDensity = 0.0; - real64 dTotalMassDensity_dPressure = 0.0; real64 dTotalMassDensity_dComponents[maxNumComponents]{}; - real64 dPhaseMassDensity_dComponents[maxNumComponents]{}; - for( integer ip = 0; ip < m_numPhases; ++ip ) + arraySlice1d< real64 const, compflow::USD_COMP - 1 > const compDens = m_compDens[k]; + for( integer ic = 0; ic < m_numComponents; ++ic ) { - totalMassDensity += phaseVolFrac( ip ) * phaseMassDensity( ip ); - dTotalMassDensity_dPressure += dPhaseVolFrac( ip, Deriv::dP ) * phaseMassDensity( ip ) - + phaseVolFrac( ip ) * dPhaseMassDensity( ip, Deriv::dP ); - - applyChainRule( m_numComponents, - dGlobalCompFrac_dGlobalCompDensity, - dPhaseMassDensity[ip], - dPhaseMassDensity_dComponents, - Deriv::dC ); - for( integer jc = 0; jc < m_numComponents; ++jc ) - { - dTotalMassDensity_dComponents[jc] += dPhaseVolFrac( ip, Deriv::dC+jc ) * phaseMassDensity( ip ) - + phaseVolFrac( ip ) * dPhaseMassDensity_dComponents[jc]; - } + totalMassDensity = totalMassDensity + ( m_useMass ? compDens[ic] : compDens[ic] * m_componentMolarWeight[ic] ); + dTotalMassDensity_dComponents[ic] = m_useMass ? 1.0 : m_componentMolarWeight[ic]; } // Step 2: compute mixture density as an average between total mass density and solid density @@ -254,8 +236,7 @@ computeBodyForce( localIndex const k, real64 const mixtureDensity = ( 1.0 - porosity ) * m_solidDensity( k, q ) + porosity * totalMassDensity; real64 const dMixtureDens_dVolStrainIncrement = dPorosity_dVolStrain * ( -m_solidDensity( k, q ) + totalMassDensity ); real64 const dMixtureDens_dPressure = dPorosity_dPressure * ( -m_solidDensity( k, q ) + totalMassDensity ) - + ( 1.0 - porosity ) * dSolidDensity_dPressure - + porosity * dTotalMassDensity_dPressure; + + ( 1.0 - porosity ) * dSolidDensity_dPressure; LvArray::tensorOps::scale< maxNumComponents >( dTotalMassDensity_dComponents, porosity ); // Step 3: finally, get the body force diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsBase.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsBase.hpp index 55cf183c2fc..75c78e1c1aa 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsBase.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsEFEMKernels.cpp.template b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsEFEMKernels.cpp.template index f04afd07e4c..09802963fca 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsEFEMKernels.cpp.template +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsEFEMKernels.cpp.template @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsKernels.cpp.template b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsKernels.cpp.template index 8b6b5bb9b1e..f2c44120f13 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsKernels.cpp.template +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsKernels.cpp.template @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanics.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanics.hpp index accc4eb9bb1..711adb82808 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanics.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsConformingFractures.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsConformingFractures.hpp index 11cc0032051..d7e85611e44 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsConformingFractures.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsConformingFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -29,9 +29,6 @@ namespace geos namespace singlePhasePoromechanicsConformingFracturesKernels { -using namespace fluxKernelsHelper; -using namespace constitutive; - template< integer NUM_EQN, integer NUM_DOF > class ConnectorBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyKernel< NUM_EQN, NUM_DOF, SurfaceElementStencilWrapper > { @@ -51,7 +48,7 @@ class ConnectorBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAsse using SinglePhaseFlowAccessors = AbstractBase::SinglePhaseFlowAccessors; using SinglePhaseFluidAccessors = AbstractBase::SinglePhaseFluidAccessors; using PermeabilityAccessors = AbstractBase::PermeabilityAccessors; - using FracturePermeabilityAccessors = StencilMaterialAccessors< PermeabilityBase, + using FracturePermeabilityAccessors = StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::dPerm_dDispJump >; using AbstractBase::m_dt; @@ -193,21 +190,21 @@ class ConnectorBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAsse localIndex const subRegionIndex[2] = {m_sesri[iconn][k[0]], m_sesri[iconn][k[1]]}; localIndex const elementIndex[2] = {m_sei[iconn][k[0]], m_sei[iconn][k[1]]}; - computeSinglePhaseFlux( regionIndex, subRegionIndex, elementIndex, - trans, - dTrans, - m_pres, - m_gravCoef, - m_dens, - m_dDens_dPres, - m_mob, - m_dMob_dPres, - alpha, - mobility, - potGrad, - fluxVal, - dFlux_dP, - dFlux_dTrans ); + fluxKernelsHelper::computeSinglePhaseFlux( regionIndex, subRegionIndex, elementIndex, + trans, + dTrans, + m_pres, + m_gravCoef, + m_dens, + m_dDens_dPres, + m_mob, + m_dMob_dPres, + alpha, + mobility, + potGrad, + fluxVal, + dFlux_dP, + dFlux_dTrans ); // populate local flux vector and derivatives stack.localFlux[k[0]* numDof] += m_dt * fluxVal; diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEFEM.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEFEM.hpp index ed4f3c07813..3f614829d9a 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEFEM.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEFEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEFEM_impl.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEFEM_impl.hpp index 69df32a8637..6904a047202 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEFEM_impl.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEFEM_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEmbeddedFractures.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEmbeddedFractures.hpp index 421fbb99ea9..4597b737554 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEmbeddedFractures.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsEmbeddedFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -29,9 +29,6 @@ namespace geos namespace singlePhasePoromechanicsEmbeddedFracturesKernels { -using namespace fluxKernelsHelper; -using namespace constitutive; - template< integer NUM_EQN, integer NUM_DOF > class ConnectorBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAssemblyKernel< NUM_EQN, NUM_DOF, SurfaceElementStencilWrapper > { @@ -51,7 +48,7 @@ class ConnectorBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAsse using SinglePhaseFlowAccessors = AbstractBase::SinglePhaseFlowAccessors; using SinglePhaseFluidAccessors = AbstractBase::SinglePhaseFluidAccessors; using PermeabilityAccessors = AbstractBase::PermeabilityAccessors; - using FracturePermeabilityAccessors = StencilMaterialAccessors< PermeabilityBase, + using FracturePermeabilityAccessors = StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::dPerm_dDispJump >; using AbstractBase::m_dt; using AbstractBase::m_rankOffset; @@ -183,21 +180,21 @@ class ConnectorBasedAssemblyKernel : public singlePhaseFVMKernels::FaceBasedAsse real64 mobility = 0.0; real64 potGrad = 0.0; - computeSinglePhaseFlux( regionIndex, subRegionIndex, elementIndex, - trans, - dTrans, - m_pres, - m_gravCoef, - m_dens, - m_dDens_dPres, - m_mob, - m_dMob_dPres, - alpha, - mobility, - potGrad, - fluxVal, - dFlux_dP, - dFlux_dTrans ); + fluxKernelsHelper::computeSinglePhaseFlux( regionIndex, subRegionIndex, elementIndex, + trans, + dTrans, + m_pres, + m_gravCoef, + m_dens, + m_dDens_dPres, + m_mob, + m_dMob_dPres, + alpha, + mobility, + potGrad, + fluxVal, + dFlux_dP, + dFlux_dTrans ); diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsFractures.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsFractures.hpp index 82bfd7a76b6..b2073b58f95 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsFractures.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanicsFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanics_impl.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanics_impl.hpp index 9200f625fa5..bb79e9e66b4 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanics_impl.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/SinglePhasePoromechanics_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalMultiphasePoromechanics.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalMultiphasePoromechanics.hpp index 9526b15094e..faea5ade235 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalMultiphasePoromechanics.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalMultiphasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalMultiphasePoromechanics_impl.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalMultiphasePoromechanics_impl.hpp index 2a88711c247..5fd1de083e4 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalMultiphasePoromechanics_impl.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalMultiphasePoromechanics_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -188,8 +188,6 @@ computeBodyForce( localIndex const k, real64 const & dSolidDensity_dPressure, StackVariables & stack ) const { - using Deriv = constitutive::multifluid::DerivativeOffset; - Base::computeBodyForce( k, q, porosity, dPorosity_dVolStrain, @@ -201,27 +199,11 @@ computeBodyForce( localIndex const k, { GEOS_UNUSED_VAR( mixtureDensity ); - arraySlice1d< real64 const, constitutive::multifluid::USD_PHASE - 2 > const phaseMassDensity = m_fluidPhaseMassDensity[k][q]; - arraySlice2d< real64 const, constitutive::multifluid::USD_PHASE_DC - 2 > const dPhaseMassDensity = m_dFluidPhaseMassDensity[k][q]; - arraySlice1d< real64 const, compflow::USD_PHASE - 1 > const phaseVolFrac = m_fluidPhaseVolFrac[k]; - arraySlice2d< real64 const, compflow::USD_PHASE_DC - 1 > const dPhaseVolFrac = m_dFluidPhaseVolFrac[k]; - - // Step 1: compute fluid total mass density and its derivatives - - real64 dTotalMassDensity_dTemperature = 0.0; - - for( integer ip = 0; ip < m_numPhases; ++ip ) - { - dTotalMassDensity_dTemperature += dPhaseVolFrac( ip, Deriv::dT ) * phaseMassDensity( ip ) - + phaseVolFrac( ip ) * dPhaseMassDensity( ip, Deriv::dT ); - } - - // Step 2: compute the derivative of the bulk density (an average between total mass density and solid density) wrt temperature - - real64 const dMixtureDens_dTemperature = dPorosity_dTemperature * ( -m_solidDensity( k, q ) + totalMassDensity ) - + porosity * dTotalMassDensity_dTemperature; + // Step 1: compute the derivative of the mixture density (an average between total mass density and solid density) wrt temperature + // TODO include solid density derivative with respect to temperature + real64 const dMixtureDens_dTemperature = dPorosity_dTemperature * ( -m_solidDensity( k, q ) + totalMassDensity ); - // Step 3: finally, get the body force + // Step 2: finally, get the body force LvArray::tensorOps::scaledCopy< 3 >( stack.dBodyForce_dTemperature, m_gravityVector, dMixtureDens_dTemperature ); diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanics.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanics.hpp index 7d6405cb269..378285326bd 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanics.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsConformingFractures.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsConformingFractures.hpp index 99d5dca2107..0621ec04d46 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsConformingFractures.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsConformingFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -28,9 +28,6 @@ namespace geos namespace thermalSinglePhasePoromechanicsConformingFracturesKernels { -using namespace fluxKernelsHelper; -using namespace constitutive; - template< integer NUM_EQN, integer NUM_DOF > class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsConformingFracturesKernels::ConnectorBasedAssemblyKernel< NUM_EQN, NUM_DOF > { @@ -50,7 +47,7 @@ class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsConformingFr using SinglePhaseFlowAccessors = SinglePhaseFVMAbstractBase::SinglePhaseFlowAccessors; using SinglePhaseFluidAccessors = SinglePhaseFVMAbstractBase::SinglePhaseFluidAccessors; using PermeabilityAccessors = SinglePhaseFVMAbstractBase::PermeabilityAccessors; - using FracturePermeabilityAccessors = StencilMaterialAccessors< PermeabilityBase, + using FracturePermeabilityAccessors = StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::dPerm_dDispJump >; using SinglePhaseFVMAbstractBase::m_dt; using SinglePhaseFVMAbstractBase::m_rankOffset; @@ -78,14 +75,14 @@ class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsConformingFr fields::flow::dMobility_dTemperature >; using ThermalSinglePhaseFluidAccessors = - StencilMaterialAccessors< SingleFluidBase, + StencilMaterialAccessors< constitutive::SingleFluidBase, fields::singlefluid::dDensity_dTemperature, fields::singlefluid::enthalpy, fields::singlefluid::dEnthalpy_dPressure, fields::singlefluid::dEnthalpy_dTemperature >; using ThermalConductivityAccessors = - StencilMaterialAccessors< SinglePhaseThermalConductivityBase, + StencilMaterialAccessors< constitutive::SinglePhaseThermalConductivityBase, fields::thermalconductivity::effectiveConductivity >; @@ -208,25 +205,25 @@ class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsConformingFr real64 trans[2] = {stack.transmissibility[0][0], stack.transmissibility[0][1]}; real64 dMassFlux_dT[2]{}; - computeEnthalpyFlux( seri, sesri, sei, - trans, - m_enthalpy, - m_dEnthalpy_dPres, - m_dEnthalpy_dTemp, - m_gravCoef, - m_dDens_dTemp, - m_dMob_dTemp, - alpha, - mobility, - potGrad, - massFlux, - dMassFlux_dTrans, - dMassFlux_dP, - dMassFlux_dT, - stack.energyFlux, - stack.dEnergyFlux_dTrans, - stack.dEnergyFlux_dP, - stack.dEnergyFlux_dT ); + fluxKernelsHelper::computeEnthalpyFlux( seri, sesri, sei, + trans, + m_enthalpy, + m_dEnthalpy_dPres, + m_dEnthalpy_dTemp, + m_gravCoef, + m_dDens_dTemp, + m_dMob_dTemp, + alpha, + mobility, + potGrad, + massFlux, + dMassFlux_dTrans, + dMassFlux_dP, + dMassFlux_dT, + stack.energyFlux, + stack.dEnergyFlux_dTrans, + stack.dEnergyFlux_dP, + stack.dEnergyFlux_dT ); // add dMassFlux_dT to localFluxJacobian for( integer ke = 0; ke < 2; ++ke ) @@ -263,7 +260,7 @@ class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsConformingFr localIndex const sei[2] = {m_sei( iconn, k[0] ), m_sei( iconn, k[1] )}; // Step 2: compute temperature difference at the interface - computeConductiveFlux( seri, sesri, sei, m_temp, thermalTrans, stack.energyFlux, stack.dEnergyFlux_dT ); + fluxKernelsHelper::computeConductiveFlux( seri, sesri, sei, m_temp, thermalTrans, stack.energyFlux, stack.dEnergyFlux_dT ); // add energyFlux and its derivatives to localFlux and localFluxJacobian stack.localFlux[k[0]*numEqn + numEqn - 1] += m_dt * stack.energyFlux; diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEFEM.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEFEM.hpp index 433a78136d0..e3b5b803d89 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEFEM.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEFEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEFEM_impl.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEFEM_impl.hpp index 8e40377cee1..35e5ef0e1a9 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEFEM_impl.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEFEM_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEmbeddedFractures.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEmbeddedFractures.hpp index 645e03b8088..d62a283e364 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEmbeddedFractures.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanicsEmbeddedFractures.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -28,9 +28,6 @@ namespace geos namespace thermalSinglePhasePoromechanicsEmbeddedFracturesKernels { -using namespace fluxKernelsHelper; -using namespace constitutive; - template< integer NUM_EQN, integer NUM_DOF > class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsEmbeddedFracturesKernels::ConnectorBasedAssemblyKernel< NUM_EQN, NUM_DOF > { @@ -50,7 +47,7 @@ class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsEmbeddedFrac using SinglePhaseFlowAccessors = SinglePhaseFVMAbstractBase::SinglePhaseFlowAccessors; using SinglePhaseFluidAccessors = SinglePhaseFVMAbstractBase::SinglePhaseFluidAccessors; using PermeabilityAccessors = SinglePhaseFVMAbstractBase::PermeabilityAccessors; - using FracturePermeabilityAccessors = StencilMaterialAccessors< PermeabilityBase, + using FracturePermeabilityAccessors = StencilMaterialAccessors< constitutive::PermeabilityBase, fields::permeability::dPerm_dDispJump >; using SinglePhaseFVMAbstractBase::m_dt; using SinglePhaseFVMAbstractBase::m_rankOffset; @@ -78,14 +75,14 @@ class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsEmbeddedFrac fields::flow::dMobility_dTemperature >; using ThermalSinglePhaseFluidAccessors = - StencilMaterialAccessors< SingleFluidBase, + StencilMaterialAccessors< constitutive::SingleFluidBase, fields::singlefluid::dDensity_dTemperature, fields::singlefluid::enthalpy, fields::singlefluid::dEnthalpy_dPressure, fields::singlefluid::dEnthalpy_dTemperature >; using ThermalConductivityAccessors = - StencilMaterialAccessors< SinglePhaseThermalConductivityBase, + StencilMaterialAccessors< constitutive::SinglePhaseThermalConductivityBase, fields::thermalconductivity::effectiveConductivity >; @@ -207,25 +204,25 @@ class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsEmbeddedFrac real64 trans[2] = {stack.transmissibility[0][0], stack.transmissibility[0][1]}; real64 dMassFlux_dT[2]{}; - computeEnthalpyFlux( seri, sesri, sei, - trans, - m_enthalpy, - m_dEnthalpy_dPres, - m_dEnthalpy_dTemp, - m_gravCoef, - m_dDens_dTemp, - m_dMob_dTemp, - alpha, - mobility, - potGrad, - massFlux, - dMassFlux_dTrans, - dMassFlux_dP, - dMassFlux_dT, - stack.energyFlux, - stack.dEnergyFlux_dTrans, - stack.dEnergyFlux_dP, - stack.dEnergyFlux_dT ); + fluxKernelsHelper::computeEnthalpyFlux( seri, sesri, sei, + trans, + m_enthalpy, + m_dEnthalpy_dPres, + m_dEnthalpy_dTemp, + m_gravCoef, + m_dDens_dTemp, + m_dMob_dTemp, + alpha, + mobility, + potGrad, + massFlux, + dMassFlux_dTrans, + dMassFlux_dP, + dMassFlux_dT, + stack.energyFlux, + stack.dEnergyFlux_dTrans, + stack.dEnergyFlux_dP, + stack.dEnergyFlux_dT ); for( localIndex i=0; i < 3; i++ ) { @@ -274,7 +271,7 @@ class ConnectorBasedAssemblyKernel : public singlePhasePoromechanicsEmbeddedFrac localIndex const sei[2] = {m_sei( iconn, k[0] ), m_sei( iconn, k[1] )}; // Step 2: compute temperature difference at the interface - computeConductiveFlux( seri, sesri, sei, m_temp, thermalTrans, stack.energyFlux, stack.dEnergyFlux_dT ); + fluxKernelsHelper::computeConductiveFlux( seri, sesri, sei, m_temp, thermalTrans, stack.energyFlux, stack.dEnergyFlux_dT ); // add energyFlux and its derivatives to localFlux and localFluxJacobian stack.localFlux[k[0]*numEqn + numEqn - 1] += m_dt * stack.energyFlux; diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanics_impl.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanics_impl.hpp index ca04f71d515..3f20f8f7618 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanics_impl.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermalSinglePhasePoromechanics_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermoPoromechanicsKernels.cpp.template b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermoPoromechanicsKernels.cpp.template index ce1c4465517..ff083ddc02a 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermoPoromechanicsKernels.cpp.template +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/ThermoPoromechanicsKernels.cpp.template @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/python/PySolver.cpp b/src/coreComponents/physicsSolvers/python/PySolver.cpp index ff03c1f06a0..e65db753aa2 100644 --- a/src/coreComponents/physicsSolvers/python/PySolver.cpp +++ b/src/coreComponents/physicsSolvers/python/PySolver.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/python/PySolver.hpp b/src/coreComponents/physicsSolvers/python/PySolver.hpp index c58be28eaf2..1b922e108f5 100644 --- a/src/coreComponents/physicsSolvers/python/PySolver.hpp +++ b/src/coreComponents/physicsSolvers/python/PySolver.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/python/PySolverType.hpp b/src/coreComponents/physicsSolvers/python/PySolverType.hpp index bb0f3232562..0d975291ea2 100644 --- a/src/coreComponents/physicsSolvers/python/PySolverType.hpp +++ b/src/coreComponents/physicsSolvers/python/PySolverType.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/simplePDE/LaplaceBaseH1.cpp b/src/coreComponents/physicsSolvers/simplePDE/LaplaceBaseH1.cpp index 5ddb2dfa45e..f32f270e88e 100644 --- a/src/coreComponents/physicsSolvers/simplePDE/LaplaceBaseH1.cpp +++ b/src/coreComponents/physicsSolvers/simplePDE/LaplaceBaseH1.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -22,6 +22,7 @@ #include "dataRepository/InputFlags.hpp" #include "mainInterface/GeosxState.hpp" #include "mesh/mpiCommunications/CommunicationTools.hpp" +#include "mesh/DomainPartition.hpp" namespace geos { diff --git a/src/coreComponents/physicsSolvers/simplePDE/LaplaceBaseH1.hpp b/src/coreComponents/physicsSolvers/simplePDE/LaplaceBaseH1.hpp index 9b3b6b20735..164b54ee5d9 100644 --- a/src/coreComponents/physicsSolvers/simplePDE/LaplaceBaseH1.hpp +++ b/src/coreComponents/physicsSolvers/simplePDE/LaplaceBaseH1.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEM.cpp b/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEM.cpp index e689c896b99..7c0d4e1a6d4 100644 --- a/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEM.cpp +++ b/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,6 +17,8 @@ * @file LaplaceFEM.cpp */ +#include "mesh/DomainPartition.hpp" + // Source includes #include "LaplaceFEM.hpp" #include "LaplaceFEMKernels.hpp" diff --git a/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEM.hpp b/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEM.hpp index 565233bb099..054ba3e2a72 100644 --- a/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEM.hpp +++ b/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEMKernels.hpp b/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEMKernels.hpp index 1c1e90c2db5..23b5e2cae9c 100644 --- a/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEMKernels.hpp +++ b/src/coreComponents/physicsSolvers/simplePDE/LaplaceFEMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEM.cpp b/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEM.cpp index a0098010c18..a3d41bbef67 100644 --- a/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEM.cpp +++ b/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEM.hpp b/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEM.hpp index 0ea2099e1f8..01aed10c16f 100644 --- a/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEM.hpp +++ b/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEMKernels.hpp b/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEMKernels.hpp index b252c8bc224..177373a5176 100644 --- a/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEMKernels.hpp +++ b/src/coreComponents/physicsSolvers/simplePDE/PhaseFieldDamageFEMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/CMakeLists.txt b/src/coreComponents/physicsSolvers/solidMechanics/CMakeLists.txt index ba9d4709fb5..2b0cfeb2233 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/CMakeLists.txt +++ b/src/coreComponents/physicsSolvers/solidMechanics/CMakeLists.txt @@ -1,6 +1,7 @@ # Specify solver headers set( physicsSolvers_headers ${physicsSolvers_headers} + solidMechanics/LogLevelsInfo.hpp solidMechanics/SolidMechanicsFields.hpp solidMechanics/SolidMechanicsLagrangianFEM.hpp solidMechanics/SolidMechanicsLagrangianFEM.hpp @@ -33,4 +34,4 @@ set( physicsSolvers_sources solidMechanics/SolidMechanicsStatistics.cpp PARENT_SCOPE ) -#include( solidMechanics/kernels/SolidMechanicsKernels.cmake) \ No newline at end of file +#include( solidMechanics/kernels/SolidMechanicsKernels.cmake) diff --git a/src/coreComponents/physicsSolvers/solidMechanics/LogLevelsInfo.hpp b/src/coreComponents/physicsSolvers/solidMechanics/LogLevelsInfo.hpp new file mode 100644 index 00000000000..c70c238f6a9 --- /dev/null +++ b/src/coreComponents/physicsSolvers/solidMechanics/LogLevelsInfo.hpp @@ -0,0 +1,51 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file LogLevelsInfo.hpp + * This file contains log level informations for flow solvers + */ + +#ifndef GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_LOGLEVELSINFO_HPP +#define GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_LOGLEVELSINFO_HPP + +#include "common/DataTypes.hpp" + +namespace geos +{ + +namespace logInfo +{ + +/** + * @name Wells LogLevels info structures. They must comply with the `is_log_level_info` trait. + */ +///@{ + +/// @cond DO_NOT_DOCUMENT + +struct Statistics +{ + static constexpr int getMinLogLevel() { return 1; } + static constexpr std::string_view getDescription() { return "Print statistics"; } +}; + +/// @endcond +///@} + +} + +} + +#endif // GEOS_PHYSICSSOLVERS_SOLIDMECHANICS_LOGLEVELSINFO_HPP diff --git a/src/coreComponents/physicsSolvers/solidMechanics/MPMSolverFields.hpp b/src/coreComponents/physicsSolvers/solidMechanics/MPMSolverFields.hpp index 337e44d5f04..024caaa22ba 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/MPMSolverFields.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/MPMSolverFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsFields.hpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsFields.hpp index 9b89e2acad4..d12b9b4e243 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsFields.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.cpp index 70756a953d7..1c1c5cf9785 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -59,7 +59,6 @@ SolidMechanicsLagrangianFEM::SolidMechanicsLagrangianFEM( const string & name, m_maxForce( 0.0 ), m_maxNumResolves( 10 ), m_strainTheory( 0 ), - m_iComm( CommunicationTools::getInstance().getCommID() ), m_isFixedStressPoromechanicsUpdate( false ) { @@ -147,6 +146,8 @@ SolidMechanicsLagrangianFEM::~SolidMechanicsLagrangianFEM() void SolidMechanicsLagrangianFEM::registerDataOnMesh( Group & meshBodies ) { + string const voightLabels[6] = { "XX", "YY", "ZZ", "YZ", "XZ", "XY" }; + forDiscretizationOnMeshTargets( meshBodies, [&] ( string const &, MeshLevel & meshLevel, arrayView1d< string const > const & regionNames ) @@ -158,7 +159,7 @@ void SolidMechanicsLagrangianFEM::registerDataOnMesh( Group & meshBodies ) { setConstitutiveNamesCallSuper( subRegion ); - subRegion.registerField< solidMechanics::strain >( getName() ).reference().resizeDimension< 1 >( 6 ); + subRegion.registerField< solidMechanics::strain >( getName() ).setDimLabels( 1, voightLabels ).reference().resizeDimension< 1 >( 6 ); } ); NodeManager & nodes = meshLevel.getNodeManager(); @@ -569,6 +570,7 @@ real64 SolidMechanicsLagrangianFEM::explicitStep( real64 const & time_n, solidMechanics::arrayView2dLayoutIncrDisplacement const & uhat = nodes.getField< solidMechanics::incrementalDisplacement >(); solidMechanics::arrayView2dLayoutAcceleration const & acc = nodes.getField< solidMechanics::acceleration >(); + MPI_iCommData m_iComm; FieldIdentifiers fieldsToBeSync; fieldsToBeSync.addFields( FieldLocation::Node, { solidMechanics::velocity::key(), diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp index 9417db2282f..31060180229 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -294,7 +294,7 @@ class SolidMechanicsLagrangianFEM : public SolverBase real64 m_maxForce = 0.0; integer m_maxNumResolves; integer m_strainTheory; - MPI_iCommData m_iComm; +// MPI_iCommData m_iComm; bool m_isFixedStressPoromechanicsUpdate; /// Rigid body modes diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianSSLE.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianSSLE.cpp index d1284bfd922..841ef5f448b 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianSSLE.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianSSLE.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianSSLE.hpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianSSLE.hpp index 3e61d0c8886..464bbea3300 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianSSLE.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianSSLE.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsMPM.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsMPM.cpp index 16e8377c0f1..a08777484ff 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsMPM.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsMPM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -58,7 +58,7 @@ SolidMechanicsMPM::SolidMechanicsMPM( const string & name, SolverBase( name, parent ), m_solverProfiling( 0 ), m_timeIntegrationOption( TimeIntegrationOption::ExplicitDynamic ), - m_iComm( CommunicationTools::getInstance().getCommID() ), +// m_iComm( CommunicationTools::getInstance().getCommID() ), m_prescribedBcTable( 0 ), m_boundaryConditionTypes(), m_bcTable(), @@ -940,6 +940,7 @@ real64 SolidMechanicsMPM::explicitStep( real64 const & time_n, MeshLevel & mesh = grid.getBaseDiscretization(); NodeManager & nodeManager = mesh.getNodeManager(); + MPI_iCommData m_iComm; m_iComm.resize( domain.getNeighbors().size() ); @@ -1258,6 +1259,9 @@ void SolidMechanicsMPM::syncGridFields( std::vector< std::string > const & field fieldsToBeSynced.addFields( FieldLocation::Node, fieldNames ); std::vector< NeighborCommunicator > & neighbors = domain.getNeighbors(); + MPI_iCommData m_iComm; + m_iComm.resize( neighbors.size() ); + // (2) Swap send and receive indices so we can sum from ghost to master for( size_t n=0; n m_profilingLabels; TimeIntegrationOption m_timeIntegrationOption; - MPI_iCommData m_iComm; int m_prescribedBcTable; array1d< int > m_boundaryConditionTypes; // TODO: Surely there's a way to have just one variable here diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStateReset.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStateReset.cpp index ceca67b46c2..6c35edca982 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStateReset.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStateReset.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -21,7 +21,7 @@ #include "physicsSolvers/PhysicsSolverManager.hpp" #include "physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp" -#include "mainInterface/ProblemManager.hpp" +#include "physicsSolvers/LogLevelsInfo.hpp" #include "mesh/DomainPartition.hpp" namespace geos @@ -52,6 +52,8 @@ SolidMechanicsStateReset::SolidMechanicsStateReset( const string & name, setApplyDefaultValue( false ). setInputFlag( InputFlags::OPTIONAL ). setDescription( "Flag to enable/disable inelastic behavior" ); + + addLogLevel< logInfo::Initialization >(); } SolidMechanicsStateReset::~SolidMechanicsStateReset() @@ -59,8 +61,8 @@ SolidMechanicsStateReset::~SolidMechanicsStateReset() void SolidMechanicsStateReset::postInputInitialization() { - ProblemManager & problemManager = this->getGroupByPath< ProblemManager >( "/Problem" ); - PhysicsSolverManager & physicsSolverManager = problemManager.getPhysicsSolverManager(); + Group & problemManager = this->getGroupByPath( "/Problem" ); + Group & physicsSolverManager = problemManager.getGroup( "Solvers" ); GEOS_THROW_IF( !physicsSolverManager.hasGroup( m_solidSolverName ), GEOS_FMT( "Task {}: physics solver named {} not found", @@ -84,8 +86,9 @@ bool SolidMechanicsStateReset::execute( real64 const time_n, // Option 1: zero out velocity, incremental displacement, and displacement if( m_resetDisplacements ) { - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "Task `{}`: at time {}s, physics solver `{}` is resetting total displacement and velocity to zero", - getName(), time_n, m_solidSolverName ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Initialization, + GEOS_FMT( "Task `{}`: at time {}s, physics solver `{}` is resetting total displacement and velocity to zero", + getName(), time_n, m_solidSolverName ) ); NodeManager & nodeManager = mesh.getNodeManager(); @@ -106,10 +109,10 @@ bool SolidMechanicsStateReset::execute( real64 const time_n, string const & solidMaterialName = subRegion.getReference< string >( SolidMechanicsLagrangianFEM::viewKeyStruct::solidMaterialNamesString() ); Group & constitutiveModels = subRegion.getGroup( ElementSubRegionBase::groupKeyStruct::constitutiveModelsString() ); - GEOS_LOG_LEVEL_RANK_0( 2, GEOS_FMT( "Task `{}`: at time {}s, solid model `{}` is setting inelastic behavior to `{}` on subRegion `{}`. ", - getName(), time_n, solidMaterialName, - m_disableInelasticity ? "OFF" : "ON", - subRegion.getName() ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Initialization, GEOS_FMT( "Task `{}`: at time {}s, solid model `{}` is setting inelastic behavior to `{}` on subRegion `{}`. ", + getName(), time_n, solidMaterialName, + m_disableInelasticity ? "OFF" : "ON", + subRegion.getName() ) ); SolidBase & constitutiveRelation = constitutiveModels.getGroup< SolidBase >( solidMaterialName ); constitutiveRelation.disableInelasticity( m_disableInelasticity ); diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStateReset.hpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStateReset.hpp index fc1900451a9..73d3772be1a 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStateReset.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStateReset.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp index ebcf06f5b0c..01b0073205f 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -25,6 +25,7 @@ #include "physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp" #include "fileIO/Outputs/OutputBase.hpp" #include "mesh/DomainPartition.hpp" +#include "physicsSolvers/solidMechanics/LogLevelsInfo.hpp" namespace geos { @@ -36,7 +37,9 @@ using namespace fields; SolidMechanicsStatistics::SolidMechanicsStatistics( const string & name, Group * const parent ): Base( name, parent ) -{} +{ + addLogLevel< logInfo::Statistics >(); +} void SolidMechanicsStatistics::registerDataOnMesh( Group & meshBodies ) { @@ -152,12 +155,12 @@ void SolidMechanicsStatistics::computeNodeStatistics( MeshLevel & mesh, real64 c MpiWrapper::getMpiOp( MpiWrapper::Reduction::Min ), MPI_COMM_GEOS ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{} (time {} s): Min displacement (X, Y, Z): {}, {}, {} m", - getName(), time, nodeStatistics.minDisplacement[0], - nodeStatistics.minDisplacement[1], nodeStatistics.minDisplacement[2] ) ); - GEOS_LOG_LEVEL_RANK_0( 1, GEOS_FMT( "{} (time {} s): Max displacement (X, Y, Z): {}, {}, {} m", - getName(), time, nodeStatistics.maxDisplacement[0], - nodeStatistics.maxDisplacement[1], nodeStatistics.maxDisplacement[2] ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, GEOS_FMT( "{} (time {} s): Min displacement (X, Y, Z): {}, {}, {} m", + getName(), time, nodeStatistics.minDisplacement[0], + nodeStatistics.minDisplacement[1], nodeStatistics.minDisplacement[2] ) ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::Statistics, GEOS_FMT( "{} (time {} s): Max displacement (X, Y, Z): {}, {}, {} m", + getName(), time, nodeStatistics.maxDisplacement[0], + nodeStatistics.maxDisplacement[1], nodeStatistics.maxDisplacement[2] ) ); if( m_writeCSV > 0 && MpiWrapper::commRank() == 0 ) { diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp index 0aa1b5faa95..64ec6a97721 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsStatistics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/docs/SolidMechanics.rst b/src/coreComponents/physicsSolvers/solidMechanics/docs/SolidMechanics.rst index d0020fd3770..a44e4797a88 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/docs/SolidMechanics.rst +++ b/src/coreComponents/physicsSolvers/solidMechanics/docs/SolidMechanics.rst @@ -195,11 +195,11 @@ Parameters In the preceding XML block, The `SolidMechanics_LagrangianFEM` is specified by the title of the subblock of the `Solvers` block. The following attributes are supported in the input block for `SolidMechanics_LagrangianFEM`: -.. include:: /coreComponents/schema/docs/SolidMechanics_LagrangianFEM.rst +.. include:: /docs/sphinx/datastructure/SolidMechanics_LagrangianFEM.rst The following data are allocated and used by the solver: -.. include:: /coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst +.. include:: /docs/sphinx/datastructure/SolidMechanics_LagrangianFEM_other.rst Example ========================= diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain.hpp index 3dea71ade09..e232b156156 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain_impl.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain_impl.hpp index 22515acc710..30f42a86fb5 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain_impl.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitMPM.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitMPM.hpp index 05f39528d30..d610b0331f4 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitMPM.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitMPM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain.hpp index 94a576b37e7..f2dbcb00e2f 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain_impl.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain_impl.hpp index bf46c0b27e1..6f12850a63d 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain_impl.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/FixedStressThermoPoromechanics.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/FixedStressThermoPoromechanics.hpp index 3036f9b26db..ed39ff7e78f 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/FixedStressThermoPoromechanics.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/FixedStressThermoPoromechanics.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/FixedStressThermoPoromechanics_impl.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/FixedStressThermoPoromechanics_impl.hpp index 73b1d60ec7d..72700e67ebc 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/FixedStressThermoPoromechanics_impl.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/FixedStressThermoPoromechanics_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainNewmark.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainNewmark.hpp index 5dac893e596..c0866309721 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainNewmark.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainNewmark.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainNewmark_impl.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainNewmark_impl.hpp index c651e779f4c..3f4b3a7e17a 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainNewmark_impl.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainNewmark_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic.hpp index f3a43d0d67f..304183a9192 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic_impl.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic_impl.hpp index 81ea813640f..dc3508c1ab9 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic_impl.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic_impl.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsFixedStressThermoPoromechanicsKernels.cpp.template b/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsFixedStressThermoPoromechanicsKernels.cpp.template index 9f54e9b6981..eb4d851b027 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsFixedStressThermoPoromechanicsKernels.cpp.template +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsFixedStressThermoPoromechanicsKernels.cpp.template @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsKernels.cpp.template b/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsKernels.cpp.template index d89e243f313..d6014e31c30 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsKernels.cpp.template +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsKernels.cpp.template @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsLagrangianFEMKernels.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsLagrangianFEMKernels.hpp index 0764ec73c61..fac98f550b5 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsLagrangianFEMKernels.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/SolidMechanicsLagrangianFEMKernels.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/StrainHelper.hpp b/src/coreComponents/physicsSolvers/solidMechanics/kernels/StrainHelper.hpp index 3a431e83d3c..d77b1cb1e26 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/StrainHelper.hpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/StrainHelper.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernels/policies.hpp.in b/src/coreComponents/physicsSolvers/solidMechanics/kernels/policies.hpp.in index 3ce454c8c2a..2cbf4ce9a1c 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernels/policies.hpp.in +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernels/policies.hpp.in @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/CMakeLists.txt b/src/coreComponents/physicsSolvers/surfaceGeneration/CMakeLists.txt index ede9eacf734..9bcfd8fdc9b 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/CMakeLists.txt +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/CMakeLists.txt @@ -6,6 +6,7 @@ set( physicsSolvers_headers surfaceGeneration/ParallelTopologyChange.hpp surfaceGeneration/SurfaceGenerator.hpp surfaceGeneration/SurfaceGeneratorFields.hpp + surfaceGeneration/LogLevelsInfo.hpp surfaceGeneration/kernels/surfaceGenerationKernels.hpp surfaceGeneration/kernels/surfaceGenerationKernelsHelpers.hpp PARENT_SCOPE ) diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfaceGenerator.cpp b/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfaceGenerator.cpp index c82afa916c3..7b13c4618d5 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfaceGenerator.cpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfaceGenerator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -36,7 +36,7 @@ #include "mesh/simpleGeometricObjects/GeometricObjectManager.hpp" #include "mesh/simpleGeometricObjects/Rectangle.hpp" #include "physicsSolvers/fluidFlow/FlowSolverBaseFields.hpp" - +#include "physicsSolvers/surfaceGeneration/LogLevelsInfo.hpp" namespace geos @@ -191,7 +191,7 @@ void EmbeddedSurfaceGenerator::initializePostSubGroups() if( added ) { - GEOS_LOG_LEVEL_RANK_0( 2, "Element " << cellIndex << " is fractured" ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::SurfaceGenerator, "Element " << cellIndex << " is fractured" ); // Add the information to the CellElementSubRegion subRegion.addFracturedElement( cellIndex, localNumberOfSurfaceElems ); @@ -353,7 +353,7 @@ void EmbeddedSurfaceGenerator::setGlobalIndices( ElementRegionManager & elemMana totalNumberOfSurfaceElements += numberOfSurfaceElemsPerRank[rank]; } - GEOS_LOG_LEVEL_RANK_0( 1, "Number of embedded surface elements: " << totalNumberOfSurfaceElements ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::SurfaceGenerator, "Number of embedded surface elements: " << totalNumberOfSurfaceElements ); arrayView1d< globalIndex > const & elemLocalToGlobal = embeddedSurfaceSubRegion.localToGlobalMap(); diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfaceGenerator.hpp b/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfaceGenerator.hpp index 714ab835bbd..d8377b89dc6 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfaceGenerator.hpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfaceGenerator.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfacesParallelSynchronization.cpp b/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfacesParallelSynchronization.cpp index e382fd1495e..3e41eb295fb 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfacesParallelSynchronization.cpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/EmbeddedSurfacesParallelSynchronization.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -383,7 +383,7 @@ void synchronizeNewNodes( MeshLevel & mesh, //************************************************************************************************ // We need to send over the new embedded surfaces and related objects for those whose parents are ghosts on neighbors. - MPI_iCommData commData( CommunicationTools::getInstance().getCommID() ); + MPI_iCommData commData; commData.resize( neighbors.size()); for( unsigned int neighborIndex=0; neighborIndex & neighbors, string const fractureRegionName ) { - MPI_iCommData commDataJunk( CommunicationTools::getInstance().getCommID() ); - MPI_iCommData commData( CommunicationTools::getInstance().getCommID() ); + MPI_iCommData commData; commData.resize( neighbors.size()); for( unsigned int neighborIndex=0; neighborIndexgetWrapper< string >( viewKeyStruct::discretizationString() ). setInputFlag( InputFlags::FALSE ); + + addLogLevel< logInfo::SurfaceGenerator >(); + addLogLevel< logInfo::Mapping >(); + addLogLevel< logInfo::RuptureRate >(); } void SurfaceGenerator::postInputInitialization() @@ -745,7 +750,7 @@ int SurfaceGenerator::separationDriver( DomainPartition & domain, real64 ruptureRate = calculateRuptureRate( elementManager.getRegion< SurfaceElementRegion >( this->m_fractureRegionName ) ); - GEOS_LOG_LEVEL_RANK_0( 3, "rupture rate is " << ruptureRate ); + GEOS_LOG_LEVEL_INFO_RANK_0( logInfo::RuptureRate, GEOS_FMT( "Rupture rate = {}", ruptureRate ) ); if( ruptureRate > 0 ) m_nextDt = ruptureRate < 1e99 ? m_cflFactor / ruptureRate : 1e99; @@ -1724,14 +1729,13 @@ void SurfaceGenerator::performFracture( const localIndex nodeID, // Split the node into two, using the original index, and a new one. localIndex newNodeIndex; - if( getLogLevel() > 0 ) { std::ostringstream s; for( std::set< localIndex >::const_iterator i=separationPathFaces.begin(); i!=separationPathFaces.end(); ++i ) { s << *i << " "; } - GEOS_LOG_RANK( GEOS_FMT( "Splitting node {} along separation plane faces: {}", nodeID, s.str() ) ); + GEOS_LOG_LEVEL_INFO_BY_RANK( logInfo::SurfaceGenerator, GEOS_FMT( "Splitting node {} along separation plane faces: {}", nodeID, s.str() ) ); } @@ -1770,11 +1774,7 @@ void SurfaceGenerator::performFracture( const localIndex nodeID, // >("usedFaces")[newNodeIndex]; // usedFacesNew = usedFaces[nodeID]; - - if( getLogLevel() > 0 ) - { - GEOS_LOG_RANK( GEOS_FMT( "Done splitting node {} into nodes {} and {}", nodeID, nodeID, newNodeIndex ) ); - } + GEOS_LOG_LEVEL_INFO_BY_RANK( logInfo::SurfaceGenerator, GEOS_FMT( "Done splitting node {} into nodes {} and {}", nodeID, nodeID, newNodeIndex ) ); // split edges map< localIndex, localIndex > splitEdges; @@ -1795,10 +1795,7 @@ void SurfaceGenerator::performFracture( const localIndex nodeID, edgeToFaceMap.clearSet( newEdgeIndex ); - if( getLogLevel() > 0 ) - { - GEOS_LOG_RANK( GEOS_FMT ( "Split edge {} into edges {} and {}", parentEdgeIndex, parentEdgeIndex, newEdgeIndex ) ); - } + GEOS_LOG_LEVEL_INFO_BY_RANK( logInfo::SurfaceGenerator, GEOS_FMT ( "Split edge {} into edges {} and {}", parentEdgeIndex, parentEdgeIndex, newEdgeIndex ) ); splitEdges[parentEdgeIndex] = newEdgeIndex; modifiedObjects.newEdges.insert( newEdgeIndex ); @@ -1854,11 +1851,7 @@ void SurfaceGenerator::performFracture( const localIndex nodeID, if( faceManager.splitObject( faceIndex, rank, newFaceIndex ) ) { - - if( getLogLevel() > 0 ) - { - GEOS_LOG_RANK( GEOS_FMT ( "Split face {} into faces {} and {}", faceIndex, faceIndex, newFaceIndex ) ); - } + GEOS_LOG_LEVEL_INFO_BY_RANK( logInfo::SurfaceGenerator, GEOS_FMT ( "Split face {} into faces {} and {}", faceIndex, faceIndex, newFaceIndex ) ); splitFaces[faceIndex] = newFaceIndex; modifiedObjects.newFaces.insert( newFaceIndex ); @@ -2125,23 +2118,19 @@ void SurfaceGenerator::performFracture( const localIndex nodeID, faceToElementMap[faceIndex][1] = -1; } - if( getLogLevel() > 1 ) - { - GEOS_LOG( " faceToRegionMap["<( esr ).nodeList().freeOnDevice(); + elementSubRegion.getElementCenter().freeOnDevice(); + elementSubRegion.ghostRank().freeOnDevice(); + elementSubRegion.localToGlobalMap().freeOnDevice(); } ); - + baseMesh.getNodeManager().localToGlobalMap().freeOnDevice(); + baseMesh.getNodeManager().elementList().toView().freeOnDevice(); + baseMesh.getFaceManager().nodeList().toView().freeOnDevice(); + baseMesh.getNodeManager().referencePosition().freeOnDevice(); + facesToNodes.freeOnDevice(); + nodesToElements.freeOnDevice(); } void AcousticFirstOrderWaveEquationSEM::initializePostInitialConditionsPreSubGroups() diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/firstOrderEqn/isotropic/AcousticFirstOrderWaveEquationSEM.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/firstOrderEqn/isotropic/AcousticFirstOrderWaveEquationSEM.hpp index 52e72af8d91..eb6e72d1212 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/firstOrderEqn/isotropic/AcousticFirstOrderWaveEquationSEM.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/firstOrderEqn/isotropic/AcousticFirstOrderWaveEquationSEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/firstOrderEqn/isotropic/AcousticFirstOrderWaveEquationSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/firstOrderEqn/isotropic/AcousticFirstOrderWaveEquationSEMKernel.hpp index 3a85644fdcd..2fb89ae9908 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/firstOrderEqn/isotropic/AcousticFirstOrderWaveEquationSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/firstOrderEqn/isotropic/AcousticFirstOrderWaveEquationSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIFields.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIFields.hpp index 254ec561f03..1069ee8ae31 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIFields.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEM.cpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEM.cpp index 1bfe1f970d8..7b31605c01f 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEM.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -26,6 +26,7 @@ #include "fieldSpecification/PerfectlyMatchedLayer.hpp" #include "mainInterface/ProblemManager.hpp" #include "mesh/ElementType.hpp" +#include "mesh/DomainPartition.hpp" #include "mesh/mpiCommunications/CommunicationTools.hpp" #include "physicsSolvers/wavePropagation/shared/WaveSolverUtils.hpp" #include "physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticTimeSchemeSEMKernel.hpp" @@ -201,7 +202,18 @@ void AcousticVTIWaveEquationSEM::precomputeSourceAndReceiverTerm( MeshLevel & ba m_timeSourceDelay, m_rickerOrder ); } ); + elementSubRegion.faceList().freeOnDevice(); + baseMesh.getElemManager().getRegion( er ).getSubRegion< CellElementSubRegion >( esr ).nodeList().freeOnDevice(); + elementSubRegion.getElementCenter().freeOnDevice(); + elementSubRegion.ghostRank().freeOnDevice(); + elementSubRegion.localToGlobalMap().freeOnDevice(); } ); + baseMesh.getNodeManager().localToGlobalMap().freeOnDevice(); + baseMesh.getNodeManager().elementList().toView().freeOnDevice(); + baseMesh.getFaceManager().nodeList().toView().freeOnDevice(); + baseMesh.getNodeManager().referencePosition().freeOnDevice(); + facesToNodes.freeOnDevice(); + nodesToElements.freeOnDevice(); } void AcousticVTIWaveEquationSEM::addSourceToRightHandSide( integer const & cycleNumber, arrayView1d< real32 > const rhs ) diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEM.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEM.hpp index d672c398387..373ace7cb4c 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEM.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEMKernel.hpp index e4de8b7d4ed..3a711540091 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/anisotropic/AcousticVTIWaveEquationSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -27,7 +27,6 @@ namespace geos { -using namespace fields; /// Namespace to contain the acoustic wave kernels. namespace acousticVTIWaveEquationSEMKernels @@ -442,13 +441,13 @@ class ExplicitAcousticVTISEM : public finiteElement::KernelBase< SUBREGION_TYPE, finiteElementSpace, inputConstitutiveType ), m_nodeCoords( nodeManager.getField< fields::referencePosition32 >() ), - m_p_n( nodeManager.getField< acousticvtifields::Pressure_p_n >() ), - m_q_n( nodeManager.getField< acousticvtifields::Pressure_q_n >() ), - m_stiffnessVector_p( nodeManager.getField< acousticvtifields::StiffnessVector_p >() ), - m_stiffnessVector_q( nodeManager.getField< acousticvtifields::StiffnessVector_q >() ), - m_epsilon( elementSubRegion.template getField< acousticvtifields::Epsilon >() ), - m_delta( elementSubRegion.template getField< acousticvtifields::Delta >() ), - m_vti_f( elementSubRegion.template getField< acousticvtifields::F >() ), + m_p_n( nodeManager.getField< fields::acousticvtifields::Pressure_p_n >() ), + m_q_n( nodeManager.getField< fields::acousticvtifields::Pressure_q_n >() ), + m_stiffnessVector_p( nodeManager.getField< fields::acousticvtifields::StiffnessVector_p >() ), + m_stiffnessVector_q( nodeManager.getField< fields::acousticvtifields::StiffnessVector_q >() ), + m_epsilon( elementSubRegion.template getField< fields::acousticvtifields::Epsilon >() ), + m_delta( elementSubRegion.template getField< fields::acousticvtifields::Delta >() ), + m_vti_f( elementSubRegion.template getField< fields::acousticvtifields::F >() ), m_dt( dt ) { GEOS_UNUSED_VAR( edgeManager ); diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticPMLSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticPMLSEMKernel.hpp index 8e8bfe4a808..6cb55e191a3 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticPMLSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticPMLSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp index 77e3c55098a..eb427d14afb 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -26,6 +26,7 @@ #include "fieldSpecification/PerfectlyMatchedLayer.hpp" #include "mainInterface/ProblemManager.hpp" #include "mesh/ElementType.hpp" +#include "mesh/DomainPartition.hpp" #include "mesh/mpiCommunications/CommunicationTools.hpp" #include "physicsSolvers/wavePropagation/shared/WaveSolverUtils.hpp" #include "physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticTimeSchemeSEMKernel.hpp" @@ -210,7 +211,18 @@ void AcousticWaveEquationSEM::precomputeSourceAndReceiverTerm( MeshLevel & baseM m_rickerOrder ); } } ); + elementSubRegion.faceList().freeOnDevice(); + baseMesh.getElemManager().getRegion( er ).getSubRegion< CellElementSubRegion >( esr ).nodeList().freeOnDevice(); + elementSubRegion.getElementCenter().freeOnDevice(); + elementSubRegion.ghostRank().freeOnDevice(); + elementSubRegion.localToGlobalMap().freeOnDevice(); } ); + baseMesh.getNodeManager().localToGlobalMap().freeOnDevice(); + baseMesh.getNodeManager().elementList().toView().freeOnDevice(); + baseMesh.getFaceManager().nodeList().toView().freeOnDevice(); + baseMesh.getNodeManager().referencePosition().freeOnDevice(); + facesToNodes.freeOnDevice(); + nodesToElements.freeOnDevice(); } void AcousticWaveEquationSEM::addSourceToRightHandSide( integer const & cycleNumber, arrayView1d< real32 > const rhs ) @@ -790,13 +802,13 @@ real64 AcousticWaveEquationSEM::explicitStepForward( real64 const & time_n, if( m_enableLifo ) { // Need to tell LvArray data is on GPU to avoir HtoD copy - p_dt2.move( MemorySpace::cuda, false ); + p_dt2.move( LvArray::MemorySpace::cuda, false ); m_lifo->pushAsync( p_dt2 ); } else { GEOS_MARK_SCOPE ( DirectWrite ); - p_dt2.move( MemorySpace::host, false ); + p_dt2.move( LvArray::MemorySpace::host, false ); int const rank = MpiWrapper::commRank( MPI_COMM_GEOS ); std::string fileName = GEOS_FMT( "lifo/rank_{:05}/pressuredt2_{:06}_{:08}.dat", rank, m_shotIndex, cycleNumber ); int lastDirSeparator = fileName.find_last_of( "/\\" ); @@ -873,7 +885,7 @@ real64 AcousticWaveEquationSEM::explicitStepBackward( real64 const & time_n, getDataContext() << ": Could not open file "<< fileName << " for reading", InputError ); - p_dt2.move( MemorySpace::host, true ); + p_dt2.move( LvArray::MemorySpace::host, true ); wf.read( (char *)&p_dt2[0], p_dt2.size()*sizeof( real32 ) ); wf.close( ); remove( fileName.c_str() ); @@ -1067,6 +1079,7 @@ void AcousticWaveEquationSEM::synchronizeUnknowns( real64 const & time_n, acousticfields::AuxiliaryVar4PML::key() } ); } + CommunicationTools & syncFields = CommunicationTools::getInstance(); syncFields.synchronizeFields( fieldsToBeSync, mesh, diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.hpp index 0e0729bfbd9..57134c292a9 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEMKernel.hpp index 2b877c499eb..f582a027f97 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -30,8 +30,6 @@ namespace geos { -using namespace fields; - /// Namespace to contain the acoustic wave kernels. namespace acousticWaveEquationSEMKernels { @@ -106,9 +104,9 @@ class ExplicitAcousticSEM : public finiteElement::KernelBase< SUBREGION_TYPE, finiteElementSpace, inputConstitutiveType ), m_nodeCoords( nodeManager.getField< fields::referencePosition32 >() ), - m_p_n( nodeManager.getField< acousticfields::Pressure_n >() ), - m_stiffnessVector( nodeManager.getField< acousticfields::StiffnessVector >() ), - m_density( elementSubRegion.template getField< acousticfields::AcousticDensity >() ), + m_p_n( nodeManager.getField< fields::acousticfields::Pressure_n >() ), + m_stiffnessVector( nodeManager.getField< fields::acousticfields::StiffnessVector >() ), + m_density( elementSubRegion.template getField< fields::acousticfields::AcousticDensity >() ), m_dt( dt ) { GEOS_UNUSED_VAR( edgeManager ); diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticFields.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticFields.hpp index 5599ca8b635..dd067a11a1f 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticFields.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticMatricesSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticMatricesSEMKernel.hpp index 52376985d09..b311d04d45d 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticMatricesSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticMatricesSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticTimeSchemeSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticTimeSchemeSEMKernel.hpp index 16eeaf02ced..20b838f6d62 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticTimeSchemeSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/shared/AcousticTimeSchemeSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEM.cpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEM.cpp index 43d7d36be4e..605a30383b4 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEM.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEM.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEM.hpp index 0cad8653579..ca9325909c4 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEM.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEMKernel.hpp index 93fab00021d..7352b5fc42b 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcousticElasticWaveEquationSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcoustoElasticFields.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcoustoElasticFields.hpp index 65d96541df8..89341e561a1 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcoustoElasticFields.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcoustoElasticFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcoustoElasticTimeSchemeSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcoustoElasticTimeSchemeSEMKernel.hpp index 382161128ba..c806342cfd6 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcoustoElasticTimeSchemeSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustoelastic/secondOrderEqn/isotropic/AcoustoElasticTimeSchemeSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEM.cpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEM.cpp index 98d04bc3b7a..56f40118507 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEM.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -25,6 +25,7 @@ #include "fieldSpecification/FieldSpecificationManager.hpp" #include "mainInterface/ProblemManager.hpp" #include "mesh/ElementType.hpp" +#include "mesh/DomainPartition.hpp" #include "mesh/mpiCommunications/CommunicationTools.hpp" #include "physicsSolvers/wavePropagation/sem/elastic/shared/ElasticMatricesSEMKernel.hpp" #include "physicsSolvers/wavePropagation/shared/PrecomputeSourcesAndReceiversKernel.hpp" @@ -302,7 +303,18 @@ void ElasticFirstOrderWaveEquationSEM::precomputeSourceAndReceiverTerm( MeshLeve m_timeSourceDelay, m_rickerOrder ); } ); + elementSubRegion.faceList().freeOnDevice(); + baseMesh.getElemManager().getRegion( regionIndex ).getSubRegion< CellElementSubRegion >( esr ).nodeList().freeOnDevice(); + elementSubRegion.getElementCenter().freeOnDevice(); + elementSubRegion.ghostRank().freeOnDevice(); + elementSubRegion.localToGlobalMap().freeOnDevice(); } ); + baseMesh.getNodeManager().localToGlobalMap().freeOnDevice(); + baseMesh.getNodeManager().elementList().toView().freeOnDevice(); + baseMesh.getFaceManager().nodeList().toView().freeOnDevice(); + baseMesh.getNodeManager().referencePosition().freeOnDevice(); + facesToNodes.freeOnDevice(); + nodesToElements.freeOnDevice(); } void ElasticFirstOrderWaveEquationSEM::initializePostInitialConditionsPreSubGroups() diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEM.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEM.hpp index 575226716f9..f6164876340 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEM.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEMKernel.hpp index 5403e975c10..fc07cd1151a 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/firstOrderEqn/isotropic/ElasticFirstOrderWaveEquationSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -145,36 +145,39 @@ struct StressComputation { //Volume integral - m_finiteElement.template computeFirstOrderStiffnessTermX( q, xLocal, [&] ( int i, int j, real32 dfx1, real32 dfx2, real32 dfx3 ) + m_finiteElement.template computeFirstOrderStiffnessTermX( q, xLocal, [&] ( int const i, int const j, real32 const dfx1, real32 const dfx2, real32 const dfx3 ) { - auxx[j]+= dfx1*ux_np1[elemsToNodes[k][i]]; - auyy[j]+= dfx2*uy_np1[elemsToNodes[k][i]]; - auzz[j]+= dfx3*uz_np1[elemsToNodes[k][i]]; - auxy[j]+= dfx1*uy_np1[elemsToNodes[k][i]]+dfx2*ux_np1[elemsToNodes[k][i]]; - auxz[j]+= dfx1*uz_np1[elemsToNodes[k][i]]+dfx3*ux_np1[elemsToNodes[k][i]]; - auyz[j]+= dfx2*uz_np1[elemsToNodes[k][i]]+dfx3*uy_np1[elemsToNodes[k][i]]; + localIndex const nodeIndex = elemsToNodes[k][i]; + auxx[j] = auxx[j] + dfx1*ux_np1[nodeIndex]; + auyy[j] = auyy[j] + dfx2*uy_np1[nodeIndex]; + auzz[j] = auzz[j] + dfx3*uz_np1[nodeIndex]; + auxy[j] = auxy[j] + dfx1*uy_np1[nodeIndex]+dfx2*ux_np1[nodeIndex]; + auxz[j] = auxz[j] + dfx1*uz_np1[nodeIndex]+dfx3*ux_np1[nodeIndex]; + auyz[j] = auyz[j] + dfx2*uz_np1[nodeIndex]+dfx3*uy_np1[nodeIndex]; } ); - m_finiteElement.template computeFirstOrderStiffnessTermY( q, xLocal, [&] ( int i, int j, real32 dfy1, real32 dfy2, real32 dfy3 ) + m_finiteElement.template computeFirstOrderStiffnessTermY( q, xLocal, [&] ( int const i, int const j, real32 const dfy1, real32 const dfy2, real32 const dfy3 ) { - auxx[j]+= dfy1*ux_np1[elemsToNodes[k][i]]; - auyy[j]+= dfy2*uy_np1[elemsToNodes[k][i]]; - auzz[j]+= dfy3*uz_np1[elemsToNodes[k][i]]; - auxy[j]+= dfy1*uy_np1[elemsToNodes[k][i]]+dfy2*ux_np1[elemsToNodes[k][i]]; - auxz[j]+= dfy1*uz_np1[elemsToNodes[k][i]]+dfy3*ux_np1[elemsToNodes[k][i]]; - auyz[j]+= dfy2*uz_np1[elemsToNodes[k][i]]+dfy3*uy_np1[elemsToNodes[k][i]]; + localIndex const nodeIndex = elemsToNodes[k][i]; + auxx[j] = auxx[j] + dfy1*ux_np1[nodeIndex]; + auyy[j] = auyy[j] + dfy2*uy_np1[nodeIndex]; + auzz[j] = auzz[j] + dfy3*uz_np1[nodeIndex]; + auxy[j] = auxy[j] + dfy1*uy_np1[nodeIndex]+dfy2*ux_np1[nodeIndex]; + auxz[j] = auxz[j] + dfy1*uz_np1[nodeIndex]+dfy3*ux_np1[nodeIndex]; + auyz[j] = auyz[j] + dfy2*uz_np1[nodeIndex]+dfy3*uy_np1[nodeIndex]; } ); - m_finiteElement.template computeFirstOrderStiffnessTermZ( q, xLocal, [&] ( int i, int j, real32 dfz1, real32 dfz2, real32 dfz3 ) + m_finiteElement.template computeFirstOrderStiffnessTermZ( q, xLocal, [&] ( int const i, int const j, real32 const dfz1, real32 const dfz2, real32 const dfz3 ) { - auxx[j]+= dfz1*ux_np1[elemsToNodes[k][i]]; - auyy[j]+= dfz2*uy_np1[elemsToNodes[k][i]]; - auzz[j]+= dfz3*uz_np1[elemsToNodes[k][i]]; - auxy[j]+= dfz1*uy_np1[elemsToNodes[k][i]]+dfz2*ux_np1[elemsToNodes[k][i]]; - auxz[j]+= dfz1*uz_np1[elemsToNodes[k][i]]+dfz3*ux_np1[elemsToNodes[k][i]]; - auyz[j]+= dfz2*uz_np1[elemsToNodes[k][i]]+dfz3*uy_np1[elemsToNodes[k][i]]; + localIndex const nodeIndex = elemsToNodes[k][i]; + auxx[j] = auxx[j] + dfz1*ux_np1[nodeIndex]; + auyy[j] = auyy[j] + dfz2*uy_np1[nodeIndex]; + auzz[j] = auzz[j] + dfz3*uz_np1[nodeIndex]; + auxy[j] = auxy[j] + dfz1*uy_np1[nodeIndex]+dfz2*ux_np1[nodeIndex]; + auxz[j] = auxz[j] + dfz1*uz_np1[nodeIndex]+dfz3*ux_np1[nodeIndex]; + auyz[j] = auyz[j] + dfz2*uz_np1[nodeIndex]+dfz3*uy_np1[nodeIndex]; } ); diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/anisotropic/ElasticVTIFields.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/anisotropic/ElasticVTIFields.hpp index 45ae775ef32..7e17769a02c 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/anisotropic/ElasticVTIFields.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/anisotropic/ElasticVTIFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/anisotropic/ElasticVTIWaveEquationSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/anisotropic/ElasticVTIWaveEquationSEMKernel.hpp index 21faecddff0..68d105e6292 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/anisotropic/ElasticVTIWaveEquationSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/anisotropic/ElasticVTIWaveEquationSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -27,7 +27,7 @@ namespace geos { -using namespace fields; + /// Namespace to contain the elastic wave kernels. namespace elasticVTIWaveEquationSEMKernels { @@ -100,18 +100,18 @@ class ExplicitElasticVTISEM : public finiteElement::KernelBase< SUBREGION_TYPE, finiteElementSpace, inputConstitutiveType ), m_nodeCoords( nodeManager.getField< fields::referencePosition32 >() ), - m_ux_n( nodeManager.getField< elasticfields::Displacementx_n >() ), - m_uy_n( nodeManager.getField< elasticfields::Displacementy_n >() ), - m_uz_n( nodeManager.getField< elasticfields::Displacementz_n >() ), - m_stiffnessVectorx( nodeManager.getField< elasticfields::StiffnessVectorx >() ), - m_stiffnessVectory( nodeManager.getField< elasticfields::StiffnessVectory >() ), - m_stiffnessVectorz( nodeManager.getField< elasticfields::StiffnessVectorz >() ), - m_density( elementSubRegion.template getField< elasticfields::ElasticDensity >() ), - m_velocityVp( elementSubRegion.template getField< elasticfields::ElasticVelocityVp >() ), - m_velocityVs( elementSubRegion.template getField< elasticfields::ElasticVelocityVs >() ), - m_gamma( elementSubRegion.template getField< elasticvtifields::Gamma >()), - m_epsilon( elementSubRegion.template getField< elasticvtifields::Epsilon >()), - m_delta( elementSubRegion.template getField< elasticvtifields::Delta >()), + m_ux_n( nodeManager.getField< fields::elasticfields::Displacementx_n >() ), + m_uy_n( nodeManager.getField< fields::elasticfields::Displacementy_n >() ), + m_uz_n( nodeManager.getField< fields::elasticfields::Displacementz_n >() ), + m_stiffnessVectorx( nodeManager.getField< fields::elasticfields::StiffnessVectorx >() ), + m_stiffnessVectory( nodeManager.getField< fields::elasticfields::StiffnessVectory >() ), + m_stiffnessVectorz( nodeManager.getField< fields::elasticfields::StiffnessVectorz >() ), + m_density( elementSubRegion.template getField< fields::elasticfields::ElasticDensity >() ), + m_velocityVp( elementSubRegion.template getField< fields::elasticfields::ElasticVelocityVp >() ), + m_velocityVs( elementSubRegion.template getField< fields::elasticfields::ElasticVelocityVs >() ), + m_gamma( elementSubRegion.template getField< fields::elasticvtifields::Gamma >()), + m_epsilon( elementSubRegion.template getField< fields::elasticvtifields::Epsilon >()), + m_delta( elementSubRegion.template getField< fields::elasticvtifields::Delta >()), m_dt( dt ) { GEOS_UNUSED_VAR( edgeManager ); diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEM.cpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEM.cpp index 234915bc7f0..ba641a8d53f 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEM.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEM.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -26,6 +26,7 @@ #include "finiteElement/FiniteElementDiscretization.hpp" #include "mainInterface/ProblemManager.hpp" #include "mesh/ElementType.hpp" +#include "mesh/DomainPartition.hpp" #include "mesh/mpiCommunications/CommunicationTools.hpp" #include "physicsSolvers/wavePropagation/shared/WaveSolverUtils.hpp" #include "physicsSolvers/wavePropagation/shared/PrecomputeSourcesAndReceiversKernel.hpp" @@ -92,7 +93,7 @@ ElasticWaveEquationSEM::ElasticWaveEquationSEM( const std::string & name, setSizedFromParent( 0 ). setApplyDefaultValue( { 1.0, 1.0, 1.0, 0.0, 0.0, 0.0 } ). setDescription( "Moment of the source: 6 real values describing a symmetric tensor in Voigt notation." - "The default value is { 1, 1, 1, 0, 0, 0 } (diagonal moment, corresponding to a pure explosion)." ); + "The default value is { 1, 1, 1, 0, 0, 0 } (diagonal moment, corresponding to a seismic charge)." ); registerWrapper( viewKeyStruct::useVtiString(), &m_useVTI ). @@ -325,7 +326,18 @@ void ElasticWaveEquationSEM::precomputeSourceAndReceiverTerm( MeshLevel & baseMe m_sourceForce, m_sourceMoment ); } ); + elementSubRegion.faceList().freeOnDevice(); + baseMesh.getElemManager().getRegion( er ).getSubRegion< CellElementSubRegion >( esr ).nodeList().freeOnDevice(); + elementSubRegion.getElementCenter().freeOnDevice(); + elementSubRegion.ghostRank().freeOnDevice(); + elementSubRegion.localToGlobalMap().freeOnDevice(); } ); + baseMesh.getNodeManager().localToGlobalMap().freeOnDevice(); + baseMesh.getNodeManager().elementList().toView().freeOnDevice(); + baseMesh.getFaceManager().nodeList().toView().freeOnDevice(); + baseMesh.getNodeManager().referencePosition().freeOnDevice(); + facesToNodes.freeOnDevice(); + nodesToElements.freeOnDevice(); } void ElasticWaveEquationSEM::addSourceToRightHandSide( integer const & cycleNumber, diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEM.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEM.hpp index 2c9ec3c37ee..f3c0b14396f 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEM.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEM.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEMKernel.hpp index a919d84f8c6..c9d78fe64c6 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/secondOrderEqn/isotropic/ElasticWaveEquationSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -26,7 +26,7 @@ namespace geos { -using namespace fields; + /// Namespace to contain the elastic wave kernels. namespace elasticWaveEquationSEMKernels { @@ -51,7 +51,7 @@ namespace elasticWaveEquationSEMKernels template< typename SUBREGION_TYPE, typename CONSTITUTIVE_TYPE, typename FE_TYPE, - typename SX = elasticfields::StiffnessVectorx, typename SY = elasticfields::StiffnessVectory, typename SZ = elasticfields::StiffnessVectorz > + typename SX = fields::elasticfields::StiffnessVectorx, typename SY = fields::elasticfields::StiffnessVectory, typename SZ = fields::elasticfields::StiffnessVectorz > class ExplicitElasticSEMBase : public finiteElement::KernelBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, @@ -100,15 +100,15 @@ class ExplicitElasticSEMBase : public finiteElement::KernelBase< SUBREGION_TYPE, finiteElementSpace, inputConstitutiveType ), m_nodeCoords( nodeManager.getField< fields::referencePosition32 >() ), - m_ux_n( nodeManager.getField< elasticfields::Displacementx_n >() ), - m_uy_n( nodeManager.getField< elasticfields::Displacementy_n >() ), - m_uz_n( nodeManager.getField< elasticfields::Displacementz_n >() ), + m_ux_n( nodeManager.getField< fields::elasticfields::Displacementx_n >() ), + m_uy_n( nodeManager.getField< fields::elasticfields::Displacementy_n >() ), + m_uz_n( nodeManager.getField< fields::elasticfields::Displacementz_n >() ), m_stiffnessVectorx( nodeManager.getField< SX >() ), m_stiffnessVectory( nodeManager.getField< SY >() ), m_stiffnessVectorz( nodeManager.getField< SZ >() ), - m_density( elementSubRegion.template getField< elasticfields::ElasticDensity >() ), - m_velocityVp( elementSubRegion.template getField< elasticfields::ElasticVelocityVp >() ), - m_velocityVs( elementSubRegion.template getField< elasticfields::ElasticVelocityVs >() ), + m_density( elementSubRegion.template getField< fields::elasticfields::ElasticDensity >() ), + m_velocityVp( elementSubRegion.template getField< fields::elasticfields::ElasticVelocityVp >() ), + m_velocityVs( elementSubRegion.template getField< fields::elasticfields::ElasticVelocityVs >() ), m_dt( dt ) { GEOS_UNUSED_VAR( edgeManager ); @@ -273,9 +273,9 @@ template< typename SUBREGION_TYPE, class ExplicitElasticAttenuativeSEM : public ExplicitElasticSEMBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, - elasticfields::StiffnessVectorAx, - elasticfields::StiffnessVectorAy, - elasticfields::StiffnessVectorAz > + fields::elasticfields::StiffnessVectorAx, + fields::elasticfields::StiffnessVectorAy, + fields::elasticfields::StiffnessVectorAz > { public: @@ -283,9 +283,9 @@ class ExplicitElasticAttenuativeSEM : public ExplicitElasticSEMBase< SUBREGION_T using Base = ExplicitElasticSEMBase< SUBREGION_TYPE, CONSTITUTIVE_TYPE, FE_TYPE, - elasticfields::StiffnessVectorAx, - elasticfields::StiffnessVectorAy, - elasticfields::StiffnessVectorAz >; + fields::elasticfields::StiffnessVectorAx, + fields::elasticfields::StiffnessVectorAy, + fields::elasticfields::StiffnessVectorAz >; //***************************************************************************** /** @@ -313,8 +313,8 @@ class ExplicitElasticAttenuativeSEM : public ExplicitElasticSEMBase< SUBREGION_T finiteElementSpace, inputConstitutiveType, dt ), - m_qualityFactorP( elementSubRegion.template getField< elasticfields::ElasticQualityFactorP >() ), - m_qualityFactorS( elementSubRegion.template getField< elasticfields::ElasticQualityFactorS >() ) + m_qualityFactorP( elementSubRegion.template getField< fields::elasticfields::ElasticQualityFactorP >() ), + m_qualityFactorS( elementSubRegion.template getField< fields::elasticfields::ElasticQualityFactorS >() ) {} /** diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticFields.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticFields.hpp index 15770d50a5c..5b98c51e0be 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticFields.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticFields.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticMatricesSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticMatricesSEMKernel.hpp index 81d4b1c9700..f699039e9c9 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticMatricesSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticMatricesSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticTimeSchemeSEMKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticTimeSchemeSEMKernel.hpp index 9dcad646fa7..55f7dcc163d 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticTimeSchemeSEMKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/elastic/shared/ElasticTimeSchemeSEMKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/shared/PrecomputeSourcesAndReceiversKernel.hpp b/src/coreComponents/physicsSolvers/wavePropagation/shared/PrecomputeSourcesAndReceiversKernel.hpp index c6fbf016edd..7115ac0fbb1 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/shared/PrecomputeSourcesAndReceiversKernel.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/shared/PrecomputeSourcesAndReceiversKernel.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -460,13 +460,13 @@ struct PreComputeSourcesAndReceivers sourceCoordinates[isrc][1], sourceCoordinates[isrc][2] }; - real64 xLocal[numNodesPerElem][3]; + real64 xLocal[8][3]; - for( localIndex a=0; a< numNodesPerElem; ++a ) + for( localIndex a = 0; a < 8; ++a ) { - for( localIndex i=0; i<3; ++i ) + for( localIndex i = 0; i < 3; ++i ) { - xLocal[a][i] = baseNodeCoords( elemsToNodes( k, a ), i ); + xLocal[a][i] = baseNodeCoords( baseElemsToNodes( k, a ), i ); } } @@ -496,7 +496,7 @@ struct PreComputeSourcesAndReceivers real64 N[numNodesPerElem]; real64 gradN[numNodesPerElem][3]; FE_TYPE::calcN( coordsOnRefElem, N ); - FE_TYPE::calcGradN( coordsOnRefElem, xLocal, gradN ); + FE_TYPE::calcGradNWithCorners( coordsOnRefElem, xLocal, gradN ); R2SymTensor moment = sourceMoment; for( localIndex q=0; q< numNodesPerElem; ++q ) { @@ -593,13 +593,13 @@ struct PreComputeSourcesAndReceivers if( sampleFound && elemGhostRank[k] < 0 ) { real64 coordsOnRefElem[3]{}; - real64 xLocal[numNodesPerElem][3]; + real64 xLocal[8][3]; - for( localIndex a=0; a< numNodesPerElem; ++a ) + for( localIndex a = 0; a < 8; ++a ) { - for( localIndex i=0; i<3; ++i ) + for( localIndex i=0; i < 3; ++i ) { - xLocal[a][i] = baseNodeCoords( elemsToNodes( k, a ), i ); + xLocal[a][i] = baseNodeCoords( baseElemsToNodes( k, a ), i ); } } @@ -610,7 +610,7 @@ struct PreComputeSourcesAndReceivers real64 N[numNodesPerElem]; real64 gradN[numNodesPerElem][3]; FE_TYPE::calcN( coordsOnRefElem, N ); - FE_TYPE::calcGradN( coordsOnRefElem, xLocal, gradN ); + FE_TYPE::calcGradNWithCorners( coordsOnRefElem, xLocal, gradN ); for( localIndex a = 0; a < numNodesPerElem; ++a ) { receiverNodeIds[ircv][iSample * numNodesPerElem + a] = elemsToNodes( k, diff --git a/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.cpp b/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.cpp index d8e1af99dbc..d15555e75a9 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -27,6 +27,7 @@ #include "fieldSpecification/PerfectlyMatchedLayer.hpp" #include "mainInterface/ProblemManager.hpp" #include "mesh/mpiCommunications/CommunicationTools.hpp" +#include "mesh/DomainPartition.hpp" #include "WaveSolverUtils.hpp" #include "events/EventManager.hpp" diff --git a/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.hpp b/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.hpp index fe17f6d6a9d..6c6ce292243 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverUtils.hpp b/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverUtils.hpp index 962337e6b40..0e43aa4a69f 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverUtils.hpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverUtils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/schema/CMakeLists.txt b/src/coreComponents/schema/CMakeLists.txt index ecae0b5dd75..c62fba76b07 100644 --- a/src/coreComponents/schema/CMakeLists.txt +++ b/src/coreComponents/schema/CMakeLists.txt @@ -14,13 +14,18 @@ set( schema_sources set( dependencyList ${parallelDeps} dataRepository ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + blt_add_library( NAME schema SOURCES ${schema_sources} HEADERS ${schema_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( schema PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents) +install( TARGETS schema LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) diff --git a/src/coreComponents/schema/docs/AcousticElasticSEM.rst b/src/coreComponents/schema/docs/AcousticElasticSEM.rst deleted file mode 100644 index 8dc0c8b4e21..00000000000 --- a/src/coreComponents/schema/docs/AcousticElasticSEM.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -========================= ================== ======== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ======================================================================================================================================================================================================================================================================================================================== -acousticSolverName groupNameRef required Name of the acoustic solver used by the coupled solver -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -elasticSolverName groupNameRef required Name of the elastic solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/AcousticElasticSEM_other.rst b/src/coreComponents/schema/docs/AcousticElasticSEM_other.rst deleted file mode 100644 index f296d4de732..00000000000 --- a/src/coreComponents/schema/docs/AcousticElasticSEM_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/AcousticFirstOrderSEM.rst b/src/coreComponents/schema/docs/AcousticFirstOrderSEM.rst deleted file mode 100644 index 0d655628fe6..00000000000 --- a/src/coreComponents/schema/docs/AcousticFirstOrderSEM.rst +++ /dev/null @@ -1,37 +0,0 @@ - - -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== -attenuationType geos_WaveSolverUtils_AttenuationType none Flag to indicate which attenuation model to use: "none" for no attenuation, "sls\ for the standard-linear-solid (SLS) model (Fichtner, 2014). -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -dtSeismoTrace real64 0 Time step for output pressure at receivers -enableLifo integer 0 Set to 1 to enable LIFO storage feature -forward integer 1 Set to 1 to compute forward propagation -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -lifoOnDevice integer -80 Set the capacity of the lifo device storage (if negative, opposite of percentage of remaining memory) -lifoOnHost integer -80 Set the capacity of the lifo host storage (if negative, opposite of percentage of remaining memory) -lifoSize integer 2147483647 Set the capacity of the lifo storage (should be the total number of buffers to store in the LIFO) -linearDASGeometry real64_array2d {{0}} Geometry parameters for a linear DAS fiber (dip, azimuth, gauge length) -linearDASSamples integer 5 Number of sample points to be used for strain integration when integrating the strain for the DAS signal -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -outputSeismoTrace integer 0 Flag that indicates if we write the seismo trace in a file .txt, 0 no output, 1 otherwise -receiverCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the receivers -rickerOrder integer 2 Flag that indicates the order of the Ricker to be used o, 1 or 2. Order 2 by default -saveFields integer 0 Set to 1 to save fields during forward and restore them during backward -shotIndex integer 0 Set the current shot for temporary files -slsAnelasticityCoefficients real32_array {0} Anelasticity coefficients for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding reference frequencies must be provided. -slsReferenceAngularFrequencies real32_array {0} Reference angular frequencies (omega) for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding anelasticity coefficients must be provided. -sourceCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the sources -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeSourceDelay real32 -1 Source time delay (1 / f0 by default) -timeSourceFrequency real32 0 Central frequency for the time source -useDAS geos_WaveSolverUtils_DASType none Flag to indicate if DAS data will be modeled, and which DAS type to use: "none" to deactivate DAS, "strainIntegration" for strain integration, "dipole" for displacement difference -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/AcousticFirstOrderSEM_other.rst b/src/coreComponents/schema/docs/AcousticFirstOrderSEM_other.rst deleted file mode 100644 index 88ca2990ec7..00000000000 --- a/src/coreComponents/schema/docs/AcousticFirstOrderSEM_other.rst +++ /dev/null @@ -1,33 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================= -Name Type Description -========================= ====================================================================================================================================================== ======================================================================= -indexSeismoTrace integer Count for output pressure at receivers -linearDASVectorX real32_array X component of the linear DAS direction vector -linearDASVectorY real32_array Y component of the linear DAS direction vector -linearDASVectorZ real32_array Z component of the linear DAS direction vector -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -pressureNp1AtReceivers real32_array2d Pressure value at each receiver for each timestep -receiverConstants real64_array2d Constant part of the receiver for the nodes listed in m_receiverNodeIds -receiverElem integer_array Element containing the receivers -receiverIsLocal integer_array Flag that indicates whether the receiver is local to this MPI rank -receiverNodeIds integer_array2d Indices of the nodes (in the right order) for each receiver point -receiverRegion integer_array Region containing the receivers -sourceConstants real64_array2d Constant part of the source for the nodes listed in m_sourceNodeIds -sourceElem integer_array Element containing the sources -sourceIsAccessible integer_array Flag that indicates whether the source is local to this MPI rank -sourceNodeIds integer_array2d Indices of the nodes (in the right order) for each source point -sourceRegion integer_array Region containing the sources -sourceValue real32_array2d Source Value of the sources -usePML integer Flag to apply PML -uxNp1AtReceivers real32_array2d Ux value at each receiver for each timestep -uyNp1AtReceivers real32_array2d Uy value at each receiver for each timestep -uzNp1AtReceivers real32_array2d Uz value at each receiver for each timestep -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================= - - diff --git a/src/coreComponents/schema/docs/AcousticSEM.rst b/src/coreComponents/schema/docs/AcousticSEM.rst deleted file mode 100644 index 0d655628fe6..00000000000 --- a/src/coreComponents/schema/docs/AcousticSEM.rst +++ /dev/null @@ -1,37 +0,0 @@ - - -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== -attenuationType geos_WaveSolverUtils_AttenuationType none Flag to indicate which attenuation model to use: "none" for no attenuation, "sls\ for the standard-linear-solid (SLS) model (Fichtner, 2014). -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -dtSeismoTrace real64 0 Time step for output pressure at receivers -enableLifo integer 0 Set to 1 to enable LIFO storage feature -forward integer 1 Set to 1 to compute forward propagation -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -lifoOnDevice integer -80 Set the capacity of the lifo device storage (if negative, opposite of percentage of remaining memory) -lifoOnHost integer -80 Set the capacity of the lifo host storage (if negative, opposite of percentage of remaining memory) -lifoSize integer 2147483647 Set the capacity of the lifo storage (should be the total number of buffers to store in the LIFO) -linearDASGeometry real64_array2d {{0}} Geometry parameters for a linear DAS fiber (dip, azimuth, gauge length) -linearDASSamples integer 5 Number of sample points to be used for strain integration when integrating the strain for the DAS signal -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -outputSeismoTrace integer 0 Flag that indicates if we write the seismo trace in a file .txt, 0 no output, 1 otherwise -receiverCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the receivers -rickerOrder integer 2 Flag that indicates the order of the Ricker to be used o, 1 or 2. Order 2 by default -saveFields integer 0 Set to 1 to save fields during forward and restore them during backward -shotIndex integer 0 Set the current shot for temporary files -slsAnelasticityCoefficients real32_array {0} Anelasticity coefficients for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding reference frequencies must be provided. -slsReferenceAngularFrequencies real32_array {0} Reference angular frequencies (omega) for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding anelasticity coefficients must be provided. -sourceCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the sources -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeSourceDelay real32 -1 Source time delay (1 / f0 by default) -timeSourceFrequency real32 0 Central frequency for the time source -useDAS geos_WaveSolverUtils_DASType none Flag to indicate if DAS data will be modeled, and which DAS type to use: "none" to deactivate DAS, "strainIntegration" for strain integration, "dipole" for displacement difference -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/AcousticSEM_other.rst b/src/coreComponents/schema/docs/AcousticSEM_other.rst deleted file mode 100644 index 1ef831de5ac..00000000000 --- a/src/coreComponents/schema/docs/AcousticSEM_other.rst +++ /dev/null @@ -1,28 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================= -Name Type Description -========================= ====================================================================================================================================================== ======================================================================= -indexSeismoTrace integer Count for output pressure at receivers -linearDASVectorX real32_array X component of the linear DAS direction vector -linearDASVectorY real32_array Y component of the linear DAS direction vector -linearDASVectorZ real32_array Z component of the linear DAS direction vector -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -pressureNp1AtReceivers real32_array2d Pressure value at each receiver for each timestep -receiverConstants real64_array2d Constant part of the receiver for the nodes listed in m_receiverNodeIds -receiverElem integer_array Element containing the receivers -receiverIsLocal integer_array Flag that indicates whether the receiver is local to this MPI rank -receiverNodeIds integer_array2d Indices of the nodes (in the right order) for each receiver point -receiverRegion integer_array Region containing the receivers -sourceConstants real64_array2d Constant part of the source for the nodes listed in m_sourceNodeIds -sourceIsAccessible integer_array Flag that indicates whether the source is local to this MPI rank -sourceNodeIds integer_array2d Indices of the nodes (in the right order) for each source point -sourceValue real32_array2d Source Value of the sources -usePML integer Flag to apply PML -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================= - - diff --git a/src/coreComponents/schema/docs/AcousticVTISEM.rst b/src/coreComponents/schema/docs/AcousticVTISEM.rst deleted file mode 100644 index 0d655628fe6..00000000000 --- a/src/coreComponents/schema/docs/AcousticVTISEM.rst +++ /dev/null @@ -1,37 +0,0 @@ - - -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== -attenuationType geos_WaveSolverUtils_AttenuationType none Flag to indicate which attenuation model to use: "none" for no attenuation, "sls\ for the standard-linear-solid (SLS) model (Fichtner, 2014). -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -dtSeismoTrace real64 0 Time step for output pressure at receivers -enableLifo integer 0 Set to 1 to enable LIFO storage feature -forward integer 1 Set to 1 to compute forward propagation -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -lifoOnDevice integer -80 Set the capacity of the lifo device storage (if negative, opposite of percentage of remaining memory) -lifoOnHost integer -80 Set the capacity of the lifo host storage (if negative, opposite of percentage of remaining memory) -lifoSize integer 2147483647 Set the capacity of the lifo storage (should be the total number of buffers to store in the LIFO) -linearDASGeometry real64_array2d {{0}} Geometry parameters for a linear DAS fiber (dip, azimuth, gauge length) -linearDASSamples integer 5 Number of sample points to be used for strain integration when integrating the strain for the DAS signal -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -outputSeismoTrace integer 0 Flag that indicates if we write the seismo trace in a file .txt, 0 no output, 1 otherwise -receiverCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the receivers -rickerOrder integer 2 Flag that indicates the order of the Ricker to be used o, 1 or 2. Order 2 by default -saveFields integer 0 Set to 1 to save fields during forward and restore them during backward -shotIndex integer 0 Set the current shot for temporary files -slsAnelasticityCoefficients real32_array {0} Anelasticity coefficients for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding reference frequencies must be provided. -slsReferenceAngularFrequencies real32_array {0} Reference angular frequencies (omega) for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding anelasticity coefficients must be provided. -sourceCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the sources -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeSourceDelay real32 -1 Source time delay (1 / f0 by default) -timeSourceFrequency real32 0 Central frequency for the time source -useDAS geos_WaveSolverUtils_DASType none Flag to indicate if DAS data will be modeled, and which DAS type to use: "none" to deactivate DAS, "strainIntegration" for strain integration, "dipole" for displacement difference -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/AcousticVTISEM_other.rst b/src/coreComponents/schema/docs/AcousticVTISEM_other.rst deleted file mode 100644 index 1ef831de5ac..00000000000 --- a/src/coreComponents/schema/docs/AcousticVTISEM_other.rst +++ /dev/null @@ -1,28 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================= -Name Type Description -========================= ====================================================================================================================================================== ======================================================================= -indexSeismoTrace integer Count for output pressure at receivers -linearDASVectorX real32_array X component of the linear DAS direction vector -linearDASVectorY real32_array Y component of the linear DAS direction vector -linearDASVectorZ real32_array Z component of the linear DAS direction vector -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -pressureNp1AtReceivers real32_array2d Pressure value at each receiver for each timestep -receiverConstants real64_array2d Constant part of the receiver for the nodes listed in m_receiverNodeIds -receiverElem integer_array Element containing the receivers -receiverIsLocal integer_array Flag that indicates whether the receiver is local to this MPI rank -receiverNodeIds integer_array2d Indices of the nodes (in the right order) for each receiver point -receiverRegion integer_array Region containing the receivers -sourceConstants real64_array2d Constant part of the source for the nodes listed in m_sourceNodeIds -sourceIsAccessible integer_array Flag that indicates whether the source is local to this MPI rank -sourceNodeIds integer_array2d Indices of the nodes (in the right order) for each source point -sourceValue real32_array2d Source Value of the sources -usePML integer Flag to apply PML -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================= - - diff --git a/src/coreComponents/schema/docs/Aquifer.rst b/src/coreComponents/schema/docs/Aquifer.rst deleted file mode 100644 index 20c477d38bc..00000000000 --- a/src/coreComponents/schema/docs/Aquifer.rst +++ /dev/null @@ -1,38 +0,0 @@ - - -================================== ================== ======== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -================================== ================== ======== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -allowAllPhasesIntoAquifer integer 0 | Flag to allow all phases to flow into the aquifer. - | This flag only matters for the configuration in which flow is from reservoir to aquifer. - | - If the flag is equal to 1, then all phases, including non-aqueous phases, are allowed to flow into the aquifer. - | - If the flag is equal to 0, then only the water phase is allowed to flow into the aquifer. - | If you are in a configuration in which flow is from reservoir to aquifer and you expect non-aqueous phases to saturate the reservoir cells next to the aquifer, set this flag to 1. - | This keyword is ignored for single-phase flow simulations -aquiferAngle real64 required Angle subtended by the aquifer boundary from the center of the reservoir [degress] -aquiferElevation real64 required Aquifer elevation (positive going upward) [m] -aquiferInitialPressure real64 required Aquifer initial pressure [Pa] -aquiferInnerRadius real64 required Aquifer inner radius [m] -aquiferPermeability real64 required Aquifer permeability [m^2] -aquiferPorosity real64 required Aquifer porosity -aquiferThickness real64 required Aquifer thickness [m] -aquiferTotalCompressibility real64 required Aquifer total compressibility (rock and fluid) [Pa^-1] -aquiferWaterDensity real64 required Aquifer water density [kg.m^-3] -aquiferWaterPhaseComponentFraction real64_array {0} Aquifer water phase component fraction. This keyword is ignored for single-phase flow simulations. -aquiferWaterPhaseComponentNames string_array {} Aquifer water phase component names. This keyword is ignored for single-phase flow simulations. -aquiferWaterViscosity real64 required Aquifer water viscosity [Pa.s] -bcApplicationTableName groupNameRef Name of table that specifies the on/off application of the boundary condition. -beginTime real64 -1e+99 Time at which the boundary condition will start being applied. -direction R1Tensor {0,0,0} Direction to apply boundary condition to. -endTime real64 1e+99 Time at which the boundary condition will stop being applied. -functionName groupNameRef Name of function that specifies variation of the boundary condition. -initialCondition integer 0 Boundary condition is applied as an initial condition. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -pressureInfluenceFunctionName groupNameRef | Name of the table describing the pressure influence function - | . If not provided, we use a default pressure influence function -scale real64 0 Scale factor for value of the boundary condition. -setNames groupNameRef_array required Name of sets that boundary condition is applied to. -================================== ================== ======== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/Aquifer_other.rst b/src/coreComponents/schema/docs/Aquifer_other.rst deleted file mode 100644 index b171b95f04b..00000000000 --- a/src/coreComponents/schema/docs/Aquifer_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============== ============ ============================================================== -Name Type Description -============== ============ ============================================================== -component integer Component of field (if tensor) to apply boundary condition to. -cumulativeFlux real64 (no description available) -fieldName groupNameRef Name of field that boundary condition is applied to. -objectPath groupNameRef Path to the target field -============== ============ ============================================================== - - diff --git a/src/coreComponents/schema/docs/Benchmarks.rst b/src/coreComponents/schema/docs/Benchmarks.rst deleted file mode 100644 index faa738ea57d..00000000000 --- a/src/coreComponents/schema/docs/Benchmarks.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -======= ==== ======= ================== -Name Type Default Description -======= ==== ======= ================== -crusher node unique :ref:`XML_crusher` -lassen node unique :ref:`XML_lassen` -quartz node unique :ref:`XML_quartz` -======= ==== ======= ================== - - diff --git a/src/coreComponents/schema/docs/Benchmarks_other.rst b/src/coreComponents/schema/docs/Benchmarks_other.rst deleted file mode 100644 index daf4c9768fa..00000000000 --- a/src/coreComponents/schema/docs/Benchmarks_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -======= ==== ============================ -Name Type Description -======= ==== ============================ -crusher node :ref:`DATASTRUCTURE_crusher` -lassen node :ref:`DATASTRUCTURE_lassen` -quartz node :ref:`DATASTRUCTURE_quartz` -======= ==== ============================ - - diff --git a/src/coreComponents/schema/docs/BiotPorosity.rst b/src/coreComponents/schema/docs/BiotPorosity.rst deleted file mode 100644 index e0098540256..00000000000 --- a/src/coreComponents/schema/docs/BiotPorosity.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -======================== ========= ======== =========================================================== -Name Type Default Description -======================== ========= ======== =========================================================== -defaultGrainBulkModulus real64 required Grain bulk modulus -defaultPorosityTEC real64 0 Default thermal expansion coefficient -defaultReferencePorosity real64 required Default value of the reference porosity -name groupName required A name is required for any non-unique nodes -useUniaxialFixedStress integer 0 Flag enabling uniaxial approximation in fixed stress update -======================== ========= ======== =========================================================== - - diff --git a/src/coreComponents/schema/docs/BiotPorosity_other.rst b/src/coreComponents/schema/docs/BiotPorosity_other.rst deleted file mode 100644 index 335965a9ad6..00000000000 --- a/src/coreComponents/schema/docs/BiotPorosity_other.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -================================= ============== ================================================================================================ -Name Type Description -================================= ============== ================================================================================================ -averageMeanTotalStressIncrement_k real64_array Mean total stress increment averaged over quadrature points at the previous sequential iteration -biotCoefficient real64_array Biot coefficient -dPorosity_dPressure real64_array2d Derivative of rock porosity with respect to pressure -dPorosity_dTemperature real64_array2d Derivative of rock porosity with respect to temperature -grainBulkModulus real64_array Grain Bulk modulus. -initialPorosity real64_array2d Initial porosity -meanTotalStressIncrement_k real64_array2d Mean total stress increment at quadrature points at the previous sequential iteration -porosity real64_array2d Rock porosity -porosity_n real64_array2d Rock porosity at the previous converged time step -referencePorosity real64_array Reference porosity -solidBulkModulus real64_array Solid bulk modulus -solidShearModulus real64_array Solid shear modulus -thermalExpansionCoefficient real64_array Thermal expansion coefficient -================================= ============== ================================================================================================ - - diff --git a/src/coreComponents/schema/docs/BlackOilFluid.rst b/src/coreComponents/schema/docs/BlackOilFluid.rst deleted file mode 100644 index c34b2d2ec84..00000000000 --- a/src/coreComponents/schema/docs/BlackOilFluid.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -======================================= ================== ======== ===================================================================================================================================================================================================================================================================================================== -Name Type Default Description -======================================= ================== ======== ===================================================================================================================================================================================================================================================================================================== -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentMolarWeight real64_array required Component molar weights -componentNames string_array {} List of component names -hydrocarbonFormationVolFactorTableNames groupNameRef_array {} | List of formation volume factor TableFunction names from the Functions block. - | The user must provide one TableFunction per hydrocarbon phase, in the order provided in "phaseNames". - | For instance, if "oil" is before "gas" in "phaseNames", the table order should be: oilTableName, gasTableName -hydrocarbonViscosityTableNames groupNameRef_array {} | List of viscosity TableFunction names from the Functions block. - | The user must provide one TableFunction per hydrocarbon phase, in the order provided in "phaseNames". - | For instance, if "oil" is before "gas" in "phaseNames", the table order should be: oilTableName, gasTableName -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array required List of fluid phases -surfaceDensities real64_array required List of surface mass densities for each phase -tableFiles path_array {} List of filenames with input PVT tables (one per phase) -waterCompressibility real64 0 Water compressibility -waterFormationVolumeFactor real64 0 Water formation volume factor -waterReferencePressure real64 0 Water reference pressure -waterViscosity real64 0 Water viscosity -======================================= ================== ======== ===================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/BlackOilFluid_other.rst b/src/coreComponents/schema/docs/BlackOilFluid_other.rst deleted file mode 100644 index 0ceddaa556f..00000000000 --- a/src/coreComponents/schema/docs/BlackOilFluid_other.rst +++ /dev/null @@ -1,36 +0,0 @@ - - -=============================== =================================================================================================== ============================================================================================================ -Name Type Description -=============================== =================================================================================================== ============================================================================================================ -PVTO geos_constitutive_PVTOData (no description available) -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -formationVolFactorTableWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -hydrocarbonPhaseOrder integer_array (no description available) -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseOrder integer_array (no description available) -phaseTypes integer_array (no description available) -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -viscosityTableWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -=============================== =================================================================================================== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/Blueprint.rst b/src/coreComponents/schema/docs/Blueprint.rst deleted file mode 100644 index 13d7114d15c..00000000000 --- a/src/coreComponents/schema/docs/Blueprint.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -======================== ============================= ======== =============================================================== -Name Type Default Description -======================== ============================= ======== =============================================================== -childDirectory string Child directory path -name groupName required A name is required for any non-unique nodes -outputFullQuadratureData integer 0 If true writes out data associated with every quadrature point. -parallelThreads integer 1 Number of plot files. -plotLevel geos_dataRepository_PlotLevel 1 Determines which fields to write. -======================== ============================= ======== =============================================================== - - diff --git a/src/coreComponents/schema/docs/Blueprint_other.rst b/src/coreComponents/schema/docs/Blueprint_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Blueprint_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Box.rst b/src/coreComponents/schema/docs/Box.rst deleted file mode 100644 index 02f28e2078b..00000000000 --- a/src/coreComponents/schema/docs/Box.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -====== ========= ======== =========================================== -Name Type Default Description -====== ========= ======== =========================================== -name groupName required A name is required for any non-unique nodes -strike real64 -90 The strike angle of the box -xMax R1Tensor required Maximum (x,y,z) coordinates of the box -xMin R1Tensor required Minimum (x,y,z) coordinates of the box -====== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/Box_other.rst b/src/coreComponents/schema/docs/Box_other.rst deleted file mode 100644 index b24a032b246..00000000000 --- a/src/coreComponents/schema/docs/Box_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -========= ======== ========================== -Name Type Description -========= ======== ========================== -center R1Tensor (no description available) -cosStrike real64 (no description available) -sinStrike real64 (no description available) -========= ======== ========================== - - diff --git a/src/coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability.rst b/src/coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability.rst deleted file mode 100644 index c10a2a48b2f..00000000000 --- a/src/coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -======================= ================== ======== ========================================================================================================================================================== -Name Type Default Description -======================= ================== ======== ========================================================================================================================================================== -gasOilRelPermExponent real64_array {1} | Rel perm power law exponent for the pair (gas phase, oil phase) at residual water saturation - | The expected format is "{ gasExp, oilExp }", in that order -gasOilRelPermMaxValue real64_array {0} | Maximum rel perm value for the pair (gas phase, oil phase) at residual water saturation - | The expected format is "{ gasMax, oilMax }", in that order -name groupName required A name is required for any non-unique nodes -phaseMinVolumeFraction real64_array {0} Minimum volume fraction value for each phase -phaseNames groupNameRef_array required List of fluid phases -waterOilRelPermExponent real64_array {1} | Rel perm power law exponent for the pair (water phase, oil phase) at residual gas saturation - | The expected format is "{ waterExp, oilExp }", in that order -waterOilRelPermMaxValue real64_array {0} | Maximum rel perm value for the pair (water phase, oil phase) at residual gas saturation - | The expected format is "{ waterMax, oilMax }", in that order -======================= ================== ======== ========================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability_other.rst b/src/coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability_other.rst deleted file mode 100644 index e6dd24aeb13..00000000000 --- a/src/coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=============================== ============== ======================================================================================================================= -Name Type Description -=============================== ============== ======================================================================================================================= -dPhaseRelPerm_dPhaseVolFraction real64_array4d Derivative of phase relative permeability with respect to phase volume fraction -phaseOrder integer_array (no description available) -phaseRelPerm real64_array3d Phase relative permeability -phaseRelPerm_n real64_array3d Phase relative permeability at previous time -phaseTrappedVolFraction real64_array3d Phase trapped volume fraction -phaseTypes integer_array (no description available) -volFracScale real64 Factor used to scale the phase capillary pressure, defined as: one minus the sum of the phase minimum volume fractions. -=============================== ============== ======================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/BrooksCoreyCapillaryPressure.rst b/src/coreComponents/schema/docs/BrooksCoreyCapillaryPressure.rst deleted file mode 100644 index 32e8ddad824..00000000000 --- a/src/coreComponents/schema/docs/BrooksCoreyCapillaryPressure.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -=========================== ================== ======== ============================================================================================================================================== -Name Type Default Description -=========================== ================== ======== ============================================================================================================================================== -capPressureEpsilon real64 1e-06 Wetting-phase saturation at which the max cap. pressure is attained; used to avoid infinite cap. pressure values for saturations close to zero -name groupName required A name is required for any non-unique nodes -phaseCapPressureExponentInv real64_array {2} Inverse of capillary power law exponent for each phase -phaseEntryPressure real64_array {1} Entry pressure value for each phase -phaseMinVolumeFraction real64_array {0} Minimum volume fraction value for each phase -phaseNames groupNameRef_array required List of fluid phases -=========================== ================== ======== ============================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/BrooksCoreyCapillaryPressure_other.rst b/src/coreComponents/schema/docs/BrooksCoreyCapillaryPressure_other.rst deleted file mode 100644 index 336528e2f6f..00000000000 --- a/src/coreComponents/schema/docs/BrooksCoreyCapillaryPressure_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -=================================== ============== ======================================================================================================================= -Name Type Description -=================================== ============== ======================================================================================================================= -dPhaseCapPressure_dPhaseVolFraction real64_array4d Derivative of phase capillary pressure with respect to phase volume fraction -phaseCapPressure real64_array3d Phase capillary pressure -phaseOrder integer_array (no description available) -phaseTypes integer_array (no description available) -volFracScale real64 Factor used to scale the phase capillary pressure, defined as: one minus the sum of the phase minimum volume fractions. -=================================== ============== ======================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/BrooksCoreyRelativePermeability.rst b/src/coreComponents/schema/docs/BrooksCoreyRelativePermeability.rst deleted file mode 100644 index 675393020c0..00000000000 --- a/src/coreComponents/schema/docs/BrooksCoreyRelativePermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -====================== ================== ======== =============================================================== -Name Type Default Description -====================== ================== ======== =============================================================== -name groupName required A name is required for any non-unique nodes -phaseMinVolumeFraction real64_array {0} Minimum volume fraction value for each phase -phaseNames groupNameRef_array required List of fluid phases -phaseRelPermExponent real64_array {1} Minimum relative permeability power law exponent for each phase -phaseRelPermMaxValue real64_array {0} Maximum relative permeability value for each phase -====================== ================== ======== =============================================================== - - diff --git a/src/coreComponents/schema/docs/BrooksCoreyRelativePermeability_other.rst b/src/coreComponents/schema/docs/BrooksCoreyRelativePermeability_other.rst deleted file mode 100644 index d77ac5b3557..00000000000 --- a/src/coreComponents/schema/docs/BrooksCoreyRelativePermeability_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=============================== ============== ========================================================================================================================== -Name Type Description -=============================== ============== ========================================================================================================================== -dPhaseRelPerm_dPhaseVolFraction real64_array4d Derivative of phase relative permeability with respect to phase volume fraction -phaseOrder integer_array (no description available) -phaseRelPerm real64_array3d Phase relative permeability -phaseRelPerm_n real64_array3d Phase relative permeability at previous time -phaseTrappedVolFraction real64_array3d Phase trapped volume fraction -phaseTypes integer_array (no description available) -volFracScale real64 Factor used to scale the phase relative permeability, defined as: one minus the sum of the phase minimum volume fractions. -=============================== ============== ========================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/BrooksCoreyStone2RelativePermeability.rst b/src/coreComponents/schema/docs/BrooksCoreyStone2RelativePermeability.rst deleted file mode 100644 index c10a2a48b2f..00000000000 --- a/src/coreComponents/schema/docs/BrooksCoreyStone2RelativePermeability.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -======================= ================== ======== ========================================================================================================================================================== -Name Type Default Description -======================= ================== ======== ========================================================================================================================================================== -gasOilRelPermExponent real64_array {1} | Rel perm power law exponent for the pair (gas phase, oil phase) at residual water saturation - | The expected format is "{ gasExp, oilExp }", in that order -gasOilRelPermMaxValue real64_array {0} | Maximum rel perm value for the pair (gas phase, oil phase) at residual water saturation - | The expected format is "{ gasMax, oilMax }", in that order -name groupName required A name is required for any non-unique nodes -phaseMinVolumeFraction real64_array {0} Minimum volume fraction value for each phase -phaseNames groupNameRef_array required List of fluid phases -waterOilRelPermExponent real64_array {1} | Rel perm power law exponent for the pair (water phase, oil phase) at residual gas saturation - | The expected format is "{ waterExp, oilExp }", in that order -waterOilRelPermMaxValue real64_array {0} | Maximum rel perm value for the pair (water phase, oil phase) at residual gas saturation - | The expected format is "{ waterMax, oilMax }", in that order -======================= ================== ======== ========================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/BrooksCoreyStone2RelativePermeability_other.rst b/src/coreComponents/schema/docs/BrooksCoreyStone2RelativePermeability_other.rst deleted file mode 100644 index e6dd24aeb13..00000000000 --- a/src/coreComponents/schema/docs/BrooksCoreyStone2RelativePermeability_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=============================== ============== ======================================================================================================================= -Name Type Description -=============================== ============== ======================================================================================================================= -dPhaseRelPerm_dPhaseVolFraction real64_array4d Derivative of phase relative permeability with respect to phase volume fraction -phaseOrder integer_array (no description available) -phaseRelPerm real64_array3d Phase relative permeability -phaseRelPerm_n real64_array3d Phase relative permeability at previous time -phaseTrappedVolFraction real64_array3d Phase trapped volume fraction -phaseTypes integer_array (no description available) -volFracScale real64 Factor used to scale the phase capillary pressure, defined as: one minus the sum of the phase minimum volume fractions. -=============================== ============== ======================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/CO2BrineEzrokhiFluid.rst b/src/coreComponents/schema/docs/CO2BrineEzrokhiFluid.rst deleted file mode 100644 index 8d5cb05986a..00000000000 --- a/src/coreComponents/schema/docs/CO2BrineEzrokhiFluid.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -==================== ================== ======== ============================================================================================================ -Name Type Default Description -==================== ================== ======== ============================================================================================================ -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentMolarWeight real64_array {0} Component molar weights -componentNames string_array {} List of component names -flashModelParaFile path Name of the file defining the parameters of the flash model -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array {} List of fluid phases -phasePVTParaFiles path_array required Names of the files defining the parameters of the viscosity and density models -solubilityTableNames string_array {} Names of solubility tables for each phase -==================== ================== ======== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CO2BrineEzrokhiFluid_other.rst b/src/coreComponents/schema/docs/CO2BrineEzrokhiFluid_other.rst deleted file mode 100644 index 28636011f61..00000000000 --- a/src/coreComponents/schema/docs/CO2BrineEzrokhiFluid_other.rst +++ /dev/null @@ -1,30 +0,0 @@ - - -===================== ========================================================================================= ============================================================================================================ -Name Type Description -===================== ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -===================== ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CO2BrineEzrokhiThermalFluid.rst b/src/coreComponents/schema/docs/CO2BrineEzrokhiThermalFluid.rst deleted file mode 100644 index 8d5cb05986a..00000000000 --- a/src/coreComponents/schema/docs/CO2BrineEzrokhiThermalFluid.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -==================== ================== ======== ============================================================================================================ -Name Type Default Description -==================== ================== ======== ============================================================================================================ -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentMolarWeight real64_array {0} Component molar weights -componentNames string_array {} List of component names -flashModelParaFile path Name of the file defining the parameters of the flash model -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array {} List of fluid phases -phasePVTParaFiles path_array required Names of the files defining the parameters of the viscosity and density models -solubilityTableNames string_array {} Names of solubility tables for each phase -==================== ================== ======== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CO2BrineEzrokhiThermalFluid_other.rst b/src/coreComponents/schema/docs/CO2BrineEzrokhiThermalFluid_other.rst deleted file mode 100644 index 28636011f61..00000000000 --- a/src/coreComponents/schema/docs/CO2BrineEzrokhiThermalFluid_other.rst +++ /dev/null @@ -1,30 +0,0 @@ - - -===================== ========================================================================================= ============================================================================================================ -Name Type Description -===================== ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -===================== ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CO2BrinePhillipsFluid.rst b/src/coreComponents/schema/docs/CO2BrinePhillipsFluid.rst deleted file mode 100644 index 8d5cb05986a..00000000000 --- a/src/coreComponents/schema/docs/CO2BrinePhillipsFluid.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -==================== ================== ======== ============================================================================================================ -Name Type Default Description -==================== ================== ======== ============================================================================================================ -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentMolarWeight real64_array {0} Component molar weights -componentNames string_array {} List of component names -flashModelParaFile path Name of the file defining the parameters of the flash model -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array {} List of fluid phases -phasePVTParaFiles path_array required Names of the files defining the parameters of the viscosity and density models -solubilityTableNames string_array {} Names of solubility tables for each phase -==================== ================== ======== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CO2BrinePhillipsFluid_other.rst b/src/coreComponents/schema/docs/CO2BrinePhillipsFluid_other.rst deleted file mode 100644 index 28636011f61..00000000000 --- a/src/coreComponents/schema/docs/CO2BrinePhillipsFluid_other.rst +++ /dev/null @@ -1,30 +0,0 @@ - - -===================== ========================================================================================= ============================================================================================================ -Name Type Description -===================== ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -===================== ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CO2BrinePhillipsThermalFluid.rst b/src/coreComponents/schema/docs/CO2BrinePhillipsThermalFluid.rst deleted file mode 100644 index 8d5cb05986a..00000000000 --- a/src/coreComponents/schema/docs/CO2BrinePhillipsThermalFluid.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -==================== ================== ======== ============================================================================================================ -Name Type Default Description -==================== ================== ======== ============================================================================================================ -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentMolarWeight real64_array {0} Component molar weights -componentNames string_array {} List of component names -flashModelParaFile path Name of the file defining the parameters of the flash model -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array {} List of fluid phases -phasePVTParaFiles path_array required Names of the files defining the parameters of the viscosity and density models -solubilityTableNames string_array {} Names of solubility tables for each phase -==================== ================== ======== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CO2BrinePhillipsThermalFluid_other.rst b/src/coreComponents/schema/docs/CO2BrinePhillipsThermalFluid_other.rst deleted file mode 100644 index 28636011f61..00000000000 --- a/src/coreComponents/schema/docs/CO2BrinePhillipsThermalFluid_other.rst +++ /dev/null @@ -1,30 +0,0 @@ - - -===================== ========================================================================================= ============================================================================================================ -Name Type Description -===================== ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -===================== ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CarmanKozenyPermeability.rst b/src/coreComponents/schema/docs/CarmanKozenyPermeability.rst deleted file mode 100644 index 5bda6c4bfbc..00000000000 --- a/src/coreComponents/schema/docs/CarmanKozenyPermeability.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================ ========= ======== ===================================================== -Name Type Default Description -================ ========= ======== ===================================================== -anisotropy R1Tensor {1,1,1} Anisotropy factors for three permeability components. -name groupName required A name is required for any non-unique nodes -particleDiameter real64 required Diameter of the spherical particles. -sphericity real64 required Sphericity of the particles. -================ ========= ======== ===================================================== - - diff --git a/src/coreComponents/schema/docs/CarmanKozenyPermeability_other.rst b/src/coreComponents/schema/docs/CarmanKozenyPermeability_other.rst deleted file mode 100644 index 3e91e0e04e9..00000000000 --- a/src/coreComponents/schema/docs/CarmanKozenyPermeability_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -=============== ============== ======================================================== -Name Type Description -=============== ============== ======================================================== -dPerm_dPorosity real64_array3d (no description available) -dPerm_dPressure real64_array3d Derivative of rock permeability with respect to pressure -permeability real64_array3d Rock permeability -=============== ============== ======================================================== - - diff --git a/src/coreComponents/schema/docs/CellElementRegion.rst b/src/coreComponents/schema/docs/CellElementRegion.rst deleted file mode 100644 index 7c773016b98..00000000000 --- a/src/coreComponents/schema/docs/CellElementRegion.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -=============== ================== ======== =========================================== -Name Type Default Description -=============== ================== ======== =========================================== -cellBlocks groupNameRef_array required (no description available) -coarseningRatio real64 0 (no description available) -materialList groupNameRef_array required List of materials present in this region -meshBody groupNameRef Mesh body that contains this region -name groupName required A name is required for any non-unique nodes -=============== ================== ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CellElementRegion_other.rst b/src/coreComponents/schema/docs/CellElementRegion_other.rst deleted file mode 100644 index bb012ac8ff4..00000000000 --- a/src/coreComponents/schema/docs/CellElementRegion_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -======================= ================================================================= ========================================================= -Name Type Description -======================= ================================================================= ========================================================= -domainBoundaryIndicator integer_array (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -elementSubRegions node :ref:`DATASTRUCTURE_elementSubRegions` -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ================================================================= ========================================================= - - diff --git a/src/coreComponents/schema/docs/CellToCellDataCollection.rst b/src/coreComponents/schema/docs/CellToCellDataCollection.rst deleted file mode 100644 index 90337122674..00000000000 --- a/src/coreComponents/schema/docs/CellToCellDataCollection.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============== ============ ======== =================================================== -Name Type Default Description -============== ============ ======== =================================================== -flowSolverName groupNameRef required Name of the flow solver, to get the permeabilities. -logLevel integer 0 When higher than 1: Display store events details. -meshBody groupNameRef required Name of the target -name groupName required A name is required for any non-unique nodes -============== ============ ======== =================================================== - - diff --git a/src/coreComponents/schema/docs/CellToCellDataCollection_other.rst b/src/coreComponents/schema/docs/CellToCellDataCollection_other.rst deleted file mode 100644 index 4b1a6106d81..00000000000 --- a/src/coreComponents/schema/docs/CellToCellDataCollection_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================== ================= ========================== -Name Type Description -================== ================= ========================== -cellAGlobalId globalIndex_array (no description available) -cellBGlobalId globalIndex_array (no description available) -transmissibilityAB real64_array (no description available) -transmissibilityBA real64_array (no description available) -================== ================= ========================== - - diff --git a/src/coreComponents/schema/docs/CeramicDamage.rst b/src/coreComponents/schema/docs/CeramicDamage.rst deleted file mode 100644 index fa671dd48bc..00000000000 --- a/src/coreComponents/schema/docs/CeramicDamage.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -======================= ========= ======== ==================================================================== -Name Type Default Description -======================= ========= ======== ==================================================================== -compressiveStrength real64 required Compressive strength -crackSpeed real64 required Crack speed -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -maximumStrength real64 required Maximum theoretical strength -name groupName required A name is required for any non-unique nodes -tensileStrength real64 required Tensile strength -======================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/CeramicDamage_other.rst b/src/coreComponents/schema/docs/CeramicDamage_other.rst deleted file mode 100644 index 4614da5bcc8..00000000000 --- a/src/coreComponents/schema/docs/CeramicDamage_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -damage real64_array2d Array of quadrature point damage values -density real64_array2d Material Density -jacobian real64_array2d Array of quadrature point jacobian values -lengthScale real64_array Array of quadrature point damage values -oldStress real64_array3d Previous Material Stress -shearModulus real64_array Elastic Shear Modulus Field -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/ChomboIO.rst b/src/coreComponents/schema/docs/ChomboIO.rst deleted file mode 100644 index 4bce4a9f5f9..00000000000 --- a/src/coreComponents/schema/docs/ChomboIO.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -================== ========= =================== ============================================================================================== -Name Type Default Description -================== ========= =================== ============================================================================================== -beginCycle real64 required Cycle at which the coupling will commence. -childDirectory string Child directory path -inputPath string /INVALID_INPUT_PATH Path at which the chombo to geos file will be written. -name groupName required A name is required for any non-unique nodes -outputPath string required Path at which the geos to chombo file will be written. -parallelThreads integer 1 Number of plot files. -useChomboPressures integer 0 True iff geos should use the pressures chombo writes out. -waitForInput integer required True iff geos should wait for chombo to write out a file. When true the inputPath must be set. -================== ========= =================== ============================================================================================== - - diff --git a/src/coreComponents/schema/docs/ChomboIO_other.rst b/src/coreComponents/schema/docs/ChomboIO_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/ChomboIO_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompositeFunction.rst b/src/coreComponents/schema/docs/CompositeFunction.rst deleted file mode 100644 index 81bfb601d57..00000000000 --- a/src/coreComponents/schema/docs/CompositeFunction.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============= ================== ======== ========================================================================== -Name Type Default Description -============= ================== ======== ========================================================================== -expression string Composite math expression -functionNames string_array {} List of source functions. The order must match the variableNames argument. -inputVarNames groupNameRef_array {} Name of fields are input to function. -name groupName required A name is required for any non-unique nodes -variableNames groupNameRef_array {} List of variables in expression -============= ================== ======== ========================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositeFunction_other.rst b/src/coreComponents/schema/docs/CompositeFunction_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompositeFunction_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseFVM.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseFVM.rst deleted file mode 100644 index a2b0c70f5fc..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseFVM.rst +++ /dev/null @@ -1,49 +0,0 @@ - - -========================================= =========================================== ============ ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================================= =========================================== ============ ======================================================================================================================================================================================================================================================================================================================== -allowLocalCompDensityChopping integer 1 Flag indicating whether local (cell-wise) chopping of negative compositions is allowed -allowNegativePressure integer 1 Flag indicating if negative pressure is allowed -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -contMultiplierDBC real64 0.5 Factor by which continuation parameter is changed every newton when DBC is used -continuationDBC integer 1 Flag for enabling continuation parameter -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. -kappaminDBC real64 1e-20 Factor that controls how much dissipation is kept in the system when continuation is used -logLevel integer 0 Log level -maxAbsolutePressureChange real64 -1 Maximum (absolute) pressure change in a Newton iteration -maxCompFractionChange real64 0.5 Maximum (absolute) change in a component fraction in a Newton iteration -maxRelativeCompDensChange real64 1.79769e+308 Maximum (relative) change in a component density in a Newton iteration -maxRelativePressureChange real64 0.5 Maximum (relative) change in pressure in a Newton iteration -maxRelativeTemperatureChange real64 0.5 Maximum (relative) change in temperature in a Newton iteration -maxSequentialCompDensChange real64 1 Maximum (absolute) component density change in a sequential iteration, used for outer loop convergence check -maxSequentialPressureChange real64 100000 Maximum (absolute) pressure change in a sequential iteration, used for outer loop convergence check -maxSequentialTemperatureChange real64 0.1 Maximum (absolute) temperature change in a sequential iteration, used for outer loop convergence check -minCompDens real64 1e-10 Minimum allowed global component density -minScalingFactor real64 0.01 Minimum value for solution scaling factor -miscibleDBC integer 0 Flag for enabling DBC formulation with/without miscibility -name groupName required A name is required for any non-unique nodes -omegaDBC real64 1 Factor by which DBC flux is multiplied -scalingType geos_CompositionalMultiphaseFVM_ScalingType Global | Solution scaling type.Valid options: - | * Global - | * Local -solutionChangeScalingFactor real64 0.5 Damping factor for solution change targets -targetFlowCFL real64 -1 Target CFL condition `CFL condition `_when computing the next timestep. -targetPhaseVolFractionChangeInTimeStep real64 0.2 Target (absolute) change in phase volume fraction in a time step -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -targetRelativeCompDensChangeInTimeStep real64 1.79769e+308 Target (relative) change in component density in a time step -targetRelativePressureChangeInTimeStep real64 0.2 Target (relative) change in pressure in a time step (expected value between 0 and 1) -targetRelativeTemperatureChangeInTimeStep real64 0.2 Target (relative) change in temperature in a time step (expected value between 0 and 1) -temperature real64 required Temperature -useDBC integer 0 Enable Dissipation-based continuation flux -useMass integer 0 Use mass formulation instead of molar. Warning : Affects SourceFlux rates units. -useSimpleAccumulation integer 1 Flag indicating whether simple accumulation form is used -useTotalMassEquation integer 1 Flag indicating whether total mass equation is used -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================================= =========================================== ============ ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst deleted file mode 100644 index f296d4de732..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseFluid.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseFluid.rst deleted file mode 100644 index dab7f7ffa9f..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseFluid.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -============================ ================== ======== ============================================================================================================ -Name Type Default Description -============================ ================== ======== ============================================================================================================ -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentAcentricFactor real64_array required Component acentric factors -componentBinaryCoeff real64_array2d {{0}} Table of binary interaction coefficients -componentCriticalPressure real64_array required Component critical pressures -componentCriticalTemperature real64_array required Component critical temperatures -componentMolarWeight real64_array required Component molar weights -componentNames string_array required List of component names -componentVolumeShift real64_array {0} Component volume shifts -constantPhaseViscosity real64_array {0} Viscosity for each phase -equationsOfState string_array required List of equation of state types for each phase -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array required List of fluid phases -============================ ================== ======== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseFluid_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseFluid_other.rst deleted file mode 100644 index 28636011f61..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseFluid_other.rst +++ /dev/null @@ -1,30 +0,0 @@ - - -===================== ========================================================================================= ============================================================================================================ -Name Type Description -===================== ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -===================== ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM.rst deleted file mode 100644 index 2cf53fd6857..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM.rst +++ /dev/null @@ -1,40 +0,0 @@ - - -========================================= ================== ============ ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================================= ================== ============ ======================================================================================================================================================================================================================================================================================================================== -allowLocalCompDensityChopping integer 1 Flag indicating whether local (cell-wise) chopping of negative compositions is allowed -allowNegativePressure integer 1 Flag indicating if negative pressure is allowed -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. -logLevel integer 0 Log level -maxAbsolutePressureChange real64 -1 Maximum (absolute) pressure change in a Newton iteration -maxCompFractionChange real64 0.5 Maximum (absolute) change in a component fraction in a Newton iteration -maxRelativeCompDensChange real64 1.79769e+308 Maximum (relative) change in a component density in a Newton iteration -maxRelativePressureChange real64 0.5 Maximum (relative) change in pressure in a Newton iteration -maxRelativeTemperatureChange real64 0.5 Maximum (relative) change in temperature in a Newton iteration -maxSequentialCompDensChange real64 1 Maximum (absolute) component density change in a sequential iteration, used for outer loop convergence check -maxSequentialPressureChange real64 100000 Maximum (absolute) pressure change in a sequential iteration, used for outer loop convergence check -maxSequentialTemperatureChange real64 0.1 Maximum (absolute) temperature change in a sequential iteration, used for outer loop convergence check -minCompDens real64 1e-10 Minimum allowed global component density -minScalingFactor real64 0.01 Minimum value for solution scaling factor -name groupName required A name is required for any non-unique nodes -solutionChangeScalingFactor real64 0.5 Damping factor for solution change targets -targetFlowCFL real64 -1 Target CFL condition `CFL condition `_when computing the next timestep. -targetPhaseVolFractionChangeInTimeStep real64 0.2 Target (absolute) change in phase volume fraction in a time step -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -targetRelativeCompDensChangeInTimeStep real64 1.79769e+308 Target (relative) change in component density in a time step -targetRelativePressureChangeInTimeStep real64 0.2 Target (relative) change in pressure in a time step (expected value between 0 and 1) -targetRelativeTemperatureChangeInTimeStep real64 0.2 Target (relative) change in temperature in a time step (expected value between 0 and 1) -temperature real64 required Temperature -useMass integer 0 Use mass formulation instead of molar. Warning : Affects SourceFlux rates units. -useSimpleAccumulation integer 1 Flag indicating whether simple accumulation form is used -useTotalMassEquation integer 1 Flag indicating whether total mass equation is used -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================================= ================== ============ ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst deleted file mode 100644 index 2944d71993d..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================ ================================================================ -Name Type Registered On Description -========================= ====================================================================================================================================================== ================================ ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -facePressure_n real64_array :ref:`DATASTRUCTURE_faceManager` Face pressure at the previous converged time step -mimGravityCoefficient real64_array :ref:`DATASTRUCTURE_faceManager` Mimetic gravity coefficient -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================ ================================================================ - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir.rst deleted file mode 100644 index 9b67dda6230..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -flowSolverName groupNameRef required Name of the flow solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -wellSolverName groupNameRef required Name of the well solver used by the coupled solver -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanics.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanics.rst deleted file mode 100644 index 6ec494e2d08..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanics.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -=========================== ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -=========================== ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. Set isThermal="1" to enable the thermal coupling -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -reservoirAndWellsSolverName groupNameRef required Name of the reservoirAndWells solver used by the coupled solver -solidSolverName groupNameRef required Name of the solid solver used by the coupled solver -stabilizationMultiplier real64 1 Constant multiplier of stabilization strength -stabilizationRegionNames groupNameRef_array {} Regions where stabilization is applied. -stabilizationType geos_stabilization_StabilizationType None | StabilizationType. Options are: - | None- Add no stabilization to mass equation - | Global- Add jump stabilization to all faces - | Local- Add jump stabilization on interior of macro elements -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -=========================== ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanicsInitialization.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanicsInitialization.rst deleted file mode 100644 index 18e3a0dd9e7..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanicsInitialization.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver -solidMechanicsStatisticsName groupNameRef Name of the solid mechanics statistics -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanicsInitialization_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanicsInitialization_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanicsInitialization_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanics_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanics_other.rst deleted file mode 100644 index dc33be0a036..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanics_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -performStressInitialization integer Flag to indicate that the solver is going to perform stress initialization -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst deleted file mode 100644 index cccf4603c70..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseStatistics.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseStatistics.rst deleted file mode 100644 index 4a386d1d1c3..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseStatistics.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -======================= ============ ======== =============================================================================================================================================================== -Name Type Default Description -======================= ============ ======== =============================================================================================================================================================== -computeCFLNumbers integer 0 Flag to decide whether CFL numbers are computed or not -computeRegionStatistics integer 1 Flag to decide whether region statistics are computed or not -flowSolverName groupNameRef required Name of the flow solver -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -relpermThreshold real64 1e-06 Flag to decide whether a phase is considered mobile (when the relperm is above the threshold) or immobile (when the relperm is below the threshold) in metric 2 -writeCSV integer 0 Write statistics into a CSV file -======================= ============ ======== =============================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseStatistics_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseStatistics_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseStatistics_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseWell.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseWell.rst deleted file mode 100644 index a88b696ae6c..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseWell.rst +++ /dev/null @@ -1,27 +0,0 @@ - - -============================= ================== ============ ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================= ================== ============ ====================================================================================================================================================================================================================================================================================================================== -allowLocalCompDensityChopping integer 1 Flag indicating whether local (cell-wise) chopping of negative compositions is allowed -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. -logLevel integer 0 Log level -maxAbsolutePressureChange real64 -1 Maximum (absolute) pressure change in a Newton iteration -maxCompFractionChange real64 1 Maximum (absolute) change in a component fraction between two Newton iterations -maxRelativeCompDensChange real64 1.79769e+308 Maximum (relative) change in a component density between two Newton iterations -maxRelativePressureChange real64 1 Maximum (relative) change in pressure between two Newton iterations (recommended with rate control) -maxRelativeTemperatureChange real64 1 Maximum (relative) change in temperature between two Newton iterations -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -useMass integer 0 Use mass formulation instead of molar -useTotalMassEquation integer 1 Use total mass equation -writeCSV integer 0 Write rates into a CSV file -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -WellControls node :ref:`XML_WellControls` -============================= ================== ============ ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst deleted file mode 100644 index f2c739b92d8..00000000000 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -WellControls node :ref:`DATASTRUCTURE_WellControls` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/CompositionalTwoPhaseFluid.rst b/src/coreComponents/schema/docs/CompositionalTwoPhaseFluid.rst deleted file mode 100644 index e521b87e413..00000000000 --- a/src/coreComponents/schema/docs/CompositionalTwoPhaseFluid.rst +++ /dev/null @@ -1,22 +0,0 @@ - - -============================ ================== ======== ============================================================================================================ -Name Type Default Description -============================ ================== ======== ============================================================================================================ -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentAcentricFactor real64_array required Component acentric factors -componentBinaryCoeff real64_array2d {{0}} Table of binary interaction coefficients -componentCriticalPressure real64_array required Component critical pressures -componentCriticalTemperature real64_array required Component critical temperatures -componentMolarWeight real64_array required Component molar weights -componentNames string_array required List of component names -componentVolumeShift real64_array {0} Component volume shifts -constantPhaseViscosity real64_array {0} Constant phase viscosity -equationsOfState string_array required | List of equation of state types for each phase. Valid options: - | * pr - | * srk -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array required List of fluid phases -============================ ================== ======== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CompositionalTwoPhaseFluidLohrenzBrayClark.rst b/src/coreComponents/schema/docs/CompositionalTwoPhaseFluidLohrenzBrayClark.rst deleted file mode 100644 index 7e0e2716d63..00000000000 --- a/src/coreComponents/schema/docs/CompositionalTwoPhaseFluidLohrenzBrayClark.rst +++ /dev/null @@ -1,26 +0,0 @@ - - -============================ ================== =============== ========================================================================================================================= -Name Type Default Description -============================ ================== =============== ========================================================================================================================= -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentAcentricFactor real64_array required Component acentric factors -componentBinaryCoeff real64_array2d {{0}} Table of binary interaction coefficients -componentCriticalPressure real64_array required Component critical pressures -componentCriticalTemperature real64_array required Component critical temperatures -componentCriticalVolume real64_array {0} Component critical volumes -componentMolarWeight real64_array required Component molar weights -componentNames string_array required List of component names -componentVolumeShift real64_array {0} Component volume shifts -equationsOfState string_array required | List of equation of state types for each phase. Valid options: - | * pr - | * srk -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array required List of fluid phases -viscosityMixingRule string HerningZipperer | Viscosity mixing rule to be used for Lohrenz-Bray-Clark computation. Valid options: - | * HerningZipperer - | * Wilke - | * Brokaw -============================ ================== =============== ========================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/CompositionalTwoPhaseFluidLohrenzBrayClark_other.rst b/src/coreComponents/schema/docs/CompositionalTwoPhaseFluidLohrenzBrayClark_other.rst deleted file mode 100644 index c8f51e2b3c9..00000000000 --- a/src/coreComponents/schema/docs/CompositionalTwoPhaseFluidLohrenzBrayClark_other.rst +++ /dev/null @@ -1,31 +0,0 @@ - - -===================== ========================================================================================= ============================================================================================================ -Name Type Description -===================== ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -kValues real64_array4d Phase equilibrium ratios -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -===================== ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CompositionalTwoPhaseFluid_other.rst b/src/coreComponents/schema/docs/CompositionalTwoPhaseFluid_other.rst deleted file mode 100644 index c8f51e2b3c9..00000000000 --- a/src/coreComponents/schema/docs/CompositionalTwoPhaseFluid_other.rst +++ /dev/null @@ -1,31 +0,0 @@ - - -===================== ========================================================================================= ============================================================================================================ -Name Type Description -===================== ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -kValues real64_array4d Phase equilibrium ratios -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -===================== ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/CompressibleSinglePhaseFluid.rst b/src/coreComponents/schema/docs/CompressibleSinglePhaseFluid.rst deleted file mode 100644 index bdba4fedb0b..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSinglePhaseFluid.rst +++ /dev/null @@ -1,24 +0,0 @@ - - -================== =========================================== ======== ============================================================================= -Name Type Default Description -================== =========================================== ======== ============================================================================= -compressibility real64 0 Fluid compressibility -defaultDensity real64 required Default value for density. -defaultViscosity real64 required Default value for viscosity. -densityModelType geos_constitutive_ExponentApproximationType linear | Type of density model. Valid options: - | * exponential - | * linear - | * quadratic -name groupName required A name is required for any non-unique nodes -referenceDensity real64 1000 Reference fluid density -referencePressure real64 0 Reference pressure -referenceViscosity real64 0.001 Reference fluid viscosity -viscosibility real64 0 Fluid viscosity exponential coefficient -viscosityModelType geos_constitutive_ExponentApproximationType linear | Type of viscosity model. Valid options: - | * exponential - | * linear - | * quadratic -================== =========================================== ======== ============================================================================= - - diff --git a/src/coreComponents/schema/docs/CompressibleSinglePhaseFluid_other.rst b/src/coreComponents/schema/docs/CompressibleSinglePhaseFluid_other.rst deleted file mode 100644 index 53255e66ebc..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSinglePhaseFluid_other.rst +++ /dev/null @@ -1,22 +0,0 @@ - - -============================ ============== ========================================================= -Name Type Description -============================ ============== ========================================================= -dDensity_dPressure real64_array2d Derivative of density with respect to pressure -dDensity_dTemperature real64_array2d Derivative of density with respect to temperature -dEnthalpy_dPressure real64_array2d Derivative of enthalpy with respect to pressure -dEnthalpy_dTemperature real64_array2d Derivative of enthalpy with respect to temperature -dInternalEnergy_dPressure real64_array2d Derivative of internal energy with respect to pressure -dInternalEnergy_dTemperature real64_array2d Derivative of internal energy with respect to temperature -dViscosity_dPressure real64_array2d Derivative of viscosity with respect to pressure -dViscosity_dTemperature real64_array2d Derivative of viscosity with respect to temperature -density real64_array2d Density -density_n real64_array2d Density at the previous converged time step -enthalpy real64_array2d Enthalpy -internalEnergy real64_array2d Internal energy -internalEnergy_n real64_array2d Fluid internal energy at the previous converged step -viscosity real64_array2d Viscosity -============================ ============== ========================================================= - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidCarmanKozenyPermeability.rst b/src/coreComponents/schema/docs/CompressibleSolidCarmanKozenyPermeability.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidCarmanKozenyPermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidCarmanKozenyPermeability_other.rst b/src/coreComponents/schema/docs/CompressibleSolidCarmanKozenyPermeability_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidCarmanKozenyPermeability_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidConstantPermeability.rst b/src/coreComponents/schema/docs/CompressibleSolidConstantPermeability.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidConstantPermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidConstantPermeability_other.rst b/src/coreComponents/schema/docs/CompressibleSolidConstantPermeability_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidConstantPermeability_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidExponentialDecayPermeability.rst b/src/coreComponents/schema/docs/CompressibleSolidExponentialDecayPermeability.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidExponentialDecayPermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidExponentialDecayPermeability_other.rst b/src/coreComponents/schema/docs/CompressibleSolidExponentialDecayPermeability_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidExponentialDecayPermeability_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidParallelPlatesPermeability.rst b/src/coreComponents/schema/docs/CompressibleSolidParallelPlatesPermeability.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidParallelPlatesPermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidParallelPlatesPermeability_other.rst b/src/coreComponents/schema/docs/CompressibleSolidParallelPlatesPermeability_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidParallelPlatesPermeability_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidPressurePermeability.rst b/src/coreComponents/schema/docs/CompressibleSolidPressurePermeability.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidPressurePermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidPressurePermeability_other.rst b/src/coreComponents/schema/docs/CompressibleSolidPressurePermeability_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidPressurePermeability_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidSlipDependentPermeability.rst b/src/coreComponents/schema/docs/CompressibleSolidSlipDependentPermeability.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidSlipDependentPermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidSlipDependentPermeability_other.rst b/src/coreComponents/schema/docs/CompressibleSolidSlipDependentPermeability_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidSlipDependentPermeability_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidWillisRichardsPermeability.rst b/src/coreComponents/schema/docs/CompressibleSolidWillisRichardsPermeability.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidWillisRichardsPermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/CompressibleSolidWillisRichardsPermeability_other.rst b/src/coreComponents/schema/docs/CompressibleSolidWillisRichardsPermeability_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CompressibleSolidWillisRichardsPermeability_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/ConstantDiffusion.rst b/src/coreComponents/schema/docs/ConstantDiffusion.rst deleted file mode 100644 index 4b1d8180c32..00000000000 --- a/src/coreComponents/schema/docs/ConstantDiffusion.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================================== ============ ======== ========================================================= -Name Type Default Description -================================== ============ ======== ========================================================= -defaultPhaseDiffusivityMultipliers real64_array {1} List of phase diffusivity multipliers -diffusivityComponents real64_array required xx, yy, and zz components of a diffusivity tensor [m^2/s] -name groupName required A name is required for any non-unique nodes -phaseNames string_array required List of fluid phases -================================== ============ ======== ========================================================= - - diff --git a/src/coreComponents/schema/docs/ConstantDiffusion_other.rst b/src/coreComponents/schema/docs/ConstantDiffusion_other.rst deleted file mode 100644 index 1879103f909..00000000000 --- a/src/coreComponents/schema/docs/ConstantDiffusion_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -========================== ============== ====================================================== -Name Type Description -========================== ============== ====================================================== -dDiffusivity_dTemperature real64_array3d Derivatives of diffusivity with respect to temperature -diffusivity real64_array3d Diffusivity -phaseDiffusivityMultiplier real64_array3d Phase multipliers for the diffusivity coefficients -========================== ============== ====================================================== - - diff --git a/src/coreComponents/schema/docs/ConstantPermeability.rst b/src/coreComponents/schema/docs/ConstantPermeability.rst deleted file mode 100644 index dc2314ec8db..00000000000 --- a/src/coreComponents/schema/docs/ConstantPermeability.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -====================== ========= ======== =========================================================== -Name Type Default Description -====================== ========= ======== =========================================================== -name groupName required A name is required for any non-unique nodes -permeabilityComponents R1Tensor required xx, yy and zz components of a diagonal permeability tensor. -====================== ========= ======== =========================================================== - - diff --git a/src/coreComponents/schema/docs/ConstantPermeability_other.rst b/src/coreComponents/schema/docs/ConstantPermeability_other.rst deleted file mode 100644 index fa997a57413..00000000000 --- a/src/coreComponents/schema/docs/ConstantPermeability_other.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -=============== ============== ======================================================== -Name Type Description -=============== ============== ======================================================== -dPerm_dPressure real64_array3d Derivative of rock permeability with respect to pressure -permeability real64_array3d Rock permeability -=============== ============== ======================================================== - - diff --git a/src/coreComponents/schema/docs/Constitutive.rst b/src/coreComponents/schema/docs/Constitutive.rst deleted file mode 100644 index c62cb08d281..00000000000 --- a/src/coreComponents/schema/docs/Constitutive.rst +++ /dev/null @@ -1,92 +0,0 @@ - - -============================================= ==== ======= ======================================================== -Name Type Default Description -============================================= ==== ======= ======================================================== -BiotPorosity node :ref:`XML_BiotPorosity` -BlackOilFluid node :ref:`XML_BlackOilFluid` -BrooksCoreyBakerRelativePermeability node :ref:`XML_BrooksCoreyBakerRelativePermeability` -BrooksCoreyCapillaryPressure node :ref:`XML_BrooksCoreyCapillaryPressure` -BrooksCoreyRelativePermeability node :ref:`XML_BrooksCoreyRelativePermeability` -BrooksCoreyStone2RelativePermeability node :ref:`XML_BrooksCoreyStone2RelativePermeability` -CO2BrineEzrokhiFluid node :ref:`XML_CO2BrineEzrokhiFluid` -CO2BrineEzrokhiThermalFluid node :ref:`XML_CO2BrineEzrokhiThermalFluid` -CO2BrinePhillipsFluid node :ref:`XML_CO2BrinePhillipsFluid` -CO2BrinePhillipsThermalFluid node :ref:`XML_CO2BrinePhillipsThermalFluid` -CarmanKozenyPermeability node :ref:`XML_CarmanKozenyPermeability` -CeramicDamage node :ref:`XML_CeramicDamage` -CompositionalMultiphaseFluid node :ref:`XML_CompositionalMultiphaseFluid` -CompositionalTwoPhaseFluid node :ref:`XML_CompositionalTwoPhaseFluid` -CompositionalTwoPhaseFluidLohrenzBrayClark node :ref:`XML_CompositionalTwoPhaseFluidLohrenzBrayClark` -CompressibleSinglePhaseFluid node :ref:`XML_CompressibleSinglePhaseFluid` -CompressibleSolidCarmanKozenyPermeability node :ref:`XML_CompressibleSolidCarmanKozenyPermeability` -CompressibleSolidConstantPermeability node :ref:`XML_CompressibleSolidConstantPermeability` -CompressibleSolidExponentialDecayPermeability node :ref:`XML_CompressibleSolidExponentialDecayPermeability` -CompressibleSolidParallelPlatesPermeability node :ref:`XML_CompressibleSolidParallelPlatesPermeability` -CompressibleSolidPressurePermeability node :ref:`XML_CompressibleSolidPressurePermeability` -CompressibleSolidSlipDependentPermeability node :ref:`XML_CompressibleSolidSlipDependentPermeability` -CompressibleSolidWillisRichardsPermeability node :ref:`XML_CompressibleSolidWillisRichardsPermeability` -ConstantDiffusion node :ref:`XML_ConstantDiffusion` -ConstantPermeability node :ref:`XML_ConstantPermeability` -Coulomb node :ref:`XML_Coulomb` -DamageElasticIsotropic node :ref:`XML_DamageElasticIsotropic` -DamageSpectralElasticIsotropic node :ref:`XML_DamageSpectralElasticIsotropic` -DamageVolDevElasticIsotropic node :ref:`XML_DamageVolDevElasticIsotropic` -DeadOilFluid node :ref:`XML_DeadOilFluid` -DelftEgg node :ref:`XML_DelftEgg` -DruckerPrager node :ref:`XML_DruckerPrager` -ElasticIsotropic node :ref:`XML_ElasticIsotropic` -ElasticIsotropicPressureDependent node :ref:`XML_ElasticIsotropicPressureDependent` -ElasticOrthotropic node :ref:`XML_ElasticOrthotropic` -ElasticTransverseIsotropic node :ref:`XML_ElasticTransverseIsotropic` -ExponentialDecayPermeability node :ref:`XML_ExponentialDecayPermeability` -ExtendedDruckerPrager node :ref:`XML_ExtendedDruckerPrager` -FrictionlessContact node :ref:`XML_FrictionlessContact` -HydraulicApertureTable node :ref:`XML_HydraulicApertureTable` -JFunctionCapillaryPressure node :ref:`XML_JFunctionCapillaryPressure` -LinearIsotropicDispersion node :ref:`XML_LinearIsotropicDispersion` -ModifiedCamClay node :ref:`XML_ModifiedCamClay` -MultiPhaseConstantThermalConductivity node :ref:`XML_MultiPhaseConstantThermalConductivity` -MultiPhaseVolumeWeightedThermalConductivity node :ref:`XML_MultiPhaseVolumeWeightedThermalConductivity` -NullModel node :ref:`XML_NullModel` -ParallelPlatesPermeability node :ref:`XML_ParallelPlatesPermeability` -ParticleFluid node :ref:`XML_ParticleFluid` -PerfectlyPlastic node :ref:`XML_PerfectlyPlastic` -PorousDamageElasticIsotropic node :ref:`XML_PorousDamageElasticIsotropic` -PorousDamageSpectralElasticIsotropic node :ref:`XML_PorousDamageSpectralElasticIsotropic` -PorousDamageVolDevElasticIsotropic node :ref:`XML_PorousDamageVolDevElasticIsotropic` -PorousDelftEgg node :ref:`XML_PorousDelftEgg` -PorousDruckerPrager node :ref:`XML_PorousDruckerPrager` -PorousElasticIsotropic node :ref:`XML_PorousElasticIsotropic` -PorousElasticOrthotropic node :ref:`XML_PorousElasticOrthotropic` -PorousElasticTransverseIsotropic node :ref:`XML_PorousElasticTransverseIsotropic` -PorousExtendedDruckerPrager node :ref:`XML_PorousExtendedDruckerPrager` -PorousModifiedCamClay node :ref:`XML_PorousModifiedCamClay` -PorousViscoDruckerPrager node :ref:`XML_PorousViscoDruckerPrager` -PorousViscoExtendedDruckerPrager node :ref:`XML_PorousViscoExtendedDruckerPrager` -PorousViscoModifiedCamClay node :ref:`XML_PorousViscoModifiedCamClay` -PressurePermeability node :ref:`XML_PressurePermeability` -PressurePorosity node :ref:`XML_PressurePorosity` -ProppantPermeability node :ref:`XML_ProppantPermeability` -ProppantPorosity node :ref:`XML_ProppantPorosity` -ProppantSlurryFluid node :ref:`XML_ProppantSlurryFluid` -ProppantSolidProppantPermeability node :ref:`XML_ProppantSolidProppantPermeability` -ReactiveBrine node :ref:`XML_ReactiveBrine` -ReactiveBrineThermal node :ref:`XML_ReactiveBrineThermal` -SinglePhaseConstantThermalConductivity node :ref:`XML_SinglePhaseConstantThermalConductivity` -SlipDependentPermeability node :ref:`XML_SlipDependentPermeability` -SolidInternalEnergy node :ref:`XML_SolidInternalEnergy` -TableCapillaryPressure node :ref:`XML_TableCapillaryPressure` -TableRelativePermeability node :ref:`XML_TableRelativePermeability` -TableRelativePermeabilityHysteresis node :ref:`XML_TableRelativePermeabilityHysteresis` -ThermalCompressibleSinglePhaseFluid node :ref:`XML_ThermalCompressibleSinglePhaseFluid` -VanGenuchtenBakerRelativePermeability node :ref:`XML_VanGenuchtenBakerRelativePermeability` -VanGenuchtenCapillaryPressure node :ref:`XML_VanGenuchtenCapillaryPressure` -VanGenuchtenStone2RelativePermeability node :ref:`XML_VanGenuchtenStone2RelativePermeability` -ViscoDruckerPrager node :ref:`XML_ViscoDruckerPrager` -ViscoExtendedDruckerPrager node :ref:`XML_ViscoExtendedDruckerPrager` -ViscoModifiedCamClay node :ref:`XML_ViscoModifiedCamClay` -WillisRichardsPermeability node :ref:`XML_WillisRichardsPermeability` -============================================= ==== ======= ======================================================== - - diff --git a/src/coreComponents/schema/docs/ConstitutiveModels_other.rst b/src/coreComponents/schema/docs/ConstitutiveModels_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/ConstitutiveModels_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Constitutive_other.rst b/src/coreComponents/schema/docs/Constitutive_other.rst deleted file mode 100644 index 1195cddf026..00000000000 --- a/src/coreComponents/schema/docs/Constitutive_other.rst +++ /dev/null @@ -1,92 +0,0 @@ - - -============================================= ==== ================================================================== -Name Type Description -============================================= ==== ================================================================== -BiotPorosity node :ref:`DATASTRUCTURE_BiotPorosity` -BlackOilFluid node :ref:`DATASTRUCTURE_BlackOilFluid` -BrooksCoreyBakerRelativePermeability node :ref:`DATASTRUCTURE_BrooksCoreyBakerRelativePermeability` -BrooksCoreyCapillaryPressure node :ref:`DATASTRUCTURE_BrooksCoreyCapillaryPressure` -BrooksCoreyRelativePermeability node :ref:`DATASTRUCTURE_BrooksCoreyRelativePermeability` -BrooksCoreyStone2RelativePermeability node :ref:`DATASTRUCTURE_BrooksCoreyStone2RelativePermeability` -CO2BrineEzrokhiFluid node :ref:`DATASTRUCTURE_CO2BrineEzrokhiFluid` -CO2BrineEzrokhiThermalFluid node :ref:`DATASTRUCTURE_CO2BrineEzrokhiThermalFluid` -CO2BrinePhillipsFluid node :ref:`DATASTRUCTURE_CO2BrinePhillipsFluid` -CO2BrinePhillipsThermalFluid node :ref:`DATASTRUCTURE_CO2BrinePhillipsThermalFluid` -CarmanKozenyPermeability node :ref:`DATASTRUCTURE_CarmanKozenyPermeability` -CeramicDamage node :ref:`DATASTRUCTURE_CeramicDamage` -CompositionalMultiphaseFluid node :ref:`DATASTRUCTURE_CompositionalMultiphaseFluid` -CompositionalTwoPhaseFluid node :ref:`DATASTRUCTURE_CompositionalTwoPhaseFluid` -CompositionalTwoPhaseFluidLohrenzBrayClark node :ref:`DATASTRUCTURE_CompositionalTwoPhaseFluidLohrenzBrayClark` -CompressibleSinglePhaseFluid node :ref:`DATASTRUCTURE_CompressibleSinglePhaseFluid` -CompressibleSolidCarmanKozenyPermeability node :ref:`DATASTRUCTURE_CompressibleSolidCarmanKozenyPermeability` -CompressibleSolidConstantPermeability node :ref:`DATASTRUCTURE_CompressibleSolidConstantPermeability` -CompressibleSolidExponentialDecayPermeability node :ref:`DATASTRUCTURE_CompressibleSolidExponentialDecayPermeability` -CompressibleSolidParallelPlatesPermeability node :ref:`DATASTRUCTURE_CompressibleSolidParallelPlatesPermeability` -CompressibleSolidPressurePermeability node :ref:`DATASTRUCTURE_CompressibleSolidPressurePermeability` -CompressibleSolidSlipDependentPermeability node :ref:`DATASTRUCTURE_CompressibleSolidSlipDependentPermeability` -CompressibleSolidWillisRichardsPermeability node :ref:`DATASTRUCTURE_CompressibleSolidWillisRichardsPermeability` -ConstantDiffusion node :ref:`DATASTRUCTURE_ConstantDiffusion` -ConstantPermeability node :ref:`DATASTRUCTURE_ConstantPermeability` -Coulomb node :ref:`DATASTRUCTURE_Coulomb` -DamageElasticIsotropic node :ref:`DATASTRUCTURE_DamageElasticIsotropic` -DamageSpectralElasticIsotropic node :ref:`DATASTRUCTURE_DamageSpectralElasticIsotropic` -DamageVolDevElasticIsotropic node :ref:`DATASTRUCTURE_DamageVolDevElasticIsotropic` -DeadOilFluid node :ref:`DATASTRUCTURE_DeadOilFluid` -DelftEgg node :ref:`DATASTRUCTURE_DelftEgg` -DruckerPrager node :ref:`DATASTRUCTURE_DruckerPrager` -ElasticIsotropic node :ref:`DATASTRUCTURE_ElasticIsotropic` -ElasticIsotropicPressureDependent node :ref:`DATASTRUCTURE_ElasticIsotropicPressureDependent` -ElasticOrthotropic node :ref:`DATASTRUCTURE_ElasticOrthotropic` -ElasticTransverseIsotropic node :ref:`DATASTRUCTURE_ElasticTransverseIsotropic` -ExponentialDecayPermeability node :ref:`DATASTRUCTURE_ExponentialDecayPermeability` -ExtendedDruckerPrager node :ref:`DATASTRUCTURE_ExtendedDruckerPrager` -FrictionlessContact node :ref:`DATASTRUCTURE_FrictionlessContact` -HydraulicApertureTable node :ref:`DATASTRUCTURE_HydraulicApertureTable` -JFunctionCapillaryPressure node :ref:`DATASTRUCTURE_JFunctionCapillaryPressure` -LinearIsotropicDispersion node :ref:`DATASTRUCTURE_LinearIsotropicDispersion` -ModifiedCamClay node :ref:`DATASTRUCTURE_ModifiedCamClay` -MultiPhaseConstantThermalConductivity node :ref:`DATASTRUCTURE_MultiPhaseConstantThermalConductivity` -MultiPhaseVolumeWeightedThermalConductivity node :ref:`DATASTRUCTURE_MultiPhaseVolumeWeightedThermalConductivity` -NullModel node :ref:`DATASTRUCTURE_NullModel` -ParallelPlatesPermeability node :ref:`DATASTRUCTURE_ParallelPlatesPermeability` -ParticleFluid node :ref:`DATASTRUCTURE_ParticleFluid` -PerfectlyPlastic node :ref:`DATASTRUCTURE_PerfectlyPlastic` -PorousDamageElasticIsotropic node :ref:`DATASTRUCTURE_PorousDamageElasticIsotropic` -PorousDamageSpectralElasticIsotropic node :ref:`DATASTRUCTURE_PorousDamageSpectralElasticIsotropic` -PorousDamageVolDevElasticIsotropic node :ref:`DATASTRUCTURE_PorousDamageVolDevElasticIsotropic` -PorousDelftEgg node :ref:`DATASTRUCTURE_PorousDelftEgg` -PorousDruckerPrager node :ref:`DATASTRUCTURE_PorousDruckerPrager` -PorousElasticIsotropic node :ref:`DATASTRUCTURE_PorousElasticIsotropic` -PorousElasticOrthotropic node :ref:`DATASTRUCTURE_PorousElasticOrthotropic` -PorousElasticTransverseIsotropic node :ref:`DATASTRUCTURE_PorousElasticTransverseIsotropic` -PorousExtendedDruckerPrager node :ref:`DATASTRUCTURE_PorousExtendedDruckerPrager` -PorousModifiedCamClay node :ref:`DATASTRUCTURE_PorousModifiedCamClay` -PorousViscoDruckerPrager node :ref:`DATASTRUCTURE_PorousViscoDruckerPrager` -PorousViscoExtendedDruckerPrager node :ref:`DATASTRUCTURE_PorousViscoExtendedDruckerPrager` -PorousViscoModifiedCamClay node :ref:`DATASTRUCTURE_PorousViscoModifiedCamClay` -PressurePermeability node :ref:`DATASTRUCTURE_PressurePermeability` -PressurePorosity node :ref:`DATASTRUCTURE_PressurePorosity` -ProppantPermeability node :ref:`DATASTRUCTURE_ProppantPermeability` -ProppantPorosity node :ref:`DATASTRUCTURE_ProppantPorosity` -ProppantSlurryFluid node :ref:`DATASTRUCTURE_ProppantSlurryFluid` -ProppantSolidProppantPermeability node :ref:`DATASTRUCTURE_ProppantSolidProppantPermeability` -ReactiveBrine node :ref:`DATASTRUCTURE_ReactiveBrine` -ReactiveBrineThermal node :ref:`DATASTRUCTURE_ReactiveBrineThermal` -SinglePhaseConstantThermalConductivity node :ref:`DATASTRUCTURE_SinglePhaseConstantThermalConductivity` -SlipDependentPermeability node :ref:`DATASTRUCTURE_SlipDependentPermeability` -SolidInternalEnergy node :ref:`DATASTRUCTURE_SolidInternalEnergy` -TableCapillaryPressure node :ref:`DATASTRUCTURE_TableCapillaryPressure` -TableRelativePermeability node :ref:`DATASTRUCTURE_TableRelativePermeability` -TableRelativePermeabilityHysteresis node :ref:`DATASTRUCTURE_TableRelativePermeabilityHysteresis` -ThermalCompressibleSinglePhaseFluid node :ref:`DATASTRUCTURE_ThermalCompressibleSinglePhaseFluid` -VanGenuchtenBakerRelativePermeability node :ref:`DATASTRUCTURE_VanGenuchtenBakerRelativePermeability` -VanGenuchtenCapillaryPressure node :ref:`DATASTRUCTURE_VanGenuchtenCapillaryPressure` -VanGenuchtenStone2RelativePermeability node :ref:`DATASTRUCTURE_VanGenuchtenStone2RelativePermeability` -ViscoDruckerPrager node :ref:`DATASTRUCTURE_ViscoDruckerPrager` -ViscoExtendedDruckerPrager node :ref:`DATASTRUCTURE_ViscoExtendedDruckerPrager` -ViscoModifiedCamClay node :ref:`DATASTRUCTURE_ViscoModifiedCamClay` -WillisRichardsPermeability node :ref:`DATASTRUCTURE_WillisRichardsPermeability` -============================================= ==== ================================================================== - - diff --git a/src/coreComponents/schema/docs/Coulomb.rst b/src/coreComponents/schema/docs/Coulomb.rst deleted file mode 100644 index 2cbf7fdeffc..00000000000 --- a/src/coreComponents/schema/docs/Coulomb.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ========= =========== ================================================================== -Name Type Default Description -========================= ========= =========== ================================================================== -cohesion real64 required Cohesion -displacementJumpThreshold real64 2.22045e-16 A threshold valued to determine whether a fracture is open or not. -frictionCoefficient real64 required Friction coefficient -name groupName required A name is required for any non-unique nodes -shearStiffness real64 0 Value of the shear elastic stiffness. Units of Pressure/length -========================= ========= =========== ================================================================== - - diff --git a/src/coreComponents/schema/docs/Coulomb_other.rst b/src/coreComponents/schema/docs/Coulomb_other.rst deleted file mode 100644 index e34713e1c47..00000000000 --- a/src/coreComponents/schema/docs/Coulomb_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -=========== ============== ============ -Name Type Description -=========== ============== ============ -elasticSlip real64_array2d Elastic Slip -=========== ============== ============ - - diff --git a/src/coreComponents/schema/docs/CustomPolarObject.rst b/src/coreComponents/schema/docs/CustomPolarObject.rst deleted file mode 100644 index dc3565d6b83..00000000000 --- a/src/coreComponents/schema/docs/CustomPolarObject.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -============ ============ ======== ========================================================================================================================================= -Name Type Default Description -============ ============ ======== ========================================================================================================================================= -center R1Tensor required (x,y,z) coordinates of the center of the CustomPolarObject -coefficients real64_array required Coefficients of the CustomPolarObject function relating the localradius to the angle theta. -lengthVector R1Tensor required Tangent vector defining the orthonormal basis along with the normal. -name groupName required A name is required for any non-unique nodes -normal R1Tensor required Normal (n_x,n_y,n_z) to the plane (will be normalized automatically) -tolerance real64 1e-05 Tolerance to determine if a point sits on the CustomPolarObject or not. It is relative to the maximum dimension of the CustomPolarObject. -widthVector R1Tensor required Tangent vector defining the orthonormal basis along with the normal. -============ ============ ======== ========================================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/CustomPolarObject_other.rst b/src/coreComponents/schema/docs/CustomPolarObject_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/CustomPolarObject_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Cylinder.rst b/src/coreComponents/schema/docs/Cylinder.rst deleted file mode 100644 index c96dc7455b4..00000000000 --- a/src/coreComponents/schema/docs/Cylinder.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -================ ========= ======== =============================================== -Name Type Default Description -================ ========= ======== =============================================== -firstFaceCenter R1Tensor required Center point of the first face of the cylinder -innerRadius real64 -1 Inner radius of the annulus -name groupName required A name is required for any non-unique nodes -outerRadius real64 required Outer radius of the cylinder -secondFaceCenter R1Tensor required Center point of the second face of the cylinder -================ ========= ======== =============================================== - - diff --git a/src/coreComponents/schema/docs/Cylinder_other.rst b/src/coreComponents/schema/docs/Cylinder_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Cylinder_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/DamageElasticIsotropic.rst b/src/coreComponents/schema/docs/DamageElasticIsotropic.rst deleted file mode 100644 index 19236b59dcf..00000000000 --- a/src/coreComponents/schema/docs/DamageElasticIsotropic.rst +++ /dev/null @@ -1,23 +0,0 @@ - - -======================= ========= ======== ==================================================================== -Name Type Default Description -======================= ========= ======== ==================================================================== -compressiveStrength real64 0 Compressive strength from the uniaxial compression test -criticalFractureEnergy real64 required Critical fracture energy -criticalStrainEnergy real64 required Critical stress in a 1d tension test -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -degradationLowerLimit real64 0 The lower limit of the degradation function -deltaCoefficient real64 -1 Coefficient in the calculation of the external driving force -extDrivingForceFlag integer 0 Whether to have external driving force. Can be 0 or 1 -lengthScale real64 required Length scale l in the phase-field equation -name groupName required A name is required for any non-unique nodes -tensileStrength real64 0 Tensile strength from the uniaxial tension test -======================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/DamageElasticIsotropic_other.rst b/src/coreComponents/schema/docs/DamageElasticIsotropic_other.rst deleted file mode 100644 index 2cda8d3e931..00000000000 --- a/src/coreComponents/schema/docs/DamageElasticIsotropic_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -damage real64_array2d Material Damage Variable -density real64_array2d Material Density -extDrivingForce real64_array2d External Driving Force -oldStress real64_array3d Previous Material Stress -shearModulus real64_array Elastic Shear Modulus Field -strainEnergyDensity real64_array2d Strain Energy Density -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/DamageSpectralElasticIsotropic.rst b/src/coreComponents/schema/docs/DamageSpectralElasticIsotropic.rst deleted file mode 100644 index 19236b59dcf..00000000000 --- a/src/coreComponents/schema/docs/DamageSpectralElasticIsotropic.rst +++ /dev/null @@ -1,23 +0,0 @@ - - -======================= ========= ======== ==================================================================== -Name Type Default Description -======================= ========= ======== ==================================================================== -compressiveStrength real64 0 Compressive strength from the uniaxial compression test -criticalFractureEnergy real64 required Critical fracture energy -criticalStrainEnergy real64 required Critical stress in a 1d tension test -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -degradationLowerLimit real64 0 The lower limit of the degradation function -deltaCoefficient real64 -1 Coefficient in the calculation of the external driving force -extDrivingForceFlag integer 0 Whether to have external driving force. Can be 0 or 1 -lengthScale real64 required Length scale l in the phase-field equation -name groupName required A name is required for any non-unique nodes -tensileStrength real64 0 Tensile strength from the uniaxial tension test -======================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/DamageSpectralElasticIsotropic_other.rst b/src/coreComponents/schema/docs/DamageSpectralElasticIsotropic_other.rst deleted file mode 100644 index 2cda8d3e931..00000000000 --- a/src/coreComponents/schema/docs/DamageSpectralElasticIsotropic_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -damage real64_array2d Material Damage Variable -density real64_array2d Material Density -extDrivingForce real64_array2d External Driving Force -oldStress real64_array3d Previous Material Stress -shearModulus real64_array Elastic Shear Modulus Field -strainEnergyDensity real64_array2d Strain Energy Density -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/DamageVolDevElasticIsotropic.rst b/src/coreComponents/schema/docs/DamageVolDevElasticIsotropic.rst deleted file mode 100644 index 19236b59dcf..00000000000 --- a/src/coreComponents/schema/docs/DamageVolDevElasticIsotropic.rst +++ /dev/null @@ -1,23 +0,0 @@ - - -======================= ========= ======== ==================================================================== -Name Type Default Description -======================= ========= ======== ==================================================================== -compressiveStrength real64 0 Compressive strength from the uniaxial compression test -criticalFractureEnergy real64 required Critical fracture energy -criticalStrainEnergy real64 required Critical stress in a 1d tension test -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -degradationLowerLimit real64 0 The lower limit of the degradation function -deltaCoefficient real64 -1 Coefficient in the calculation of the external driving force -extDrivingForceFlag integer 0 Whether to have external driving force. Can be 0 or 1 -lengthScale real64 required Length scale l in the phase-field equation -name groupName required A name is required for any non-unique nodes -tensileStrength real64 0 Tensile strength from the uniaxial tension test -======================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/DamageVolDevElasticIsotropic_other.rst b/src/coreComponents/schema/docs/DamageVolDevElasticIsotropic_other.rst deleted file mode 100644 index 2cda8d3e931..00000000000 --- a/src/coreComponents/schema/docs/DamageVolDevElasticIsotropic_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -damage real64_array2d Material Damage Variable -density real64_array2d Material Density -extDrivingForce real64_array2d External Driving Force -oldStress real64_array3d Previous Material Stress -shearModulus real64_array Elastic Shear Modulus Field -strainEnergyDensity real64_array2d Strain Energy Density -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/DeadOilFluid.rst b/src/coreComponents/schema/docs/DeadOilFluid.rst deleted file mode 100644 index c34b2d2ec84..00000000000 --- a/src/coreComponents/schema/docs/DeadOilFluid.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -======================================= ================== ======== ===================================================================================================================================================================================================================================================================================================== -Name Type Default Description -======================================= ================== ======== ===================================================================================================================================================================================================================================================================================================== -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentMolarWeight real64_array required Component molar weights -componentNames string_array {} List of component names -hydrocarbonFormationVolFactorTableNames groupNameRef_array {} | List of formation volume factor TableFunction names from the Functions block. - | The user must provide one TableFunction per hydrocarbon phase, in the order provided in "phaseNames". - | For instance, if "oil" is before "gas" in "phaseNames", the table order should be: oilTableName, gasTableName -hydrocarbonViscosityTableNames groupNameRef_array {} | List of viscosity TableFunction names from the Functions block. - | The user must provide one TableFunction per hydrocarbon phase, in the order provided in "phaseNames". - | For instance, if "oil" is before "gas" in "phaseNames", the table order should be: oilTableName, gasTableName -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array required List of fluid phases -surfaceDensities real64_array required List of surface mass densities for each phase -tableFiles path_array {} List of filenames with input PVT tables (one per phase) -waterCompressibility real64 0 Water compressibility -waterFormationVolumeFactor real64 0 Water formation volume factor -waterReferencePressure real64 0 Water reference pressure -waterViscosity real64 0 Water viscosity -======================================= ================== ======== ===================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/DeadOilFluid_other.rst b/src/coreComponents/schema/docs/DeadOilFluid_other.rst deleted file mode 100644 index de90cbaf87f..00000000000 --- a/src/coreComponents/schema/docs/DeadOilFluid_other.rst +++ /dev/null @@ -1,35 +0,0 @@ - - -=============================== =================================================================================================== ============================================================================================================ -Name Type Description -=============================== =================================================================================================== ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -formationVolFactorTableWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -hydrocarbonPhaseOrder integer_array (no description available) -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseOrder integer_array (no description available) -phaseTypes integer_array (no description available) -phaseViscosity real64_array3d Phase viscosity -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -viscosityTableWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -=============================== =================================================================================================== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/DelftEgg.rst b/src/coreComponents/schema/docs/DelftEgg.rst deleted file mode 100644 index a509cdd295e..00000000000 --- a/src/coreComponents/schema/docs/DelftEgg.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -=============================== ========= ======== ==================================================================== -Name Type Default Description -=============================== ========= ======== ==================================================================== -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultCslSlope real64 1 Slope of the critical state line -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultPreConsolidationPressure real64 -1.5 Initial preconsolidation pressure -defaultRecompressionIndex real64 0.002 Recompresion Index -defaultShapeParameter real64 1 Shape parameter for the yield surface -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultVirginCompressionIndex real64 0.005 Virgin compression index -defaultYoungModulus real64 -1 Default Young's Modulus -name groupName required A name is required for any non-unique nodes -=============================== ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/DelftEgg_other.rst b/src/coreComponents/schema/docs/DelftEgg_other.rst deleted file mode 100644 index a03c1dc5716..00000000000 --- a/src/coreComponents/schema/docs/DelftEgg_other.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -cslSlope real64_array Slope of the critical state line -density real64_array2d Material Density -oldPreConsolidationPressure real64_array2d Old preconsolidation pressure -oldStress real64_array3d Previous Material Stress -preConsolidationPressure real64_array2d New preconsolidation pressure -recompressionIndex real64_array Recompression index -shapeParameter real64_array Shape parameter for the yield surface -shearModulus real64_array Elastic Shear Modulus Field -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -virginCompressionIndex real64_array Virgin compression index -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/Dirichlet.rst b/src/coreComponents/schema/docs/Dirichlet.rst deleted file mode 100644 index 81d6fead75e..00000000000 --- a/src/coreComponents/schema/docs/Dirichlet.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -====================== ================== ======== ============================================================================== -Name Type Default Description -====================== ================== ======== ============================================================================== -bcApplicationTableName groupNameRef Name of table that specifies the on/off application of the boundary condition. -beginTime real64 -1e+99 Time at which the boundary condition will start being applied. -component integer -1 Component of field (if tensor) to apply boundary condition to. -direction R1Tensor {0,0,0} Direction to apply boundary condition to. -endTime real64 1e+99 Time at which the boundary condition will stop being applied. -fieldName groupNameRef Name of field that boundary condition is applied to. -functionName groupNameRef Name of function that specifies variation of the boundary condition. -initialCondition integer 0 Boundary condition is applied as an initial condition. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -objectPath groupNameRef Path to the target field -scale real64 0 Scale factor for value of the boundary condition. -setNames groupNameRef_array required Name of sets that boundary condition is applied to. -====================== ================== ======== ============================================================================== - - diff --git a/src/coreComponents/schema/docs/Dirichlet_other.rst b/src/coreComponents/schema/docs/Dirichlet_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Dirichlet_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Disc.rst b/src/coreComponents/schema/docs/Disc.rst deleted file mode 100644 index b3e07062220..00000000000 --- a/src/coreComponents/schema/docs/Disc.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -============ ========= ======== =============================================================================================================== -Name Type Default Description -============ ========= ======== =============================================================================================================== -center R1Tensor required (x,y,z) coordinates of the center of the disc -lengthVector R1Tensor required Tangent vector defining the orthonormal basis along with the normal. -name groupName required A name is required for any non-unique nodes -normal R1Tensor required Normal (n_x,n_y,n_z) to the plane (will be normalized automatically) -radius real64 required Radius of the disc. -tolerance real64 1e-05 Tolerance to determine if a point sits on the disc or not. It is relative to the maximum dimension of the disc. -widthVector R1Tensor required Tangent vector defining the orthonormal basis along with the normal. -============ ========= ======== =============================================================================================================== - - diff --git a/src/coreComponents/schema/docs/Disc_other.rst b/src/coreComponents/schema/docs/Disc_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Disc_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/DruckerPrager.rst b/src/coreComponents/schema/docs/DruckerPrager.rst deleted file mode 100644 index 3f5d4ef7249..00000000000 --- a/src/coreComponents/schema/docs/DruckerPrager.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -======================= ========= ======== ==================================================================== -Name Type Default Description -======================= ========= ======== ==================================================================== -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultCohesion real64 0 Initial cohesion -defaultDensity real64 required Default Material Density -defaultDilationAngle real64 30 Dilation angle (degrees) -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultFrictionAngle real64 30 Friction angle (degrees) -defaultHardeningRate real64 0 Cohesion hardening/softening rate -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -name groupName required A name is required for any non-unique nodes -======================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/DruckerPrager_other.rst b/src/coreComponents/schema/docs/DruckerPrager_other.rst deleted file mode 100644 index 3185dd07d81..00000000000 --- a/src/coreComponents/schema/docs/DruckerPrager_other.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -cohesion real64_array2d New cohesion state -density real64_array2d Material Density -dilation real64_array Plastic potential slope -friction real64_array Yield surface slope -hardening real64_array Hardening rate -oldCohesion real64_array2d Old cohesion state -oldStress real64_array3d Previous Material Stress -shearModulus real64_array Elastic Shear Modulus Field -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/ElasticFirstOrderSEM.rst b/src/coreComponents/schema/docs/ElasticFirstOrderSEM.rst deleted file mode 100644 index 0d655628fe6..00000000000 --- a/src/coreComponents/schema/docs/ElasticFirstOrderSEM.rst +++ /dev/null @@ -1,37 +0,0 @@ - - -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== -attenuationType geos_WaveSolverUtils_AttenuationType none Flag to indicate which attenuation model to use: "none" for no attenuation, "sls\ for the standard-linear-solid (SLS) model (Fichtner, 2014). -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -dtSeismoTrace real64 0 Time step for output pressure at receivers -enableLifo integer 0 Set to 1 to enable LIFO storage feature -forward integer 1 Set to 1 to compute forward propagation -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -lifoOnDevice integer -80 Set the capacity of the lifo device storage (if negative, opposite of percentage of remaining memory) -lifoOnHost integer -80 Set the capacity of the lifo host storage (if negative, opposite of percentage of remaining memory) -lifoSize integer 2147483647 Set the capacity of the lifo storage (should be the total number of buffers to store in the LIFO) -linearDASGeometry real64_array2d {{0}} Geometry parameters for a linear DAS fiber (dip, azimuth, gauge length) -linearDASSamples integer 5 Number of sample points to be used for strain integration when integrating the strain for the DAS signal -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -outputSeismoTrace integer 0 Flag that indicates if we write the seismo trace in a file .txt, 0 no output, 1 otherwise -receiverCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the receivers -rickerOrder integer 2 Flag that indicates the order of the Ricker to be used o, 1 or 2. Order 2 by default -saveFields integer 0 Set to 1 to save fields during forward and restore them during backward -shotIndex integer 0 Set the current shot for temporary files -slsAnelasticityCoefficients real32_array {0} Anelasticity coefficients for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding reference frequencies must be provided. -slsReferenceAngularFrequencies real32_array {0} Reference angular frequencies (omega) for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding anelasticity coefficients must be provided. -sourceCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the sources -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeSourceDelay real32 -1 Source time delay (1 / f0 by default) -timeSourceFrequency real32 0 Central frequency for the time source -useDAS geos_WaveSolverUtils_DASType none Flag to indicate if DAS data will be modeled, and which DAS type to use: "none" to deactivate DAS, "strainIntegration" for strain integration, "dipole" for displacement difference -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ==================================== ========== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/ElasticFirstOrderSEM_other.rst b/src/coreComponents/schema/docs/ElasticFirstOrderSEM_other.rst deleted file mode 100644 index 24ca5ae2f69..00000000000 --- a/src/coreComponents/schema/docs/ElasticFirstOrderSEM_other.rst +++ /dev/null @@ -1,38 +0,0 @@ - - -=========================== ====================================================================================================================================================== ======================================================================= -Name Type Description -=========================== ====================================================================================================================================================== ======================================================================= -displacementxNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (x-components) -displacementyNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (y-components) -displacementzNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (z-components) -indexSeismoTrace integer Count for output pressure at receivers -linearDASVectorX real32_array X component of the linear DAS direction vector -linearDASVectorY real32_array Y component of the linear DAS direction vector -linearDASVectorZ real32_array Z component of the linear DAS direction vector -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -receiverConstants real64_array2d Constant part of the receiver for the nodes listed in m_receiverNodeIds -receiverElem integer_array Element containing the receivers -receiverIsLocal integer_array Flag that indicates whether the receiver is local to this MPI rank -receiverNodeIds integer_array2d Indices of the nodes (in the right order) for each receiver point -receiverRegion integer_array Region containing the receivers -sigmaxxNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (z-components) -sigmaxyNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (z-components) -sigmaxzNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (z-components) -sigmayyNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (z-components) -sigmayzNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (z-components) -sigmazzNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (z-components) -sourceConstants real64_array2d Constant part of the source for the nodes listed in m_sourceNodeIds -sourceElem integer_array Element containing the sources -sourceIsAccessible integer_array Flag that indicates whether the source is local to this MPI rank -sourceNodeIds integer_array2d Indices of the nodes (in the right order) for each source point -sourceRegion integer_array Region containing the sources -sourceValue real32_array2d Source Value of the sources -usePML integer Flag to apply PML -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ======================================================================= - - diff --git a/src/coreComponents/schema/docs/ElasticIsotropic.rst b/src/coreComponents/schema/docs/ElasticIsotropic.rst deleted file mode 100644 index 15e42d76f2b..00000000000 --- a/src/coreComponents/schema/docs/ElasticIsotropic.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -======================= ========= ======== ==================================================================== -Name Type Default Description -======================= ========= ======== ==================================================================== -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -name groupName required A name is required for any non-unique nodes -======================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ElasticIsotropicPressureDependent.rst b/src/coreComponents/schema/docs/ElasticIsotropicPressureDependent.rst deleted file mode 100644 index 96015fd3861..00000000000 --- a/src/coreComponents/schema/docs/ElasticIsotropicPressureDependent.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -========================= ========= ======== ==================================================================== -Name Type Default Description -========================= ========= ======== ==================================================================== -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultRecompressionIndex real64 0.002 Recompresion Index -defaultRefPressure real64 -1 Reference Pressure -defaultRefStrainVol real64 0 Reference Volumetric Strain -defaultShearModulus real64 -1 Elastic Shear Modulus Parameter -name groupName required A name is required for any non-unique nodes -========================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ElasticIsotropicPressureDependent_other.rst b/src/coreComponents/schema/docs/ElasticIsotropicPressureDependent_other.rst deleted file mode 100644 index 3c45927c9b2..00000000000 --- a/src/coreComponents/schema/docs/ElasticIsotropicPressureDependent_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -density real64_array2d Material Density -oldStress real64_array3d Previous Material Stress -recompressionIndex real64_array Recompression Index Field -refPressure real64 Reference Pressure Field -refStrainVol real64 Reference Volumetric Strain -shearModulus real64_array Elastic Shear Modulus -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/ElasticIsotropic_other.rst b/src/coreComponents/schema/docs/ElasticIsotropic_other.rst deleted file mode 100644 index f202084d9bf..00000000000 --- a/src/coreComponents/schema/docs/ElasticIsotropic_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -density real64_array2d Material Density -oldStress real64_array3d Previous Material Stress -shearModulus real64_array Elastic Shear Modulus Field -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/ElasticOrthotropic.rst b/src/coreComponents/schema/docs/ElasticOrthotropic.rst deleted file mode 100644 index f2d55b8530f..00000000000 --- a/src/coreComponents/schema/docs/ElasticOrthotropic.rst +++ /dev/null @@ -1,29 +0,0 @@ - - -======================= ========= ======== ==================================================================== -Name Type Default Description -======================= ========= ======== ==================================================================== -defaultC11 real64 -1 Default C11 Component of Voigt Stiffness Tensor -defaultC12 real64 -1 Default C12 Component of Voigt Stiffness Tensor -defaultC13 real64 -1 Default C13 Component of Voigt Stiffness Tensor -defaultC22 real64 -1 Default C22 Component of Voigt Stiffness Tensor -defaultC23 real64 -1 Default C23 Component of Voigt Stiffness Tensor -defaultC33 real64 -1 Default C33 Component of Voigt Stiffness Tensor -defaultC44 real64 -1 Default C44 Component of Voigt Stiffness Tensor -defaultC55 real64 -1 Default C55 Component of Voigt Stiffness Tensor -defaultC66 real64 -1 Default C66 Component of Voigt Stiffness Tensor -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultE1 real64 -1 Default Young's Modulus E1 -defaultE2 real64 -1 Default Young's Modulus E2 -defaultE3 real64 -1 Default Young's Modulus E3 -defaultG12 real64 -1 Default Shear Modulus G12 -defaultG13 real64 -1 Default Shear Modulus G13 -defaultG23 real64 -1 Default Shear Modulus G23 -defaultNu12 real64 -1 Default Poission's Ratio Nu12 -defaultNu13 real64 -1 Default Poission's Ratio Nu13 -defaultNu23 real64 -1 Default Poission's Ratio Nu23 -name groupName required A name is required for any non-unique nodes -======================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ElasticOrthotropic_other.rst b/src/coreComponents/schema/docs/ElasticOrthotropic_other.rst deleted file mode 100644 index e4df4dab8e0..00000000000 --- a/src/coreComponents/schema/docs/ElasticOrthotropic_other.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -c11 real64_array Elastic Stiffness Field C11 -c12 real64_array Elastic Stiffness Field C12 -c13 real64_array Elastic Stiffness Field C13 -c22 real64_array Elastic Stiffness Field C22 -c23 real64_array Elastic Stiffness Field C23 -c33 real64_array Elastic Stiffness Field C33 -c44 real64_array Elastic Stiffness Field C44 -c55 real64_array Elastic Stiffness Field C55 -c66 real64_array Elastic Stiffness Field C66 -density real64_array2d Material Density -oldStress real64_array3d Previous Material Stress -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/ElasticSEM.rst b/src/coreComponents/schema/docs/ElasticSEM.rst deleted file mode 100644 index 924f4d2c984..00000000000 --- a/src/coreComponents/schema/docs/ElasticSEM.rst +++ /dev/null @@ -1,40 +0,0 @@ - - -============================== ==================================== ============= ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ==================================== ============= ======================================================================================================================================================================================================================================================================================================================== -attenuationType geos_WaveSolverUtils_AttenuationType none Flag to indicate which attenuation model to use: "none" for no attenuation, "sls\ for the standard-linear-solid (SLS) model (Fichtner, 2014). -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -dtSeismoTrace real64 0 Time step for output pressure at receivers -enableLifo integer 0 Set to 1 to enable LIFO storage feature -forward integer 1 Set to 1 to compute forward propagation -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -lifoOnDevice integer -80 Set the capacity of the lifo device storage (if negative, opposite of percentage of remaining memory) -lifoOnHost integer -80 Set the capacity of the lifo host storage (if negative, opposite of percentage of remaining memory) -lifoSize integer 2147483647 Set the capacity of the lifo storage (should be the total number of buffers to store in the LIFO) -linearDASGeometry real64_array2d {{0}} Geometry parameters for a linear DAS fiber (dip, azimuth, gauge length) -linearDASSamples integer 5 Number of sample points to be used for strain integration when integrating the strain for the DAS signal -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -outputSeismoTrace integer 0 Flag that indicates if we write the seismo trace in a file .txt, 0 no output, 1 otherwise -receiverCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the receivers -rickerOrder integer 2 Flag that indicates the order of the Ricker to be used o, 1 or 2. Order 2 by default -saveFields integer 0 Set to 1 to save fields during forward and restore them during backward -shotIndex integer 0 Set the current shot for temporary files -slsAnelasticityCoefficients real32_array {0} Anelasticity coefficients for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding reference frequencies must be provided. -slsReferenceAngularFrequencies real32_array {0} Reference angular frequencies (omega) for the standard-linear-solid (SLS) anelasticity.The default value is { }, corresponding to no attenuation. An array with the corresponding anelasticity coefficients must be provided. -sourceCoordinates real64_array2d {{0}} Coordinates (x,y,z) of the sources -sourceForce R1Tensor {0,0,0} Force of the source: 3 real values for a vector source, and 6 real values for a tensor source (in Voigt notation).The default value is { 0, 0, 0 } (no net force). -sourceMoment R2SymTensor {1,1,1,0,0,0} Moment of the source: 6 real values describing a symmetric tensor in Voigt notation.The default value is { 1, 1, 1, 0, 0, 0 } (diagonal moment, corresponding to a pure explosion). -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeSourceDelay real32 -1 Source time delay (1 / f0 by default) -timeSourceFrequency real32 0 Central frequency for the time source -useDAS geos_WaveSolverUtils_DASType none Flag to indicate if DAS data will be modeled, and which DAS type to use: "none" to deactivate DAS, "strainIntegration" for strain integration, "dipole" for displacement difference -useVTI integer 0 Flag to apply VTI anisotropy. The default is to use isotropic physic. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ==================================== ============= ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/ElasticSEM_other.rst b/src/coreComponents/schema/docs/ElasticSEM_other.rst deleted file mode 100644 index 2e9e89c914f..00000000000 --- a/src/coreComponents/schema/docs/ElasticSEM_other.rst +++ /dev/null @@ -1,31 +0,0 @@ - - -=========================== ====================================================================================================================================================== ================================================================================== -Name Type Description -=========================== ====================================================================================================================================================== ================================================================================== -dasSignalNp1AtReceivers real32_array2d DAS signal value at each receiver for each timestep -displacementXNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (x-component) -displacementYNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (y-component) -displacementZNp1AtReceivers real32_array2d Displacement value at each receiver for each timestep (z-component) -indexSeismoTrace integer Count for output pressure at receivers -linearDASVectorX real32_array X component of the linear DAS direction vector -linearDASVectorY real32_array Y component of the linear DAS direction vector -linearDASVectorZ real32_array Z component of the linear DAS direction vector -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -receiverConstants real64_array2d Constant part of the receiver for the nodes listed in m_receiverNodeIds -receiverElem integer_array Element containing the receivers -receiverIsLocal integer_array Flag that indicates whether the receiver is local to this MPI rank -receiverNodeIds integer_array2d Indices of the nodes (in the right order) for each receiver point -receiverRegion integer_array Region containing the receivers -sourceConstants real64_array2d Constant part of the source for the nodes listed in m_sourceNodeIds in z-direction -sourceIsAccessible integer_array Flag that indicates whether the source is local to this MPI rank -sourceNodeIds integer_array2d Indices of the nodes (in the right order) for each source point -sourceValue real32_array2d Source Value of the sources -usePML integer Flag to apply PML -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ================================================================================== - - diff --git a/src/coreComponents/schema/docs/ElasticTransverseIsotropic.rst b/src/coreComponents/schema/docs/ElasticTransverseIsotropic.rst deleted file mode 100644 index e07838a1fd3..00000000000 --- a/src/coreComponents/schema/docs/ElasticTransverseIsotropic.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -================================== ========= ======== ==================================================================== -Name Type Default Description -================================== ========= ======== ==================================================================== -defaultC11 real64 -1 Default Stiffness Parameter C11 -defaultC13 real64 -1 Default Stiffness Parameter C13 -defaultC33 real64 -1 Default Stiffness Parameter C33 -defaultC44 real64 -1 Default Stiffness Parameter C44 -defaultC66 real64 -1 Default Stiffness Parameter C66 -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPoissonRatioAxialTransverse real64 -1 Default Axial-Transverse Poisson's Ratio -defaultPoissonRatioTransverse real64 -1 Default Transverse Poisson's Ratio -defaultShearModulusAxialTransverse real64 -1 Default Axial-Transverse Shear Modulus -defaultYoungModulusAxial real64 -1 Default Axial Young's Modulus -defaultYoungModulusTransverse real64 -1 Default Transverse Young's Modulus -name groupName required A name is required for any non-unique nodes -================================== ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ElasticTransverseIsotropic_other.rst b/src/coreComponents/schema/docs/ElasticTransverseIsotropic_other.rst deleted file mode 100644 index 310de3990d0..00000000000 --- a/src/coreComponents/schema/docs/ElasticTransverseIsotropic_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -c11 real64_array Elastic Stiffness Field C11 -c13 real64_array Elastic Stiffness Field C13 -c33 real64_array Elastic Stiffness Field C33 -c44 real64_array Elastic Stiffness Field C44 -c66 real64_array Elastic Stiffness Field C66 -density real64_array2d Material Density -oldStress real64_array3d Previous Material Stress -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/ElementRegions.rst b/src/coreComponents/schema/docs/ElementRegions.rst deleted file mode 100644 index 82d745e17be..00000000000 --- a/src/coreComponents/schema/docs/ElementRegions.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -==================== ==== ======= =============================== -Name Type Default Description -==================== ==== ======= =============================== -CellElementRegion node :ref:`XML_CellElementRegion` -SurfaceElementRegion node :ref:`XML_SurfaceElementRegion` -WellElementRegion node :ref:`XML_WellElementRegion` -==================== ==== ======= =============================== - - diff --git a/src/coreComponents/schema/docs/ElementRegions_other.rst b/src/coreComponents/schema/docs/ElementRegions_other.rst deleted file mode 100644 index f62357429ae..00000000000 --- a/src/coreComponents/schema/docs/ElementRegions_other.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -======================= ================================================================= ========================================================= -Name Type Description -======================= ================================================================= ========================================================= -domainBoundaryIndicator integer_array (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -CellElementRegion node :ref:`DATASTRUCTURE_CellElementRegion` -SurfaceElementRegion node :ref:`DATASTRUCTURE_SurfaceElementRegion` -WellElementRegion node :ref:`DATASTRUCTURE_WellElementRegion` -elementRegionsGroup node :ref:`DATASTRUCTURE_elementRegionsGroup` -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ================================================================= ========================================================= - - diff --git a/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator.rst b/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator.rst deleted file mode 100644 index 4dc73219d88..00000000000 --- a/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -========================= ================== ============== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ============== ======================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -fractureRegion groupNameRef FractureRegion (no description available) -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -mpiCommOrder integer 0 Flag to enable MPI consistent communication ordering -name groupName required A name is required for any non-unique nodes -targetObjects groupNameRef_array required List of geometric objects that will be used to initialized the embedded surfaces/fractures. -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ============== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst b/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst deleted file mode 100644 index f2590daca7c..00000000000 --- a/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================ ================================================================ -Name Type Registered On Description -========================= ====================================================================================================================================================== ================================================ ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -parentEdgeIndex integer_array :ref:`DATASTRUCTURE_embeddedSurfacesNodeManager` Index of parent edge within the mesh object it is registered on. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================ ================================================================ - - diff --git a/src/coreComponents/schema/docs/Events.rst b/src/coreComponents/schema/docs/Events.rst deleted file mode 100644 index a9963170314..00000000000 --- a/src/coreComponents/schema/docs/Events.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -================ ================================== ============ ======================================================================== -Name Type Default Description -================ ================================== ============ ======================================================================== -logLevel integer 0 Log level -maxCycle integer 2147483647 Maximum simulation cycle for the global event loop. Disabled by default. -maxTime real64 1.79769e+308 Maximum simulation time for the global event loop. Disabled by default. -minTime real64 0 Start simulation time for the global event loop. -timeOutputFormat geos_EventManager_TimeOutputFormat seconds Format of the time in the GEOS log. -HaltEvent node :ref:`XML_HaltEvent` -PeriodicEvent node :ref:`XML_PeriodicEvent` -SoloEvent node :ref:`XML_SoloEvent` -================ ================================== ============ ======================================================================== - - diff --git a/src/coreComponents/schema/docs/Events_other.rst b/src/coreComponents/schema/docs/Events_other.rst deleted file mode 100644 index b9ef302077f..00000000000 --- a/src/coreComponents/schema/docs/Events_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=============== ======= ================================== -Name Type Description -=============== ======= ================================== -currentSubEvent integer Index of the current subevent. -cycle integer Current simulation cycle number. -dt real64 Current simulation timestep. -time real64 Current simulation time. -HaltEvent node :ref:`DATASTRUCTURE_HaltEvent` -PeriodicEvent node :ref:`DATASTRUCTURE_PeriodicEvent` -SoloEvent node :ref:`DATASTRUCTURE_SoloEvent` -=============== ======= ================================== - - diff --git a/src/coreComponents/schema/docs/ExponentialDecayPermeability.rst b/src/coreComponents/schema/docs/ExponentialDecayPermeability.rst deleted file mode 100644 index 478b850e596..00000000000 --- a/src/coreComponents/schema/docs/ExponentialDecayPermeability.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -=================== ========= ======== =========================================== -Name Type Default Description -=================== ========= ======== =========================================== -empiricalConstant real64 required an empirical constant. -initialPermeability R1Tensor required initial permeability of the fracture. -name groupName required A name is required for any non-unique nodes -=================== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/ExponentialDecayPermeability_other.rst b/src/coreComponents/schema/docs/ExponentialDecayPermeability_other.rst deleted file mode 100644 index 945812dafaa..00000000000 --- a/src/coreComponents/schema/docs/ExponentialDecayPermeability_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -=============== ============== =================================================================== -Name Type Description -=============== ============== =================================================================== -dPerm_dDispJump real64_array4d Derivative of rock permeability with respect to displacement jump -dPerm_dPressure real64_array3d Derivative of rock permeability with respect to pressure -dPerm_dTraction real64_array4d Derivative of rock permeability with respect to the traction vector -permeability real64_array3d Rock permeability -=============== ============== =================================================================== - - diff --git a/src/coreComponents/schema/docs/ExtendedDruckerPrager.rst b/src/coreComponents/schema/docs/ExtendedDruckerPrager.rst deleted file mode 100644 index a196499ef95..00000000000 --- a/src/coreComponents/schema/docs/ExtendedDruckerPrager.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -============================ ========= ======== ==================================================================== -Name Type Default Description -============================ ========= ======== ==================================================================== -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultCohesion real64 0 Initial cohesion -defaultDensity real64 required Default Material Density -defaultDilationRatio real64 1 Dilation ratio [0,1] (ratio = tan dilationAngle / tan frictionAngle) -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultHardening real64 0 Hardening parameter (hardening rate is faster for smaller values) -defaultInitialFrictionAngle real64 30 Initial friction angle (degrees) -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultResidualFrictionAngle real64 30 Residual friction angle (degrees) -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -name groupName required A name is required for any non-unique nodes -============================ ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ExtendedDruckerPrager_other.rst b/src/coreComponents/schema/docs/ExtendedDruckerPrager_other.rst deleted file mode 100644 index 729d894b362..00000000000 --- a/src/coreComponents/schema/docs/ExtendedDruckerPrager_other.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -density real64_array2d Material Density -dilationRatio real64_array Plastic potential slope ratio -hardening real64_array Hardening parameter -initialFriction real64_array Initial yield surface slope -oldStateVariable real64_array2d Old equivalent plastic shear strain -oldStress real64_array3d Previous Material Stress -pressureIntercept real64_array Pressure point at cone vertex -residualFriction real64_array Residual yield surface slope -shearModulus real64_array Elastic Shear Modulus Field -stateVariable real64_array2d New equivalent plastic shear strain -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/FieldSpecification.rst b/src/coreComponents/schema/docs/FieldSpecification.rst deleted file mode 100644 index 81d6fead75e..00000000000 --- a/src/coreComponents/schema/docs/FieldSpecification.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -====================== ================== ======== ============================================================================== -Name Type Default Description -====================== ================== ======== ============================================================================== -bcApplicationTableName groupNameRef Name of table that specifies the on/off application of the boundary condition. -beginTime real64 -1e+99 Time at which the boundary condition will start being applied. -component integer -1 Component of field (if tensor) to apply boundary condition to. -direction R1Tensor {0,0,0} Direction to apply boundary condition to. -endTime real64 1e+99 Time at which the boundary condition will stop being applied. -fieldName groupNameRef Name of field that boundary condition is applied to. -functionName groupNameRef Name of function that specifies variation of the boundary condition. -initialCondition integer 0 Boundary condition is applied as an initial condition. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -objectPath groupNameRef Path to the target field -scale real64 0 Scale factor for value of the boundary condition. -setNames groupNameRef_array required Name of sets that boundary condition is applied to. -====================== ================== ======== ============================================================================== - - diff --git a/src/coreComponents/schema/docs/FieldSpecification_other.rst b/src/coreComponents/schema/docs/FieldSpecification_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/FieldSpecification_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/FieldSpecifications.rst b/src/coreComponents/schema/docs/FieldSpecifications.rst deleted file mode 100644 index f0da4190ad4..00000000000 --- a/src/coreComponents/schema/docs/FieldSpecifications.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -====================== ==== ======= ================================= -Name Type Default Description -====================== ==== ======= ================================= -Aquifer node :ref:`XML_Aquifer` -Dirichlet node :ref:`XML_Dirichlet` -FieldSpecification node :ref:`XML_FieldSpecification` -HydrostaticEquilibrium node :ref:`XML_HydrostaticEquilibrium` -PML node :ref:`XML_PML` -SourceFlux node :ref:`XML_SourceFlux` -Traction node :ref:`XML_Traction` -====================== ==== ======= ================================= - - diff --git a/src/coreComponents/schema/docs/FieldSpecifications_other.rst b/src/coreComponents/schema/docs/FieldSpecifications_other.rst deleted file mode 100644 index 7280e734cf5..00000000000 --- a/src/coreComponents/schema/docs/FieldSpecifications_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -====================== ==== =========================================== -Name Type Description -====================== ==== =========================================== -Aquifer node :ref:`DATASTRUCTURE_Aquifer` -Dirichlet node :ref:`DATASTRUCTURE_Dirichlet` -FieldSpecification node :ref:`DATASTRUCTURE_FieldSpecification` -HydrostaticEquilibrium node :ref:`DATASTRUCTURE_HydrostaticEquilibrium` -PML node :ref:`DATASTRUCTURE_PML` -SourceFlux node :ref:`DATASTRUCTURE_SourceFlux` -Traction node :ref:`DATASTRUCTURE_Traction` -====================== ==== =========================================== - - diff --git a/src/coreComponents/schema/docs/File.rst b/src/coreComponents/schema/docs/File.rst deleted file mode 100644 index 949fd71db6e..00000000000 --- a/src/coreComponents/schema/docs/File.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ======== ======================= -Name Type Default Description -==== ==== ======== ======================= -name path required The relative file path. -==== ==== ======== ======================= - - diff --git a/src/coreComponents/schema/docs/File_other.rst b/src/coreComponents/schema/docs/File_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/File_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/FiniteElementSpace.rst b/src/coreComponents/schema/docs/FiniteElementSpace.rst deleted file mode 100644 index 1dfa434e822..00000000000 --- a/src/coreComponents/schema/docs/FiniteElementSpace.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================== ============================================ ======== ======================================================================================================================================================================= -Name Type Default Description -================== ============================================ ======== ======================================================================================================================================================================= -formulation geos_FiniteElementDiscretization_Formulation default Specifier to indicate any specialized formuations. For instance, one of the many enhanced assumed strain methods of the Hexahedron parent shape would be indicated here -name groupName required A name is required for any non-unique nodes -order integer required The order of the finite element basis. -useVirtualElements integer 0 Specifier to indicate whether to force the use of VEM -================== ============================================ ======== ======================================================================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/FiniteElementSpace_other.rst b/src/coreComponents/schema/docs/FiniteElementSpace_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/FiniteElementSpace_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/FiniteElements.rst b/src/coreComponents/schema/docs/FiniteElements.rst deleted file mode 100644 index 8a027502bcb..00000000000 --- a/src/coreComponents/schema/docs/FiniteElements.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -========================= ==== ======= ==================================== -Name Type Default Description -========================= ==== ======= ==================================== -FiniteElementSpace node :ref:`XML_FiniteElementSpace` -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ==== ======= ==================================== - - diff --git a/src/coreComponents/schema/docs/FiniteElements_other.rst b/src/coreComponents/schema/docs/FiniteElements_other.rst deleted file mode 100644 index 2c1625e9f5a..00000000000 --- a/src/coreComponents/schema/docs/FiniteElements_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -========================= ==== ============================================== -Name Type Description -========================= ==== ============================================== -FiniteElementSpace node :ref:`DATASTRUCTURE_FiniteElementSpace` -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==== ============================================== - - diff --git a/src/coreComponents/schema/docs/FiniteVolume.rst b/src/coreComponents/schema/docs/FiniteVolume.rst deleted file mode 100644 index 2eeb1baa188..00000000000 --- a/src/coreComponents/schema/docs/FiniteVolume.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -=========================== ==== ======= ====================================== -Name Type Default Description -=========================== ==== ======= ====================================== -HybridMimeticDiscretization node :ref:`XML_HybridMimeticDiscretization` -TwoPointFluxApproximation node :ref:`XML_TwoPointFluxApproximation` -=========================== ==== ======= ====================================== - - diff --git a/src/coreComponents/schema/docs/FiniteVolume_other.rst b/src/coreComponents/schema/docs/FiniteVolume_other.rst deleted file mode 100644 index f72f9ada3c7..00000000000 --- a/src/coreComponents/schema/docs/FiniteVolume_other.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -=========================== ==== ================================================ -Name Type Description -=========================== ==== ================================================ -HybridMimeticDiscretization node :ref:`DATASTRUCTURE_HybridMimeticDiscretization` -TwoPointFluxApproximation node :ref:`DATASTRUCTURE_TwoPointFluxApproximation` -=========================== ==== ================================================ - - diff --git a/src/coreComponents/schema/docs/FlowProppantTransport.rst b/src/coreComponents/schema/docs/FlowProppantTransport.rst deleted file mode 100644 index 1444704a5ed..00000000000 --- a/src/coreComponents/schema/docs/FlowProppantTransport.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -flowSolverName groupNameRef required Name of the flow solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -proppantSolverName groupNameRef required Name of the proppant solver used by the coupled solver -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/FlowProppantTransport_other.rst b/src/coreComponents/schema/docs/FlowProppantTransport_other.rst deleted file mode 100644 index cccf4603c70..00000000000 --- a/src/coreComponents/schema/docs/FlowProppantTransport_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/FrictionlessContact.rst b/src/coreComponents/schema/docs/FrictionlessContact.rst deleted file mode 100644 index e150b24c06a..00000000000 --- a/src/coreComponents/schema/docs/FrictionlessContact.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -========================= ========= =========== ================================================================== -Name Type Default Description -========================= ========= =========== ================================================================== -displacementJumpThreshold real64 2.22045e-16 A threshold valued to determine whether a fracture is open or not. -name groupName required A name is required for any non-unique nodes -========================= ========= =========== ================================================================== - - diff --git a/src/coreComponents/schema/docs/FrictionlessContact_other.rst b/src/coreComponents/schema/docs/FrictionlessContact_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/FrictionlessContact_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Functions.rst b/src/coreComponents/schema/docs/Functions.rst deleted file mode 100644 index 7f0ec63e038..00000000000 --- a/src/coreComponents/schema/docs/Functions.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -========================== ==== ======= ===================================== -Name Type Default Description -========================== ==== ======= ===================================== -CompositeFunction node :ref:`XML_CompositeFunction` -MultivariableTableFunction node :ref:`XML_MultivariableTableFunction` -SymbolicFunction node :ref:`XML_SymbolicFunction` -TableFunction node :ref:`XML_TableFunction` -========================== ==== ======= ===================================== - - diff --git a/src/coreComponents/schema/docs/Functions_other.rst b/src/coreComponents/schema/docs/Functions_other.rst deleted file mode 100644 index 93d4ce21f6c..00000000000 --- a/src/coreComponents/schema/docs/Functions_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -========================== ==== =============================================== -Name Type Description -========================== ==== =============================================== -CompositeFunction node :ref:`DATASTRUCTURE_CompositeFunction` -MultivariableTableFunction node :ref:`DATASTRUCTURE_MultivariableTableFunction` -SymbolicFunction node :ref:`DATASTRUCTURE_SymbolicFunction` -TableFunction node :ref:`DATASTRUCTURE_TableFunction` -========================== ==== =============================================== - - diff --git a/src/coreComponents/schema/docs/Geometry.rst b/src/coreComponents/schema/docs/Geometry.rst deleted file mode 100644 index 43bc76a5f42..00000000000 --- a/src/coreComponents/schema/docs/Geometry.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -================= ==== ======= ============================ -Name Type Default Description -================= ==== ======= ============================ -Box node :ref:`XML_Box` -CustomPolarObject node :ref:`XML_CustomPolarObject` -Cylinder node :ref:`XML_Cylinder` -Disc node :ref:`XML_Disc` -Rectangle node :ref:`XML_Rectangle` -ThickPlane node :ref:`XML_ThickPlane` -================= ==== ======= ============================ - - diff --git a/src/coreComponents/schema/docs/Geometry_other.rst b/src/coreComponents/schema/docs/Geometry_other.rst deleted file mode 100644 index af15f983b0a..00000000000 --- a/src/coreComponents/schema/docs/Geometry_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -================= ==== ====================================== -Name Type Description -================= ==== ====================================== -Box node :ref:`DATASTRUCTURE_Box` -CustomPolarObject node :ref:`DATASTRUCTURE_CustomPolarObject` -Cylinder node :ref:`DATASTRUCTURE_Cylinder` -Disc node :ref:`DATASTRUCTURE_Disc` -Rectangle node :ref:`DATASTRUCTURE_Rectangle` -ThickPlane node :ref:`DATASTRUCTURE_ThickPlane` -================= ==== ====================================== - - diff --git a/src/coreComponents/schema/docs/HaltEvent.rst b/src/coreComponents/schema/docs/HaltEvent.rst deleted file mode 100644 index de2a154b525..00000000000 --- a/src/coreComponents/schema/docs/HaltEvent.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -==================== ============ ======== ===================================================================================================================== -Name Type Default Description -==================== ============ ======== ===================================================================================================================== -beginTime real64 0 Start time of this event. -endTime real64 1e+100 End time of this event. -finalDtStretch real64 0.001 Allow the final dt request for this event to grow by this percentage to match the endTime exactly. -forceDt real64 -1 While active, this event will request this timestep value (ignoring any children/targets requests). -logLevel integer 0 Log level -maxEventDt real64 -1 While active, this event will request a timestep <= this value (depending upon any child/target requests). -maxRuntime real64 required The maximum allowable runtime for the job. -name groupName required A name is required for any non-unique nodes -target groupNameRef Name of the object to be executed when the event criteria are met. -targetExactStartStop integer 1 If this option is set, the event will reduce its timestep requests to match any specified beginTime/endTimes exactly. -HaltEvent node :ref:`XML_HaltEvent` -PeriodicEvent node :ref:`XML_PeriodicEvent` -SoloEvent node :ref:`XML_SoloEvent` -==================== ============ ======== ===================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/HaltEvent_other.rst b/src/coreComponents/schema/docs/HaltEvent_other.rst deleted file mode 100644 index f63756dd49b..00000000000 --- a/src/coreComponents/schema/docs/HaltEvent_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -================= ======= =============================================== -Name Type Description -================= ======= =============================================== -currentSubEvent integer Index of the current subevent -eventForecast integer Indicates when the event is expected to execute -isTargetExecuting integer Index of the current subevent -lastCycle integer Last event occurrence (cycle) -lastTime real64 Last event occurrence (time) -HaltEvent node :ref:`DATASTRUCTURE_HaltEvent` -PeriodicEvent node :ref:`DATASTRUCTURE_PeriodicEvent` -SoloEvent node :ref:`DATASTRUCTURE_SoloEvent` -================= ======= =============================================== - - diff --git a/src/coreComponents/schema/docs/HybridMimeticDiscretization.rst b/src/coreComponents/schema/docs/HybridMimeticDiscretization.rst deleted file mode 100644 index 1ada365b75a..00000000000 --- a/src/coreComponents/schema/docs/HybridMimeticDiscretization.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -================ ========= ======== =================================================== -Name Type Default Description -================ ========= ======== =================================================== -innerProductType string required Type of inner product used in the hybrid FVM solver -name groupName required A name is required for any non-unique nodes -================ ========= ======== =================================================== - - diff --git a/src/coreComponents/schema/docs/HybridMimeticDiscretization_other.rst b/src/coreComponents/schema/docs/HybridMimeticDiscretization_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/HybridMimeticDiscretization_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Hydrofracture.rst b/src/coreComponents/schema/docs/Hydrofracture.rst deleted file mode 100644 index d36978900e6..00000000000 --- a/src/coreComponents/schema/docs/Hydrofracture.rst +++ /dev/null @@ -1,31 +0,0 @@ - - -===================================== =================================================================================================================================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -===================================== =================================================================================================================================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -flowSolverName groupNameRef required Name of the flow solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isLaggingFractureStencilWeightsUpdate integer 0 Flag to determine whether or not to apply lagging update for the fracture stencil weights. -isMatrixPoroelastic integer 0 (no description available) -isThermal integer 0 Flag indicating whether the problem is thermal or not. Set isThermal="1" to enable the thermal coupling -logLevel integer 0 Log level -maxNumResolves integer 10 Value to indicate how many resolves may be executed to perform surface generation after the execution of flow and mechanics solver. -name groupName required A name is required for any non-unique nodes -newFractureInitializationType geos_HydrofractureSolver >_InitializationType Pressure Type of new fracture element initialization. Can be Pressure or Displacement. -solidSolverName groupNameRef required Name of the solid solver used by the coupled solver -stabilizationMultiplier real64 1 Constant multiplier of stabilization strength -stabilizationRegionNames groupNameRef_array {} Regions where stabilization is applied. -stabilizationType geos_stabilization_StabilizationType None | StabilizationType. Options are: - | None- Add no stabilization to mass equation - | Global- Add jump stabilization to all faces - | Local- Add jump stabilization on interior of macro elements -surfaceGeneratorName groupNameRef required Name of the surface generator to use in the hydrofracture solver -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -useQuasiNewton integer 0 (no description available) -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -===================================== =================================================================================================================================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/HydrofractureInitialization.rst b/src/coreComponents/schema/docs/HydrofractureInitialization.rst deleted file mode 100644 index 18e3a0dd9e7..00000000000 --- a/src/coreComponents/schema/docs/HydrofractureInitialization.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver -solidMechanicsStatisticsName groupNameRef Name of the solid mechanics statistics -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/HydrofractureInitialization_other.rst b/src/coreComponents/schema/docs/HydrofractureInitialization_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/HydrofractureInitialization_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Hydrofracture_other.rst b/src/coreComponents/schema/docs/Hydrofracture_other.rst deleted file mode 100644 index dc33be0a036..00000000000 --- a/src/coreComponents/schema/docs/Hydrofracture_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -performStressInitialization integer Flag to indicate that the solver is going to perform stress initialization -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/HydrostaticEquilibrium.rst b/src/coreComponents/schema/docs/HydrostaticEquilibrium.rst deleted file mode 100644 index 3b1f86b4003..00000000000 --- a/src/coreComponents/schema/docs/HydrostaticEquilibrium.rst +++ /dev/null @@ -1,26 +0,0 @@ - - -============================================ ================== ======== ==================================================================================================== -Name Type Default Description -============================================ ================== ======== ==================================================================================================== -bcApplicationTableName groupNameRef Name of table that specifies the on/off application of the boundary condition. -beginTime real64 -1e+99 Time at which the boundary condition will start being applied. -componentFractionVsElevationTableNames groupNameRef_array {} Names of the tables specifying the (component fraction vs elevation) relationship for each component -componentNames string_array {} Names of the fluid components -datumElevation real64 required Datum elevation [m] -datumPressure real64 required Datum pressure [Pa] -direction R1Tensor {0,0,0} Direction to apply boundary condition to. -elevationIncrementInHydrostaticPressureTable real64 0.6096 Elevation increment [m] in the hydrostatic pressure table constructed internally -endTime real64 1e+99 Time at which the boundary condition will stop being applied. -equilibrationTolerance real64 0.001 Tolerance in the fixed-point iteration scheme used for hydrostatic initialization -functionName groupNameRef Name of function that specifies variation of the boundary condition. -initialPhaseName groupNameRef Name of the phase initially saturating the reservoir -logLevel integer 0 Log level -maxNumberOfEquilibrationIterations integer 5 Maximum number of equilibration iterations -name groupName required A name is required for any non-unique nodes -objectPath groupNameRef Path to the target field -scale real64 0 Scale factor for value of the boundary condition. -temperatureVsElevationTableName groupNameRef Name of the table specifying the (temperature [K] vs elevation) relationship -============================================ ================== ======== ==================================================================================================== - - diff --git a/src/coreComponents/schema/docs/HydrostaticEquilibrium_other.rst b/src/coreComponents/schema/docs/HydrostaticEquilibrium_other.rst deleted file mode 100644 index 57ad4f17a8c..00000000000 --- a/src/coreComponents/schema/docs/HydrostaticEquilibrium_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================ ================== ============================================================== -Name Type Description -================ ================== ============================================================== -component integer Component of field (if tensor) to apply boundary condition to. -fieldName groupNameRef Name of field that boundary condition is applied to. -initialCondition integer Boundary condition is applied as an initial condition. -setNames groupNameRef_array Name of sets that boundary condition is applied to. -================ ================== ============================================================== - - diff --git a/src/coreComponents/schema/docs/Included.rst b/src/coreComponents/schema/docs/Included.rst deleted file mode 100644 index c3b01961df6..00000000000 --- a/src/coreComponents/schema/docs/Included.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ======= =============== -Name Type Default Description -==== ==== ======= =============== -File node :ref:`XML_File` -==== ==== ======= =============== - - diff --git a/src/coreComponents/schema/docs/Included_other.rst b/src/coreComponents/schema/docs/Included_other.rst deleted file mode 100644 index 2fbd25975df..00000000000 --- a/src/coreComponents/schema/docs/Included_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ========================= -Name Type Description -==== ==== ========================= -File node :ref:`DATASTRUCTURE_File` -==== ==== ========================= - - diff --git a/src/coreComponents/schema/docs/InternalMesh.rst b/src/coreComponents/schema/docs/InternalMesh.rst deleted file mode 100644 index c8de2fad08c..00000000000 --- a/src/coreComponents/schema/docs/InternalMesh.rst +++ /dev/null @@ -1,24 +0,0 @@ - - -================= ================== ======== ======================================================================================================= -Name Type Default Description -================= ================== ======== ======================================================================================================= -cellBlockNames groupNameRef_array required Names of each mesh block -elementTypes string_array required Element types of each mesh block -name groupName required A name is required for any non-unique nodes -nx integer_array required Number of elements in the x-direction within each mesh block -ny integer_array required Number of elements in the y-direction within each mesh block -nz integer_array required Number of elements in the z-direction within each mesh block -positionTolerance real64 1e-10 A position tolerance to verify if a node belong to a nodeset -trianglePattern integer 0 Pattern by which to decompose the hex mesh into wedges -xBias real64_array {1} Bias of element sizes in the x-direction within each mesh block (dx_left=(1+b)*L/N, dx_right=(1-b)*L/N) -xCoords real64_array required x-coordinates of each mesh block vertex -yBias real64_array {1} Bias of element sizes in the y-direction within each mesh block (dy_left=(1+b)*L/N, dx_right=(1-b)*L/N) -yCoords real64_array required y-coordinates of each mesh block vertex -zBias real64_array {1} Bias of element sizes in the z-direction within each mesh block (dz_left=(1+b)*L/N, dz_right=(1-b)*L/N) -zCoords real64_array required z-coordinates of each mesh block vertex -InternalWell node :ref:`XML_InternalWell` -VTKWell node :ref:`XML_VTKWell` -================= ================== ======== ======================================================================================================= - - diff --git a/src/coreComponents/schema/docs/InternalMesh_other.rst b/src/coreComponents/schema/docs/InternalMesh_other.rst deleted file mode 100644 index 8ca4f02bc36..00000000000 --- a/src/coreComponents/schema/docs/InternalMesh_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -============ ==== ================================= -Name Type Description -============ ==== ================================= -InternalWell node :ref:`DATASTRUCTURE_InternalWell` -VTKWell node :ref:`DATASTRUCTURE_VTKWell` -meshLevels node :ref:`DATASTRUCTURE_meshLevels` -============ ==== ================================= - - diff --git a/src/coreComponents/schema/docs/InternalWell.rst b/src/coreComponents/schema/docs/InternalWell.rst deleted file mode 100644 index bb26958fc59..00000000000 --- a/src/coreComponents/schema/docs/InternalWell.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -===================== =================== ======== ==================================================================================================== -Name Type Default Description -===================== =================== ======== ==================================================================================================== -logLevel integer 0 Log level -minElementLength real64 0.001 Minimum length of a well element, computed as (segment length / number of elements per segment ) [m] -minSegmentLength real64 0.01 Minimum length of a well segment [m] -name groupName required A name is required for any non-unique nodes -numElementsPerSegment integer required Number of well elements per polyline segment -polylineNodeCoords real64_array2d required Physical coordinates of the well polyline nodes -polylineSegmentConn globalIndex_array2d required Connectivity of the polyline segments -radius real64 required Radius of the well [m] -wellControlsName string required Name of the set of constraints associated with this well -wellRegionName string required Name of the well element region -Perforation node :ref:`XML_Perforation` -===================== =================== ======== ==================================================================================================== - - diff --git a/src/coreComponents/schema/docs/InternalWell_other.rst b/src/coreComponents/schema/docs/InternalWell_other.rst deleted file mode 100644 index 638cc779598..00000000000 --- a/src/coreComponents/schema/docs/InternalWell_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -=========== ==== ================================ -Name Type Description -=========== ==== ================================ -Perforation node :ref:`DATASTRUCTURE_Perforation` -=========== ==== ================================ - - diff --git a/src/coreComponents/schema/docs/InternalWellbore.rst b/src/coreComponents/schema/docs/InternalWellbore.rst deleted file mode 100644 index d9e3151e2f9..00000000000 --- a/src/coreComponents/schema/docs/InternalWellbore.rst +++ /dev/null @@ -1,30 +0,0 @@ - - -=========================== ================== ======== ============================================================================================================================================================================================================================ -Name Type Default Description -=========================== ================== ======== ============================================================================================================================================================================================================================ -autoSpaceRadialElems real64_array {-1} Automatically set number and spacing of elements in the radial direction. This overrides the values of nr!Value in each block indicates factor to scale the radial increment.Larger numbers indicate larger radial elements. -cartesianMappingInnerRadius real64 1e+99 If using a Cartesian aligned outer boundary, this is inner radius at which to start the mapping. -cellBlockNames groupNameRef_array required Names of each mesh block -elementTypes string_array required Element types of each mesh block -hardRadialCoords real64_array {0} Sets the radial spacing to specified values -name groupName required A name is required for any non-unique nodes -nr integer_array required Number of elements in the radial direction -nt integer_array required Number of elements in the tangent direction -nz integer_array required Number of elements in the z-direction within each mesh block -positionTolerance real64 1e-10 A position tolerance to verify if a node belong to a nodeset -rBias real64_array {-0.8} Bias of element sizes in the radial direction -radius real64_array required Wellbore radius -theta real64_array required Tangent angle defining geometry size: 90 for quarter, 180 for half and 360 for full wellbore geometry -trajectory real64_array2d {{0}} Coordinates defining the wellbore trajectory -trianglePattern integer 0 Pattern by which to decompose the hex mesh into wedges -useCartesianOuterBoundary integer 1000000 Enforce a Cartesian aligned outer boundary on the outer block starting with the radial block specified in this value -xBias real64_array {1} Bias of element sizes in the x-direction within each mesh block (dx_left=(1+b)*L/N, dx_right=(1-b)*L/N) -yBias real64_array {1} Bias of element sizes in the y-direction within each mesh block (dy_left=(1+b)*L/N, dx_right=(1-b)*L/N) -zBias real64_array {1} Bias of element sizes in the z-direction within each mesh block (dz_left=(1+b)*L/N, dz_right=(1-b)*L/N) -zCoords real64_array required z-coordinates of each mesh block vertex -InternalWell node :ref:`XML_InternalWell` -VTKWell node :ref:`XML_VTKWell` -=========================== ================== ======== ============================================================================================================================================================================================================================ - - diff --git a/src/coreComponents/schema/docs/InternalWellbore_other.rst b/src/coreComponents/schema/docs/InternalWellbore_other.rst deleted file mode 100644 index 14901e94dac..00000000000 --- a/src/coreComponents/schema/docs/InternalWellbore_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -============ ============= ============================================================ -Name Type Description -============ ============= ============================================================ -nx integer_array Number of elements in the x-direction within each mesh block -ny integer_array Number of elements in the y-direction within each mesh block -xCoords real64_array x-coordinates of each mesh block vertex -yCoords real64_array y-coordinates of each mesh block vertex -InternalWell node :ref:`DATASTRUCTURE_InternalWell` -VTKWell node :ref:`DATASTRUCTURE_VTKWell` -meshLevels node :ref:`DATASTRUCTURE_meshLevels` -============ ============= ============================================================ - - diff --git a/src/coreComponents/schema/docs/JFunctionCapillaryPressure.rst b/src/coreComponents/schema/docs/JFunctionCapillaryPressure.rst deleted file mode 100644 index 5f42b347615..00000000000 --- a/src/coreComponents/schema/docs/JFunctionCapillaryPressure.rst +++ /dev/null @@ -1,38 +0,0 @@ - - -======================================== ================================================================== ======== ========================================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -======================================== ================================================================== ======== ========================================================================================================================================================================================================================================================================================================================================================================================== -name groupName required A name is required for any non-unique nodes -nonWettingIntermediateJFunctionTableName groupNameRef | J-function table (dimensionless) for the pair (non-wetting phase, intermediate phase) - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead wettingNonWettingJFunctionTableName to specify the table names. -nonWettingIntermediateSurfaceTension real64 0 | Surface tension [N/m] for the pair (non-wetting phase, intermediate phase) - | If you have a value in [dyne/cm], divide it by 1000 to obtain the value in [N/m] - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead wettingNonWettingSurfaceTension to specify the surface tensions. -permeabilityDirection geos_constitutive_JFunctionCapillaryPressure_PermeabilityDirection required | Permeability direction. Options are: - | XY - use the average of the permeabilities in the x and y directions, - | X - only use the permeability in the x direction, - | Y - only use the permeability in the y direction, - | Z - only use the permeability in the z direction. -permeabilityExponent real64 0.5 Permeability exponent -phaseNames groupNameRef_array required List of fluid phases -porosityExponent real64 0.5 Porosity exponent -wettingIntermediateJFunctionTableName groupNameRef | J-function table (dimensionless) for the pair (wetting phase, intermediate phase) - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead wettingNonWettingJFunctionTableName to specify the table names. -wettingIntermediateSurfaceTension real64 0 | Surface tension [N/m] for the pair (wetting phase, intermediate phase) - | If you have a value in [dyne/cm], divide it by 1000 to obtain the value in [N/m] - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead wettingNonWettingSurfaceTension to specify the surface tensions. -wettingNonWettingJFunctionTableName groupNameRef | J-function table (dimensionless) for the pair (wetting phase, non-wetting phase) - | Note that this input is only used for two-phase flow. - | If you want to do a three-phase simulation, please use instead wettingIntermediateJFunctionTableName and nonWettingIntermediateJFunctionTableName to specify the table names. -wettingNonWettingSurfaceTension real64 0 | Surface tension [N/m] for the pair (wetting phase, non-wetting phase) - | If you have a value in [dyne/cm], divide it by 1000 to obtain the value in [N/m] - | Note that this input is only used for two-phase flow. - | If you want to do a three-phase simulation, please use instead wettingIntermediateSurfaceTension and nonWettingIntermediateSurfaceTension to specify the surface tensions. -======================================== ================================================================== ======== ========================================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/JFunctionCapillaryPressure_other.rst b/src/coreComponents/schema/docs/JFunctionCapillaryPressure_other.rst deleted file mode 100644 index a9cd8c30fda..00000000000 --- a/src/coreComponents/schema/docs/JFunctionCapillaryPressure_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -=================================== =================================================================================================== ============================================================================ -Name Type Description -=================================== =================================================================================================== ============================================================================ -dPhaseCapPressure_dPhaseVolFraction real64_array4d Derivative of phase capillary pressure with respect to phase volume fraction -jFuncMultiplier real64_array2d Multiplier for the Leverett J-function -jFunctionWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -phaseCapPressure real64_array3d Phase capillary pressure -phaseOrder integer_array (no description available) -phaseTypes integer_array (no description available) -=================================== =================================================================================================== ============================================================================ - - diff --git a/src/coreComponents/schema/docs/LaplaceFEM.rst b/src/coreComponents/schema/docs/LaplaceFEM.rst deleted file mode 100644 index 21ff08859ec..00000000000 --- a/src/coreComponents/schema/docs/LaplaceFEM.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -========================= ======================================== ======== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ======================================== ======== ======================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -fieldName groupNameRef required Name of field variable -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeIntegrationOption geos_LaplaceBaseH1_TimeIntegrationOption required | Time integration method. Options are: - | * SteadyState - | * ImplicitTransient -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ======================================== ======== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/LaplaceFEM_other.rst b/src/coreComponents/schema/docs/LaplaceFEM_other.rst deleted file mode 100644 index f296d4de732..00000000000 --- a/src/coreComponents/schema/docs/LaplaceFEM_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/Level0_other.rst b/src/coreComponents/schema/docs/Level0_other.rst deleted file mode 100644 index 14597cbcd99..00000000000 --- a/src/coreComponents/schema/docs/Level0_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -=========================== ======= ================================================ -Name Type Description -=========================== ======= ================================================ -meshLevel integer (no description available) -ElementRegions node :ref:`DATASTRUCTURE_ElementRegions` -ParticleRegions node :ref:`DATASTRUCTURE_ParticleRegions` -edgeManager node :ref:`DATASTRUCTURE_edgeManager` -embeddedSurfacesEdgeManager node :ref:`DATASTRUCTURE_embeddedSurfacesEdgeManager` -embeddedSurfacesNodeManager node :ref:`DATASTRUCTURE_embeddedSurfacesNodeManager` -faceManager node :ref:`DATASTRUCTURE_faceManager` -nodeManager node :ref:`DATASTRUCTURE_nodeManager` -=========================== ======= ================================================ - - diff --git a/src/coreComponents/schema/docs/LinearIsotropicDispersion.rst b/src/coreComponents/schema/docs/LinearIsotropicDispersion.rst deleted file mode 100644 index 705ac240c42..00000000000 --- a/src/coreComponents/schema/docs/LinearIsotropicDispersion.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -======================== ========= ======== =========================================== -Name Type Default Description -======================== ========= ======== =========================================== -longitudinalDispersivity real64 required Longitudinal dispersivity [m] -name groupName required A name is required for any non-unique nodes -======================== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/LinearIsotropicDispersion_other.rst b/src/coreComponents/schema/docs/LinearIsotropicDispersion_other.rst deleted file mode 100644 index 27d657ba903..00000000000 --- a/src/coreComponents/schema/docs/LinearIsotropicDispersion_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -============ ============== ============ -Name Type Description -============ ============== ============ -dispersivity real64_array3d Dispersivity -============ ============== ============ - - diff --git a/src/coreComponents/schema/docs/LinearSolverParameters.rst b/src/coreComponents/schema/docs/LinearSolverParameters.rst deleted file mode 100644 index 67d62e850dd..00000000000 --- a/src/coreComponents/schema/docs/LinearSolverParameters.rst +++ /dev/null @@ -1,43 +0,0 @@ - - -============================= ============================================== ============= ======================================================================================================================================================================================================================================================================================================================= -Name Type Default Description -============================= ============================================== ============= ======================================================================================================================================================================================================================================================================================================================= -amgAggressiveCoarseningLevels integer 0 AMG number of levels for aggressive coarsening -amgAggressiveCoarseningPaths integer 1 AMG number of paths for aggressive coarsening -amgAggressiveInterpType geos_LinearSolverParameters_AMG_AggInterpType multipass AMG aggressive interpolation algorithm. Available options are: ``default\|extendedIStage2\|standardStage2\|extendedStage2\|multipass\|modifiedExtended\|modifiedExtendedI\|modifiedExtendedE\|modifiedMultipass`` -amgCoarseSolver geos_LinearSolverParameters_AMG_CoarseType direct AMG coarsest level solver/smoother type. Available options are: ``default\|jacobi\|l1jacobi\|fgs\|sgs\|l1sgs\|chebyshev\|direct\|bgs`` -amgCoarseningType geos_LinearSolverParameters_AMG_CoarseningType HMIS AMG coarsening algorithm. Available options are: ``default\|CLJP\|RugeStueben\|Falgout\|PMIS\|HMIS`` -amgInterpolationMaxNonZeros integer 4 AMG interpolation maximum number of nonzeros per row -amgInterpolationType geos_LinearSolverParameters_AMG_InterpType extendedI AMG interpolation algorithm. Available options are: ``default\|modifiedClassical\|direct\|multipass\|extendedI\|standard\|extended\|directBAMG\|modifiedExtended\|modifiedExtendedI\|modifiedExtendedE`` -amgNullSpaceType geos_LinearSolverParameters_AMG_NullSpaceType constantModes AMG near null space approximation. Available options are:``constantModes\|rigidBodyModes`` -amgNumFunctions integer 1 AMG number of functions -amgNumSweeps integer 1 AMG smoother sweeps -amgRelaxWeight real64 1 AMG relaxation factor for the smoother -amgSeparateComponents integer 0 AMG apply separate component filter for multi-variable problems -amgSmootherType geos_LinearSolverParameters_AMG_SmootherType l1sgs AMG smoother type. Available options are: ``default\|jacobi\|l1jacobi\|fgs\|bgs\|sgs\|l1sgs\|chebyshev\|ilu0\|ilut\|ic0\|ict`` -amgThreshold real64 0 AMG strength-of-connection threshold -directCheckResidual integer 0 Whether to check the linear system solution residual -directColPerm geos_LinearSolverParameters_Direct_ColPerm metis How to permute the columns. Available options are: ``none\|MMD_AtplusA\|MMD_AtA\|colAMD\|metis\|parmetis`` -directEquil integer 1 Whether to scale the rows and columns of the matrix -directIterRef integer 1 Whether to perform iterative refinement -directParallel integer 1 Whether to use a parallel solver (instead of a serial one) -directReplTinyPivot integer 1 Whether to replace tiny pivots by sqrt(epsilon)*norm(A) -directRowPerm geos_LinearSolverParameters_Direct_RowPerm mc64 How to permute the rows. Available options are: ``none\|mc64`` -iluFill integer 0 ILU(K) fill factor -iluThreshold real64 0 ILU(T) threshold factor -krylovAdaptiveTol integer 0 Use Eisenstat-Walker adaptive linear tolerance -krylovMaxIter integer 200 Maximum iterations allowed for an iterative solver -krylovMaxRestart integer 200 Maximum iterations before restart (GMRES only) -krylovTol real64 1e-06 | Relative convergence tolerance of the iterative method - | If the method converges, the iterative solution :math:`\mathsf{x}_k` is such that - | the relative residual norm satisfies: - | :math:`\left\lVert \mathsf{b} - \mathsf{A} \mathsf{x}_k \right\rVert_2` < ``krylovTol`` * :math:`\left\lVert\mathsf{b}\right\rVert_2` -krylovWeakestTol real64 0.001 Weakest-allowed tolerance for adaptive method -logLevel integer 0 Log level -preconditionerType geos_LinearSolverParameters_PreconditionerType iluk Preconditioner type. Available options are: ``none\|jacobi\|l1jacobi\|fgs\|sgs\|l1sgs\|chebyshev\|iluk\|ilut\|icc\|ict\|amg\|mgr\|block\|direct\|bgs`` -solverType geos_LinearSolverParameters_SolverType direct Linear solver type. Available options are: ``direct\|cg\|gmres\|fgmres\|bicgstab\|preconditioner`` -stopIfError integer 1 Whether to stop the simulation if the linear solver reports an error -============================= ============================================== ============= ======================================================================================================================================================================================================================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/LinearSolverParameters_other.rst b/src/coreComponents/schema/docs/LinearSolverParameters_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/LinearSolverParameters_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Mesh.rst b/src/coreComponents/schema/docs/Mesh.rst deleted file mode 100644 index b64bf1d9e19..00000000000 --- a/src/coreComponents/schema/docs/Mesh.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================ ==== ======= =========================== -Name Type Default Description -================ ==== ======= =========================== -InternalMesh node :ref:`XML_InternalMesh` -InternalWellbore node :ref:`XML_InternalWellbore` -ParticleMesh node :ref:`XML_ParticleMesh` -VTKMesh node :ref:`XML_VTKMesh` -================ ==== ======= =========================== - - diff --git a/src/coreComponents/schema/docs/MeshBodies_other.rst b/src/coreComponents/schema/docs/MeshBodies_other.rst deleted file mode 100644 index 03f870a1bdc..00000000000 --- a/src/coreComponents/schema/docs/MeshBodies_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================ ==== ===================================== -Name Type Description -================ ==== ===================================== -InternalMesh node :ref:`DATASTRUCTURE_InternalMesh` -InternalWellbore node :ref:`DATASTRUCTURE_InternalWellbore` -ParticleMesh node :ref:`DATASTRUCTURE_ParticleMesh` -VTKMesh node :ref:`DATASTRUCTURE_VTKMesh` -================ ==== ===================================== - - diff --git a/src/coreComponents/schema/docs/Mesh_other.rst b/src/coreComponents/schema/docs/Mesh_other.rst deleted file mode 100644 index 03f870a1bdc..00000000000 --- a/src/coreComponents/schema/docs/Mesh_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================ ==== ===================================== -Name Type Description -================ ==== ===================================== -InternalMesh node :ref:`DATASTRUCTURE_InternalMesh` -InternalWellbore node :ref:`DATASTRUCTURE_InternalWellbore` -ParticleMesh node :ref:`DATASTRUCTURE_ParticleMesh` -VTKMesh node :ref:`DATASTRUCTURE_VTKMesh` -================ ==== ===================================== - - diff --git a/src/coreComponents/schema/docs/ModifiedCamClay.rst b/src/coreComponents/schema/docs/ModifiedCamClay.rst deleted file mode 100644 index 1784d9660fb..00000000000 --- a/src/coreComponents/schema/docs/ModifiedCamClay.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -=============================== ========= ======== ==================================================================== -Name Type Default Description -=============================== ========= ======== ==================================================================== -defaultCslSlope real64 1 Slope of the critical state line -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPreConsolidationPressure real64 -1.5 Initial preconsolidation pressure -defaultRecompressionIndex real64 0.002 Recompresion Index -defaultRefPressure real64 -1 Reference Pressure -defaultRefStrainVol real64 0 Reference Volumetric Strain -defaultShearModulus real64 -1 Elastic Shear Modulus Parameter -defaultVirginCompressionIndex real64 0.005 Virgin compression index -name groupName required A name is required for any non-unique nodes -=============================== ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ModifiedCamClay_other.rst b/src/coreComponents/schema/docs/ModifiedCamClay_other.rst deleted file mode 100644 index 9cbfc0ba5ef..00000000000 --- a/src/coreComponents/schema/docs/ModifiedCamClay_other.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -cslSlope real64_array Slope of the critical state line -density real64_array2d Material Density -oldPreConsolidationPressure real64_array2d Old preconsolidation pressure -oldStress real64_array3d Previous Material Stress -preConsolidationPressure real64_array2d New preconsolidation pressure -recompressionIndex real64_array Recompression Index Field -refPressure real64 Reference Pressure Field -refStrainVol real64 Reference Volumetric Strain -shearModulus real64_array Elastic Shear Modulus -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -virginCompressionIndex real64_array Virgin compression index -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/MultiPhaseConstantThermalConductivity.rst b/src/coreComponents/schema/docs/MultiPhaseConstantThermalConductivity.rst deleted file mode 100644 index 6e3bc5a89be..00000000000 --- a/src/coreComponents/schema/docs/MultiPhaseConstantThermalConductivity.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -============================= ================== ======== =============================================================================== -Name Type Default Description -============================= ================== ======== =============================================================================== -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array required List of fluid phases -thermalConductivityComponents R1Tensor required xx, yy, and zz components of a diagonal thermal conductivity tensor [J/(s.m.K)] -============================= ================== ======== =============================================================================== - - diff --git a/src/coreComponents/schema/docs/MultiPhaseConstantThermalConductivity_other.rst b/src/coreComponents/schema/docs/MultiPhaseConstantThermalConductivity_other.rst deleted file mode 100644 index d05e1e4c5be..00000000000 --- a/src/coreComponents/schema/docs/MultiPhaseConstantThermalConductivity_other.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -======================================== ============== ========================================================================== -Name Type Description -======================================== ============== ========================================================================== -dEffectiveConductivity_dPhaseVolFraction real64_array4d Derivative of effective conductivity with respect to phase volume fraction -effectiveConductivity real64_array3d Effective conductivity -======================================== ============== ========================================================================== - - diff --git a/src/coreComponents/schema/docs/MultiPhaseVolumeWeightedThermalConductivity.rst b/src/coreComponents/schema/docs/MultiPhaseVolumeWeightedThermalConductivity.rst deleted file mode 100644 index 9e3b5842029..00000000000 --- a/src/coreComponents/schema/docs/MultiPhaseVolumeWeightedThermalConductivity.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================================= ================== ======== ================================================================================== -Name Type Default Description -================================= ================== ======== ================================================================================== -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array required List of fluid phases -phaseThermalConductivity real64_array required Phase thermal conductivity [W/(m.K)] -rockThermalConductivityComponents R1Tensor required xx, yy, and zz components of a diagonal rock thermal conductivity tensor [W/(m.K)] -================================= ================== ======== ================================================================================== - - diff --git a/src/coreComponents/schema/docs/MultiPhaseVolumeWeightedThermalConductivity_other.rst b/src/coreComponents/schema/docs/MultiPhaseVolumeWeightedThermalConductivity_other.rst deleted file mode 100644 index 9884bfb7511..00000000000 --- a/src/coreComponents/schema/docs/MultiPhaseVolumeWeightedThermalConductivity_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -======================================== ============== ========================================================================== -Name Type Description -======================================== ============== ========================================================================== -dEffectiveConductivity_dPhaseVolFraction real64_array4d Derivative of effective conductivity with respect to phase volume fraction -effectiveConductivity real64_array3d Effective conductivity -rockThermalConductivity real64_array3d Rock thermal conductivity -======================================== ============== ========================================================================== - - diff --git a/src/coreComponents/schema/docs/MultiphasePoromechanics.rst b/src/coreComponents/schema/docs/MultiphasePoromechanics.rst deleted file mode 100644 index 002c98b6c89..00000000000 --- a/src/coreComponents/schema/docs/MultiphasePoromechanics.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -flowSolverName groupNameRef required Name of the flow solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. Set isThermal="1" to enable the thermal coupling -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -solidSolverName groupNameRef required Name of the solid solver used by the coupled solver -stabilizationMultiplier real64 1 Constant multiplier of stabilization strength -stabilizationRegionNames groupNameRef_array {} Regions where stabilization is applied. -stabilizationType geos_stabilization_StabilizationType None | StabilizationType. Options are: - | None- Add no stabilization to mass equation - | Global- Add jump stabilization to all faces - | Local- Add jump stabilization on interior of macro elements -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/MultiphasePoromechanicsInitialization.rst b/src/coreComponents/schema/docs/MultiphasePoromechanicsInitialization.rst deleted file mode 100644 index 18e3a0dd9e7..00000000000 --- a/src/coreComponents/schema/docs/MultiphasePoromechanicsInitialization.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver -solidMechanicsStatisticsName groupNameRef Name of the solid mechanics statistics -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/MultiphasePoromechanicsInitialization_other.rst b/src/coreComponents/schema/docs/MultiphasePoromechanicsInitialization_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/MultiphasePoromechanicsInitialization_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/MultiphasePoromechanicsReservoir.rst b/src/coreComponents/schema/docs/MultiphasePoromechanicsReservoir.rst deleted file mode 100644 index abe1a84cf22..00000000000 --- a/src/coreComponents/schema/docs/MultiphasePoromechanicsReservoir.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver used by the coupled solver -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -wellSolverName groupNameRef required Name of the well solver used by the coupled solver -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/MultiphasePoromechanicsReservoir_other.rst b/src/coreComponents/schema/docs/MultiphasePoromechanicsReservoir_other.rst deleted file mode 100644 index cccf4603c70..00000000000 --- a/src/coreComponents/schema/docs/MultiphasePoromechanicsReservoir_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst b/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst deleted file mode 100644 index dc33be0a036..00000000000 --- a/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -performStressInitialization integer Flag to indicate that the solver is going to perform stress initialization -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/MultivariableTableFunction.rst b/src/coreComponents/schema/docs/MultivariableTableFunction.rst deleted file mode 100644 index e82bf5f8a22..00000000000 --- a/src/coreComponents/schema/docs/MultivariableTableFunction.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -============= ================== ======== =========================================== -Name Type Default Description -============= ================== ======== =========================================== -inputVarNames groupNameRef_array {} Name of fields are input to function. -name groupName required A name is required for any non-unique nodes -============= ================== ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/MultivariableTableFunction_other.rst b/src/coreComponents/schema/docs/MultivariableTableFunction_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/MultivariableTableFunction_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/NonlinearSolverParameters.rst b/src/coreComponents/schema/docs/NonlinearSolverParameters.rst deleted file mode 100644 index 536793a2dea..00000000000 --- a/src/coreComponents/schema/docs/NonlinearSolverParameters.rst +++ /dev/null @@ -1,47 +0,0 @@ - - -============================== ============================================================= ============= =================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ============================================================= ============= =================================================================================================================================================================================================================================================================================================================== -allowNonConverged integer 0 Allow non-converged solution to be accepted. (i.e. exit from the Newton loop without achieving the desired tolerance) -configurationTolerance real64 0 Configuration tolerance -couplingType geos_NonlinearSolverParameters_CouplingType FullyImplicit | Type of coupling. Valid options: - | * FullyImplicit - | * Sequential -lineSearchAction geos_NonlinearSolverParameters_LineSearchAction Attempt | How the line search is to be used. Options are: - | * None - Do not use line search. - | * Attempt - Use line search. Allow exit from line search without achieving smaller residual than starting residual. - | * Require - Use line search. If smaller residual than starting resdual is not achieved, cut time step. -lineSearchCutFactor real64 0.5 Line search cut factor. For instance, a value of 0.5 will result in the effective application of the last solution by a factor of (0.5, 0.25, 0.125, ...) -lineSearchInterpolationType geos_NonlinearSolverParameters_LineSearchInterpolationType Linear | Strategy to cut the solution update during the line search. Options are: - | * Linear - | * Parabolic -lineSearchMaxCuts integer 4 Maximum number of line search cuts. -lineSearchResidualFactor real64 1 Factor to determine residual increase (recommended values: 1.1 (conservative), 2.0 (relaxed), 10.0 (aggressive)). -lineSearchStartingIteration integer 0 Iteration when line search starts. -logLevel integer 0 Log level -maxAllowedResidualNorm real64 1e+09 Maximum value of residual norm that is allowed in a Newton loop -maxNumConfigurationAttempts integer 10 Max number of times that the configuration can be changed -maxSubSteps integer 10 Maximum number of time sub-steps allowed for the solver -maxTimeStepCuts integer 2 Max number of time step cuts -minNormalizer real64 1e-12 Value used to make sure that residual normalizers are not too small when computing residual norm. -newtonMaxIter integer 5 Maximum number of iterations that are allowed in a Newton loop. -newtonMinIter integer 1 Minimum number of iterations that are required before exiting the Newton loop. -newtonTol real64 1e-06 The required tolerance in order to exit the Newton iteration loop. -nonlinearAccelerationType geos_NonlinearSolverParameters_NonlinearAccelerationType None Nonlinear acceleration type for sequential solver. -normType geos_solverBaseKernels_NormType Linfinity | Norm used by the flow solver to check nonlinear convergence. Valid options: - | * Linfinity - | * L2 -sequentialConvergenceCriterion geos_NonlinearSolverParameters_SequentialConvergenceCriterion ResidualNorm | Criterion used to check outer-loop convergence in sequential schemes. Valid options: - | * ResidualNorm - | * NumberOfNonlinearIterations - | * SolutionIncrements -subcycling integer 0 Flag to decide whether to iterate between sequentially coupled solvers or not. -timeStepCutFactor real64 0.5 Factor by which the time step will be cut if a timestep cut is required. -timeStepDecreaseFactor real64 0.5 Factor by which the time step is decreased when the number of Newton iterations is large. -timeStepDecreaseIterLimit real64 0.7 Fraction of the max Newton iterations above which the solver asks for the time-step to be decreased for the next time step. -timeStepIncreaseFactor real64 2 Factor by which the time step is increased when the number of Newton iterations is small. -timeStepIncreaseIterLimit real64 0.4 Fraction of the max Newton iterations below which the solver asks for the time-step to be increased for the next time step. -============================== ============================================================= ============= =================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/NonlinearSolverParameters_other.rst b/src/coreComponents/schema/docs/NonlinearSolverParameters_other.rst deleted file mode 100644 index 4ead4f562eb..00000000000 --- a/src/coreComponents/schema/docs/NonlinearSolverParameters_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -======================== =============================== ============================================================================================== -Name Type Description -======================== =============================== ============================================================================================== -newtonNumberOfIterations integer Number of Newton's iterations. -normType geos_solverBaseKernels_NormType | Norm used by the flow solver to check nonlinear convergence. Valid options: - | * Linfinity - | * L2 -======================== =============================== ============================================================================================== - - diff --git a/src/coreComponents/schema/docs/NullModel.rst b/src/coreComponents/schema/docs/NullModel.rst deleted file mode 100644 index f6c735e1d91..00000000000 --- a/src/coreComponents/schema/docs/NullModel.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ========= ======== =========================================== -Name Type Default Description -==== ========= ======== =========================================== -name groupName required A name is required for any non-unique nodes -==== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/NullModel_other.rst b/src/coreComponents/schema/docs/NullModel_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/NullModel_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/NumericalMethods.rst b/src/coreComponents/schema/docs/NumericalMethods.rst deleted file mode 100644 index 8eacb5881ba..00000000000 --- a/src/coreComponents/schema/docs/NumericalMethods.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -============== ==== ======= ========================= -Name Type Default Description -============== ==== ======= ========================= -FiniteElements node unique :ref:`XML_FiniteElements` -FiniteVolume node unique :ref:`XML_FiniteVolume` -============== ==== ======= ========================= - - diff --git a/src/coreComponents/schema/docs/NumericalMethods_other.rst b/src/coreComponents/schema/docs/NumericalMethods_other.rst deleted file mode 100644 index 8db7a57c3d9..00000000000 --- a/src/coreComponents/schema/docs/NumericalMethods_other.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -============== ==== =================================== -Name Type Description -============== ==== =================================== -FiniteElements node :ref:`DATASTRUCTURE_FiniteElements` -FiniteVolume node :ref:`DATASTRUCTURE_FiniteVolume` -============== ==== =================================== - - diff --git a/src/coreComponents/schema/docs/Outputs.rst b/src/coreComponents/schema/docs/Outputs.rst deleted file mode 100644 index 9950b014151..00000000000 --- a/src/coreComponents/schema/docs/Outputs.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========== ==== ======= ====================== -Name Type Default Description -=========== ==== ======= ====================== -Blueprint node :ref:`XML_Blueprint` -ChomboIO node :ref:`XML_ChomboIO` -Python node :ref:`XML_Python` -Restart node :ref:`XML_Restart` -Silo node :ref:`XML_Silo` -TimeHistory node :ref:`XML_TimeHistory` -VTK node :ref:`XML_VTK` -=========== ==== ======= ====================== - - diff --git a/src/coreComponents/schema/docs/Outputs_other.rst b/src/coreComponents/schema/docs/Outputs_other.rst deleted file mode 100644 index cbcc1b80401..00000000000 --- a/src/coreComponents/schema/docs/Outputs_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========== ==== ================================ -Name Type Description -=========== ==== ================================ -Blueprint node :ref:`DATASTRUCTURE_Blueprint` -ChomboIO node :ref:`DATASTRUCTURE_ChomboIO` -Python node :ref:`DATASTRUCTURE_Python` -Restart node :ref:`DATASTRUCTURE_Restart` -Silo node :ref:`DATASTRUCTURE_Silo` -TimeHistory node :ref:`DATASTRUCTURE_TimeHistory` -VTK node :ref:`DATASTRUCTURE_VTK` -=========== ==== ================================ - - diff --git a/src/coreComponents/schema/docs/PML.rst b/src/coreComponents/schema/docs/PML.rst deleted file mode 100644 index 7aa79ed39a6..00000000000 --- a/src/coreComponents/schema/docs/PML.rst +++ /dev/null @@ -1,26 +0,0 @@ - - -====================== ================== ======================================== ================================================================================================== -Name Type Default Description -====================== ================== ======================================== ================================================================================================== -bcApplicationTableName groupNameRef Name of table that specifies the on/off application of the boundary condition. -beginTime real64 -1e+99 Time at which the boundary condition will start being applied. -component integer -1 Component of field (if tensor) to apply boundary condition to. -direction R1Tensor {0,0,0} Direction to apply boundary condition to. -endTime real64 1e+99 Time at which the boundary condition will stop being applied. -functionName groupNameRef Name of function that specifies variation of the boundary condition. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -objectPath groupNameRef Path to the target field -reflectivity real32 0.001 Desired reflectivity of the PML region, used to compute the damping profile -scale real64 0 Scale factor for value of the boundary condition. -setNames groupNameRef_array required Name of sets that boundary condition is applied to. -thicknessMaxXYZ R1Tensor32 {-1,-1,-1} Thickness of the PML region, at right, back, and bottom sides, used to compute the damping profile -thicknessMinXYZ R1Tensor32 {-1,-1,-1} Thickness of the PML region, at left, front, and top sides, used to compute the damping profile -waveSpeedMaxXYZ R1Tensor32 {-1,-1,-1} Wave speed in the PML, at right, back, and bottom sides, used to compute the damping profile -waveSpeedMinXYZ R1Tensor32 {-1,-1,-1} Wave speed in the PML, at left, front, and top sides, used to compute the damping profile -xMax R1Tensor32 {3.40282e+38,3.40282e+38,3.40282e+38} Maximum (x,y,z) coordinates of the inner PML boundaries -xMin R1Tensor32 {-3.40282e+38,-3.40282e+38,-3.40282e+38} Minimum (x,y,z) coordinates of the inner PML boundaries -====================== ================== ======================================== ================================================================================================== - - diff --git a/src/coreComponents/schema/docs/PML_other.rst b/src/coreComponents/schema/docs/PML_other.rst deleted file mode 100644 index 32f3b5042b3..00000000000 --- a/src/coreComponents/schema/docs/PML_other.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -================ ============ ====================================================== -Name Type Description -================ ============ ====================================================== -fieldName groupNameRef Name of field that boundary condition is applied to. -initialCondition integer Boundary condition is applied as an initial condition. -================ ============ ====================================================== - - diff --git a/src/coreComponents/schema/docs/PVTDriver.rst b/src/coreComponents/schema/docs/PVTDriver.rst deleted file mode 100644 index 9196c73c11a..00000000000 --- a/src/coreComponents/schema/docs/PVTDriver.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -====================== ============ ======== ===================================================================== -Name Type Default Description -====================== ============ ======== ===================================================================== -baseline path none Baseline file -feedComposition real64_array required Feed composition array [mol fraction] -fluid groupNameRef required Fluid to test -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -output string none Output file -outputCompressibility integer 0 Flag to indicate that the total compressibility should be output -outputMassDensity integer 0 Flag to indicate that the mass density of each phase should be output -outputPhaseComposition integer 0 Flag to indicate that phase compositions should be output -pressureControl groupNameRef required Function controlling pressure time history -steps integer required Number of load steps to take -temperatureControl groupNameRef required Function controlling temperature time history -====================== ============ ======== ===================================================================== - - diff --git a/src/coreComponents/schema/docs/PVTDriver_other.rst b/src/coreComponents/schema/docs/PVTDriver_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PVTDriver_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PackCollection.rst b/src/coreComponents/schema/docs/PackCollection.rst deleted file mode 100644 index 0548e8255d7..00000000000 --- a/src/coreComponents/schema/docs/PackCollection.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -====================== ================== ======== =========================================================================================== -Name Type Default Description -====================== ================== ======== =========================================================================================== -disableCoordCollection integer 0 Whether or not to create coordinate meta-collectors if collected objects are mesh objects. -fieldName groupNameRef required The name of the (packable) field associated with the specified object to retrieve data from -name groupName required A name is required for any non-unique nodes -objectPath groupNameRef required The name of the object from which to retrieve field values. -onlyOnSetChange integer 0 Whether or not to only collect when the collected sets of indices change in any way. -setNames groupNameRef_array {} The set(s) for which to retrieve data. -====================== ================== ======== =========================================================================================== - - diff --git a/src/coreComponents/schema/docs/PackCollection_other.rst b/src/coreComponents/schema/docs/PackCollection_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PackCollection_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/ParallelPlatesPermeability.rst b/src/coreComponents/schema/docs/ParallelPlatesPermeability.rst deleted file mode 100644 index 3302c76016c..00000000000 --- a/src/coreComponents/schema/docs/ParallelPlatesPermeability.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -======================= ========= ======== =========================================================================================================================== -Name Type Default Description -======================= ========= ======== =========================================================================================================================== -name groupName required A name is required for any non-unique nodes -transversalPermeability real64 -1 Default value of the permeability normal to the surface. If not specified the permeability is updated using the cubic law. -======================= ========= ======== =========================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/ParallelPlatesPermeability_other.rst b/src/coreComponents/schema/docs/ParallelPlatesPermeability_other.rst deleted file mode 100644 index 43a2d06a562..00000000000 --- a/src/coreComponents/schema/docs/ParallelPlatesPermeability_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -=============== ============== ================================================================= -Name Type Description -=============== ============== ================================================================= -dPerm_dDispJump real64_array4d Derivative of rock permeability with respect to displacement jump -dPerm_dPressure real64_array3d Derivative of rock permeability with respect to pressure -permeability real64_array3d Rock permeability -=============== ============== ================================================================= - - diff --git a/src/coreComponents/schema/docs/Parameter.rst b/src/coreComponents/schema/docs/Parameter.rst deleted file mode 100644 index d9baf793024..00000000000 --- a/src/coreComponents/schema/docs/Parameter.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -===== ========= ======== =============================================== -Name Type Default Description -===== ========= ======== =============================================== -name groupName required A name is required for any non-unique nodes -value string required Input parameter definition for the preprocessor -===== ========= ======== =============================================== - - diff --git a/src/coreComponents/schema/docs/Parameter_other.rst b/src/coreComponents/schema/docs/Parameter_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Parameter_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Parameters.rst b/src/coreComponents/schema/docs/Parameters.rst deleted file mode 100644 index c871a1cfb34..00000000000 --- a/src/coreComponents/schema/docs/Parameters.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -========= ==== ======= ==================== -Name Type Default Description -========= ==== ======= ==================== -Parameter node :ref:`XML_Parameter` -========= ==== ======= ==================== - - diff --git a/src/coreComponents/schema/docs/Parameters_other.rst b/src/coreComponents/schema/docs/Parameters_other.rst deleted file mode 100644 index 626d3944b70..00000000000 --- a/src/coreComponents/schema/docs/Parameters_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -========= ==== ============================== -Name Type Description -========= ==== ============================== -Parameter node :ref:`DATASTRUCTURE_Parameter` -========= ==== ============================== - - diff --git a/src/coreComponents/schema/docs/ParticleFluid.rst b/src/coreComponents/schema/docs/ParticleFluid.rst deleted file mode 100644 index 6f659a16e35..00000000000 --- a/src/coreComponents/schema/docs/ParticleFluid.rst +++ /dev/null @@ -1,23 +0,0 @@ - - -=========================== ======================================= ======== ======================================================================================== -Name Type Default Description -=========================== ======================================= ======== ======================================================================================== -collisionAlpha real64 1.27 Collision alpha coefficient -collisionBeta real64 1.5 Collision beta coefficient -fluidViscosity real64 0.001 Fluid viscosity -hinderedSettlingCoefficient real64 5.9 Hindered settling coefficient -isCollisionalSlip integer 0 Whether the collisional component of the slip velocity is considered -maxProppantConcentration real64 0.6 Max proppant concentration -name groupName required A name is required for any non-unique nodes -particleSettlingModel geos_constitutive_ParticleSettlingModel required | Particle settling velocity model. Valid options: - | * Stokes - | * Intermediate - | * Turbulence -proppantDensity real64 1400 Proppant density -proppantDiameter real64 0.0002 Proppant diameter -slipConcentration real64 0.1 Slip concentration -sphericity real64 1 Sphericity -=========================== ======================================= ======== ======================================================================================== - - diff --git a/src/coreComponents/schema/docs/ParticleFluid_other.rst b/src/coreComponents/schema/docs/ParticleFluid_other.rst deleted file mode 100644 index bd2a5de8053..00000000000 --- a/src/coreComponents/schema/docs/ParticleFluid_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -======================================= ============== ===================================================================== -Name Type Description -======================================= ============== ===================================================================== -collisionFactor real64_array Collision factor -dCollisionFactor_dProppantConcentration real64_array Derivative of collision factor with respect to proppant concentration -dSettlingFactor_dComponentConcentration real64_array2d Derivative of settling factor with respect to component concentration -dSettlingFactor_dPressure real64_array Derivative of settling factor with respect to pressure -dSettlingFactor_dProppantConcentration real64_array Derivative of settling factor with respect to proppant concentration -proppantPackPermeability real64_array Proppant pack permeability -settlingFactor real64_array Settling factor -======================================= ============== ===================================================================== - - diff --git a/src/coreComponents/schema/docs/ParticleMesh.rst b/src/coreComponents/schema/docs/ParticleMesh.rst deleted file mode 100644 index 435f9ccf07a..00000000000 --- a/src/coreComponents/schema/docs/ParticleMesh.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -================== ============ ======== =========================================== -Name Type Default Description -================== ============ ======== =========================================== -headerFile path required path to the header file -name groupName required A name is required for any non-unique nodes -particleBlockNames string_array required Names of each particle block -particleFile path required path to the particle file -particleTypes string_array required Particle types of each particle block -================== ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/ParticleMesh_other.rst b/src/coreComponents/schema/docs/ParticleMesh_other.rst deleted file mode 100644 index 14257041f64..00000000000 --- a/src/coreComponents/schema/docs/ParticleMesh_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -========== ==== =============================== -Name Type Description -========== ==== =============================== -meshLevels node :ref:`DATASTRUCTURE_meshLevels` -========== ==== =============================== - - diff --git a/src/coreComponents/schema/docs/ParticleRegion.rst b/src/coreComponents/schema/docs/ParticleRegion.rst deleted file mode 100644 index 6cfaeb99938..00000000000 --- a/src/coreComponents/schema/docs/ParticleRegion.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============== ============ ======== =========================================== -Name Type Default Description -============== ============ ======== =========================================== -materialList string_array required List of materials present in this region -meshBody string Mesh body that contains this region -name groupName required A name is required for any non-unique nodes -particleBlocks string_array {} (no description available) -============== ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/ParticleRegion_other.rst b/src/coreComponents/schema/docs/ParticleRegion_other.rst deleted file mode 100644 index f57cca08d6b..00000000000 --- a/src/coreComponents/schema/docs/ParticleRegion_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -======================= ================================================================= ========================================================= -Name Type Description -======================= ================================================================= ========================================================= -domainBoundaryIndicator integer_array (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -neighborData node :ref:`DATASTRUCTURE_neighborData` -particleSubRegions node :ref:`DATASTRUCTURE_particleSubRegions` -sets node :ref:`DATASTRUCTURE_sets` -======================= ================================================================= ========================================================= - - diff --git a/src/coreComponents/schema/docs/ParticleRegions.rst b/src/coreComponents/schema/docs/ParticleRegions.rst deleted file mode 100644 index bd41c7378b9..00000000000 --- a/src/coreComponents/schema/docs/ParticleRegions.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -============== ==== ======= ========================= -Name Type Default Description -============== ==== ======= ========================= -ParticleRegion node :ref:`XML_ParticleRegion` -============== ==== ======= ========================= - - diff --git a/src/coreComponents/schema/docs/ParticleRegions_other.rst b/src/coreComponents/schema/docs/ParticleRegions_other.rst deleted file mode 100644 index 94022d14540..00000000000 --- a/src/coreComponents/schema/docs/ParticleRegions_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -======================= ================================================================= ========================================================= -Name Type Description -======================= ================================================================= ========================================================= -domainBoundaryIndicator integer_array (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -ParticleRegion node :ref:`DATASTRUCTURE_ParticleRegion` -neighborData node :ref:`DATASTRUCTURE_neighborData` -particleRegionsGroup node :ref:`DATASTRUCTURE_particleRegionsGroup` -sets node :ref:`DATASTRUCTURE_sets` -======================= ================================================================= ========================================================= - - diff --git a/src/coreComponents/schema/docs/PerfectlyPlastic.rst b/src/coreComponents/schema/docs/PerfectlyPlastic.rst deleted file mode 100644 index 019ce1379dc..00000000000 --- a/src/coreComponents/schema/docs/PerfectlyPlastic.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -======================= ========= ============ ==================================================================== -Name Type Default Description -======================= ========= ============ ==================================================================== -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYieldStress real64 1.79769e+308 Default yield stress -defaultYoungModulus real64 -1 Default Young's Modulus -name groupName required A name is required for any non-unique nodes -======================= ========= ============ ==================================================================== - - diff --git a/src/coreComponents/schema/docs/PerfectlyPlastic_other.rst b/src/coreComponents/schema/docs/PerfectlyPlastic_other.rst deleted file mode 100644 index b1207ce6f4a..00000000000 --- a/src/coreComponents/schema/docs/PerfectlyPlastic_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -density real64_array2d Material Density -oldStress real64_array3d Previous Material Stress -shearModulus real64_array Elastic Shear Modulus Field -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -yieldStress real64_array Array of element yield stresses -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/Perforation.rst b/src/coreComponents/schema/docs/Perforation.rst deleted file mode 100644 index 60a3f8c0b92..00000000000 --- a/src/coreComponents/schema/docs/Perforation.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================ ========= ======== ================================================= -Name Type Default Description -================ ========= ======== ================================================= -distanceFromHead real64 required Linear distance from well head to the perforation -name groupName required A name is required for any non-unique nodes -skinFactor real64 0 Perforation skin factor -transmissibility real64 -1 Perforation transmissibility -================ ========= ======== ================================================= - - diff --git a/src/coreComponents/schema/docs/Perforation_other.rst b/src/coreComponents/schema/docs/Perforation_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Perforation_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PeriodicEvent.rst b/src/coreComponents/schema/docs/PeriodicEvent.rst deleted file mode 100644 index 3f1c9b21b88..00000000000 --- a/src/coreComponents/schema/docs/PeriodicEvent.rst +++ /dev/null @@ -1,28 +0,0 @@ - - -==================== ============ ======== ================================================================================================================================================================================= -Name Type Default Description -==================== ============ ======== ================================================================================================================================================================================= -beginTime real64 0 Start time of this event. -cycleFrequency integer 1 Event application frequency (cycle, default) -endTime real64 1e+100 End time of this event. -finalDtStretch real64 0.001 Allow the final dt request for this event to grow by this percentage to match the endTime exactly. -forceDt real64 -1 While active, this event will request this timestep value (ignoring any children/targets requests). -function groupNameRef Name of an optional function to evaluate when the time/cycle criteria are met.If the result is greater than the specified eventThreshold, the function will continue to execute. -logLevel integer 0 Log level -maxEventDt real64 -1 While active, this event will request a timestep <= this value (depending upon any child/target requests). -name groupName required A name is required for any non-unique nodes -object groupNameRef If the optional function requires an object as an input, specify its path here. -set groupNameRef If the optional function is applied to an object, specify the setname to evaluate (default = everything). -stat integer 0 If the optional function is applied to an object, specify the statistic to compare to the eventThreshold.The current options include: min, avg, and max. -target groupNameRef Name of the object to be executed when the event criteria are met. -targetExactStartStop integer 1 If this option is set, the event will reduce its timestep requests to match any specified beginTime/endTimes exactly. -targetExactTimestep integer 1 If this option is set, the event will reduce its timestep requests to match the specified timeFrequency perfectly: dt_request = min(dt_request, t_last + time_frequency - time)). -threshold real64 0 If the optional function is used, the event will execute if the value returned by the function exceeds this threshold. -timeFrequency real64 -1 Event application frequency (time). Note: if this value is specified, it will override any cycle-based behavior. -HaltEvent node :ref:`XML_HaltEvent` -PeriodicEvent node :ref:`XML_PeriodicEvent` -SoloEvent node :ref:`XML_SoloEvent` -==================== ============ ======== ================================================================================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/PeriodicEvent_other.rst b/src/coreComponents/schema/docs/PeriodicEvent_other.rst deleted file mode 100644 index f63756dd49b..00000000000 --- a/src/coreComponents/schema/docs/PeriodicEvent_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -================= ======= =============================================== -Name Type Description -================= ======= =============================================== -currentSubEvent integer Index of the current subevent -eventForecast integer Indicates when the event is expected to execute -isTargetExecuting integer Index of the current subevent -lastCycle integer Last event occurrence (cycle) -lastTime real64 Last event occurrence (time) -HaltEvent node :ref:`DATASTRUCTURE_HaltEvent` -PeriodicEvent node :ref:`DATASTRUCTURE_PeriodicEvent` -SoloEvent node :ref:`DATASTRUCTURE_SoloEvent` -================= ======= =============================================== - - diff --git a/src/coreComponents/schema/docs/PhaseFieldDamageFEM.rst b/src/coreComponents/schema/docs/PhaseFieldDamageFEM.rst deleted file mode 100644 index 738d26eb91a..00000000000 --- a/src/coreComponents/schema/docs/PhaseFieldDamageFEM.rst +++ /dev/null @@ -1,22 +0,0 @@ - - -========================= ============================================== ======== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ============================================== ======== ======================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -damageUpperBound real64 1.5 The upper bound of the damage -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -fieldName groupNameRef required name of field variable -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -irreversibilityFlag integer 0 The flag to indicate whether to apply the irreversibility constraint -localDissipation geos_PhaseFieldDamageFEM_LocalDissipation required Type of local dissipation function. Can be Linear or Quadratic -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeIntegrationOption geos_PhaseFieldDamageFEM_TimeIntegrationOption required option for default time integration method -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ============================================== ======== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst b/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst deleted file mode 100644 index f296d4de732..00000000000 --- a/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/PhaseFieldFracture.rst b/src/coreComponents/schema/docs/PhaseFieldFracture.rst deleted file mode 100644 index eb49f03806a..00000000000 --- a/src/coreComponents/schema/docs/PhaseFieldFracture.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -damageSolverName groupNameRef required Name of the damage solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -solidSolverName groupNameRef required Name of the solid solver used by the coupled solver -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst b/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst deleted file mode 100644 index cccf4603c70..00000000000 --- a/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/PorousDamageElasticIsotropic.rst b/src/coreComponents/schema/docs/PorousDamageElasticIsotropic.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousDamageElasticIsotropic.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousDamageElasticIsotropic_other.rst b/src/coreComponents/schema/docs/PorousDamageElasticIsotropic_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousDamageElasticIsotropic_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousDamageSpectralElasticIsotropic.rst b/src/coreComponents/schema/docs/PorousDamageSpectralElasticIsotropic.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousDamageSpectralElasticIsotropic.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousDamageSpectralElasticIsotropic_other.rst b/src/coreComponents/schema/docs/PorousDamageSpectralElasticIsotropic_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousDamageSpectralElasticIsotropic_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousDamageVolDevElasticIsotropic.rst b/src/coreComponents/schema/docs/PorousDamageVolDevElasticIsotropic.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousDamageVolDevElasticIsotropic.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousDamageVolDevElasticIsotropic_other.rst b/src/coreComponents/schema/docs/PorousDamageVolDevElasticIsotropic_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousDamageVolDevElasticIsotropic_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousDelftEgg.rst b/src/coreComponents/schema/docs/PorousDelftEgg.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousDelftEgg.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousDelftEgg_other.rst b/src/coreComponents/schema/docs/PorousDelftEgg_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousDelftEgg_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousDruckerPrager.rst b/src/coreComponents/schema/docs/PorousDruckerPrager.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousDruckerPrager.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousDruckerPrager_other.rst b/src/coreComponents/schema/docs/PorousDruckerPrager_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousDruckerPrager_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousElasticIsotropic.rst b/src/coreComponents/schema/docs/PorousElasticIsotropic.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousElasticIsotropic.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousElasticIsotropic_other.rst b/src/coreComponents/schema/docs/PorousElasticIsotropic_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousElasticIsotropic_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousElasticOrthotropic.rst b/src/coreComponents/schema/docs/PorousElasticOrthotropic.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousElasticOrthotropic.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousElasticOrthotropic_other.rst b/src/coreComponents/schema/docs/PorousElasticOrthotropic_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousElasticOrthotropic_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousElasticTransverseIsotropic.rst b/src/coreComponents/schema/docs/PorousElasticTransverseIsotropic.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousElasticTransverseIsotropic.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousElasticTransverseIsotropic_other.rst b/src/coreComponents/schema/docs/PorousElasticTransverseIsotropic_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousElasticTransverseIsotropic_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousExtendedDruckerPrager.rst b/src/coreComponents/schema/docs/PorousExtendedDruckerPrager.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousExtendedDruckerPrager.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousExtendedDruckerPrager_other.rst b/src/coreComponents/schema/docs/PorousExtendedDruckerPrager_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousExtendedDruckerPrager_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousModifiedCamClay.rst b/src/coreComponents/schema/docs/PorousModifiedCamClay.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousModifiedCamClay.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousModifiedCamClay_other.rst b/src/coreComponents/schema/docs/PorousModifiedCamClay_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousModifiedCamClay_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousViscoDruckerPrager.rst b/src/coreComponents/schema/docs/PorousViscoDruckerPrager.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousViscoDruckerPrager.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousViscoDruckerPrager_other.rst b/src/coreComponents/schema/docs/PorousViscoDruckerPrager_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousViscoDruckerPrager_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousViscoExtendedDruckerPrager.rst b/src/coreComponents/schema/docs/PorousViscoExtendedDruckerPrager.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousViscoExtendedDruckerPrager.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousViscoExtendedDruckerPrager_other.rst b/src/coreComponents/schema/docs/PorousViscoExtendedDruckerPrager_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousViscoExtendedDruckerPrager_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PorousViscoModifiedCamClay.rst b/src/coreComponents/schema/docs/PorousViscoModifiedCamClay.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/PorousViscoModifiedCamClay.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/PorousViscoModifiedCamClay_other.rst b/src/coreComponents/schema/docs/PorousViscoModifiedCamClay_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/PorousViscoModifiedCamClay_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/PressurePermeability.rst b/src/coreComponents/schema/docs/PressurePermeability.rst deleted file mode 100644 index b8f04d3f124..00000000000 --- a/src/coreComponents/schema/docs/PressurePermeability.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -=============================== =================================== ========== ===================================================================== -Name Type Default Description -=============================== =================================== ========== ===================================================================== -maxPermeability real64 1 Max. permeability can be reached. -name groupName required A name is required for any non-unique nodes -pressureDependenceConstants R1Tensor required Pressure dependence coefficients for each permeability component. -pressureModelType geos_constitutive_PressureModelType Hyperbolic Type of the pressure dependence model. -referencePermeabilityComponents R1Tensor required Reference xx, yy and zz components of a diagonal permeability tensor. -referencePressure real64 required Reference pressure for the pressure permeability model -=============================== =================================== ========== ===================================================================== - - diff --git a/src/coreComponents/schema/docs/PressurePermeability_other.rst b/src/coreComponents/schema/docs/PressurePermeability_other.rst deleted file mode 100644 index dd549711708..00000000000 --- a/src/coreComponents/schema/docs/PressurePermeability_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -===================== ============== ======================================================== -Name Type Description -===================== ============== ======================================================== -dPerm_dPressure real64_array3d Derivative of rock permeability with respect to pressure -permeability real64_array3d Rock permeability -referencePermeability real64_array3d Reference permeability field -===================== ============== ======================================================== - - diff --git a/src/coreComponents/schema/docs/PressurePorosity.rst b/src/coreComponents/schema/docs/PressurePorosity.rst deleted file mode 100644 index 1025b310512..00000000000 --- a/src/coreComponents/schema/docs/PressurePorosity.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -======================== ========= ======== ============================================ -Name Type Default Description -======================== ========= ======== ============================================ -compressibility real64 required Solid compressibility -defaultReferencePorosity real64 required Default value of the reference porosity -name groupName required A name is required for any non-unique nodes -referencePressure real64 required Reference pressure for solid compressibility -======================== ========= ======== ============================================ - - diff --git a/src/coreComponents/schema/docs/PressurePorosity_other.rst b/src/coreComponents/schema/docs/PressurePorosity_other.rst deleted file mode 100644 index 17d801d7587..00000000000 --- a/src/coreComponents/schema/docs/PressurePorosity_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -====================== ============== ======================================================= -Name Type Description -====================== ============== ======================================================= -dPorosity_dPressure real64_array2d Derivative of rock porosity with respect to pressure -dPorosity_dTemperature real64_array2d Derivative of rock porosity with respect to temperature -initialPorosity real64_array2d Initial porosity -porosity real64_array2d Rock porosity -porosity_n real64_array2d Rock porosity at the previous converged time step -referencePorosity real64_array Reference porosity -====================== ============== ======================================================= - - diff --git a/src/coreComponents/schema/docs/Problem.rst b/src/coreComponents/schema/docs/Problem.rst deleted file mode 100644 index a34b51acf38..00000000000 --- a/src/coreComponents/schema/docs/Problem.rst +++ /dev/null @@ -1,23 +0,0 @@ - - -=================== ==== ================ ============================== -Name Type Default Description -=================== ==== ================ ============================== -Benchmarks node unique :ref:`XML_Benchmarks` -Constitutive node unique :ref:`XML_Constitutive` -ElementRegions node unique :ref:`XML_ElementRegions` -Events node unique, required :ref:`XML_Events` -FieldSpecifications node unique :ref:`XML_FieldSpecifications` -Functions node unique :ref:`XML_Functions` -Geometry node unique :ref:`XML_Geometry` -Included node unique :ref:`XML_Included` -Mesh node unique, required :ref:`XML_Mesh` -NumericalMethods node unique :ref:`XML_NumericalMethods` -Outputs node unique, required :ref:`XML_Outputs` -Parameters node unique :ref:`XML_Parameters` -ParticleRegions node unique :ref:`XML_ParticleRegions` -Solvers node unique, required :ref:`XML_Solvers` -Tasks node unique :ref:`XML_Tasks` -=================== ==== ================ ============================== - - diff --git a/src/coreComponents/schema/docs/Problem_other.rst b/src/coreComponents/schema/docs/Problem_other.rst deleted file mode 100644 index 2f154100ff3..00000000000 --- a/src/coreComponents/schema/docs/Problem_other.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -=================== ==== ======================================== -Name Type Description -=================== ==== ======================================== -Benchmarks node :ref:`DATASTRUCTURE_Benchmarks` -Constitutive node :ref:`DATASTRUCTURE_Constitutive` -ElementRegions node :ref:`DATASTRUCTURE_ElementRegions` -Events node :ref:`DATASTRUCTURE_Events` -FieldSpecifications node :ref:`DATASTRUCTURE_FieldSpecifications` -Functions node :ref:`DATASTRUCTURE_Functions` -Geometry node :ref:`DATASTRUCTURE_Geometry` -Included node :ref:`DATASTRUCTURE_Included` -Mesh node :ref:`DATASTRUCTURE_Mesh` -NumericalMethods node :ref:`DATASTRUCTURE_NumericalMethods` -Outputs node :ref:`DATASTRUCTURE_Outputs` -Parameters node :ref:`DATASTRUCTURE_Parameters` -ParticleRegions node :ref:`DATASTRUCTURE_ParticleRegions` -Solvers node :ref:`DATASTRUCTURE_Solvers` -Tasks node :ref:`DATASTRUCTURE_Tasks` -commandLine node :ref:`DATASTRUCTURE_commandLine` -domain node :ref:`DATASTRUCTURE_domain` -=================== ==== ======================================== - - diff --git a/src/coreComponents/schema/docs/ProppantPermeability.rst b/src/coreComponents/schema/docs/ProppantPermeability.rst deleted file mode 100644 index a8877faca2f..00000000000 --- a/src/coreComponents/schema/docs/ProppantPermeability.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -======================== ========= ======== =========================================== -Name Type Default Description -======================== ========= ======== =========================================== -maxProppantConcentration real64 required Maximum proppant concentration. -name groupName required A name is required for any non-unique nodes -proppantDiameter real64 required Proppant diameter. -======================== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/ProppantPermeability_other.rst b/src/coreComponents/schema/docs/ProppantPermeability_other.rst deleted file mode 100644 index 989c76d45c1..00000000000 --- a/src/coreComponents/schema/docs/ProppantPermeability_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -======================== ============== ================================================================= -Name Type Description -======================== ============== ================================================================= -dPerm_dDispJump real64_array4d Derivative of rock permeability with respect to displacement jump -dPerm_dPressure real64_array3d Derivative of rock permeability with respect to pressure -permeability real64_array3d Rock permeability -permeabilityMultiplier real64_array3d Rock permeability multiplier -proppantPackPermeability real64 (no description available) -======================== ============== ================================================================= - - diff --git a/src/coreComponents/schema/docs/ProppantPorosity.rst b/src/coreComponents/schema/docs/ProppantPorosity.rst deleted file mode 100644 index e5ce1f5fdb6..00000000000 --- a/src/coreComponents/schema/docs/ProppantPorosity.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -======================== ========= ======== =========================================== -Name Type Default Description -======================== ========= ======== =========================================== -defaultReferencePorosity real64 required Default value of the reference porosity -maxProppantConcentration real64 required Maximum proppant concentration -name groupName required A name is required for any non-unique nodes -======================== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/ProppantPorosity_other.rst b/src/coreComponents/schema/docs/ProppantPorosity_other.rst deleted file mode 100644 index 17d801d7587..00000000000 --- a/src/coreComponents/schema/docs/ProppantPorosity_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -====================== ============== ======================================================= -Name Type Description -====================== ============== ======================================================= -dPorosity_dPressure real64_array2d Derivative of rock porosity with respect to pressure -dPorosity_dTemperature real64_array2d Derivative of rock porosity with respect to temperature -initialPorosity real64_array2d Initial porosity -porosity real64_array2d Rock porosity -porosity_n real64_array2d Rock porosity at the previous converged time step -referencePorosity real64_array Reference porosity -====================== ============== ======================================================= - - diff --git a/src/coreComponents/schema/docs/ProppantSlurryFluid.rst b/src/coreComponents/schema/docs/ProppantSlurryFluid.rst deleted file mode 100644 index d960825e262..00000000000 --- a/src/coreComponents/schema/docs/ProppantSlurryFluid.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -========================= ============ ======== ================================================ -Name Type Default Description -========================= ============ ======== ================================================ -componentNames string_array {} List of fluid component names -compressibility real64 0 Fluid compressibility -defaultComponentDensity real64_array {0} Default value for the component density. -defaultComponentViscosity real64_array {0} Default value for the component viscosity. -defaultCompressibility real64_array {0} Default value for the component compressibility. -flowBehaviorIndex real64_array {0} Flow behavior index -flowConsistencyIndex real64_array {0} Flow consistency index -maxProppantConcentration real64 0.6 Maximum proppant concentration -name groupName required A name is required for any non-unique nodes -referenceDensity real64 1000 Reference fluid density -referencePressure real64 100000 Reference pressure -referenceProppantDensity real64 1400 Reference proppant density -referenceViscosity real64 0.001 Reference fluid viscosity -========================= ============ ======== ================================================ - - diff --git a/src/coreComponents/schema/docs/ProppantSlurryFluid_other.rst b/src/coreComponents/schema/docs/ProppantSlurryFluid_other.rst deleted file mode 100644 index 5248c9d190d..00000000000 --- a/src/coreComponents/schema/docs/ProppantSlurryFluid_other.rst +++ /dev/null @@ -1,35 +0,0 @@ - - -============================ ============== ======================================================================= -Name Type Description -============================ ============== ======================================================================= -FluidDensity real64_array2d Fluid density -FluidViscosity real64_array2d Fluid viscosity -componentDensity real64_array3d Component density -dCompDens_dCompConc real64_array4d Derivative of component density with respect to component concentration -dCompDens_dPres real64_array3d Derivative of component density with respect to pressure -dDens_dCompConc real64_array3d Derivative of density with respect to component concentration -dDens_dProppantConc real64_array2d Derivative of density with respect to proppant concentration -dDensity_dPressure real64_array2d Derivative of density with respect to pressure -dDensity_dTemperature real64_array2d Derivative of density with respect to temperature -dEnthalpy_dPressure real64_array2d Derivative of enthalpy with respect to pressure -dEnthalpy_dTemperature real64_array2d Derivative of enthalpy with respect to temperature -dFluidDens_dCompConc real64_array3d Derivative of fluid density with respect to component concentration -dFluidDens_dPres real64_array2d Derivative of fluid density with respect to pressure -dFluidVisc_dCompConc real64_array3d Derivative of fluid viscosity with respect to component concentration -dFluidVisc_dPres real64_array2d Derivative of fluid viscosity with respect to pressure -dInternalEnergy_dPressure real64_array2d Derivative of internal energy with respect to pressure -dInternalEnergy_dTemperature real64_array2d Derivative of internal energy with respect to temperature -dVisc_dCompConc real64_array3d Derivative of viscosity with respect to component concentration -dVisc_dProppantConc real64_array2d Derivative of viscosity with respect to proppant concentration -dViscosity_dPressure real64_array2d Derivative of viscosity with respect to pressure -dViscosity_dTemperature real64_array2d Derivative of viscosity with respect to temperature -density real64_array2d Density -density_n real64_array2d Density at the previous converged time step -enthalpy real64_array2d Enthalpy -internalEnergy real64_array2d Internal energy -internalEnergy_n real64_array2d Fluid internal energy at the previous converged step -viscosity real64_array2d Viscosity -============================ ============== ======================================================================= - - diff --git a/src/coreComponents/schema/docs/ProppantSolidProppantPermeability.rst b/src/coreComponents/schema/docs/ProppantSolidProppantPermeability.rst deleted file mode 100644 index 7d6d29602c1..00000000000 --- a/src/coreComponents/schema/docs/ProppantSolidProppantPermeability.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -name groupName required A name is required for any non-unique nodes -permeabilityModelName groupNameRef required Name of the permeability model. -porosityModelName groupNameRef required Name of the porosity model. -solidInternalEnergyModelName groupNameRef Name of the solid internal energy model. -solidModelName groupNameRef required Name of the solid model. -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/ProppantSolidProppantPermeability_other.rst b/src/coreComponents/schema/docs/ProppantSolidProppantPermeability_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/ProppantSolidProppantPermeability_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/ProppantTransport.rst b/src/coreComponents/schema/docs/ProppantTransport.rst deleted file mode 100644 index 6d381b82584..00000000000 --- a/src/coreComponents/schema/docs/ProppantTransport.rst +++ /dev/null @@ -1,29 +0,0 @@ - - -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================== -allowNegativePressure integer 1 Flag indicating if negative pressure is allowed -bridgingFactor real64 0 Bridging factor used for bridging/screen-out calculation -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -criticalShieldsNumber real64 0 Critical Shields number -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -frictionCoefficient real64 0.03 Friction coefficient -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. -logLevel integer 0 Log level -maxAbsolutePressureChange real64 -1 Maximum (absolute) pressure change in a Newton iteration -maxProppantConcentration real64 0.6 Maximum proppant concentration -maxSequentialPressureChange real64 100000 Maximum (absolute) pressure change in a sequential iteration, used for outer loop convergence check -maxSequentialTemperatureChange real64 0.1 Maximum (absolute) temperature change in a sequential iteration, used for outer loop convergence check -name groupName required A name is required for any non-unique nodes -proppantDensity real64 2500 Proppant density -proppantDiameter real64 0.0004 Proppant diameter -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -updateProppantPacking integer 0 Flag that enables/disables proppant-packing update -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/ProppantTransport_other.rst b/src/coreComponents/schema/docs/ProppantTransport_other.rst deleted file mode 100644 index f296d4de732..00000000000 --- a/src/coreComponents/schema/docs/ProppantTransport_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/Python.rst b/src/coreComponents/schema/docs/Python.rst deleted file mode 100644 index c7dc6b70183..00000000000 --- a/src/coreComponents/schema/docs/Python.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -=============== ========= ======== =========================================== -Name Type Default Description -=============== ========= ======== =========================================== -childDirectory string Child directory path -name groupName required A name is required for any non-unique nodes -parallelThreads integer 1 Number of plot files. -=============== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/Python_other.rst b/src/coreComponents/schema/docs/Python_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Python_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/ReactiveBrine.rst b/src/coreComponents/schema/docs/ReactiveBrine.rst deleted file mode 100644 index d710c396a38..00000000000 --- a/src/coreComponents/schema/docs/ReactiveBrine.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -==================== ================== ======== ============================================================================================================ -Name Type Default Description -==================== ================== ======== ============================================================================================================ -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentMolarWeight real64_array {0} Component molar weights -componentNames string_array {} List of component names -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array {} List of fluid phases -phasePVTParaFiles path_array required Names of the files defining the parameters of the viscosity and density models -==================== ================== ======== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/ReactiveBrineThermal.rst b/src/coreComponents/schema/docs/ReactiveBrineThermal.rst deleted file mode 100644 index d710c396a38..00000000000 --- a/src/coreComponents/schema/docs/ReactiveBrineThermal.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -==================== ================== ======== ============================================================================================================ -Name Type Default Description -==================== ================== ======== ============================================================================================================ -checkPVTTablesRanges integer 1 Enable (1) or disable (0) an error when the input pressure or temperature of the PVT tables is out of range. -componentMolarWeight real64_array {0} Component molar weights -componentNames string_array {} List of component names -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array {} List of fluid phases -phasePVTParaFiles path_array required Names of the files defining the parameters of the viscosity and density models -==================== ================== ======== ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/ReactiveBrineThermal_other.rst b/src/coreComponents/schema/docs/ReactiveBrineThermal_other.rst deleted file mode 100644 index 05bd31c0020..00000000000 --- a/src/coreComponents/schema/docs/ReactiveBrineThermal_other.rst +++ /dev/null @@ -1,34 +0,0 @@ - - -================================ ========================================================================================= ============================================================================================================ -Name Type Description -================================ ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -kineticReactionRates real64_array2d kineticReactionRates -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -primarySpeciesConcentration real64_array2d primarySpeciesConcentration -primarySpeciesTotalConcentration real64_array2d primarySpeciesTotalConcentration -secondarySpeciesConcentration real64_array2d secondarySpeciesConcentration -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -================================ ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/ReactiveBrine_other.rst b/src/coreComponents/schema/docs/ReactiveBrine_other.rst deleted file mode 100644 index 05bd31c0020..00000000000 --- a/src/coreComponents/schema/docs/ReactiveBrine_other.rst +++ /dev/null @@ -1,34 +0,0 @@ - - -================================ ========================================================================================= ============================================================================================================ -Name Type Description -================================ ========================================================================================= ============================================================================================================ -dPhaseCompFraction LvArray_Array, int, LvArray_ChaiBuffer> Derivative of phase component fraction with respect to pressure, temperature, and global component fractions -dPhaseDensity real64_array4d Derivative of phase density with respect to pressure, temperature, and global component fractions -dPhaseEnthalpy real64_array4d Derivative of phase enthalpy with respect to pressure, temperature, and global component fractions -dPhaseFraction real64_array4d Derivative of phase fraction with respect to pressure, temperature, and global component fractions -dPhaseInternalEnergy real64_array4d Derivative of phase internal energy with respect to pressure, temperature, and global component fractions -dPhaseMassDensity real64_array4d Derivative of phase mass density with respect to pressure, temperature, and global component fractions -dPhaseViscosity real64_array4d Derivative of phase viscosity with respect to pressure, temperature, and global component fractions -dTotalDensity real64_array3d Derivative of total density with respect to pressure, temperature, and global component fractions -kineticReactionRates real64_array2d kineticReactionRates -phaseCompFraction real64_array4d Phase component fraction -phaseCompFraction_n real64_array4d Phase component fraction at the previous converged time step -phaseDensity real64_array3d Phase density -phaseDensity_n real64_array3d Phase density at the previous converged time step -phaseEnthalpy real64_array3d Phase enthalpy -phaseEnthalpy_n real64_array3d Phase enthalpy at the previous converged time step -phaseFraction real64_array3d Phase fraction -phaseInternalEnergy real64_array3d Phase internal energy -phaseInternalEnergy_n real64_array3d Phase internal energy at the previous converged time step -phaseMassDensity real64_array3d Phase mass density -phaseViscosity real64_array3d Phase viscosity -primarySpeciesConcentration real64_array2d primarySpeciesConcentration -primarySpeciesTotalConcentration real64_array2d primarySpeciesTotalConcentration -secondarySpeciesConcentration real64_array2d secondarySpeciesConcentration -totalDensity real64_array2d Total density -totalDensity_n real64_array2d Total density at the previous converged time step -useMass integer (no description available) -================================ ========================================================================================= ============================================================================================================ - - diff --git a/src/coreComponents/schema/docs/ReactiveCompositionalMultiphaseOBL.rst b/src/coreComponents/schema/docs/ReactiveCompositionalMultiphaseOBL.rst deleted file mode 100644 index c3f5cebfb57..00000000000 --- a/src/coreComponents/schema/docs/ReactiveCompositionalMultiphaseOBL.rst +++ /dev/null @@ -1,32 +0,0 @@ - - -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================== -OBLOperatorsTableFile path required File containing OBL operator values -allowLocalOBLChopping integer 1 Allow keeping solution within OBL limits -allowNegativePressure integer 1 Flag indicating if negative pressure is allowed -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -componentNames string_array {} List of component names -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -enableEnergyBalance integer required Enable energy balance calculation and temperature degree of freedom -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. -logLevel integer 0 Log level -maxAbsolutePressureChange real64 -1 Maximum (absolute) pressure change in a Newton iteration -maxCompFractionChange real64 1 Maximum (absolute) change in a component fraction between two Newton iterations -maxSequentialPressureChange real64 100000 Maximum (absolute) pressure change in a sequential iteration, used for outer loop convergence check -maxSequentialTemperatureChange real64 0.1 Maximum (absolute) temperature change in a sequential iteration, used for outer loop convergence check -name groupName required A name is required for any non-unique nodes -numComponents integer required Number of components -numPhases integer required Number of phases -phaseNames groupNameRef_array {} List of fluid phases -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -transMultExp real64 1 Exponent of dynamic transmissibility multiplier -useDARTSL2Norm integer 1 Use L2 norm calculation similar to one used DARTS -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/ReactiveCompositionalMultiphaseOBL_other.rst b/src/coreComponents/schema/docs/ReactiveCompositionalMultiphaseOBL_other.rst deleted file mode 100644 index f296d4de732..00000000000 --- a/src/coreComponents/schema/docs/ReactiveCompositionalMultiphaseOBL_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/ReactiveFluidDriver.rst b/src/coreComponents/schema/docs/ReactiveFluidDriver.rst deleted file mode 100644 index b2c089baae6..00000000000 --- a/src/coreComponents/schema/docs/ReactiveFluidDriver.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -================== ============ ======== =================================================================== -Name Type Default Description -================== ============ ======== =================================================================== -baseline path none Baseline file -feedComposition real64_array required Feed composition array: total concentration of the primary species -fluid groupNameRef required Fluid to test -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -output string none Output file -pressureControl groupNameRef required Function controlling pressure time history -steps integer required Number of load steps to take -temperatureControl groupNameRef required Function controlling temperature time history -================== ============ ======== =================================================================== - - diff --git a/src/coreComponents/schema/docs/ReactiveFluidDriver_other.rst b/src/coreComponents/schema/docs/ReactiveFluidDriver_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/ReactiveFluidDriver_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Rectangle.rst b/src/coreComponents/schema/docs/Rectangle.rst deleted file mode 100644 index 2413e9f671b..00000000000 --- a/src/coreComponents/schema/docs/Rectangle.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -============ ============ ======== ================================================================================================================= -Name Type Default Description -============ ============ ======== ================================================================================================================= -dimensions real64_array required Length and width of the bounded plane -lengthVector R1Tensor required Tangent vector defining the orthonormal basis along with the normal. -name groupName required A name is required for any non-unique nodes -normal R1Tensor required Normal (n_x,n_y,n_z) to the plane (will be normalized automatically) -origin R1Tensor required Origin point (x,y,z) of the plane (basically, any point on the plane) -tolerance real64 1e-05 Tolerance to determine if a point sits on the plane or not. It is relative to the maximum dimension of the plane. -widthVector R1Tensor required Tangent vector defining the orthonormal basis along with the normal. -============ ============ ======== ================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/Rectangle_other.rst b/src/coreComponents/schema/docs/Rectangle_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Rectangle_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/RelpermDriver.rst b/src/coreComponents/schema/docs/RelpermDriver.rst deleted file mode 100644 index 090a04d2c45..00000000000 --- a/src/coreComponents/schema/docs/RelpermDriver.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -======== ============ ======== =========================================== -Name Type Default Description -======== ============ ======== =========================================== -baseline path none Baseline file -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -output string none Output file -relperm groupNameRef required Relperm model to test -steps integer required Number of saturation steps to take -======== ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/RelpermDriver_other.rst b/src/coreComponents/schema/docs/RelpermDriver_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/RelpermDriver_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Restart.rst b/src/coreComponents/schema/docs/Restart.rst deleted file mode 100644 index c7dc6b70183..00000000000 --- a/src/coreComponents/schema/docs/Restart.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -=============== ========= ======== =========================================== -Name Type Default Description -=============== ========= ======== =========================================== -childDirectory string Child directory path -name groupName required A name is required for any non-unique nodes -parallelThreads integer 1 Number of plot files. -=============== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/Restart_other.rst b/src/coreComponents/schema/docs/Restart_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Restart_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/Run.rst b/src/coreComponents/schema/docs/Run.rst deleted file mode 100644 index feeeefeb973..00000000000 --- a/src/coreComponents/schema/docs/Run.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -============== ============= ======== ======================================================================================================================================================= -Name Type Default Description -============== ============= ======== ======================================================================================================================================================= -args string Any extra command line arguments to pass to GEOSX. -autoPartition string May be 'Off' or 'On', if 'On' partitioning arguments are created automatically. Default is Off. -meshSizes integer_array {0} The target number of elements in the internal mesh (per-process for weak scaling, globally for strong scaling) default doesn't modify the internalMesh. -name string required The name of this benchmark. -nodes integer 0 The number of nodes needed to run the base benchmark, default is 1. -scaleList integer_array {0} The scales at which to run the problem ( scale * nodes * tasksPerNode ). -scaling string Whether to run a scaling, and which type of scaling to run. -tasksPerNode integer required The number of tasks per node to run the benchmark with. -threadsPerTask integer 0 The number of threads per task to run the benchmark with. -timeLimit integer 0 The time limit of the benchmark. -============== ============= ======== ======================================================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/Run_other.rst b/src/coreComponents/schema/docs/Run_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Run_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SeismicityRate.rst b/src/coreComponents/schema/docs/SeismicityRate.rst deleted file mode 100644 index a4e6bddb031..00000000000 --- a/src/coreComponents/schema/docs/SeismicityRate.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -backgroundStressingRate real64 required Background stressing rate -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -directEffect real64 required Rate-and-state friction direct effect parameter -faultNormalDirection R1Tensor {0,0,0} Fault normal direction -faultShearDirection R1Tensor {0,0,0} Fault shear direction -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -stressSolverName string Name of solver for computing stress -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SeismicityRate_other.rst b/src/coreComponents/schema/docs/SeismicityRate_other.rst deleted file mode 100644 index cccf4603c70..00000000000 --- a/src/coreComponents/schema/docs/SeismicityRate_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/Silo.rst b/src/coreComponents/schema/docs/Silo.rst deleted file mode 100644 index 8257591bdb5..00000000000 --- a/src/coreComponents/schema/docs/Silo.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -=========================== ================== ======== ======================================================================================================================================================================================== -Name Type Default Description -=========================== ================== ======== ======================================================================================================================================================================================== -childDirectory string Child directory path -fieldNames groupNameRef_array {} Names of the fields to output. If this attribute is specified, GEOSX outputs all (and only) the fields specified by the user, regardless of their plotLevel -name groupName required A name is required for any non-unique nodes -onlyPlotSpecifiedFieldNames integer 0 If this flag is equal to 1, then we only plot the fields listed in `fieldNames`. Otherwise, we plot all the fields with the required `plotLevel`, plus the fields listed in `fieldNames` -parallelThreads integer 1 Number of plot files. -plotFileRoot string plot (no description available) -plotLevel integer 1 (no description available) -writeCellElementMesh integer 1 (no description available) -writeEdgeMesh integer 0 (no description available) -writeFEMFaces integer 0 (no description available) -writeFaceElementMesh integer 1 (no description available) -=========================== ================== ======== ======================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/Silo_other.rst b/src/coreComponents/schema/docs/Silo_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/Silo_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SinglePhaseConstantThermalConductivity.rst b/src/coreComponents/schema/docs/SinglePhaseConstantThermalConductivity.rst deleted file mode 100644 index d9dc99ad411..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseConstantThermalConductivity.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -============================= ========= ======== =============================================================================== -Name Type Default Description -============================= ========= ======== =============================================================================== -name groupName required A name is required for any non-unique nodes -thermalConductivityComponents R1Tensor required xx, yy, and zz components of a diagonal thermal conductivity tensor [J/(s.m.K)] -============================= ========= ======== =============================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseConstantThermalConductivity_other.rst b/src/coreComponents/schema/docs/SinglePhaseConstantThermalConductivity_other.rst deleted file mode 100644 index 02570b893e3..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseConstantThermalConductivity_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -===================== ============== ====================== -Name Type Description -===================== ============== ====================== -effectiveConductivity real64_array3d Effective conductivity -===================== ============== ====================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseFVM.rst b/src/coreComponents/schema/docs/SinglePhaseFVM.rst deleted file mode 100644 index f95554a5d12..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseFVM.rst +++ /dev/null @@ -1,27 +0,0 @@ - - -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -allowNegativePressure integer 1 Flag indicating if negative pressure is allowed -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 | Flag indicating whether the problem is thermal or not. - | SourceFluxes application if isThermal is enabled : - | - negative value (injection): the mass balance equation is modified to considered the additional source term, - | - positive value (production): both the mass balance and the energy balance equations are modified to considered the additional source term. - | For the energy balance equation, the mass flux is multipied by the enthalpy in the cell from which the fluid is being produced. -logLevel integer 0 Log level -maxAbsolutePressureChange real64 -1 Maximum (absolute) pressure change in a Newton iteration -maxSequentialPressureChange real64 100000 Maximum (absolute) pressure change in a sequential iteration, used for outer loop convergence check -maxSequentialTemperatureChange real64 0.1 Maximum (absolute) temperature change in a sequential iteration, used for outer loop convergence check -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -temperature real64 0 Temperature -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst deleted file mode 100644 index f296d4de732..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/SinglePhaseHybridFVM.rst b/src/coreComponents/schema/docs/SinglePhaseHybridFVM.rst deleted file mode 100644 index f95554a5d12..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseHybridFVM.rst +++ /dev/null @@ -1,27 +0,0 @@ - - -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -allowNegativePressure integer 1 Flag indicating if negative pressure is allowed -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 | Flag indicating whether the problem is thermal or not. - | SourceFluxes application if isThermal is enabled : - | - negative value (injection): the mass balance equation is modified to considered the additional source term, - | - positive value (production): both the mass balance and the energy balance equations are modified to considered the additional source term. - | For the energy balance equation, the mass flux is multipied by the enthalpy in the cell from which the fluid is being produced. -logLevel integer 0 Log level -maxAbsolutePressureChange real64 -1 Maximum (absolute) pressure change in a Newton iteration -maxSequentialPressureChange real64 100000 Maximum (absolute) pressure change in a sequential iteration, used for outer loop convergence check -maxSequentialTemperatureChange real64 0.1 Maximum (absolute) temperature change in a sequential iteration, used for outer loop convergence check -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -temperature real64 0 Temperature -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst deleted file mode 100644 index f0cca96f3a1..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================ ================================================================ -Name Type Registered On Description -========================= ====================================================================================================================================================== ================================ ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -facePressure_n real64_array :ref:`DATASTRUCTURE_faceManager` Face pressure at the previous converged time step -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================ ================================================================ - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanics.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanics.rst deleted file mode 100644 index 002c98b6c89..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanics.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -flowSolverName groupNameRef required Name of the flow solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. Set isThermal="1" to enable the thermal coupling -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -solidSolverName groupNameRef required Name of the solid solver used by the coupled solver -stabilizationMultiplier real64 1 Constant multiplier of stabilization strength -stabilizationRegionNames groupNameRef_array {} Regions where stabilization is applied. -stabilizationType geos_stabilization_StabilizationType None | StabilizationType. Options are: - | None- Add no stabilization to mass equation - | Global- Add jump stabilization to all faces - | Local- Add jump stabilization on interior of macro elements -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFractures.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFractures.rst deleted file mode 100644 index 002c98b6c89..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFractures.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -flowSolverName groupNameRef required Name of the flow solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. Set isThermal="1" to enable the thermal coupling -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -solidSolverName groupNameRef required Name of the solid solver used by the coupled solver -stabilizationMultiplier real64 1 Constant multiplier of stabilization strength -stabilizationRegionNames groupNameRef_array {} Regions where stabilization is applied. -stabilizationType geos_stabilization_StabilizationType None | StabilizationType. Options are: - | None- Add no stabilization to mass equation - | Global- Add jump stabilization to all faces - | Local- Add jump stabilization on interior of macro elements -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesInitialization.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesInitialization.rst deleted file mode 100644 index 18e3a0dd9e7..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesInitialization.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver -solidMechanicsStatisticsName groupNameRef Name of the solid mechanics statistics -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesInitialization_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesInitialization_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesInitialization_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesReservoir.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesReservoir.rst deleted file mode 100644 index af1c8e817b3..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesReservoir.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -========================================== ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================================== ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsConformingFracturesSolverName groupNameRef required Name of the poromechanicsConformingFractures solver used by the coupled solver -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -wellSolverName groupNameRef required Name of the well solver used by the coupled solver -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================================== ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesReservoir_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesReservoir_other.rst deleted file mode 100644 index cccf4603c70..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesReservoir_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFractures_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFractures_other.rst deleted file mode 100644 index dc33be0a036..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsConformingFractures_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -performStressInitialization integer Flag to indicate that the solver is going to perform stress initialization -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures.rst deleted file mode 100644 index 002c98b6c89..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -flowSolverName groupNameRef required Name of the flow solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. Set isThermal="1" to enable the thermal coupling -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -solidSolverName groupNameRef required Name of the solid solver used by the coupled solver -stabilizationMultiplier real64 1 Constant multiplier of stabilization strength -stabilizationRegionNames groupNameRef_array {} Regions where stabilization is applied. -stabilizationType geos_stabilization_StabilizationType None | StabilizationType. Options are: - | None- Add no stabilization to mass equation - | Global- Add jump stabilization to all faces - | Local- Add jump stabilization on interior of macro elements -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFracturesInitialization.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFracturesInitialization.rst deleted file mode 100644 index 18e3a0dd9e7..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFracturesInitialization.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver -solidMechanicsStatisticsName groupNameRef Name of the solid mechanics statistics -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFracturesInitialization_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFracturesInitialization_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFracturesInitialization_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst deleted file mode 100644 index dc33be0a036..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -performStressInitialization integer Flag to indicate that the solver is going to perform stress initialization -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsInitialization.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsInitialization.rst deleted file mode 100644 index 18e3a0dd9e7..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsInitialization.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver -solidMechanicsStatisticsName groupNameRef Name of the solid mechanics statistics -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsInitialization_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsInitialization_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsInitialization_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsReservoir.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsReservoir.rst deleted file mode 100644 index abe1a84cf22..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsReservoir.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver used by the coupled solver -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -wellSolverName groupNameRef required Name of the well solver used by the coupled solver -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsReservoir_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsReservoir_other.rst deleted file mode 100644 index cccf4603c70..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsReservoir_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst deleted file mode 100644 index dc33be0a036..00000000000 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -performStressInitialization integer Flag to indicate that the solver is going to perform stress initialization -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseProppantFVM.rst b/src/coreComponents/schema/docs/SinglePhaseProppantFVM.rst deleted file mode 100644 index f95554a5d12..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseProppantFVM.rst +++ /dev/null @@ -1,27 +0,0 @@ - - -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== -allowNegativePressure integer 1 Flag indicating if negative pressure is allowed -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 | Flag indicating whether the problem is thermal or not. - | SourceFluxes application if isThermal is enabled : - | - negative value (injection): the mass balance equation is modified to considered the additional source term, - | - positive value (production): both the mass balance and the energy balance equations are modified to considered the additional source term. - | For the energy balance equation, the mass flux is multipied by the enthalpy in the cell from which the fluid is being produced. -logLevel integer 0 Log level -maxAbsolutePressureChange real64 -1 Maximum (absolute) pressure change in a Newton iteration -maxSequentialPressureChange real64 100000 Maximum (absolute) pressure change in a sequential iteration, used for outer loop convergence check -maxSequentialTemperatureChange real64 0.1 Maximum (absolute) temperature change in a sequential iteration, used for outer loop convergence check -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -temperature real64 0 Temperature -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ================== ======== ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst deleted file mode 100644 index f296d4de732..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/SinglePhaseReservoir.rst b/src/coreComponents/schema/docs/SinglePhaseReservoir.rst deleted file mode 100644 index 9b67dda6230..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseReservoir.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -flowSolverName groupNameRef required Name of the flow solver used by the coupled solver -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -wellSolverName groupNameRef required Name of the well solver used by the coupled solver -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanics.rst b/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanics.rst deleted file mode 100644 index 6ec494e2d08..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanics.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -=========================== ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -=========================== ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. Set isThermal="1" to enable the thermal coupling -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -reservoirAndWellsSolverName groupNameRef required Name of the reservoirAndWells solver used by the coupled solver -solidSolverName groupNameRef required Name of the solid solver used by the coupled solver -stabilizationMultiplier real64 1 Constant multiplier of stabilization strength -stabilizationRegionNames groupNameRef_array {} Regions where stabilization is applied. -stabilizationType geos_stabilization_StabilizationType None | StabilizationType. Options are: - | None- Add no stabilization to mass equation - | Global- Add jump stabilization to all faces - | Local- Add jump stabilization on interior of macro elements -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -=========================== ==================================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanicsInitialization.rst b/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanicsInitialization.rst deleted file mode 100644 index 18e3a0dd9e7..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanicsInitialization.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============================ ============ ======== =========================================== -Name Type Default Description -============================ ============ ======== =========================================== -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -poromechanicsSolverName groupNameRef required Name of the poromechanics solver -solidMechanicsStatisticsName groupNameRef Name of the solid mechanics statistics -============================ ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanicsInitialization_other.rst b/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanicsInitialization_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanicsInitialization_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanics_other.rst b/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanics_other.rst deleted file mode 100644 index dc33be0a036..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseReservoirPoromechanics_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -performStressInitialization integer Flag to indicate that the solver is going to perform stress initialization -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -=========================== ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst b/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst deleted file mode 100644 index cccf4603c70..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseStatistics.rst b/src/coreComponents/schema/docs/SinglePhaseStatistics.rst deleted file mode 100644 index ff3105519bd..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseStatistics.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============== ============ ======== =========================================== -Name Type Default Description -============== ============ ======== =========================================== -flowSolverName groupNameRef required Name of the flow solver -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -writeCSV integer 0 Write statistics into a CSV file -============== ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseStatistics_other.rst b/src/coreComponents/schema/docs/SinglePhaseStatistics_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseStatistics_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SinglePhaseWell.rst b/src/coreComponents/schema/docs/SinglePhaseWell.rst deleted file mode 100644 index 8bb2567e0c7..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseWell.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isThermal integer 0 Flag indicating whether the problem is thermal or not. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeCSV integer 0 Write rates into a CSV file -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -WellControls node :ref:`XML_WellControls` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SinglePhaseWell_other.rst b/src/coreComponents/schema/docs/SinglePhaseWell_other.rst deleted file mode 100644 index f2c739b92d8..00000000000 --- a/src/coreComponents/schema/docs/SinglePhaseWell_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -WellControls node :ref:`DATASTRUCTURE_WellControls` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SlipDependentPermeability.rst b/src/coreComponents/schema/docs/SlipDependentPermeability.rst deleted file mode 100644 index 86118d26163..00000000000 --- a/src/coreComponents/schema/docs/SlipDependentPermeability.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -=================== ========= ======== =========================================== -Name Type Default Description -=================== ========= ======== =========================================== -initialPermeability R1Tensor required initial permeability of the fracture. -maxPermMultiplier real64 required Maximum permeability multiplier. -name groupName required A name is required for any non-unique nodes -shearDispThreshold real64 required Threshold of shear displacement. -=================== ========= ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/SlipDependentPermeability_other.rst b/src/coreComponents/schema/docs/SlipDependentPermeability_other.rst deleted file mode 100644 index 43a2d06a562..00000000000 --- a/src/coreComponents/schema/docs/SlipDependentPermeability_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -=============== ============== ================================================================= -Name Type Description -=============== ============== ================================================================= -dPerm_dDispJump real64_array4d Derivative of rock permeability with respect to displacement jump -dPerm_dPressure real64_array3d Derivative of rock permeability with respect to pressure -permeability real64_array3d Rock permeability -=============== ============== ================================================================= - - diff --git a/src/coreComponents/schema/docs/SolidInternalEnergy.rst b/src/coreComponents/schema/docs/SolidInternalEnergy.rst deleted file mode 100644 index b4432cbfb54..00000000000 --- a/src/coreComponents/schema/docs/SolidInternalEnergy.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -==================================== ========= ======== ================================================================================= -Name Type Default Description -==================================== ========= ======== ================================================================================= -dVolumetricHeatCapacity_dTemperature real64 0 Derivative of the solid volumetric heat capacity w.r.t. temperature [J/(m^3.K^2)] -name groupName required A name is required for any non-unique nodes -referenceInternalEnergy real64 required Internal energy at the reference temperature [J/kg] -referenceTemperature real64 required Reference temperature [K] -referenceVolumetricHeatCapacity real64 required Reference solid volumetric heat capacity [J/(kg.K)] -==================================== ========= ======== ================================================================================= - - diff --git a/src/coreComponents/schema/docs/SolidInternalEnergy_other.rst b/src/coreComponents/schema/docs/SolidInternalEnergy_other.rst deleted file mode 100644 index c6d23064113..00000000000 --- a/src/coreComponents/schema/docs/SolidInternalEnergy_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -============================ ============== ============================================================================== -Name Type Description -============================ ============== ============================================================================== -dInternalEnergy_dTemperature real64_array2d Derivative of the solid internal energy w.r.t. temperature [J/(m^3.K)] -internalEnergy real64_array2d Internal energy of the solid per unit volume [J/m^3] -internalEnergy_n real64_array2d Internal energy of the solid per unit volume at the previous time-step [J/m^3] -============================ ============== ============================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsAugmentedLagrangianContact.rst b/src/coreComponents/schema/docs/SolidMechanicsAugmentedLagrangianContact.rst deleted file mode 100644 index 4ea2de12d3a..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsAugmentedLagrangianContact.rst +++ /dev/null @@ -1,30 +0,0 @@ - - -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -contactPenaltyStiffness real64 0 Value of the penetration penalty stiffness. Units of Pressure/length -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -massDamping real64 0 Value of mass based damping coefficient. -maxNumResolves integer 10 Value to indicate how many resolves may be executed after some other event is executed. For example, if a SurfaceGenerator is specified, it will be executed after the mechanics solve. However if a new surface is generated, then the mechanics solve must be executed again due to the change in topology. -name groupName required A name is required for any non-unique nodes -newmarkBeta real64 0.25 Value of :math:`\beta` in the Newmark Method for Implicit Dynamic time integration option. This should be pow(newmarkGamma+0.5,2.0)/4.0 unless you know what you are doing. -newmarkGamma real64 0.5 Value of :math:`\gamma` in the Newmark Method for Implicit Dynamic time integration option -stiffnessDamping real64 0 Value of stiffness based damping coefficient. -strainTheory integer 0 | Indicates whether or not to use `Infinitesimal Strain Theory `_, or `Finite Strain Theory `_. Valid Inputs are: - | 0 - Infinitesimal Strain - | 1 - Finite Strain -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeIntegrationOption geos_SolidMechanicsLagrangianFEM_TimeIntegrationOption ExplicitDynamic | Time integration method. Options are: - | * QuasiStatic - | * ImplicitDynamic - | * ExplicitDynamic -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsAugmentedLagrangianContact_other.rst b/src/coreComponents/schema/docs/SolidMechanicsAugmentedLagrangianContact_other.rst deleted file mode 100644 index 1a9ad823675..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsAugmentedLagrangianContact_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -========================= ====================================================================================================================================================== ===================================================================== -Name Type Description -========================= ====================================================================================================================================================== ===================================================================== -contactRelationName groupNameRef Name of contact relation to enforce constraints on fracture boundary. -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -surfaceGeneratorName string Name of the surface generator to use -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ===================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures.rst b/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures.rst deleted file mode 100644 index f1eeeefdbf1..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures.rst +++ /dev/null @@ -1,31 +0,0 @@ - - -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -contactPenaltyStiffness real64 required Value of the penetration penalty stiffness. Units of Pressure/length -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -massDamping real64 0 Value of mass based damping coefficient. -maxNumResolves integer 10 Value to indicate how many resolves may be executed after some other event is executed. For example, if a SurfaceGenerator is specified, it will be executed after the mechanics solve. However if a new surface is generated, then the mechanics solve must be executed again due to the change in topology. -name groupName required A name is required for any non-unique nodes -newmarkBeta real64 0.25 Value of :math:`\beta` in the Newmark Method for Implicit Dynamic time integration option. This should be pow(newmarkGamma+0.5,2.0)/4.0 unless you know what you are doing. -newmarkGamma real64 0.5 Value of :math:`\gamma` in the Newmark Method for Implicit Dynamic time integration option -stiffnessDamping real64 0 Value of stiffness based damping coefficient. -strainTheory integer 0 | Indicates whether or not to use `Infinitesimal Strain Theory `_, or `Finite Strain Theory `_. Valid Inputs are: - | 0 - Infinitesimal Strain - | 1 - Finite Strain -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeIntegrationOption geos_SolidMechanicsLagrangianFEM_TimeIntegrationOption ExplicitDynamic | Time integration method. Options are: - | * QuasiStatic - | * ImplicitDynamic - | * ExplicitDynamic -useStaticCondensation integer 0 Defines whether to use static condensation or not. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst b/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst deleted file mode 100644 index 1a9ad823675..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -========================= ====================================================================================================================================================== ===================================================================== -Name Type Description -========================= ====================================================================================================================================================== ===================================================================== -contactRelationName groupNameRef Name of contact relation to enforce constraints on fracture boundary. -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -surfaceGeneratorName string Name of the surface generator to use -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ===================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsLagrangeContact.rst b/src/coreComponents/schema/docs/SolidMechanicsLagrangeContact.rst deleted file mode 100644 index e801acd20e0..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsLagrangeContact.rst +++ /dev/null @@ -1,32 +0,0 @@ - - -=============================== ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -=============================== ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -contactPenaltyStiffness real64 0 Value of the penetration penalty stiffness. Units of Pressure/length -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -massDamping real64 0 Value of mass based damping coefficient. -maxNumResolves integer 10 Value to indicate how many resolves may be executed after some other event is executed. For example, if a SurfaceGenerator is specified, it will be executed after the mechanics solve. However if a new surface is generated, then the mechanics solve must be executed again due to the change in topology. -name groupName required A name is required for any non-unique nodes -newmarkBeta real64 0.25 Value of :math:`\beta` in the Newmark Method for Implicit Dynamic time integration option. This should be pow(newmarkGamma+0.5,2.0)/4.0 unless you know what you are doing. -newmarkGamma real64 0.5 Value of :math:`\gamma` in the Newmark Method for Implicit Dynamic time integration option -stabilizationName groupNameRef required Name of the stabilization to use in the lagrangian contact solver -stabilizationScalingCoefficient real64 1 It be used to increase the scale of the stabilization entries. A value < 1.0 results in larger entries in the stabilization matrix. -stiffnessDamping real64 0 Value of stiffness based damping coefficient. -strainTheory integer 0 | Indicates whether or not to use `Infinitesimal Strain Theory `_, or `Finite Strain Theory `_. Valid Inputs are: - | 0 - Infinitesimal Strain - | 1 - Finite Strain -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeIntegrationOption geos_SolidMechanicsLagrangianFEM_TimeIntegrationOption ExplicitDynamic | Time integration method. Options are: - | * QuasiStatic - | * ImplicitDynamic - | * ExplicitDynamic -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -=============================== ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsLagrangeContact_other.rst b/src/coreComponents/schema/docs/SolidMechanicsLagrangeContact_other.rst deleted file mode 100644 index 1a9ad823675..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsLagrangeContact_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -========================= ====================================================================================================================================================== ===================================================================== -Name Type Description -========================= ====================================================================================================================================================== ===================================================================== -contactRelationName groupNameRef Name of contact relation to enforce constraints on fracture boundary. -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -surfaceGeneratorName string Name of the surface generator to use -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ===================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE.rst b/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE.rst deleted file mode 100644 index 1bccbf3c052..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE.rst +++ /dev/null @@ -1,32 +0,0 @@ - - -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -contactPenaltyStiffness real64 0 Value of the penetration penalty stiffness. Units of Pressure/length -contactRelationName groupNameRef NOCONTACT Name of contact relation to enforce constraints on fracture boundary. -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -massDamping real64 0 Value of mass based damping coefficient. -maxNumResolves integer 10 Value to indicate how many resolves may be executed after some other event is executed. For example, if a SurfaceGenerator is specified, it will be executed after the mechanics solve. However if a new surface is generated, then the mechanics solve must be executed again due to the change in topology. -name groupName required A name is required for any non-unique nodes -newmarkBeta real64 0.25 Value of :math:`\beta` in the Newmark Method for Implicit Dynamic time integration option. This should be pow(newmarkGamma+0.5,2.0)/4.0 unless you know what you are doing. -newmarkGamma real64 0.5 Value of :math:`\gamma` in the Newmark Method for Implicit Dynamic time integration option -stiffnessDamping real64 0 Value of stiffness based damping coefficient. -strainTheory integer 0 | Indicates whether or not to use `Infinitesimal Strain Theory `_, or `Finite Strain Theory `_. Valid Inputs are: - | 0 - Infinitesimal Strain - | 1 - Finite Strain -surfaceGeneratorName string Name of the surface generator to use -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeIntegrationOption geos_SolidMechanicsLagrangianFEM_TimeIntegrationOption ExplicitDynamic | Time integration method. Options are: - | * QuasiStatic - | * ImplicitDynamic - | * ExplicitDynamic -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst b/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst deleted file mode 100644 index e458a0e69b3..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsStateReset.rst b/src/coreComponents/schema/docs/SolidMechanicsStateReset.rst deleted file mode 100644 index c8483e51e88..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsStateReset.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -=================== ============ ======== ============================================ -Name Type Default Description -=================== ============ ======== ============================================ -disableInelasticity integer 0 Flag to enable/disable inelastic behavior -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -resetDisplacements integer 1 Flag to reset displacements (and velocities) -solidSolverName groupNameRef required Name of the solid mechanics solver -=================== ============ ======== ============================================ - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsStateReset_other.rst b/src/coreComponents/schema/docs/SolidMechanicsStateReset_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsStateReset_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsStatistics.rst b/src/coreComponents/schema/docs/SolidMechanicsStatistics.rst deleted file mode 100644 index 2395830a112..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsStatistics.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -=============== ============ ======== =========================================== -Name Type Default Description -=============== ============ ======== =========================================== -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -solidSolverName groupNameRef required Name of the solid solver -writeCSV integer 0 Write statistics into a CSV file -=============== ============ ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanicsStatistics_other.rst b/src/coreComponents/schema/docs/SolidMechanicsStatistics_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanicsStatistics_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM.rst b/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM.rst deleted file mode 100644 index 1bccbf3c052..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM.rst +++ /dev/null @@ -1,32 +0,0 @@ - - -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -contactPenaltyStiffness real64 0 Value of the penetration penalty stiffness. Units of Pressure/length -contactRelationName groupNameRef NOCONTACT Name of contact relation to enforce constraints on fracture boundary. -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -massDamping real64 0 Value of mass based damping coefficient. -maxNumResolves integer 10 Value to indicate how many resolves may be executed after some other event is executed. For example, if a SurfaceGenerator is specified, it will be executed after the mechanics solve. However if a new surface is generated, then the mechanics solve must be executed again due to the change in topology. -name groupName required A name is required for any non-unique nodes -newmarkBeta real64 0.25 Value of :math:`\beta` in the Newmark Method for Implicit Dynamic time integration option. This should be pow(newmarkGamma+0.5,2.0)/4.0 unless you know what you are doing. -newmarkGamma real64 0.5 Value of :math:`\gamma` in the Newmark Method for Implicit Dynamic time integration option -stiffnessDamping real64 0 Value of stiffness based damping coefficient. -strainTheory integer 0 | Indicates whether or not to use `Infinitesimal Strain Theory `_, or `Finite Strain Theory `_. Valid Inputs are: - | 0 - Infinitesimal Strain - | 1 - Finite Strain -surfaceGeneratorName string Name of the surface generator to use -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeIntegrationOption geos_SolidMechanicsLagrangianFEM_TimeIntegrationOption ExplicitDynamic | Time integration method. Options are: - | * QuasiStatic - | * ImplicitDynamic - | * ExplicitDynamic -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ====================================================== =============== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst b/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst deleted file mode 100644 index e458a0e69b3..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================ -Name Type Description -========================= ====================================================================================================================================================== ================================================================ -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================ - - diff --git a/src/coreComponents/schema/docs/SolidMechanics_MPM.rst b/src/coreComponents/schema/docs/SolidMechanics_MPM.rst deleted file mode 100644 index 35d3b93b477..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanics_MPM.rst +++ /dev/null @@ -1,42 +0,0 @@ - - -============================== ============================================ =============== ======================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -============================== ============================================ =============== ======================================================================================================================================================================================================================================================================================================================== -boundaryConditionTypes integer_array {0} | Boundary conditions on x-, x+, y-, y+, z- and z+ faces. Options are: - | * Outflow - | * Symmetry -boxAverageHistory integer 0 Flag for whether to output box average history -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -contactGapCorrection integer 0 Flag for mitigating contact gaps -cpdiDomainScaling integer 0 Option for CPDI domain scaling -damageFieldPartitioning integer 0 Flag for using the gradient of the particle damage field to partition material into separate velocity fields -discretization groupNameRef required Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -fTableInterpType integer 0 The type of F table interpolation. Options are 0 (linear), 1 (cosine), 2 (quintic polynomial). -fTablePath path Path to f-table -frictionCoefficient real64 0 Coefficient of friction, currently assumed to be the same everywhere -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -needsNeighborList integer 0 Flag for whether to construct neighbor list -neighborRadius real64 -1 Neighbor radius for SPH-type calculations -planeStrain integer 0 Flag for performing plane strain calculations -prescribedBcTable integer 0 Flag for whether to have time-dependent boundary condition types -prescribedBoundaryFTable integer 0 Flag for whether to have time-dependent boundary conditions described by a global background grid F -reactionHistory integer 0 Flag for whether to output face reaction history -separabilityMinDamage real64 0.5 Damage threshold for field separability -solverProfiling integer 0 Flag for timing subroutines in the solver -surfaceDetection integer 0 Flag for automatic surface detection on the 1st cycle -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -timeIntegrationOption geos_SolidMechanicsMPM_TimeIntegrationOption ExplicitDynamic | Time integration method. Options are: - | * QuasiStatic - | * ImplicitDynamic - | * ExplicitDynamic -treatFullyDamagedAsSingleField integer 1 Whether to consolidate fully damaged fields into a single field. Nice for modeling damaged mush. -useDamageAsSurfaceFlag integer 0 Indicates whether particle damage at the beginning of the simulation should be interpreted as a surface flag -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -============================== ============================================ =============== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SolidMechanics_MPM_other.rst b/src/coreComponents/schema/docs/SolidMechanics_MPM_other.rst deleted file mode 100644 index e0b8502fb7f..00000000000 --- a/src/coreComponents/schema/docs/SolidMechanics_MPM_other.rst +++ /dev/null @@ -1,34 +0,0 @@ - - -========================= ====================================================================================================================================================== ================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ================================================================================================== -bcTable real64_array2d Array that stores time-dependent bc types on x-, x+, y-, y+, z- and z+ faces. -binSizeMultiplier integer Multiplier for setting bin size, used to speed up particle neighbor sorting -domainExtent real64_array domain extent -domainF real64_array domain deformation gradient -domainL real64_array domain L -elementSize real64_array Minimum element size in x, y and z -fTable real64_array2d Array that stores time-dependent grid-aligned stretches interpreted as a global background grid F. -globalMaximum real64_array global maximum -globalMinimum real64_array global minimum -localMaximum real64_array local maximum -localMaximumNoGhost real64_array local maximum without ghost cells -localMinimum real64_array local minimum -localMinimumNoGhost real64_array local minimum without ghost cells -m_ijkMap integer_array3d Map from indices in each spatial dimension to local node ID -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -numContactFlags integer Number of contact flags that can appear due to damage -numContactGroups integer Number of prescribed contact groups -numDims integer The number of active spatial dimensions, 2 for plane strain, 3 otherwise -numElements integer_array number of elements along partition directions -numVelocityFields integer Number of velocity fields -partitionExtent real64_array parititon extent -smallMass real64 The small mass threshold for ignoring extremely low-mass nodes. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SoloEvent.rst b/src/coreComponents/schema/docs/SoloEvent.rst deleted file mode 100644 index de9a7ad86ee..00000000000 --- a/src/coreComponents/schema/docs/SoloEvent.rst +++ /dev/null @@ -1,23 +0,0 @@ - - -==================== ============ ======== ================================================================================================================================================================= -Name Type Default Description -==================== ============ ======== ================================================================================================================================================================= -beginTime real64 0 Start time of this event. -endTime real64 1e+100 End time of this event. -finalDtStretch real64 0.001 Allow the final dt request for this event to grow by this percentage to match the endTime exactly. -forceDt real64 -1 While active, this event will request this timestep value (ignoring any children/targets requests). -logLevel integer 0 Log level -maxEventDt real64 -1 While active, this event will request a timestep <= this value (depending upon any child/target requests). -name groupName required A name is required for any non-unique nodes -target groupNameRef Name of the object to be executed when the event criteria are met. -targetCycle integer -1 Targeted cycle to execute the event. -targetExactStartStop integer 1 If this option is set, the event will reduce its timestep requests to match any specified beginTime/endTimes exactly. -targetExactTimestep integer 1 If this option is set, the event will reduce its timestep requests to match the specified execution time exactly: dt_request = min(dt_request, t_target - time)). -targetTime real64 -1 Targeted time to execute the event. -HaltEvent node :ref:`XML_HaltEvent` -PeriodicEvent node :ref:`XML_PeriodicEvent` -SoloEvent node :ref:`XML_SoloEvent` -==================== ============ ======== ================================================================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/SoloEvent_other.rst b/src/coreComponents/schema/docs/SoloEvent_other.rst deleted file mode 100644 index f63756dd49b..00000000000 --- a/src/coreComponents/schema/docs/SoloEvent_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -================= ======= =============================================== -Name Type Description -================= ======= =============================================== -currentSubEvent integer Index of the current subevent -eventForecast integer Indicates when the event is expected to execute -isTargetExecuting integer Index of the current subevent -lastCycle integer Last event occurrence (cycle) -lastTime real64 Last event occurrence (time) -HaltEvent node :ref:`DATASTRUCTURE_HaltEvent` -PeriodicEvent node :ref:`DATASTRUCTURE_PeriodicEvent` -SoloEvent node :ref:`DATASTRUCTURE_SoloEvent` -================= ======= =============================================== - - diff --git a/src/coreComponents/schema/docs/SolverStatistics_other.rst b/src/coreComponents/schema/docs/SolverStatistics_other.rst deleted file mode 100644 index 51ffa886326..00000000000 --- a/src/coreComponents/schema/docs/SolverStatistics_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -================================ ======= ===================================================== -Name Type Description -================================ ======= ===================================================== -numDiscardedLinearIterations integer Cumulative number of discarded linear iterations -numDiscardedNonlinearIterations integer Cumulative number of discarded nonlinear iterations -numDiscardedOuterLoopIterations integer Cumulative number of discarded outer loop iterations -numSuccessfulLinearIterations integer Cumulative number of successful linear iterations -numSuccessfulNonlinearIterations integer Cumulative number of successful nonlinear iterations -numSuccessfulOuterLoopIterations integer Cumulative number of successful outer loop iterations -numTimeStepCuts integer Number of time step cuts -numTimeSteps integer Number of time steps -================================ ======= ===================================================== - - diff --git a/src/coreComponents/schema/docs/Solvers.rst b/src/coreComponents/schema/docs/Solvers.rst deleted file mode 100644 index a8779059e55..00000000000 --- a/src/coreComponents/schema/docs/Solvers.rst +++ /dev/null @@ -1,49 +0,0 @@ - - -==================================================== ======== =========== =============================================================== -Name Type Default Description -==================================================== ======== =========== =============================================================== -gravityVector R1Tensor {0,0,-9.81} Gravity vector used in the physics solvers -AcousticElasticSEM node :ref:`XML_AcousticElasticSEM` -AcousticFirstOrderSEM node :ref:`XML_AcousticFirstOrderSEM` -AcousticSEM node :ref:`XML_AcousticSEM` -AcousticVTISEM node :ref:`XML_AcousticVTISEM` -CompositionalMultiphaseFVM node :ref:`XML_CompositionalMultiphaseFVM` -CompositionalMultiphaseHybridFVM node :ref:`XML_CompositionalMultiphaseHybridFVM` -CompositionalMultiphaseReservoir node :ref:`XML_CompositionalMultiphaseReservoir` -CompositionalMultiphaseReservoirPoromechanics node :ref:`XML_CompositionalMultiphaseReservoirPoromechanics` -CompositionalMultiphaseWell node :ref:`XML_CompositionalMultiphaseWell` -ElasticFirstOrderSEM node :ref:`XML_ElasticFirstOrderSEM` -ElasticSEM node :ref:`XML_ElasticSEM` -EmbeddedSurfaceGenerator node :ref:`XML_EmbeddedSurfaceGenerator` -FlowProppantTransport node :ref:`XML_FlowProppantTransport` -Hydrofracture node :ref:`XML_Hydrofracture` -LaplaceFEM node :ref:`XML_LaplaceFEM` -MultiphasePoromechanics node :ref:`XML_MultiphasePoromechanics` -MultiphasePoromechanicsReservoir node :ref:`XML_MultiphasePoromechanicsReservoir` -PhaseFieldDamageFEM node :ref:`XML_PhaseFieldDamageFEM` -PhaseFieldFracture node :ref:`XML_PhaseFieldFracture` -ProppantTransport node :ref:`XML_ProppantTransport` -ReactiveCompositionalMultiphaseOBL node :ref:`XML_ReactiveCompositionalMultiphaseOBL` -SeismicityRate node :ref:`XML_SeismicityRate` -SinglePhaseFVM node :ref:`XML_SinglePhaseFVM` -SinglePhaseHybridFVM node :ref:`XML_SinglePhaseHybridFVM` -SinglePhasePoromechanics node :ref:`XML_SinglePhasePoromechanics` -SinglePhasePoromechanicsConformingFractures node :ref:`XML_SinglePhasePoromechanicsConformingFractures` -SinglePhasePoromechanicsConformingFracturesReservoir node :ref:`XML_SinglePhasePoromechanicsConformingFracturesReservoir` -SinglePhasePoromechanicsEmbeddedFractures node :ref:`XML_SinglePhasePoromechanicsEmbeddedFractures` -SinglePhasePoromechanicsReservoir node :ref:`XML_SinglePhasePoromechanicsReservoir` -SinglePhaseProppantFVM node :ref:`XML_SinglePhaseProppantFVM` -SinglePhaseReservoir node :ref:`XML_SinglePhaseReservoir` -SinglePhaseReservoirPoromechanics node :ref:`XML_SinglePhaseReservoirPoromechanics` -SinglePhaseWell node :ref:`XML_SinglePhaseWell` -SolidMechanicsAugmentedLagrangianContact node :ref:`XML_SolidMechanicsAugmentedLagrangianContact` -SolidMechanicsEmbeddedFractures node :ref:`XML_SolidMechanicsEmbeddedFractures` -SolidMechanicsLagrangeContact node :ref:`XML_SolidMechanicsLagrangeContact` -SolidMechanicsLagrangianSSLE node :ref:`XML_SolidMechanicsLagrangianSSLE` -SolidMechanics_LagrangianFEM node :ref:`XML_SolidMechanics_LagrangianFEM` -SolidMechanics_MPM node :ref:`XML_SolidMechanics_MPM` -SurfaceGenerator node :ref:`XML_SurfaceGenerator` -==================================================== ======== =========== =============================================================== - - diff --git a/src/coreComponents/schema/docs/Solvers_other.rst b/src/coreComponents/schema/docs/Solvers_other.rst deleted file mode 100644 index 6a42cd06a7c..00000000000 --- a/src/coreComponents/schema/docs/Solvers_other.rst +++ /dev/null @@ -1,48 +0,0 @@ - - -==================================================== ==== ========================================================================= -Name Type Description -==================================================== ==== ========================================================================= -AcousticElasticSEM node :ref:`DATASTRUCTURE_AcousticElasticSEM` -AcousticFirstOrderSEM node :ref:`DATASTRUCTURE_AcousticFirstOrderSEM` -AcousticSEM node :ref:`DATASTRUCTURE_AcousticSEM` -AcousticVTISEM node :ref:`DATASTRUCTURE_AcousticVTISEM` -CompositionalMultiphaseFVM node :ref:`DATASTRUCTURE_CompositionalMultiphaseFVM` -CompositionalMultiphaseHybridFVM node :ref:`DATASTRUCTURE_CompositionalMultiphaseHybridFVM` -CompositionalMultiphaseReservoir node :ref:`DATASTRUCTURE_CompositionalMultiphaseReservoir` -CompositionalMultiphaseReservoirPoromechanics node :ref:`DATASTRUCTURE_CompositionalMultiphaseReservoirPoromechanics` -CompositionalMultiphaseWell node :ref:`DATASTRUCTURE_CompositionalMultiphaseWell` -ElasticFirstOrderSEM node :ref:`DATASTRUCTURE_ElasticFirstOrderSEM` -ElasticSEM node :ref:`DATASTRUCTURE_ElasticSEM` -EmbeddedSurfaceGenerator node :ref:`DATASTRUCTURE_EmbeddedSurfaceGenerator` -FlowProppantTransport node :ref:`DATASTRUCTURE_FlowProppantTransport` -Hydrofracture node :ref:`DATASTRUCTURE_Hydrofracture` -LaplaceFEM node :ref:`DATASTRUCTURE_LaplaceFEM` -MultiphasePoromechanics node :ref:`DATASTRUCTURE_MultiphasePoromechanics` -MultiphasePoromechanicsReservoir node :ref:`DATASTRUCTURE_MultiphasePoromechanicsReservoir` -PhaseFieldDamageFEM node :ref:`DATASTRUCTURE_PhaseFieldDamageFEM` -PhaseFieldFracture node :ref:`DATASTRUCTURE_PhaseFieldFracture` -ProppantTransport node :ref:`DATASTRUCTURE_ProppantTransport` -ReactiveCompositionalMultiphaseOBL node :ref:`DATASTRUCTURE_ReactiveCompositionalMultiphaseOBL` -SeismicityRate node :ref:`DATASTRUCTURE_SeismicityRate` -SinglePhaseFVM node :ref:`DATASTRUCTURE_SinglePhaseFVM` -SinglePhaseHybridFVM node :ref:`DATASTRUCTURE_SinglePhaseHybridFVM` -SinglePhasePoromechanics node :ref:`DATASTRUCTURE_SinglePhasePoromechanics` -SinglePhasePoromechanicsConformingFractures node :ref:`DATASTRUCTURE_SinglePhasePoromechanicsConformingFractures` -SinglePhasePoromechanicsConformingFracturesReservoir node :ref:`DATASTRUCTURE_SinglePhasePoromechanicsConformingFracturesReservoir` -SinglePhasePoromechanicsEmbeddedFractures node :ref:`DATASTRUCTURE_SinglePhasePoromechanicsEmbeddedFractures` -SinglePhasePoromechanicsReservoir node :ref:`DATASTRUCTURE_SinglePhasePoromechanicsReservoir` -SinglePhaseProppantFVM node :ref:`DATASTRUCTURE_SinglePhaseProppantFVM` -SinglePhaseReservoir node :ref:`DATASTRUCTURE_SinglePhaseReservoir` -SinglePhaseReservoirPoromechanics node :ref:`DATASTRUCTURE_SinglePhaseReservoirPoromechanics` -SinglePhaseWell node :ref:`DATASTRUCTURE_SinglePhaseWell` -SolidMechanicsAugmentedLagrangianContact node :ref:`DATASTRUCTURE_SolidMechanicsAugmentedLagrangianContact` -SolidMechanicsEmbeddedFractures node :ref:`DATASTRUCTURE_SolidMechanicsEmbeddedFractures` -SolidMechanicsLagrangeContact node :ref:`DATASTRUCTURE_SolidMechanicsLagrangeContact` -SolidMechanicsLagrangianSSLE node :ref:`DATASTRUCTURE_SolidMechanicsLagrangianSSLE` -SolidMechanics_LagrangianFEM node :ref:`DATASTRUCTURE_SolidMechanics_LagrangianFEM` -SolidMechanics_MPM node :ref:`DATASTRUCTURE_SolidMechanics_MPM` -SurfaceGenerator node :ref:`DATASTRUCTURE_SurfaceGenerator` -==================================================== ==== ========================================================================= - - diff --git a/src/coreComponents/schema/docs/SourceFlux.rst b/src/coreComponents/schema/docs/SourceFlux.rst deleted file mode 100644 index 660880a3b49..00000000000 --- a/src/coreComponents/schema/docs/SourceFlux.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -====================== ================== ======== ======================================================================================================================================================================================================================================================================================== -Name Type Default Description -====================== ================== ======== ======================================================================================================================================================================================================================================================================================== -bcApplicationTableName groupNameRef Name of table that specifies the on/off application of the boundary condition. -beginTime real64 -1e+99 Time at which the boundary condition will start being applied. -component integer -1 Component of field (if tensor) to apply boundary condition to. -direction R1Tensor {0,0,0} Direction to apply boundary condition to. -endTime real64 1e+99 Time at which the boundary condition will stop being applied. -functionName groupNameRef Name of a function that specifies the variation of the production rate variations of this SourceFlux.Multiplied by scale. If no function is provided, a constant value of 1 is used.The producted fluid rate unit is in kg by default, or in mole if the flow solver has a useMass of 0. -initialCondition integer 0 Boundary condition is applied as an initial condition. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -objectPath groupNameRef Path to the target field -scale real64 0 Multiplier of the functionName value. If no functionName is provided, this value is used directly. -setNames groupNameRef_array required Name of sets that boundary condition is applied to. -====================== ================== ======== ======================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SourceFluxStatistics.rst b/src/coreComponents/schema/docs/SourceFluxStatistics.rst deleted file mode 100644 index a5ef4f42a89..00000000000 --- a/src/coreComponents/schema/docs/SourceFluxStatistics.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -============== ================== ======== ===================================================================================================================================================================================== -Name Type Default Description -============== ================== ======== ===================================================================================================================================================================================== -flowSolverName groupNameRef required Name of the flow solver -fluxNames groupNameRef_array {*} Name(s) array of the SourceFlux(s) for which we want the statistics. Use "*" to target all SourceFlux. -logLevel integer 0 | Log level - | - Log Level 1 outputs the sum of all SourceFlux(s) produced rate & mass, - | - Log Level 2 details values for each SourceFlux, - | - Log Level 3 details values for each region. -name groupName required A name is required for any non-unique nodes -writeCSV integer 0 Write statistics into a CSV file -============== ================== ======== ===================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SourceFluxStatistics_other.rst b/src/coreComponents/schema/docs/SourceFluxStatistics_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SourceFluxStatistics_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/SourceFlux_other.rst b/src/coreComponents/schema/docs/SourceFlux_other.rst deleted file mode 100644 index c3574d52b05..00000000000 --- a/src/coreComponents/schema/docs/SourceFlux_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -========= ============ ==================================================== -Name Type Description -========= ============ ==================================================== -fieldName groupNameRef Name of field that boundary condition is applied to. -========= ============ ==================================================== - - diff --git a/src/coreComponents/schema/docs/SurfaceElementRegion.rst b/src/coreComponents/schema/docs/SurfaceElementRegion.rst deleted file mode 100644 index 8e8ab2e6ec6..00000000000 --- a/src/coreComponents/schema/docs/SurfaceElementRegion.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -=============== ============================================== ================= ================================================================================= -Name Type Default Description -=============== ============================================== ================= ================================================================================= -defaultAperture real64 required The default aperture of newly formed surface elements. -faceBlock groupNameRef FractureSubRegion The name of the face block in the mesh, or the embedded surface. -materialList groupNameRef_array required List of materials present in this region -meshBody groupNameRef Mesh body that contains this region -name groupName required A name is required for any non-unique nodes -subRegionType geos_SurfaceElementRegion_SurfaceSubRegionType faceElement Type of surface element subregion. Valid options: {faceElement, embeddedElement}. -=============== ============================================== ================= ================================================================================= - - diff --git a/src/coreComponents/schema/docs/SurfaceElementRegion_other.rst b/src/coreComponents/schema/docs/SurfaceElementRegion_other.rst deleted file mode 100644 index bb012ac8ff4..00000000000 --- a/src/coreComponents/schema/docs/SurfaceElementRegion_other.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -======================= ================================================================= ========================================================= -Name Type Description -======================= ================================================================= ========================================================= -domainBoundaryIndicator integer_array (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -elementSubRegions node :ref:`DATASTRUCTURE_elementSubRegions` -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ================================================================= ========================================================= - - diff --git a/src/coreComponents/schema/docs/SurfaceGenerator.rst b/src/coreComponents/schema/docs/SurfaceGenerator.rst deleted file mode 100644 index 4160911ec7b..00000000000 --- a/src/coreComponents/schema/docs/SurfaceGenerator.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== -cflFactor real64 0.5 Factor to apply to the `CFL condition `_ when calculating the maximum allowable time step. Values should be in the interval (0,1] -fractureRegion groupNameRef Fracture (no description available) -initialDt real64 1e+99 Initial time-step value required by the solver to the event manager. -isPoroelastic integer 0 Flag that defines whether the material is poroelastic or not. -logLevel integer 0 Log level -mpiCommOrder integer 0 Flag to enable MPI consistent communication ordering -name groupName required A name is required for any non-unique nodes -nodeBasedSIF integer 0 Flag for choosing between node or edge based criteria: 1 for node based criterion -rockToughness real64 required Rock toughness of the solid material -targetRegions groupNameRef_array required Allowable regions that the solver may be applied to. Note that this does not indicate that the solver will be applied to these regions, only that allocation will occur such that the solver may be applied to these regions. The decision about what regions this solver will beapplied to rests in the EventManager. -writeLinearSystem integer 0 Write matrix, rhs, solution to screen ( = 1) or file ( = 2). -LinearSolverParameters node unique :ref:`XML_LinearSolverParameters` -NonlinearSolverParameters node unique :ref:`XML_NonlinearSolverParameters` -========================= ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SurfaceGenerator_other.rst b/src/coreComponents/schema/docs/SurfaceGenerator_other.rst deleted file mode 100644 index 644325ed6a9..00000000000 --- a/src/coreComponents/schema/docs/SurfaceGenerator_other.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization groupNameRef Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -failCriterion integer (no description available) -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geos_mapBase, LvArray_Array, int, LvArray_ChaiBuffer>, std_integral_constant > MeshBody/Region combinations that the solver will be applied to. -tipEdges LvArray_SortedArray Set containing all the tip edges -tipFaces LvArray_SortedArray Set containing all the tip faces -tipNodes LvArray_SortedArray Set containing all the nodes at the fracture tip -trailingFaces LvArray_SortedArray Set containing all the trailing faces -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -SolverStatistics node :ref:`DATASTRUCTURE_SolverStatistics` -========================= ====================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/SymbolicFunction.rst b/src/coreComponents/schema/docs/SymbolicFunction.rst deleted file mode 100644 index 0429ef7ef0d..00000000000 --- a/src/coreComponents/schema/docs/SymbolicFunction.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -============= ================== ======== ============================================================================ -Name Type Default Description -============= ================== ======== ============================================================================ -expression string required Symbolic math expression -inputVarNames groupNameRef_array {} Name of fields are input to function. -name groupName required A name is required for any non-unique nodes -variableNames groupNameRef_array required List of variables in expression. The order must match the evaluate argument -============= ================== ======== ============================================================================ - - diff --git a/src/coreComponents/schema/docs/SymbolicFunction_other.rst b/src/coreComponents/schema/docs/SymbolicFunction_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/SymbolicFunction_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/TableCapillaryPressure.rst b/src/coreComponents/schema/docs/TableCapillaryPressure.rst deleted file mode 100644 index c3732b8a9b7..00000000000 --- a/src/coreComponents/schema/docs/TableCapillaryPressure.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -========================================== ================== ======== ====================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================================== ================== ======== ====================================================================================================================================================================================================================================================================================================================== -name groupName required A name is required for any non-unique nodes -nonWettingIntermediateCapPressureTableName groupNameRef | Capillary pressure table [Pa] for the pair (non-wetting phase, intermediate phase) - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead wettingNonWettingCapPressureTableName to specify the table names -phaseNames groupNameRef_array required List of fluid phases -wettingIntermediateCapPressureTableName groupNameRef | Capillary pressure table [Pa] for the pair (wetting phase, intermediate phase) - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead wettingNonWettingCapPressureTableName to specify the table names -wettingNonWettingCapPressureTableName groupNameRef | Capillary pressure table [Pa] for the pair (wetting phase, non-wetting phase) - | Note that this input is only used for two-phase flow. - | If you want to do a three-phase simulation, please use instead wettingIntermediateCapPressureTableName and nonWettingIntermediateCapPressureTableName to specify the table names -========================================== ================== ======== ====================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/TableCapillaryPressure_other.rst b/src/coreComponents/schema/docs/TableCapillaryPressure_other.rst deleted file mode 100644 index d4c775cae61..00000000000 --- a/src/coreComponents/schema/docs/TableCapillaryPressure_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -=================================== =================================================================================================== ============================================================================ -Name Type Description -=================================== =================================================================================================== ============================================================================ -capPresWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -dPhaseCapPressure_dPhaseVolFraction real64_array4d Derivative of phase capillary pressure with respect to phase volume fraction -phaseCapPressure real64_array3d Phase capillary pressure -phaseOrder integer_array (no description available) -phaseTypes integer_array (no description available) -=================================== =================================================================================================== ============================================================================ - - diff --git a/src/coreComponents/schema/docs/TableFunction.rst b/src/coreComponents/schema/docs/TableFunction.rst deleted file mode 100644 index b8909ae71d7..00000000000 --- a/src/coreComponents/schema/docs/TableFunction.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -=============== ==================================== ======== =========================================================================== -Name Type Default Description -=============== ==================================== ======== =========================================================================== -coordinateFiles path_array {} List of coordinate file names for ND Table -coordinates real64_array {0} Coordinates inputs for 1D tables -inputVarNames groupNameRef_array {} Name of fields are input to function. -interpolation geos_TableFunction_InterpolationType linear | Interpolation method. Valid options: - | * linear - | * nearest - | * upper - | * lower -name groupName required A name is required for any non-unique nodes -values real64_array {0} Values for 1D tables -voxelFile path Voxel file name for ND Table -=============== ==================================== ======== =========================================================================== - - diff --git a/src/coreComponents/schema/docs/TableFunction_other.rst b/src/coreComponents/schema/docs/TableFunction_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/TableFunction_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/TableRelativePermeability.rst b/src/coreComponents/schema/docs/TableRelativePermeability.rst deleted file mode 100644 index e5570ab4b80..00000000000 --- a/src/coreComponents/schema/docs/TableRelativePermeability.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -======================================= ======================================== ======== ================================================================================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -======================================= ======================================== ======== ================================================================================================================================================================================================================================================================================================================================================================================================================================== -name groupName required A name is required for any non-unique nodes -nonWettingIntermediateRelPermTableNames groupNameRef_array {} | List of relative permeability tables for the pair (non-wetting phase, intermediate phase) - | The expected format is "{ nonWettingPhaseRelPermTableName, intermediatePhaseRelPermTableName }", in that order - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead wettingNonWettingRelPermTableNames to specify the table names -phaseNames groupNameRef_array required List of fluid phases -threePhaseInterpolator geos_constitutive_ThreePhaseInterpolator BAKER | Type of Three phase interpolator.Valid options - | * BAKER - | * STONEII -wettingIntermediateRelPermTableNames groupNameRef_array {} | List of relative permeability tables for the pair (wetting phase, intermediate phase) - | The expected format is "{ wettingPhaseRelPermTableName, intermediatePhaseRelPermTableName }", in that order - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead wettingNonWettingRelPermTableNames to specify the table names -wettingNonWettingRelPermTableNames groupNameRef_array {} | List of relative permeability tables for the pair (wetting phase, non-wetting phase) - | The expected format is "{ wettingPhaseRelPermTableName, nonWettingPhaseRelPermTableName }", in that order - | Note that this input is only used for two-phase flow. - | If you want to do a three-phase simulation, please use instead wettingIntermediateRelPermTableNames and nonWettingIntermediateRelPermTableNames to specify the table names -======================================= ======================================== ======== ================================================================================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/TableRelativePermeabilityHysteresis.rst b/src/coreComponents/schema/docs/TableRelativePermeabilityHysteresis.rst deleted file mode 100644 index 6d8d9b07bb7..00000000000 --- a/src/coreComponents/schema/docs/TableRelativePermeabilityHysteresis.rst +++ /dev/null @@ -1,32 +0,0 @@ - - -=============================================== ======================================== ======== =========================================================================================================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -=============================================== ======================================== ======== =========================================================================================================================================================================================================================================================================================================================================================================================================================================================== -drainageNonWettingIntermediateRelPermTableNames groupNameRef_array {} | List of drainage relative permeability tables for the pair (non-wetting phase, intermediate phase) - | The expected format is "{ nonWettingPhaseRelPermTableName, intermediatePhaseRelPermTableName }", in that order - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead drainageWettingNonWettingRelPermTableNames to specify the table names -drainageWettingIntermediateRelPermTableNames groupNameRef_array {} | List of drainage relative permeability tables for the pair (wetting phase, intermediate phase) - | The expected format is "{ wettingPhaseRelPermTableName, intermediatePhaseRelPermTableName }", in that order - | Note that this input is only used for three-phase flow. - | If you want to do a two-phase simulation, please use instead drainageWettingNonWettingRelPermTableNames to specify the table names -drainageWettingNonWettingRelPermTableNames groupNameRef_array {} | List of drainage relative permeability tables for the pair (wetting phase, non-wetting phase) - | The expected format is "{ wettingPhaseRelPermTableName, nonWettingPhaseRelPermTableName }", in that order - | Note that this input is only used for two-phase flow. - | If you want to do a three-phase simulation, please use instead drainageWettingIntermediateRelPermTableNames and drainageNonWettingIntermediateRelPermTableNames to specify the table names -imbibitionNonWettingRelPermTableName groupNameRef | Imbibition relative permeability table name for the non-wetting phase. - | To neglect hysteresis on this phase, just use the same table name for the drainage and imbibition curves -imbibitionWettingRelPermTableName groupNameRef | Imbibition relative permeability table name for the wetting phase. - | To neglect hysteresis on this phase, just use the same table name for the drainage and imbibition curves -jerauldParameterA real64 0.1 First parameter (modification parameter) introduced by Jerauld in the Land trapping model (see RTD documentation). -jerauldParameterB real64 0 Second parameter introduced by Jerauld in the Land trapping model (see RTD documentation). -killoughCurvatureParameter real64 1 Curvature parameter introduced by Killough for wetting-phase hysteresis (see RTD documentation). -name groupName required A name is required for any non-unique nodes -phaseNames groupNameRef_array required List of fluid phases -threePhaseInterpolator geos_constitutive_ThreePhaseInterpolator BAKER | Type of Three phase interpolator.Valid options - | * BAKER - | * STONEII -=============================================== ======================================== ======== =========================================================================================================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/TableRelativePermeabilityHysteresis_other.rst b/src/coreComponents/schema/docs/TableRelativePermeabilityHysteresis_other.rst deleted file mode 100644 index f8e13266217..00000000000 --- a/src/coreComponents/schema/docs/TableRelativePermeabilityHysteresis_other.rst +++ /dev/null @@ -1,27 +0,0 @@ - - -================================ =================================================================================================== =============================================================================== -Name Type Description -================================ =================================================================================================== =============================================================================== -dPhaseRelPerm_dPhaseVolFraction real64_array4d Derivative of phase relative permeability with respect to phase volume fraction -drainagePhaseMaxVolumeFraction real64_array (no description available) -drainagePhaseMinVolumeFraction real64_array (no description available) -drainagePhaseRelPermEndPoint real64_array (no description available) -drainageRelPermWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -imbibitionPhaseMaxVolumeFraction real64_array (no description available) -imbibitionPhaseMinVolumeFraction real64_array (no description available) -imbibitionPhaseRelPermEndPoint real64_array (no description available) -imbibitionRelPermWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -landParameter real64_array (no description available) -phaseHasHysteresis integer_array (no description available) -phaseMaxHistoricalVolFraction real64_array2d Phase max historical phase volume fraction -phaseMinHistoricalVolFraction real64_array2d Phase min historical phase volume fraction -phaseOrder integer_array (no description available) -phaseRelPerm real64_array3d Phase relative permeability -phaseRelPerm_n real64_array3d Phase relative permeability at previous time -phaseTrappedVolFraction real64_array3d Phase trapped volume fraction -phaseTypes integer_array (no description available) -waterOilMaxRelPerm real64 (no description available) -================================ =================================================================================================== =============================================================================== - - diff --git a/src/coreComponents/schema/docs/TableRelativePermeability_other.rst b/src/coreComponents/schema/docs/TableRelativePermeability_other.rst deleted file mode 100644 index 4d6a2f00651..00000000000 --- a/src/coreComponents/schema/docs/TableRelativePermeability_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -=============================== =================================================================================================== =============================================================================== -Name Type Description -=============================== =================================================================================================== =============================================================================== -dPhaseRelPerm_dPhaseVolFraction real64_array4d Derivative of phase relative permeability with respect to phase volume fraction -phaseMinVolumeFraction real64_array (no description available) -phaseOrder integer_array (no description available) -phaseRelPerm real64_array3d Phase relative permeability -phaseRelPerm_n real64_array3d Phase relative permeability at previous time -phaseTrappedVolFraction real64_array3d Phase trapped volume fraction -phaseTypes integer_array (no description available) -relPermWrappers LvArray_Array, int, LvArray_ChaiBuffer> (no description available) -waterOilMaxRelPerm real64 (no description available) -=============================== =================================================================================================== =============================================================================== - - diff --git a/src/coreComponents/schema/docs/Tasks.rst b/src/coreComponents/schema/docs/Tasks.rst deleted file mode 100644 index 261764bbeaa..00000000000 --- a/src/coreComponents/schema/docs/Tasks.rst +++ /dev/null @@ -1,26 +0,0 @@ - - -=========================================================== ==== ======= ====================================================================== -Name Type Default Description -=========================================================== ==== ======= ====================================================================== -CellToCellDataCollection node :ref:`XML_CellToCellDataCollection` -CompositionalMultiphaseReservoirPoromechanicsInitialization node :ref:`XML_CompositionalMultiphaseReservoirPoromechanicsInitialization` -CompositionalMultiphaseStatistics node :ref:`XML_CompositionalMultiphaseStatistics` -HydrofractureInitialization node :ref:`XML_HydrofractureInitialization` -MultiphasePoromechanicsInitialization node :ref:`XML_MultiphasePoromechanicsInitialization` -PVTDriver node :ref:`XML_PVTDriver` -PackCollection node :ref:`XML_PackCollection` -ReactiveFluidDriver node :ref:`XML_ReactiveFluidDriver` -RelpermDriver node :ref:`XML_RelpermDriver` -SinglePhasePoromechanicsConformingFracturesInitialization node :ref:`XML_SinglePhasePoromechanicsConformingFracturesInitialization` -SinglePhasePoromechanicsEmbeddedFracturesInitialization node :ref:`XML_SinglePhasePoromechanicsEmbeddedFracturesInitialization` -SinglePhasePoromechanicsInitialization node :ref:`XML_SinglePhasePoromechanicsInitialization` -SinglePhaseReservoirPoromechanicsInitialization node :ref:`XML_SinglePhaseReservoirPoromechanicsInitialization` -SinglePhaseStatistics node :ref:`XML_SinglePhaseStatistics` -SolidMechanicsStateReset node :ref:`XML_SolidMechanicsStateReset` -SolidMechanicsStatistics node :ref:`XML_SolidMechanicsStatistics` -SourceFluxStatistics node :ref:`XML_SourceFluxStatistics` -TriaxialDriver node :ref:`XML_TriaxialDriver` -=========================================================== ==== ======= ====================================================================== - - diff --git a/src/coreComponents/schema/docs/Tasks_other.rst b/src/coreComponents/schema/docs/Tasks_other.rst deleted file mode 100644 index bcde01875c0..00000000000 --- a/src/coreComponents/schema/docs/Tasks_other.rst +++ /dev/null @@ -1,26 +0,0 @@ - - -=========================================================== ==== ================================================================================ -Name Type Description -=========================================================== ==== ================================================================================ -CellToCellDataCollection node :ref:`DATASTRUCTURE_CellToCellDataCollection` -CompositionalMultiphaseReservoirPoromechanicsInitialization node :ref:`DATASTRUCTURE_CompositionalMultiphaseReservoirPoromechanicsInitialization` -CompositionalMultiphaseStatistics node :ref:`DATASTRUCTURE_CompositionalMultiphaseStatistics` -HydrofractureInitialization node :ref:`DATASTRUCTURE_HydrofractureInitialization` -MultiphasePoromechanicsInitialization node :ref:`DATASTRUCTURE_MultiphasePoromechanicsInitialization` -PVTDriver node :ref:`DATASTRUCTURE_PVTDriver` -PackCollection node :ref:`DATASTRUCTURE_PackCollection` -ReactiveFluidDriver node :ref:`DATASTRUCTURE_ReactiveFluidDriver` -RelpermDriver node :ref:`DATASTRUCTURE_RelpermDriver` -SinglePhasePoromechanicsConformingFracturesInitialization node :ref:`DATASTRUCTURE_SinglePhasePoromechanicsConformingFracturesInitialization` -SinglePhasePoromechanicsEmbeddedFracturesInitialization node :ref:`DATASTRUCTURE_SinglePhasePoromechanicsEmbeddedFracturesInitialization` -SinglePhasePoromechanicsInitialization node :ref:`DATASTRUCTURE_SinglePhasePoromechanicsInitialization` -SinglePhaseReservoirPoromechanicsInitialization node :ref:`DATASTRUCTURE_SinglePhaseReservoirPoromechanicsInitialization` -SinglePhaseStatistics node :ref:`DATASTRUCTURE_SinglePhaseStatistics` -SolidMechanicsStateReset node :ref:`DATASTRUCTURE_SolidMechanicsStateReset` -SolidMechanicsStatistics node :ref:`DATASTRUCTURE_SolidMechanicsStatistics` -SourceFluxStatistics node :ref:`DATASTRUCTURE_SourceFluxStatistics` -TriaxialDriver node :ref:`DATASTRUCTURE_TriaxialDriver` -=========================================================== ==== ================================================================================ - - diff --git a/src/coreComponents/schema/docs/ThermalCompressibleSinglePhaseFluid.rst b/src/coreComponents/schema/docs/ThermalCompressibleSinglePhaseFluid.rst deleted file mode 100644 index 469050d50fa..00000000000 --- a/src/coreComponents/schema/docs/ThermalCompressibleSinglePhaseFluid.rst +++ /dev/null @@ -1,32 +0,0 @@ - - -======================= =========================================== ======== =================================================================================== -Name Type Default Description -======================= =========================================== ======== =================================================================================== -compressibility real64 0 Fluid compressibility -defaultDensity real64 required Default value for density. -defaultViscosity real64 required Default value for viscosity. -densityModelType geos_constitutive_ExponentApproximationType linear | Type of density model. Valid options: - | * exponential - | * linear - | * quadratic -internalEnergyModelType geos_constitutive_ExponentApproximationType linear | Type of internal energy model. Valid options: - | * exponential - | * linear - | * quadratic -name groupName required A name is required for any non-unique nodes -referenceDensity real64 1000 Reference fluid density -referenceInternalEnergy real64 0.001 Reference fluid internal energy -referencePressure real64 0 Reference pressure -referenceTemperature real64 0 Reference temperature -referenceViscosity real64 0.001 Reference fluid viscosity -specificHeatCapacity real64 0 Fluid heat capacity. Unit: J/kg/K -thermalExpansionCoeff real64 0 Fluid thermal expansion coefficient. Unit: 1/K -viscosibility real64 0 Fluid viscosity exponential coefficient -viscosityModelType geos_constitutive_ExponentApproximationType linear | Type of viscosity model. Valid options: - | * exponential - | * linear - | * quadratic -======================= =========================================== ======== =================================================================================== - - diff --git a/src/coreComponents/schema/docs/ThermalCompressibleSinglePhaseFluid_other.rst b/src/coreComponents/schema/docs/ThermalCompressibleSinglePhaseFluid_other.rst deleted file mode 100644 index 53255e66ebc..00000000000 --- a/src/coreComponents/schema/docs/ThermalCompressibleSinglePhaseFluid_other.rst +++ /dev/null @@ -1,22 +0,0 @@ - - -============================ ============== ========================================================= -Name Type Description -============================ ============== ========================================================= -dDensity_dPressure real64_array2d Derivative of density with respect to pressure -dDensity_dTemperature real64_array2d Derivative of density with respect to temperature -dEnthalpy_dPressure real64_array2d Derivative of enthalpy with respect to pressure -dEnthalpy_dTemperature real64_array2d Derivative of enthalpy with respect to temperature -dInternalEnergy_dPressure real64_array2d Derivative of internal energy with respect to pressure -dInternalEnergy_dTemperature real64_array2d Derivative of internal energy with respect to temperature -dViscosity_dPressure real64_array2d Derivative of viscosity with respect to pressure -dViscosity_dTemperature real64_array2d Derivative of viscosity with respect to temperature -density real64_array2d Density -density_n real64_array2d Density at the previous converged time step -enthalpy real64_array2d Enthalpy -internalEnergy real64_array2d Internal energy -internalEnergy_n real64_array2d Fluid internal energy at the previous converged step -viscosity real64_array2d Viscosity -============================ ============== ========================================================= - - diff --git a/src/coreComponents/schema/docs/ThickPlane.rst b/src/coreComponents/schema/docs/ThickPlane.rst deleted file mode 100644 index d48c386ac4d..00000000000 --- a/src/coreComponents/schema/docs/ThickPlane.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -========= ========= ======== ===================================================================== -Name Type Default Description -========= ========= ======== ===================================================================== -name groupName required A name is required for any non-unique nodes -normal R1Tensor required Normal (n_x,n_y,n_z) to the plane (will be normalized automatically) -origin R1Tensor required Origin point (x,y,z) of the plane (basically, any point on the plane) -thickness real64 required The total thickness of the plane (with half to each side) -========= ========= ======== ===================================================================== - - diff --git a/src/coreComponents/schema/docs/ThickPlane_other.rst b/src/coreComponents/schema/docs/ThickPlane_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/ThickPlane_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/TimeHistory.rst b/src/coreComponents/schema/docs/TimeHistory.rst deleted file mode 100644 index 48d9d3cf740..00000000000 --- a/src/coreComponents/schema/docs/TimeHistory.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=============== ================== =========== =============================================================================== -Name Type Default Description -=============== ================== =========== =============================================================================== -childDirectory string Child directory path -filename string TimeHistory The filename to which to write time history output. -format string hdf The output file format for time history output. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -parallelThreads integer 1 Number of plot files. -sources groupNameRef_array required A list of collectors from which to collect and output time history information. -=============== ================== =========== =============================================================================== - - diff --git a/src/coreComponents/schema/docs/TimeHistory_other.rst b/src/coreComponents/schema/docs/TimeHistory_other.rst deleted file mode 100644 index dff6ceb0fc6..00000000000 --- a/src/coreComponents/schema/docs/TimeHistory_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -======= ======= ====================================================================================================================== -Name Type Description -======= ======= ====================================================================================================================== -restart integer The current history record to be written, on restart from an earlier time allows use to remove invalid future history. -======= ======= ====================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/Traction.rst b/src/coreComponents/schema/docs/Traction.rst deleted file mode 100644 index 58522e086bc..00000000000 --- a/src/coreComponents/schema/docs/Traction.rst +++ /dev/null @@ -1,24 +0,0 @@ - - -====================== =========================================== ============= =============================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -====================== =========================================== ============= =============================================================================================================================================================================================================================================================================================================================================================================== -bcApplicationTableName groupNameRef Name of table that specifies the on/off application of the boundary condition. -beginTime real64 -1e+99 Time at which the boundary condition will start being applied. -direction R1Tensor {0,0,0} Direction to apply boundary condition to. -endTime real64 1e+99 Time at which the boundary condition will stop being applied. -functionName groupNameRef Name of function that specifies variation of the boundary condition. -initialCondition integer 0 Boundary condition is applied as an initial condition. -inputStress R2SymTensor {0,0,0,0,0,0} Input stress for tractionType = stress -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -objectPath groupNameRef Path to the target field -scale real64 0 Scale factor for value of the boundary condition. -setNames groupNameRef_array required Name of sets that boundary condition is applied to. -tractionType geos_TractionBoundaryCondition_TractionType vector | Type of traction boundary condition. Options are: - | vector - traction is applied to the faces as specified from the scale and direction, - | normal - traction is applied to the faces as a pressure specified from the product of scale and the outward face normal, - | stress - traction is applied to the faces as specified by the inner product of input stress and face normal. -====================== =========================================== ============= =============================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/Traction_other.rst b/src/coreComponents/schema/docs/Traction_other.rst deleted file mode 100644 index 15200f2e3a7..00000000000 --- a/src/coreComponents/schema/docs/Traction_other.rst +++ /dev/null @@ -1,10 +0,0 @@ - - -========= ============ ============================================================== -Name Type Description -========= ============ ============================================================== -component integer Component of field (if tensor) to apply boundary condition to. -fieldName groupNameRef Name of field that boundary condition is applied to. -========= ============ ============================================================== - - diff --git a/src/coreComponents/schema/docs/TriaxialDriver.rst b/src/coreComponents/schema/docs/TriaxialDriver.rst deleted file mode 100644 index d8144999bee..00000000000 --- a/src/coreComponents/schema/docs/TriaxialDriver.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -============= ======================== ======== ===================================================================== -Name Type Default Description -============= ======================== ======== ===================================================================== -axialControl groupNameRef required Function controlling axial stress or strain (depending on test mode) -baseline path none Baseline file -initialStress real64 required Initial stress (scalar used to set an isotropic stress state) -logLevel integer 0 Log level -material groupNameRef required Solid material to test -mode geos_TriaxialDriver_Mode required Test mode [stressControl, strainControl, mixedControl] -name groupName required A name is required for any non-unique nodes -output string none Output file -radialControl groupNameRef required Function controlling radial stress or strain (depending on test mode) -steps integer required Number of load steps to take -============= ======================== ======== ===================================================================== - - diff --git a/src/coreComponents/schema/docs/TriaxialDriver_other.rst b/src/coreComponents/schema/docs/TriaxialDriver_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/TriaxialDriver_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/TwoPointFluxApproximation.rst b/src/coreComponents/schema/docs/TwoPointFluxApproximation.rst deleted file mode 100644 index 30fa4827360..00000000000 --- a/src/coreComponents/schema/docs/TwoPointFluxApproximation.rst +++ /dev/null @@ -1,16 +0,0 @@ - - -=================== ==================== ======== =============================================================== -Name Type Default Description -=================== ==================== ======== =============================================================== -areaRelTol real64 1e-08 Relative tolerance for area calculations. -meanPermCoefficient real64 1 (no description available) -name groupName required A name is required for any non-unique nodes -upwindingScheme geos_UpwindingScheme PPU | Type of upwinding scheme. Valid options: - | * PPU - | * C1PPU - | * IHU -usePEDFM integer 0 (no description available) -=================== ==================== ======== =============================================================== - - diff --git a/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst b/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst deleted file mode 100644 index a21d5757d0f..00000000000 --- a/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -======================== =================================================================================================================================== ======================================== -Name Type Description -======================== =================================================================================================================================== ======================================== -cellStencil geos_CellElementStencilTPFA (no description available) -coefficientName groupNameRef Name of coefficient field -edfmStencil geos_EmbeddedSurfaceToCellStencil (no description available) -faceElementToCellStencil geos_FaceElementToCellStencil (no description available) -fieldName groupNameRef_array Name of primary solution field -fractureStencil geos_SurfaceElementStencil (no description available) -targetRegions geos_mapBase, int, LvArray_ChaiBuffer>, std_integral_constant > List of regions to build the stencil for -======================== =================================================================================================================================== ======================================== - - diff --git a/src/coreComponents/schema/docs/VTK.rst b/src/coreComponents/schema/docs/VTK.rst deleted file mode 100644 index 952b60a3267..00000000000 --- a/src/coreComponents/schema/docs/VTK.rst +++ /dev/null @@ -1,22 +0,0 @@ - - -=========================== ======================= ======== ======================================================================================================================================================================================== -Name Type Default Description -=========================== ======================= ======== ======================================================================================================================================================================================== -childDirectory string Child directory path -fieldNames groupNameRef_array {} Names of the fields to output. If this attribute is specified, GEOSX outputs all the fields specified by the user, regardless of their `plotLevel` -format geos_vtk_VTKOutputMode binary Output data format. Valid options: ``binary``, ``ascii`` -levelNames string_array {} Names of mesh levels to output. -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -onlyPlotSpecifiedFieldNames integer 0 If this flag is equal to 1, then we only plot the fields listed in `fieldNames`. Otherwise, we plot all the fields with the required `plotLevel`, plus the fields listed in `fieldNames` -outputRegionType geos_vtk_VTKRegionTypes all Output region types. Valid options: ``cell``, ``well``, ``surface``, ``particle``, ``all`` -parallelThreads integer 1 Number of plot files. -plotFileRoot string VTK Name of the root file for this output. -plotLevel integer 1 Level detail plot. Only fields with lower of equal plot level will be output. -writeFEMFaces integer 0 (no description available) -writeFaceElementsAs3D integer 0 Should the face elements be written as 3d volumes or not. -writeGhostCells integer 0 Should the vtk files contain the ghost cells or not. -=========================== ======================= ======== ======================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/VTKMesh.rst b/src/coreComponents/schema/docs/VTKMesh.rst deleted file mode 100644 index 688b0d98319..00000000000 --- a/src/coreComponents/schema/docs/VTKMesh.rst +++ /dev/null @@ -1,26 +0,0 @@ - - -====================== ======================== ========= ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================ -Name Type Default Description -====================== ======================== ========= ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================ -faceBlocks groupNameRef_array {} For multi-block files, names of the face mesh block. -fieldNamesInGEOSX groupNameRef_array {} Names of the volumic fields in GEOSX to import into -fieldsToImport groupNameRef_array {} Volumic fields to be imported from the external mesh file -file path required Path to the mesh file -logLevel integer 0 Log level -mainBlockName groupNameRef main For multi-block files, name of the 3d mesh block. -name groupName required A name is required for any non-unique nodes -nodesetNames groupNameRef_array {} Names of the VTK nodesets to import -partitionMethod geos_vtk_PartitionMethod parmetis Method (library) used to partition the mesh -partitionRefinement integer 1 Number of partitioning refinement iterations (defaults to 1, recommended value).A value of 0 disables graph partitioning and keeps simple kd-tree partitions (not recommended). Values higher than 1 may lead to slightly improved partitioning, but yield diminishing returns. -regionAttribute groupNameRef attribute Name of the VTK cell attribute to use as region marker -scale R1Tensor {1,1,1} Scale the coordinates of the vertices by given scale factors (after translation) -surfacicFieldsInGEOSX groupNameRef_array {} Names of the surfacic fields in GEOSX to import into -surfacicFieldsToImport groupNameRef_array {} Surfacic fields to be imported from the external mesh file -translate R1Tensor {0,0,0} Translate the coordinates of the vertices by a given vector (prior to scaling) -useGlobalIds integer 0 Controls the use of global IDs in the input file for cells and points. If set to 0 (default value), the GlobalId arrays in the input mesh are used if available, and generated otherwise. If set to a negative value, the GlobalId arrays in the input mesh are not used, and generated global Ids are automatically generated. If set to a positive value, the GlobalId arrays in the input mesh are used and required, and the simulation aborts if they are not available -InternalWell node :ref:`XML_InternalWell` -VTKWell node :ref:`XML_VTKWell` -====================== ======================== ========= ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================ - - diff --git a/src/coreComponents/schema/docs/VTKMesh_other.rst b/src/coreComponents/schema/docs/VTKMesh_other.rst deleted file mode 100644 index 8ca4f02bc36..00000000000 --- a/src/coreComponents/schema/docs/VTKMesh_other.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -============ ==== ================================= -Name Type Description -============ ==== ================================= -InternalWell node :ref:`DATASTRUCTURE_InternalWell` -VTKWell node :ref:`DATASTRUCTURE_VTKWell` -meshLevels node :ref:`DATASTRUCTURE_meshLevels` -============ ==== ================================= - - diff --git a/src/coreComponents/schema/docs/VTKWell.rst b/src/coreComponents/schema/docs/VTKWell.rst deleted file mode 100644 index 0df45b1798d..00000000000 --- a/src/coreComponents/schema/docs/VTKWell.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -===================== ========= ======== ==================================================================================================== -Name Type Default Description -===================== ========= ======== ==================================================================================================== -file path required Path to the well file -minElementLength real64 0.001 Minimum length of a well element, computed as (segment length / number of elements per segment ) [m] -minSegmentLength real64 0.01 Minimum length of a well segment [m] -name groupName required A name is required for any non-unique nodes -numElementsPerSegment integer required Number of well elements per polyline segment -radius real64 required Radius of the well [m] -wellControlsName string required Name of the set of constraints associated with this well -wellRegionName string required Name of the well element region -Perforation node :ref:`XML_Perforation` -===================== ========= ======== ==================================================================================================== - - diff --git a/src/coreComponents/schema/docs/VTKWell_other.rst b/src/coreComponents/schema/docs/VTKWell_other.rst deleted file mode 100644 index 638cc779598..00000000000 --- a/src/coreComponents/schema/docs/VTKWell_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -=========== ==== ================================ -Name Type Description -=========== ==== ================================ -Perforation node :ref:`DATASTRUCTURE_Perforation` -=========== ==== ================================ - - diff --git a/src/coreComponents/schema/docs/VTK_other.rst b/src/coreComponents/schema/docs/VTK_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/VTK_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/VanGenuchtenBakerRelativePermeability.rst b/src/coreComponents/schema/docs/VanGenuchtenBakerRelativePermeability.rst deleted file mode 100644 index 00d74f74608..00000000000 --- a/src/coreComponents/schema/docs/VanGenuchtenBakerRelativePermeability.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -========================== ================== ======== ================================================================================================================================================================== -Name Type Default Description -========================== ================== ======== ================================================================================================================================================================== -gasOilRelPermExponentInv real64_array {0.5} | Rel perm power law exponent inverse for the pair (gas phase, oil phase) at residual water saturation - | The expected format is "{ gasExp, oilExp }", in that order -gasOilRelPermMaxValue real64_array {0} | Maximum rel perm value for the pair (gas phase, oil phase) at residual water saturation - | The expected format is "{ gasMax, oilMax }", in that order -name groupName required A name is required for any non-unique nodes -phaseMinVolumeFraction real64_array {0} Minimum volume fraction value for each phase -phaseNames groupNameRef_array required List of fluid phases -waterOilRelPermExponentInv real64_array {0.5} | Rel perm power law exponent inverse for the pair (water phase, oil phase) at residual gas saturation - | The expected format is "{ waterExp, oilExp }", in that order -waterOilRelPermMaxValue real64_array {0} | Maximum rel perm value for the pair (water phase, oil phase) at residual gas saturation - | The expected format is "{ waterMax, oilMax }", in that order -========================== ================== ======== ================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/VanGenuchtenBakerRelativePermeability_other.rst b/src/coreComponents/schema/docs/VanGenuchtenBakerRelativePermeability_other.rst deleted file mode 100644 index e6dd24aeb13..00000000000 --- a/src/coreComponents/schema/docs/VanGenuchtenBakerRelativePermeability_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=============================== ============== ======================================================================================================================= -Name Type Description -=============================== ============== ======================================================================================================================= -dPhaseRelPerm_dPhaseVolFraction real64_array4d Derivative of phase relative permeability with respect to phase volume fraction -phaseOrder integer_array (no description available) -phaseRelPerm real64_array3d Phase relative permeability -phaseRelPerm_n real64_array3d Phase relative permeability at previous time -phaseTrappedVolFraction real64_array3d Phase trapped volume fraction -phaseTypes integer_array (no description available) -volFracScale real64 Factor used to scale the phase capillary pressure, defined as: one minus the sum of the phase minimum volume fractions. -=============================== ============== ======================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/VanGenuchtenCapillaryPressure.rst b/src/coreComponents/schema/docs/VanGenuchtenCapillaryPressure.rst deleted file mode 100644 index d1ba6cf0266..00000000000 --- a/src/coreComponents/schema/docs/VanGenuchtenCapillaryPressure.rst +++ /dev/null @@ -1,14 +0,0 @@ - - -=========================== ================== ======== ================================================================================================================================================== -Name Type Default Description -=========================== ================== ======== ================================================================================================================================================== -capPressureEpsilon real64 1e-06 Saturation at which the extremum capillary pressure is attained; used to avoid infinite capillary pressure values for saturations close to 0 and 1 -name groupName required A name is required for any non-unique nodes -phaseCapPressureExponentInv real64_array {0.5} Inverse of capillary power law exponent for each phase -phaseCapPressureMultiplier real64_array {1} Entry pressure value for each phase -phaseMinVolumeFraction real64_array {0} Minimum volume fraction value for each phase -phaseNames groupNameRef_array required List of fluid phases -=========================== ================== ======== ================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/VanGenuchtenCapillaryPressure_other.rst b/src/coreComponents/schema/docs/VanGenuchtenCapillaryPressure_other.rst deleted file mode 100644 index 336528e2f6f..00000000000 --- a/src/coreComponents/schema/docs/VanGenuchtenCapillaryPressure_other.rst +++ /dev/null @@ -1,13 +0,0 @@ - - -=================================== ============== ======================================================================================================================= -Name Type Description -=================================== ============== ======================================================================================================================= -dPhaseCapPressure_dPhaseVolFraction real64_array4d Derivative of phase capillary pressure with respect to phase volume fraction -phaseCapPressure real64_array3d Phase capillary pressure -phaseOrder integer_array (no description available) -phaseTypes integer_array (no description available) -volFracScale real64 Factor used to scale the phase capillary pressure, defined as: one minus the sum of the phase minimum volume fractions. -=================================== ============== ======================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/VanGenuchtenStone2RelativePermeability.rst b/src/coreComponents/schema/docs/VanGenuchtenStone2RelativePermeability.rst deleted file mode 100644 index 00d74f74608..00000000000 --- a/src/coreComponents/schema/docs/VanGenuchtenStone2RelativePermeability.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -========================== ================== ======== ================================================================================================================================================================== -Name Type Default Description -========================== ================== ======== ================================================================================================================================================================== -gasOilRelPermExponentInv real64_array {0.5} | Rel perm power law exponent inverse for the pair (gas phase, oil phase) at residual water saturation - | The expected format is "{ gasExp, oilExp }", in that order -gasOilRelPermMaxValue real64_array {0} | Maximum rel perm value for the pair (gas phase, oil phase) at residual water saturation - | The expected format is "{ gasMax, oilMax }", in that order -name groupName required A name is required for any non-unique nodes -phaseMinVolumeFraction real64_array {0} Minimum volume fraction value for each phase -phaseNames groupNameRef_array required List of fluid phases -waterOilRelPermExponentInv real64_array {0.5} | Rel perm power law exponent inverse for the pair (water phase, oil phase) at residual gas saturation - | The expected format is "{ waterExp, oilExp }", in that order -waterOilRelPermMaxValue real64_array {0} | Maximum rel perm value for the pair (water phase, oil phase) at residual gas saturation - | The expected format is "{ waterMax, oilMax }", in that order -========================== ================== ======== ================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/VanGenuchtenStone2RelativePermeability_other.rst b/src/coreComponents/schema/docs/VanGenuchtenStone2RelativePermeability_other.rst deleted file mode 100644 index e6dd24aeb13..00000000000 --- a/src/coreComponents/schema/docs/VanGenuchtenStone2RelativePermeability_other.rst +++ /dev/null @@ -1,15 +0,0 @@ - - -=============================== ============== ======================================================================================================================= -Name Type Description -=============================== ============== ======================================================================================================================= -dPhaseRelPerm_dPhaseVolFraction real64_array4d Derivative of phase relative permeability with respect to phase volume fraction -phaseOrder integer_array (no description available) -phaseRelPerm real64_array3d Phase relative permeability -phaseRelPerm_n real64_array3d Phase relative permeability at previous time -phaseTrappedVolFraction real64_array3d Phase trapped volume fraction -phaseTypes integer_array (no description available) -volFracScale real64 Factor used to scale the phase capillary pressure, defined as: one minus the sum of the phase minimum volume fractions. -=============================== ============== ======================================================================================================================= - - diff --git a/src/coreComponents/schema/docs/ViscoDruckerPrager.rst b/src/coreComponents/schema/docs/ViscoDruckerPrager.rst deleted file mode 100644 index 0fcfe196f5d..00000000000 --- a/src/coreComponents/schema/docs/ViscoDruckerPrager.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -======================= ========= ======== ==================================================================== -Name Type Default Description -======================= ========= ======== ==================================================================== -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultCohesion real64 0 Initial cohesion -defaultDensity real64 required Default Material Density -defaultDilationAngle real64 30 Dilation angle (degrees) -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultFrictionAngle real64 30 Friction angle (degrees) -defaultHardeningRate real64 0 Cohesion hardening/softening rate -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -name groupName required A name is required for any non-unique nodes -relaxationTime real64 required Relaxation time -======================= ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ViscoDruckerPrager_other.rst b/src/coreComponents/schema/docs/ViscoDruckerPrager_other.rst deleted file mode 100644 index 3185dd07d81..00000000000 --- a/src/coreComponents/schema/docs/ViscoDruckerPrager_other.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -cohesion real64_array2d New cohesion state -density real64_array2d Material Density -dilation real64_array Plastic potential slope -friction real64_array Yield surface slope -hardening real64_array Hardening rate -oldCohesion real64_array2d Old cohesion state -oldStress real64_array3d Previous Material Stress -shearModulus real64_array Elastic Shear Modulus Field -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/ViscoExtendedDruckerPrager.rst b/src/coreComponents/schema/docs/ViscoExtendedDruckerPrager.rst deleted file mode 100644 index 6f9cc0dda2b..00000000000 --- a/src/coreComponents/schema/docs/ViscoExtendedDruckerPrager.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -============================ ========= ======== ==================================================================== -Name Type Default Description -============================ ========= ======== ==================================================================== -defaultBulkModulus real64 -1 Default Bulk Modulus Parameter -defaultCohesion real64 0 Initial cohesion -defaultDensity real64 required Default Material Density -defaultDilationRatio real64 1 Dilation ratio [0,1] (ratio = tan dilationAngle / tan frictionAngle) -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultHardening real64 0 Hardening parameter (hardening rate is faster for smaller values) -defaultInitialFrictionAngle real64 30 Initial friction angle (degrees) -defaultPoissonRatio real64 -1 Default Poisson's Ratio -defaultResidualFrictionAngle real64 30 Residual friction angle (degrees) -defaultShearModulus real64 -1 Default Shear Modulus Parameter -defaultYoungModulus real64 -1 Default Young's Modulus -name groupName required A name is required for any non-unique nodes -relaxationTime real64 required Relaxation time -============================ ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ViscoExtendedDruckerPrager_other.rst b/src/coreComponents/schema/docs/ViscoExtendedDruckerPrager_other.rst deleted file mode 100644 index 729d894b362..00000000000 --- a/src/coreComponents/schema/docs/ViscoExtendedDruckerPrager_other.rst +++ /dev/null @@ -1,21 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -bulkModulus real64_array Elastic Bulk Modulus Field -density real64_array2d Material Density -dilationRatio real64_array Plastic potential slope ratio -hardening real64_array Hardening parameter -initialFriction real64_array Initial yield surface slope -oldStateVariable real64_array2d Old equivalent plastic shear strain -oldStress real64_array3d Previous Material Stress -pressureIntercept real64_array Pressure point at cone vertex -residualFriction real64_array Residual yield surface slope -shearModulus real64_array Elastic Shear Modulus Field -stateVariable real64_array2d New equivalent plastic shear strain -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/ViscoModifiedCamClay.rst b/src/coreComponents/schema/docs/ViscoModifiedCamClay.rst deleted file mode 100644 index 2649b896438..00000000000 --- a/src/coreComponents/schema/docs/ViscoModifiedCamClay.rst +++ /dev/null @@ -1,19 +0,0 @@ - - -=============================== ========= ======== ==================================================================== -Name Type Default Description -=============================== ========= ======== ==================================================================== -defaultCslSlope real64 1 Slope of the critical state line -defaultDensity real64 required Default Material Density -defaultDrainedLinearTEC real64 0 Default Linear Thermal Expansion Coefficient of the Solid Rock Frame -defaultPreConsolidationPressure real64 -1.5 Initial preconsolidation pressure -defaultRecompressionIndex real64 0.002 Recompresion Index -defaultRefPressure real64 -1 Reference Pressure -defaultRefStrainVol real64 0 Reference Volumetric Strain -defaultShearModulus real64 -1 Elastic Shear Modulus Parameter -defaultVirginCompressionIndex real64 0.005 Virgin compression index -name groupName required A name is required for any non-unique nodes -relaxationTime real64 required Relaxation time -=============================== ========= ======== ==================================================================== - - diff --git a/src/coreComponents/schema/docs/ViscoModifiedCamClay_other.rst b/src/coreComponents/schema/docs/ViscoModifiedCamClay_other.rst deleted file mode 100644 index 9cbfc0ba5ef..00000000000 --- a/src/coreComponents/schema/docs/ViscoModifiedCamClay_other.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -=========================== ============== ========================================== -Name Type Description -=========================== ============== ========================================== -cslSlope real64_array Slope of the critical state line -density real64_array2d Material Density -oldPreConsolidationPressure real64_array2d Old preconsolidation pressure -oldStress real64_array3d Previous Material Stress -preConsolidationPressure real64_array2d New preconsolidation pressure -recompressionIndex real64_array Recompression Index Field -refPressure real64 Reference Pressure Field -refStrainVol real64 Reference Volumetric Strain -shearModulus real64_array Elastic Shear Modulus -stress real64_array3d Current Material Stress -thermalExpansionCoefficient real64_array Linear Thermal Expansion Coefficient Field -virginCompressionIndex real64_array Virgin compression index -=========================== ============== ========================================== - - diff --git a/src/coreComponents/schema/docs/WellControls.rst b/src/coreComponents/schema/docs/WellControls.rst deleted file mode 100644 index c31d40067e7..00000000000 --- a/src/coreComponents/schema/docs/WellControls.rst +++ /dev/null @@ -1,43 +0,0 @@ - - -========================== ========================= ======== =================================================================================================================================================================================================================================================================================================================================================================================================== -Name Type Default Description -========================== ========================= ======== =================================================================================================================================================================================================================================================================================================================================================================================================== -control geos_WellControls_Control required | Well control. Valid options: - | * BHP - | * phaseVolRate - | * totalVolRate - | * massRate - | * uninitialized -enableCrossflow integer 1 | Flag to enable crossflow. Currently only supported for injectors: - | - If the flag is set to 1, both reservoir-to-well flow and well-to-reservoir flow are allowed at the perforations. - | - If the flag is set to 0, we only allow well-to-reservoir flow at the perforations. -initialPressureCoefficient real64 0.1 | Tuning coefficient for the initial well pressure of rate-controlled wells: - | - Injector pressure at reference depth initialized as: (1+initialPressureCoefficient)*reservoirPressureAtClosestPerforation + density*g*( zRef - zPerf ) - | - Producer pressure at reference depth initialized as: (1-initialPressureCoefficient)*reservoirPressureAtClosestPerforation + density*g*( zRef - zPerf ) -injectionStream real64_array {-1} Global component densities of the injection stream [moles/m^3 or kg/m^3] -injectionTemperature real64 -1 Temperature of the injection stream [K] -logLevel integer 0 Log level -name groupName required A name is required for any non-unique nodes -referenceElevation real64 required Reference elevation where BHP control is enforced [m] -statusTableName groupNameRef | Name of the well status table when the status of the well is a time dependent function. - | If the status function evaluates to a positive value at the current time, the well will be open otherwise the well will be shut. -surfacePressure real64 0 Surface pressure used to compute volumetric rates when surface conditions are used [Pa] -surfaceTemperature real64 0 Surface temperature used to compute volumetric rates when surface conditions are used [K] -targetBHP real64 0 Target bottom-hole pressure [Pa] -targetBHPTableName groupNameRef Name of the BHP table when the rate is a time dependent function -targetMassRate real64 0 Target Mass Rate rate ( [kg^3/s]) -targetMassRateTableName groupNameRef Name of the mass rate table when the rate is a time dependent function -targetPhaseName groupNameRef Name of the target phase -targetPhaseRate real64 0 Target phase volumetric rate (if useSurfaceConditions: [surface m^3/s]; else [reservoir m^3/s]) -targetPhaseRateTableName groupNameRef Name of the phase rate table when the rate is a time dependent function -targetTotalRate real64 0 Target total volumetric rate (if useSurfaceConditions: [surface m^3/s]; else [reservoir m^3/s]) -targetTotalRateTableName groupNameRef Name of the total rate table when the rate is a time dependent function -type geos_WellControls_Type required | Well type. Valid options: - | * producer - | * injector -useSurfaceConditions integer 0 | Flag to specify whether rates are checked at surface or reservoir conditions. - | Equal to 1 for surface conditions, and to 0 for reservoir conditions -========================== ========================= ======== =================================================================================================================================================================================================================================================================================================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/WellControls_other.rst b/src/coreComponents/schema/docs/WellControls_other.rst deleted file mode 100644 index 503c03ed6f5..00000000000 --- a/src/coreComponents/schema/docs/WellControls_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -============== ========================= ==================== -Name Type Description -============== ========================= ==================== -currentControl geos_WellControls_Control Current well control -============== ========================= ==================== - - diff --git a/src/coreComponents/schema/docs/WellElementRegion.rst b/src/coreComponents/schema/docs/WellElementRegion.rst deleted file mode 100644 index d34dc05fe1a..00000000000 --- a/src/coreComponents/schema/docs/WellElementRegion.rst +++ /dev/null @@ -1,11 +0,0 @@ - - -============ ================== ======== =========================================== -Name Type Default Description -============ ================== ======== =========================================== -materialList groupNameRef_array required List of materials present in this region -meshBody groupNameRef Mesh body that contains this region -name groupName required A name is required for any non-unique nodes -============ ================== ======== =========================================== - - diff --git a/src/coreComponents/schema/docs/WellElementRegionUniqueSubRegion_other.rst b/src/coreComponents/schema/docs/WellElementRegionUniqueSubRegion_other.rst deleted file mode 100644 index eca5644ac14..00000000000 --- a/src/coreComponents/schema/docs/WellElementRegionUniqueSubRegion_other.rst +++ /dev/null @@ -1,29 +0,0 @@ - - -========================== ===================================================================================================== ========================================================= -Name Type Description -========================== ===================================================================================================== ========================================================= -domainBoundaryIndicator integer_array (no description available) -elementCenter real64_array2d (no description available) -elementVolume real64_array (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -nextWellElementIndex integer_array (no description available) -nextWellElementIndexGlobal integer_array (no description available) -nodeList geos_InterObjectRelation, int, LvArray_ChaiBuffer> > (no description available) -numEdgesPerElement integer (no description available) -numFacesPerElement integer (no description available) -numNodesPerElement integer (no description available) -radius real64_array (no description available) -topRank integer (no description available) -topWellElementIndex integer (no description available) -wellControlsName groupNameRef (no description available) -ConstitutiveModels node :ref:`DATASTRUCTURE_ConstitutiveModels` -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -wellElementSubRegion node :ref:`DATASTRUCTURE_wellElementSubRegion` -========================== ===================================================================================================== ========================================================= - - diff --git a/src/coreComponents/schema/docs/WellElementRegion_other.rst b/src/coreComponents/schema/docs/WellElementRegion_other.rst deleted file mode 100644 index bb655ec67d1..00000000000 --- a/src/coreComponents/schema/docs/WellElementRegion_other.rst +++ /dev/null @@ -1,18 +0,0 @@ - - -======================= ================================================================= ========================================================= -Name Type Description -======================= ================================================================= ========================================================= -domainBoundaryIndicator integer_array (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -wellControlsName groupNameRef (no description available) -wellGeneratorName groupNameRef (no description available) -elementSubRegions node :ref:`DATASTRUCTURE_elementSubRegions` -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ================================================================= ========================================================= - - diff --git a/src/coreComponents/schema/docs/WillisRichardsPermeability.rst b/src/coreComponents/schema/docs/WillisRichardsPermeability.rst deleted file mode 100644 index 47299a37b6a..00000000000 --- a/src/coreComponents/schema/docs/WillisRichardsPermeability.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -=================== ========= ======== ========================================================= -Name Type Default Description -=================== ========= ======== ========================================================= -dilationCoefficient real64 required Dilation coefficient (tan of dilation angle). -maxFracAperture real64 required Maximum fracture aperture at zero contact stress. -name groupName required A name is required for any non-unique nodes -refClosureStress real64 required Effective normal stress causes 90% reduction in aperture. -=================== ========= ======== ========================================================= - - diff --git a/src/coreComponents/schema/docs/WillisRichardsPermeability_other.rst b/src/coreComponents/schema/docs/WillisRichardsPermeability_other.rst deleted file mode 100644 index 945812dafaa..00000000000 --- a/src/coreComponents/schema/docs/WillisRichardsPermeability_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -=============== ============== =================================================================== -Name Type Description -=============== ============== =================================================================== -dPerm_dDispJump real64_array4d Derivative of rock permeability with respect to displacement jump -dPerm_dPressure real64_array3d Derivative of rock permeability with respect to pressure -dPerm_dTraction real64_array4d Derivative of rock permeability with respect to the traction vector -permeability real64_array3d Rock permeability -=============== ============== =================================================================== - - diff --git a/src/coreComponents/schema/docs/commandLine_other.rst b/src/coreComponents/schema/docs/commandLine_other.rst deleted file mode 100644 index 6800ed46187..00000000000 --- a/src/coreComponents/schema/docs/commandLine_other.rst +++ /dev/null @@ -1,20 +0,0 @@ - - -======================== ======= ====================================================================================================================== -Name Type Description -======================== ======= ====================================================================================================================== -beginFromRestart integer Flag to indicate restart run. -inputFileName string Name of the input xml file. -outputDirectory string Directory in which to put the output files, if not specified defaults to the current directory. -overridePartitionNumbers integer Flag to indicate partition number override -problemName string Used in writing the output files, if not specified defaults to the name of the input file. -restartFileName string Name of the restart file. -schemaFileName string Name of the output schema -suppressPinned integer Whether to disallow using pinned memory allocations for MPI communication buffers. -useNonblockingMPI integer Whether to prefer using non-blocking MPI communication where implemented (results in non-deterministic DOF numbering). -xPartitionsOverride integer Number of partitions in the x-direction -yPartitionsOverride integer Number of partitions in the y-direction -zPartitionsOverride integer Number of partitions in the z-direction -======================== ======= ====================================================================================================================== - - diff --git a/src/coreComponents/schema/docs/crusher.rst b/src/coreComponents/schema/docs/crusher.rst deleted file mode 100644 index 5c143d46c6a..00000000000 --- a/src/coreComponents/schema/docs/crusher.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ======= ============== -Name Type Default Description -==== ==== ======= ============== -Run node unique :ref:`XML_Run` -==== ==== ======= ============== - - diff --git a/src/coreComponents/schema/docs/crusher_other.rst b/src/coreComponents/schema/docs/crusher_other.rst deleted file mode 100644 index fb5ee6f8329..00000000000 --- a/src/coreComponents/schema/docs/crusher_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ======================== -Name Type Description -==== ==== ======================== -Run node :ref:`DATASTRUCTURE_Run` -==== ==== ======================== - - diff --git a/src/coreComponents/schema/docs/domain_other.rst b/src/coreComponents/schema/docs/domain_other.rst deleted file mode 100644 index 4cbdf6ffbda..00000000000 --- a/src/coreComponents/schema/docs/domain_other.rst +++ /dev/null @@ -1,12 +0,0 @@ - - -================ ================================================================================ ================================= -Name Type Description -================ ================================================================================ ================================= -Neighbors std_vector > (no description available) -partitionManager geos_PartitionBase (no description available) -Constitutive node :ref:`DATASTRUCTURE_Constitutive` -MeshBodies node :ref:`DATASTRUCTURE_MeshBodies` -================ ================================================================================ ================================= - - diff --git a/src/coreComponents/schema/docs/edgeManager_other.rst b/src/coreComponents/schema/docs/edgeManager_other.rst deleted file mode 100644 index 0d02ec6d8c8..00000000000 --- a/src/coreComponents/schema/docs/edgeManager_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -======================= ===================================================================================================== ========================================================= -Name Type Description -======================= ===================================================================================================== ========================================================= -domainBoundaryIndicator integer_array (no description available) -faceList geos_InterObjectRelation > (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -nodeList geos_InterObjectRelation, int, LvArray_ChaiBuffer> > (no description available) -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ===================================================================================================== ========================================================= - - diff --git a/src/coreComponents/schema/docs/elementRegionsGroup_other.rst b/src/coreComponents/schema/docs/elementRegionsGroup_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/elementRegionsGroup_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/elementSubRegions_other.rst b/src/coreComponents/schema/docs/elementSubRegions_other.rst deleted file mode 100644 index 3be4d2e912b..00000000000 --- a/src/coreComponents/schema/docs/elementSubRegions_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -================================ ==== ===================================================== -Name Type Description -================================ ==== ===================================================== -WellElementRegionUniqueSubRegion node :ref:`DATASTRUCTURE_WellElementRegionUniqueSubRegion` -================================ ==== ===================================================== - - diff --git a/src/coreComponents/schema/docs/embeddedSurfacesEdgeManager_other.rst b/src/coreComponents/schema/docs/embeddedSurfacesEdgeManager_other.rst deleted file mode 100644 index 0d02ec6d8c8..00000000000 --- a/src/coreComponents/schema/docs/embeddedSurfacesEdgeManager_other.rst +++ /dev/null @@ -1,17 +0,0 @@ - - -======================= ===================================================================================================== ========================================================= -Name Type Description -======================= ===================================================================================================== ========================================================= -domainBoundaryIndicator integer_array (no description available) -faceList geos_InterObjectRelation > (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -nodeList geos_InterObjectRelation, int, LvArray_ChaiBuffer> > (no description available) -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ===================================================================================================== ========================================================= - - diff --git a/src/coreComponents/schema/docs/embeddedSurfacesNodeManager_other.rst b/src/coreComponents/schema/docs/embeddedSurfacesNodeManager_other.rst deleted file mode 100644 index 3a3c4f725f8..00000000000 --- a/src/coreComponents/schema/docs/embeddedSurfacesNodeManager_other.rst +++ /dev/null @@ -1,22 +0,0 @@ - - -======================= ============================================================================ ============================================= ================================================================ -Name Type Registered By Description -======================= ============================================================================ ============================================= ================================================================ -domainBoundaryIndicator integer_array (no description available) -edgeList geos_InterObjectRelation > (no description available) -elemList LvArray_ArrayOfArrays (no description available) -elemRegionList LvArray_ArrayOfArrays (no description available) -elemSubRegionList LvArray_ArrayOfArrays (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -parentEdgeGlobalIndex globalIndex_array (no description available) -referencePosition real64_array2d (no description available) -parentEdgeIndex integer_array :ref:`DATASTRUCTURE_EmbeddedSurfaceGenerator` Index of parent edge within the mesh object it is registered on. -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ============================================================================ ============================================= ================================================================ - - diff --git a/src/coreComponents/schema/docs/faceManager_other.rst b/src/coreComponents/schema/docs/faceManager_other.rst deleted file mode 100644 index 7f1730f0304..00000000000 --- a/src/coreComponents/schema/docs/faceManager_other.rst +++ /dev/null @@ -1,25 +0,0 @@ - - -======================= ============================================================================== ================================================================================================ ========================================================= -Name Type Registered By Description -======================= ============================================================================== ================================================================================================ ========================================================= -domainBoundaryIndicator integer_array (no description available) -edgeList geos_InterObjectRelation > (no description available) -elemList integer_array2d (no description available) -elemRegionList integer_array2d (no description available) -elemSubRegionList integer_array2d (no description available) -faceArea real64_array (no description available) -faceCenter real64_array2d (no description available) -faceNormal real64_array2d (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -nodeList geos_InterObjectRelation > (no description available) -facePressure_n real64_array :ref:`DATASTRUCTURE_CompositionalMultiphaseHybridFVM`, :ref:`DATASTRUCTURE_SinglePhaseHybridFVM` Face pressure at the previous converged time step -mimGravityCoefficient real64_array :ref:`DATASTRUCTURE_CompositionalMultiphaseHybridFVM` Mimetic gravity coefficient -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ============================================================================== ================================================================================================ ========================================================= - - diff --git a/src/coreComponents/schema/docs/lassen.rst b/src/coreComponents/schema/docs/lassen.rst deleted file mode 100644 index 5c143d46c6a..00000000000 --- a/src/coreComponents/schema/docs/lassen.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ======= ============== -Name Type Default Description -==== ==== ======= ============== -Run node unique :ref:`XML_Run` -==== ==== ======= ============== - - diff --git a/src/coreComponents/schema/docs/lassen_other.rst b/src/coreComponents/schema/docs/lassen_other.rst deleted file mode 100644 index fb5ee6f8329..00000000000 --- a/src/coreComponents/schema/docs/lassen_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ======================== -Name Type Description -==== ==== ======================== -Run node :ref:`DATASTRUCTURE_Run` -==== ==== ======================== - - diff --git a/src/coreComponents/schema/docs/meshLevels_other.rst b/src/coreComponents/schema/docs/meshLevels_other.rst deleted file mode 100644 index ec43e922076..00000000000 --- a/src/coreComponents/schema/docs/meshLevels_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -====== ==== =========================== -Name Type Description -====== ==== =========================== -Level0 node :ref:`DATASTRUCTURE_Level0` -====== ==== =========================== - - diff --git a/src/coreComponents/schema/docs/neighborData_other.rst b/src/coreComponents/schema/docs/neighborData_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/neighborData_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/nodeManager_other.rst b/src/coreComponents/schema/docs/nodeManager_other.rst deleted file mode 100644 index cde3077884e..00000000000 --- a/src/coreComponents/schema/docs/nodeManager_other.rst +++ /dev/null @@ -1,22 +0,0 @@ - - -======================= ============================================================================ ========================================================= -Name Type Description -======================= ============================================================================ ========================================================= -ReferencePosition real64_array2d (no description available) -domainBoundaryIndicator integer_array (no description available) -edgeList geos_InterObjectRelation > (no description available) -elemList LvArray_ArrayOfArrays (no description available) -elemRegionList LvArray_ArrayOfArrays (no description available) -elemSubRegionList LvArray_ArrayOfArrays (no description available) -faceList geos_InterObjectRelation > (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -primaryField real64_array Primary field variable -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -======================= ============================================================================ ========================================================= - - diff --git a/src/coreComponents/schema/docs/particleRegionsGroup_other.rst b/src/coreComponents/schema/docs/particleRegionsGroup_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/particleRegionsGroup_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/particleSubRegions_other.rst b/src/coreComponents/schema/docs/particleSubRegions_other.rst deleted file mode 100644 index adf1c1b8aec..00000000000 --- a/src/coreComponents/schema/docs/particleSubRegions_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ============================ -Name Type Description -==== ==== ============================ - (no documentation available) -==== ==== ============================ - - diff --git a/src/coreComponents/schema/docs/quartz.rst b/src/coreComponents/schema/docs/quartz.rst deleted file mode 100644 index 5c143d46c6a..00000000000 --- a/src/coreComponents/schema/docs/quartz.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ======= ============== -Name Type Default Description -==== ==== ======= ============== -Run node unique :ref:`XML_Run` -==== ==== ======= ============== - - diff --git a/src/coreComponents/schema/docs/quartz_other.rst b/src/coreComponents/schema/docs/quartz_other.rst deleted file mode 100644 index fb5ee6f8329..00000000000 --- a/src/coreComponents/schema/docs/quartz_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -==== ==== ======================== -Name Type Description -==== ==== ======================== -Run node :ref:`DATASTRUCTURE_Run` -==== ==== ======================== - - diff --git a/src/coreComponents/schema/docs/sets_other.rst b/src/coreComponents/schema/docs/sets_other.rst deleted file mode 100644 index 59e718c41f8..00000000000 --- a/src/coreComponents/schema/docs/sets_other.rst +++ /dev/null @@ -1,9 +0,0 @@ - - -=========== ================================================= ========================== -Name Type Description -=========== ================================================= ========================== -externalSet LvArray_SortedArray (no description available) -=========== ================================================= ========================== - - diff --git a/src/coreComponents/schema/docs/wellElementSubRegion_other.rst b/src/coreComponents/schema/docs/wellElementSubRegion_other.rst deleted file mode 100644 index 296c68757cb..00000000000 --- a/src/coreComponents/schema/docs/wellElementSubRegion_other.rst +++ /dev/null @@ -1,24 +0,0 @@ - - -=========================== ================================================================= ====================================================================== -Name Type Description -=========================== ================================================================= ====================================================================== -domainBoundaryIndicator integer_array (no description available) -ghostRank integer_array (no description available) -globalToLocalMap geos_mapBase > (no description available) -isExternal integer_array (no description available) -localToGlobalMap globalIndex_array Array that contains a map from localIndex to globalIndex. -location real64_array2d For each perforation, physical location (x,y,z coordinates) -numPerforationsGlobal globalIndex (no description available) -reservoirElementGlobalIndex globalIndex_array For each perforation, global element index of the perforated element -reservoirElementIndex integer_array For each perforation, element index of the perforated element -reservoirElementRegion integer_array For each perforation, elementRegion index of the perforated element -reservoirElementSubregion integer_array For each perforation, elementSubRegion index of the perforated element -wellElementIndex integer_array For each perforation, index of the well element -wellSkinFactor real64_array For each perforation, well skin factor -wellTransmissibility real64_array For each perforation, well transmissibility -neighborData node :ref:`DATASTRUCTURE_neighborData` -sets node :ref:`DATASTRUCTURE_sets` -=========================== ================================================================= ====================================================================== - - diff --git a/src/coreComponents/schema/schema.xsd b/src/coreComponents/schema/schema.xsd index 94451347826..f6d771d5a78 100644 --- a/src/coreComponents/schema/schema.xsd +++ b/src/coreComponents/schema/schema.xsd @@ -50,12 +50,12 @@ - + - + @@ -437,6 +437,10 @@ + + + + @@ -519,6 +523,10 @@ + + + + @@ -825,8 +833,8 @@ - - + + @@ -1523,7 +1531,7 @@ stress - traction is applied to the faces as specified by the inner product of i - + @@ -1627,7 +1635,7 @@ stress - traction is applied to the faces as specified by the inner product of i - + @@ -1691,8 +1699,8 @@ stress - traction is applied to the faces as specified by the inner product of i - - + + @@ -1711,8 +1719,8 @@ stress - traction is applied to the faces as specified by the inner product of i - - + + @@ -1770,6 +1778,10 @@ stress - traction is applied to the faces as specified by the inner product of i + + + + @@ -1822,6 +1834,8 @@ stress - traction is applied to the faces as specified by the inner product of i + + +* Require - Use line search. If smaller residual than starting resdual is not achieved, cut time-step.--> @@ -1922,10 +1936,12 @@ the relative residual norm satisfies: - + + + @@ -1941,15 +1957,15 @@ the relative residual norm satisfies: - + - + - + - + - + - + @@ -2259,7 +2287,18 @@ the relative residual norm satisfies: - + @@ -2329,7 +2368,18 @@ the relative residual norm satisfies: - + @@ -2389,7 +2439,18 @@ the relative residual norm satisfies: - + @@ -2443,14 +2504,25 @@ the relative residual norm satisfies: - + - + @@ -2475,7 +2547,7 @@ the relative residual norm satisfies: - + @@ -2529,14 +2601,25 @@ the relative residual norm satisfies: - + - + @@ -2553,7 +2636,7 @@ the relative residual norm satisfies: - + @@ -2589,7 +2672,20 @@ the relative residual norm satisfies: - + @@ -2611,7 +2707,19 @@ the relative residual norm satisfies: - + @@ -2652,14 +2760,27 @@ Local- Add jump stabilization on interior of macro elements--> - + - + @@ -2775,7 +2896,18 @@ Equal to 1 for surface conditions, and to 0 for reservoir conditions--> - + @@ -2835,7 +2967,18 @@ Equal to 1 for surface conditions, and to 0 for reservoir conditions--> - + @@ -2855,7 +2998,7 @@ Equal to 1 for surface conditions, and to 0 for reservoir conditions--> - + @@ -2885,7 +3028,18 @@ Equal to 1 for surface conditions, and to 0 for reservoir conditions--> - + @@ -2909,7 +3063,19 @@ Equal to 1 for surface conditions, and to 0 for reservoir conditions--> - + @@ -2937,7 +3103,20 @@ Equal to 1 for surface conditions, and to 0 for reservoir conditions--> - + @@ -2983,7 +3162,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3014,7 +3204,19 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3043,7 +3245,20 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3075,7 +3290,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3107,7 +3333,19 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3139,7 +3377,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3185,7 +3434,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3217,11 +3477,11 @@ Local- Add jump stabilization on interior of macro elements--> - + - + @@ -3229,7 +3489,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3259,7 +3530,18 @@ SourceFluxes application if isThermal is enabled : - positive value (production): both the mass balance and the energy balance equations are modified to considered the additional source term. For the energy balance equation, the mass flux is multipied by the enthalpy in the cell from which the fluid is being produced.--> - + @@ -3295,7 +3577,18 @@ SourceFluxes application if isThermal is enabled : - positive value (production): both the mass balance and the energy balance equations are modified to considered the additional source term. For the energy balance equation, the mass flux is multipied by the enthalpy in the cell from which the fluid is being produced.--> - + @@ -3325,7 +3618,19 @@ For the energy balance equation, the mass flux is multipied by the enthalpy in t - + @@ -3358,7 +3663,19 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3387,7 +3704,19 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3413,7 +3742,19 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3442,7 +3783,19 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3474,7 +3827,18 @@ SourceFluxes application if isThermal is enabled : - positive value (production): both the mass balance and the energy balance equations are modified to considered the additional source term. For the energy balance equation, the mass flux is multipied by the enthalpy in the cell from which the fluid is being produced.--> - + @@ -3502,7 +3866,19 @@ For the energy balance equation, the mass flux is multipied by the enthalpy in t - + @@ -3524,7 +3900,64 @@ For the energy balance equation, the mass flux is multipied by the enthalpy in t - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3552,13 +3985,28 @@ Local- Add jump stabilization on interior of macro elements--> + + - + @@ -3582,7 +4030,19 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3628,7 +4088,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3671,7 +4142,19 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3718,7 +4201,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3763,7 +4257,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3822,7 +4327,18 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3876,7 +4392,22 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3905,6 +4436,7 @@ Local- Add jump stabilization on interior of macro elements--> + @@ -3924,7 +4456,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3940,7 +4475,11 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3950,7 +4489,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -3960,7 +4502,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -4044,7 +4589,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -4054,7 +4602,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -4064,7 +4615,23 @@ Local- Add jump stabilization on interior of macro elements--> - + + + + + + + + + + + @@ -4074,7 +4641,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -4086,7 +4656,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -4096,7 +4669,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -4106,7 +4682,10 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -4229,7 +4808,7 @@ Local- Add jump stabilization on interior of macro elements--> - + @@ -4372,6 +4951,8 @@ The expected format is "{ waterMax, oilMax }", in that order--> + + @@ -4392,6 +4973,8 @@ The expected format is "{ waterMax, oilMax }", in that order--> + + @@ -4412,6 +4995,8 @@ The expected format is "{ waterMax, oilMax }", in that order--> + + @@ -4432,6 +5017,8 @@ The expected format is "{ waterMax, oilMax }", in that order--> + + @@ -4506,6 +5093,8 @@ The expected format is "{ waterMax, oilMax }", in that order--> + + @@ -5441,6 +6030,8 @@ If you want to do a three-phase simulation, please use instead wettingIntermedia + + @@ -5455,12 +6046,18 @@ If you want to do a three-phase simulation, please use instead wettingIntermedia + + - - - + + + + + + + @@ -5763,7 +6360,8 @@ The expected format is "{ waterMax, oilMax }", in that order--> - + diff --git a/src/coreComponents/schema/schema.xsd.other b/src/coreComponents/schema/schema.xsd.other index 25e0ae8903d..b64551f8938 100644 --- a/src/coreComponents/schema/schema.xsd.other +++ b/src/coreComponents/schema/schema.xsd.other @@ -50,12 +50,12 @@ - + - + @@ -534,6 +534,7 @@ + @@ -1156,6 +1157,21 @@ + + + + + + + + + + + + + + + @@ -1337,6 +1353,7 @@ + @@ -1366,6 +1383,7 @@ + @@ -1480,7 +1498,7 @@ - + @@ -2662,7 +2680,9 @@ - + + + @@ -2959,8 +2979,12 @@ + + + + @@ -2983,8 +3007,12 @@ + + + + @@ -3002,8 +3030,12 @@ + + + + @@ -3022,8 +3054,12 @@ + + + + @@ -3048,8 +3084,12 @@ + + + + @@ -3086,8 +3126,12 @@ + + + + @@ -3118,8 +3162,12 @@ + + + + @@ -3137,8 +3185,12 @@ + + + + @@ -3159,8 +3211,12 @@ + + + + @@ -3176,8 +3232,12 @@ + + + + @@ -3202,8 +3262,12 @@ + + + + @@ -3239,10 +3303,14 @@ + + + + @@ -3274,8 +3342,12 @@ + + + + diff --git a/src/coreComponents/schema/schemaUtilities.cpp b/src/coreComponents/schema/schemaUtilities.cpp index 4be8a32ab5d..e9d69702d33 100644 --- a/src/coreComponents/schema/schemaUtilities.cpp +++ b/src/coreComponents/schema/schemaUtilities.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/schema/schemaUtilities.hpp b/src/coreComponents/schema/schemaUtilities.hpp index d100fba856f..3152eeec60d 100644 --- a/src/coreComponents/schema/schemaUtilities.hpp +++ b/src/coreComponents/schema/schemaUtilities.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/CMakeLists.txt b/src/coreComponents/unitTests/CMakeLists.txt index 9e087f54b56..e9072bbbc1e 100644 --- a/src/coreComponents/unitTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/CMakeLists.txt @@ -1,4 +1,5 @@ add_subdirectory( toolchain ) +add_subdirectory( testingUtilities ) add_subdirectory( xmlTests ) add_subdirectory( virtualElementTests ) add_subdirectory( linearAlgebraTests ) @@ -11,6 +12,5 @@ add_subdirectory( fileIOTests ) if( GEOS_ENABLE_FLUIDFLOW ) add_subdirectory( fluidFlowTests ) endif() -add_subdirectory( testingUtilities ) add_subdirectory( wellsTests ) add_subdirectory( wavePropagationTests ) diff --git a/src/coreComponents/unitTests/constitutiveTests/CMakeLists.txt b/src/coreComponents/unitTests/constitutiveTests/CMakeLists.txt index 24fb4d17cef..523c6c89500 100644 --- a/src/coreComponents/unitTests/constitutiveTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/constitutiveTests/CMakeLists.txt @@ -5,6 +5,7 @@ set( gtest_geosx_tests testCO2SpycherPruessModels.cpp testDamage.cpp testMultiFluidCO2Brine.cpp + testMultiFluidCompositionalMultiphase.cpp testMultiFluidDeadOil.cpp testMultiFluidLiveOil.cpp testRelPerm.cpp @@ -32,35 +33,17 @@ set( gtest_pvt_xmls set( gtest_reactivefluid_xmls testReactiveFluid.xml ) -set( dependencyList ${parallelDeps} gtest ) +set( tplDependencyList ${parallelDeps} gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() +set( dependencyList mainInterface ) if( ENABLE_PVTPackage ) list( APPEND gtest_geosx_tests testMultiFluidCompositionalMultiphasePVTPackage.cpp ) - list( APPEND dependencyList PVTPackage ) endif() -if (TARGET pugixml::pugixml) - list( APPEND dependencyList pugixml::pugixml ) -endif() - -if (TARGET pugixml) - list( APPEND dependencyList pugixml ) -endif() - -if (TARGET fmt::fmt-header-only) - list( APPEND dependencyList fmt::fmt-header-only ) -endif() - -if (TARGET fmt) - list( APPEND dependencyList fmt ) -endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # Add gtest C++ based tests foreach(test ${gtest_geosx_tests}) @@ -68,8 +51,7 @@ foreach(test ${gtest_geosx_tests}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) - + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) @@ -79,7 +61,7 @@ endforeach() blt_add_executable( NAME testTriaxial SOURCES testTriaxial.cpp OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} "-lz" ) + DEPENDS_ON ${dependencyList} "-lz" ${tplDependencyList}) foreach(test ${gtest_triaxial_xmls}) get_filename_component( test_name ${test} NAME_WE ) @@ -91,7 +73,7 @@ endforeach() blt_add_executable( NAME testPVT SOURCES testPVT.cpp OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} "-lz" ) + DEPENDS_ON ${dependencyList} "-lz" ${tplDependencyList} ) foreach(test ${gtest_pvt_xmls}) get_filename_component( test_name ${test} NAME_WE ) @@ -104,7 +86,7 @@ endforeach() blt_add_executable( NAME testReactiveFluid SOURCES testReactiveFluid.cpp OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} "-lz" ) + DEPENDS_ON ${dependencyList} "-lz" ${tplDependencyList} ) foreach(test ${gtest_reactivefluid_xmls}) get_filename_component( test_name ${test} NAME_WE ) diff --git a/src/coreComponents/unitTests/constitutiveTests/MultiFluidTest.hpp b/src/coreComponents/unitTests/constitutiveTests/MultiFluidTest.hpp index 5817d6ea7be..cb3902d198d 100644 --- a/src/coreComponents/unitTests/constitutiveTests/MultiFluidTest.hpp +++ b/src/coreComponents/unitTests/constitutiveTests/MultiFluidTest.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -25,9 +25,6 @@ #include "constitutive/fluid/multifluid/MultiFluidFields.hpp" #include "constitutive/fluid/multifluid/MultiFluidSelector.hpp" -using namespace geos::dataRepository; -using namespace geos::constitutive; -using namespace geos::constitutive::multifluid; namespace geos { @@ -105,7 +102,7 @@ struct MultiFluidTestData }; template< typename FLUID_TYPE, integer NUM_PHASE, integer NUM_COMP > -class MultiFluidTest : public ConstitutiveTestBase< MultiFluidBase > +class MultiFluidTest : public ConstitutiveTestBase< constitutive::MultiFluidBase > { public: static constexpr integer numPhase = NUM_PHASE; @@ -116,16 +113,16 @@ class MultiFluidTest : public ConstitutiveTestBase< MultiFluidBase > MultiFluidTest() = default; ~MultiFluidTest() override = default; - MultiFluidBase & getFluid() const { return *m_model; } + constitutive::MultiFluidBase & getFluid() const { return *m_model; } - Group & getParent() { return m_parent; } + dataRepository::Group & getParent() { return m_parent; } void testValuesAgainstPreviousImplementation( typename FLUID_TYPE::KernelWrapper const & wrapper, MultiFluidTestData< NUM_PHASE, NUM_COMP > const & testData, real64 const relTol ) const; - void testNumericalDerivatives( MultiFluidBase & fluid, - Group * parent, + void testNumericalDerivatives( constitutive::MultiFluidBase & fluid, + dataRepository::Group * parent, MultiFluidTestData< NUM_PHASE, NUM_COMP > const & testData, real64 const perturbParameter, real64 const relTol, @@ -133,7 +130,7 @@ class MultiFluidTest : public ConstitutiveTestBase< MultiFluidBase > protected: - virtual void resetFluid( MultiFluidBase & fluid ) const + virtual void resetFluid( constitutive::MultiFluidBase & fluid ) const { GEOS_UNUSED_VAR( fluid ); } @@ -155,14 +152,14 @@ class MultiFluidTest : public ConstitutiveTestBase< MultiFluidBase > template< typename FLUID_TYPE, integer NUM_PHASE, integer NUM_COMP > void MultiFluidTest< FLUID_TYPE, NUM_PHASE, NUM_COMP >:: -testNumericalDerivatives( MultiFluidBase & fluid, - Group * parent, +testNumericalDerivatives( constitutive::MultiFluidBase & fluid, + dataRepository::Group * parent, MultiFluidTestData< NUM_PHASE, NUM_COMP > const & testData, real64 const perturbParameter, real64 const relTol, real64 const absTol ) { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const NC = fluid.numFluidComponents(); integer const NP = fluid.numFluidPhases(); @@ -178,13 +175,13 @@ testNumericalDerivatives( MultiFluidBase & fluid, } arraySlice1d< real64 const, compflow::USD_COMP - 1 > const composition = compositionValues[0]; - auto const & components = fluid.getReference< string_array >( MultiFluidBase::viewKeyStruct::componentNamesString() ); - auto const & phases = fluid.getReference< string_array >( MultiFluidBase::viewKeyStruct::phaseNamesString() ); + auto const & components = fluid.getReference< string_array >( constitutive::MultiFluidBase::viewKeyStruct::componentNamesString() ); + auto const & phases = fluid.getReference< string_array >( constitutive::MultiFluidBase::viewKeyStruct::phaseNamesString() ); // create a clone of the fluid to run updates on string const fluidCopyName = fluid.getName() + "Copy"; - std::unique_ptr< ConstitutiveBase > fluidCopyPtr = fluid.deliverClone( fluidCopyName, parent ); - MultiFluidBase & fluidCopy = dynamicCast< MultiFluidBase & >( *fluidCopyPtr ); + std::unique_ptr< constitutive::ConstitutiveBase > fluidCopyPtr = fluid.deliverClone( fluidCopyName, parent ); + constitutive::MultiFluidBase & fluidCopy = dynamicCast< constitutive::MultiFluidBase & >( *fluidCopyPtr ); fluid.allocateConstitutiveData( fluid.getParent(), 1 ); fluidCopy.allocateConstitutiveData( fluid.getParent(), 1 ); @@ -193,37 +190,37 @@ testNumericalDerivatives( MultiFluidBase & fluid, #define GET_FLUID_DATA( FLUID, TRAIT ) \ FLUID.getReference< TRAIT::type >( TRAIT::key() )[0][0] - MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > phaseFrac { + constitutive::MultiFluidVarSlice< real64, 1, constitutive::multifluid::USD_PHASE - 2, constitutive::multifluid::USD_PHASE_DC - 2 > phaseFrac { GET_FLUID_DATA( fluid, fields::multifluid::phaseFraction ), GET_FLUID_DATA( fluid, fields::multifluid::dPhaseFraction ) }; - MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > phaseDens { + constitutive::MultiFluidVarSlice< real64, 1, constitutive::multifluid::USD_PHASE - 2, constitutive::multifluid::USD_PHASE_DC - 2 > phaseDens { GET_FLUID_DATA( fluid, fields::multifluid::phaseDensity ), GET_FLUID_DATA( fluid, fields::multifluid::dPhaseDensity ) }; - MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > phaseVisc { + constitutive::MultiFluidVarSlice< real64, 1, constitutive::multifluid::USD_PHASE - 2, constitutive::multifluid::USD_PHASE_DC - 2 > phaseVisc { GET_FLUID_DATA( fluid, fields::multifluid::phaseViscosity ), GET_FLUID_DATA( fluid, fields::multifluid::dPhaseViscosity ) }; - MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > phaseEnthalpy { + constitutive::MultiFluidVarSlice< real64, 1, constitutive::multifluid::USD_PHASE - 2, constitutive::multifluid::USD_PHASE_DC - 2 > phaseEnthalpy { GET_FLUID_DATA( fluid, fields::multifluid::phaseEnthalpy ), GET_FLUID_DATA( fluid, fields::multifluid::dPhaseEnthalpy ) }; - MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > phaseInternalEnergy { + constitutive::MultiFluidVarSlice< real64, 1, constitutive::multifluid::USD_PHASE - 2, constitutive::multifluid::USD_PHASE_DC - 2 > phaseInternalEnergy { GET_FLUID_DATA( fluid, fields::multifluid::phaseInternalEnergy ), GET_FLUID_DATA( fluid, fields::multifluid::dPhaseInternalEnergy ) }; - MultiFluidVarSlice< real64, 2, USD_PHASE_COMP - 2, USD_PHASE_COMP_DC - 2 > phaseCompFrac { + constitutive::MultiFluidVarSlice< real64, 2, constitutive::multifluid::USD_PHASE_COMP - 2, constitutive::multifluid::USD_PHASE_COMP_DC - 2 > phaseCompFrac { GET_FLUID_DATA( fluid, fields::multifluid::phaseCompFraction ), GET_FLUID_DATA( fluid, fields::multifluid::dPhaseCompFraction ) }; - MultiFluidVarSlice< real64, 0, USD_FLUID - 2, USD_FLUID_DC - 2 > totalDens { + constitutive::MultiFluidVarSlice< real64, 0, constitutive::multifluid::USD_FLUID - 2, constitutive::multifluid::USD_FLUID_DC - 2 > totalDens { GET_FLUID_DATA( fluid, fields::multifluid::totalDensity ), GET_FLUID_DATA( fluid, fields::multifluid::dTotalDensity ) }; @@ -409,22 +406,22 @@ void MultiFluidTest< FLUID_TYPE, NUM_PHASE, NUM_COMP >::testValuesAgainstPreviou } arraySlice1d< real64 const, compflow::USD_COMP - 1 > const composition = compositionValues[0]; - StackArray< real64, 3, numPhase, LAYOUT_PHASE > phaseFraction( 1, 1, numPhase ); - StackArray< real64, 4, numDof *numPhase, LAYOUT_PHASE_DC > dPhaseFraction( 1, 1, numPhase, numDof ); - StackArray< real64, 3, numPhase, LAYOUT_PHASE > phaseDensity( 1, 1, numPhase ); - StackArray< real64, 4, numDof *numPhase, LAYOUT_PHASE_DC > dPhaseDensity( 1, 1, numPhase, numDof ); - StackArray< real64, 3, numPhase, LAYOUT_PHASE > phaseMassDensity( 1, 1, numPhase ); - StackArray< real64, 4, numDof *numPhase, LAYOUT_PHASE_DC > dPhaseMassDensity( 1, 1, numPhase, numDof ); - StackArray< real64, 3, numPhase, LAYOUT_PHASE > phaseViscosity( 1, 1, numPhase ); - StackArray< real64, 4, numDof *numPhase, LAYOUT_PHASE_DC > dPhaseViscosity( 1, 1, numPhase, numDof ); - StackArray< real64, 3, numPhase, LAYOUT_PHASE > phaseEnthalpy( 1, 1, numPhase ); - StackArray< real64, 4, numDof *numPhase, LAYOUT_PHASE_DC > dPhaseEnthalpy( 1, 1, numPhase, numDof ); - StackArray< real64, 3, numPhase, LAYOUT_PHASE > phaseInternalEnergy( 1, 1, numPhase ); - StackArray< real64, 4, numDof *numPhase, LAYOUT_PHASE_DC > dPhaseInternalEnergy( 1, 1, numPhase, numDof ); - StackArray< real64, 4, numComp *numPhase, LAYOUT_PHASE_COMP > phaseCompFraction( 1, 1, numPhase, numComp ); - StackArray< real64, 5, numDof *numComp *numPhase, LAYOUT_PHASE_COMP_DC > dPhaseCompFraction( 1, 1, numPhase, numComp, numDof ); - StackArray< real64, 2, 1, LAYOUT_FLUID > totalDensity( 1, 1 ); - StackArray< real64, 3, numDof, LAYOUT_FLUID_DC > dTotalDensity( 1, 1, numDof ); + StackArray< real64, 3, numPhase, constitutive::multifluid::LAYOUT_PHASE > phaseFraction( 1, 1, numPhase ); + StackArray< real64, 4, numDof *numPhase, constitutive::multifluid::LAYOUT_PHASE_DC > dPhaseFraction( 1, 1, numPhase, numDof ); + StackArray< real64, 3, numPhase, constitutive::multifluid::LAYOUT_PHASE > phaseDensity( 1, 1, numPhase ); + StackArray< real64, 4, numDof *numPhase, constitutive::multifluid::LAYOUT_PHASE_DC > dPhaseDensity( 1, 1, numPhase, numDof ); + StackArray< real64, 3, numPhase, constitutive::multifluid::LAYOUT_PHASE > phaseMassDensity( 1, 1, numPhase ); + StackArray< real64, 4, numDof *numPhase, constitutive::multifluid::LAYOUT_PHASE_DC > dPhaseMassDensity( 1, 1, numPhase, numDof ); + StackArray< real64, 3, numPhase, constitutive::multifluid::LAYOUT_PHASE > phaseViscosity( 1, 1, numPhase ); + StackArray< real64, 4, numDof *numPhase, constitutive::multifluid::LAYOUT_PHASE_DC > dPhaseViscosity( 1, 1, numPhase, numDof ); + StackArray< real64, 3, numPhase, constitutive::multifluid::LAYOUT_PHASE > phaseEnthalpy( 1, 1, numPhase ); + StackArray< real64, 4, numDof *numPhase, constitutive::multifluid::LAYOUT_PHASE_DC > dPhaseEnthalpy( 1, 1, numPhase, numDof ); + StackArray< real64, 3, numPhase, constitutive::multifluid::LAYOUT_PHASE > phaseInternalEnergy( 1, 1, numPhase ); + StackArray< real64, 4, numDof *numPhase, constitutive::multifluid::LAYOUT_PHASE_DC > dPhaseInternalEnergy( 1, 1, numPhase, numDof ); + StackArray< real64, 4, numComp *numPhase, constitutive::multifluid::LAYOUT_PHASE_COMP > phaseCompFraction( 1, 1, numPhase, numComp ); + StackArray< real64, 5, numDof *numComp *numPhase, constitutive::multifluid::LAYOUT_PHASE_COMP_DC > dPhaseCompFraction( 1, 1, numPhase, numComp, numDof ); + StackArray< real64, 2, 1, constitutive::multifluid::LAYOUT_FLUID > totalDensity( 1, 1 ); + StackArray< real64, 3, numDof, constitutive::multifluid::LAYOUT_FLUID_DC > dTotalDensity( 1, 1, numDof ); wrapper.compute( testData.pressure, testData.temperature, diff --git a/src/coreComponents/unitTests/constitutiveTests/constitutiveTestHelpers.hpp b/src/coreComponents/unitTests/constitutiveTests/constitutiveTestHelpers.hpp index 1cd08a8bc27..14a9032a1ca 100644 --- a/src/coreComponents/unitTests/constitutiveTests/constitutiveTestHelpers.hpp +++ b/src/coreComponents/unitTests/constitutiveTests/constitutiveTestHelpers.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/constitutiveTests/testCO2BrinePVTModels.cpp b/src/coreComponents/unitTests/constitutiveTests/testCO2BrinePVTModels.cpp index 5739f312236..20df8c70fe5 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testCO2BrinePVTModels.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testCO2BrinePVTModels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -361,13 +361,18 @@ std::unique_ptr< MODEL > makePVTFunction( string const & filename, { array1d< string > const strs = stringutilities::tokenizeBySpaces< array1d >( str ); + TableFunction::OutputOptions const pvtOutputOpts = { + true,// writeCSV + true, // writeInLog + }; + if( strs.size()>1 && strs[0] == key ) { pvtFunction = std::make_unique< MODEL >( strs[1], strs, componentNames, componentMolarWeight, - true ); // print PVT tables + pvtOutputOpts ); } } GEOS_ERROR_IF( pvtFunction == nullptr, @@ -401,7 +406,10 @@ std::unique_ptr< MODEL > makeFlashModel( string const & filename, while( std::getline( is, str ) ) { array1d< string > const strs = stringutilities::tokenizeBySpaces< array1d >( str ); - + TableFunction::OutputOptions const flashOutputOpts = { + true, // writeCSV + true, // writeInLog + }; if( strs.size()>1 && strs[0] == key ) { flashModel = std::make_unique< MODEL >( strs[1], @@ -409,7 +417,7 @@ std::unique_ptr< MODEL > makeFlashModel( string const & filename, phaseNames, componentNames, componentMolarWeight, - true ); // print PVT tables + flashOutputOpts ); } } GEOS_ERROR_IF( flashModel == nullptr, diff --git a/src/coreComponents/unitTests/constitutiveTests/testCO2SpycherPruessModels.cpp b/src/coreComponents/unitTests/constitutiveTests/testCO2SpycherPruessModels.cpp index 2c33a9c1412..a8160dc51f9 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testCO2SpycherPruessModels.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testCO2SpycherPruessModels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -83,12 +83,17 @@ CO2SolubilitySpycherPruessTestFixture::makeFlashModel( string const & fileConten // Read file parameters array1d< string > const strs = stringutilities::tokenizeBySpaces< array1d >( fileContent ); + TableFunction::OutputOptions const flashOutputOpts = { + false, // writeCSV + false, // writeInLog + }; + return std::make_unique< CO2Solubility >( strs[1], strs, phaseNames, componentNames, componentMolarWeight, - false ); + flashOutputOpts ); } TEST_P( CO2SolubilitySpycherPruessTestFixture, testExpectedValues ) diff --git a/src/coreComponents/unitTests/constitutiveTests/testCapillaryPressure.cpp b/src/coreComponents/unitTests/constitutiveTests/testCapillaryPressure.cpp index 62598e18258..5c13f68c5cf 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testCapillaryPressure.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testCapillaryPressure.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/constitutiveTests/testDamage.cpp b/src/coreComponents/unitTests/constitutiveTests/testDamage.cpp index 3e11e580a7e..29e6f6992f1 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testDamage.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testDamage.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCO2Brine.cpp b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCO2Brine.cpp index 5df07a14155..80f88fb53f4 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCO2Brine.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCO2Brine.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -24,6 +24,7 @@ using namespace geos; using namespace geos::testing; +using namespace geos::dataRepository; using namespace geos::constitutive; enum class BrineModelType : int {Phillips, Ezrokhi}; diff --git a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCompositionalMultiphase.cpp b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCompositionalMultiphase.cpp new file mode 100644 index 00000000000..3aa633cd190 --- /dev/null +++ b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCompositionalMultiphase.cpp @@ -0,0 +1,249 @@ +/* + * ------------------------------------------------------------------------------------------------------------ + * SPDX-License-Identifier: LGPL-2.1-only + * + * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC + * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University + * Copyright (c) 2018-2020 TotalEnergies + * Copyright (c) 2019- GEOSX Contributors + * All rights reserved + * + * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. + * ------------------------------------------------------------------------------------------------------------ + */ + +/** + * @file testMultiFluidCompositionalMultiphase.cpp + */ + +#include "MultiFluidTest.hpp" +#include "constitutive/fluid/multifluid/compositional/models/EquationOfState.hpp" +#include "constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluid.hpp" +#include "mainInterface/GeosxState.hpp" +#include "mainInterface/initialization.hpp" + +using namespace geos; +using namespace geos::dataRepository; +using namespace geos::testing; +using namespace geos::constitutive; +using namespace geos::constitutive::compositional; + +enum class VISCOSITY_TYPE : int { CONSTANT, LBC }; +ENUM_STRINGS( VISCOSITY_TYPE, "Constant", "LohrenzBrayClark" ); + +template< VISCOSITY_TYPE VISCOSITY > +struct Viscosity {}; + +template<> +struct Viscosity< VISCOSITY_TYPE::CONSTANT > +{ + using FluidType = CompositionalTwoPhaseConstantViscosity; +}; +template<> +struct Viscosity< VISCOSITY_TYPE::LBC > +{ + using FluidType = CompositionalTwoPhaseLohrenzBrayClarkViscosity; +}; + +template< typename FluidModel, integer NUM_COMP > +struct Fluid +{}; + +template< EquationOfStateType EOS, VISCOSITY_TYPE VISCOSITY, integer NUM_COMP > +class MultiFluidCompositionalMultiphaseTest : public MultiFluidTest< typename Viscosity< VISCOSITY >::FluidType, 2, NUM_COMP > +{ +public: + using FluidModel = typename Viscosity< VISCOSITY >::FluidType; + using Base = MultiFluidTest< FluidModel, 2, NUM_COMP >; + static constexpr real64 relTol = 1.0e-4; + static constexpr real64 absTol = 1.0e-4; +public: + MultiFluidCompositionalMultiphaseTest() + { + auto & parent = this->m_parent; + parent.resize( 1 ); + + string fluidName = GEOS_FMT( "fluid{}{}{}", + NUM_COMP, + EnumStrings< EquationOfStateType >::toString( EOS ), + EnumStrings< VISCOSITY_TYPE >::toString( VISCOSITY ) ); + this->m_model = makeFluid( fluidName, &parent ); + + parent.initialize(); + parent.initializePostInitialConditions(); + } + + ~MultiFluidCompositionalMultiphaseTest() override = default; + + void testNumericalDerivatives( const bool useMass ) + { + auto & fluid = this->getFluid(); + fluid.setMassFlag( useMass ); + + auto * parent = &(this->getParent()); + + array2d< real64 > samples; + Fluid< FluidModel, Base::numComp >::getSamples( samples ); + integer const sampleCount = samples.size( 0 ); + + real64 constexpr eps = 1.0e-6; + + constexpr real64 pressures[] = { 1.0e5, 50.0e5, 100.0e5, 600.0e5 }; + constexpr real64 temperatures[] = { 15.5, 24.0, 40.0, 80.0 }; + + for( integer sampleIndex = 0; sampleIndex < sampleCount; ++sampleIndex ) + { + for( real64 const pressure : pressures ) + { + for( real64 const temperature : temperatures ) + { + typename Base::TestData data ( pressure, units::convertCToK( temperature ), samples[sampleIndex].toSliceConst() ); + Base::testNumericalDerivatives( fluid, parent, data, eps, relTol, absTol ); + } + } + } + } + +private: + static FluidModel * makeFluid( string const & name, Group * parent ); +}; + +template< integer NUM_COMP > +static void fillBinaryCoeffs( array2d< real64 > & binaryCoeff, std::array< real64 const, NUM_COMP *(NUM_COMP-1)/2 > const data ) +{ + auto bic = data.begin(); + binaryCoeff.resize( NUM_COMP, NUM_COMP ); + for( integer i = 0; i < NUM_COMP; ++i ) + { + binaryCoeff( i, i ) = 0.0; + for( integer j = i+1; j < NUM_COMP; ++j ) + { + binaryCoeff( i, j ) = *bic++; + binaryCoeff( j, i ) = binaryCoeff( i, j ); + } + } +} + +template< typename FluidModel > +struct Fluid< FluidModel, 4 > +{ + static void fillProperties( Group & fluid ) + { + string_array & componentNames = fluid.getReference< string_array >( MultiFluidBase::viewKeyStruct::componentNamesString() ); + fill< 4 >( componentNames, {"N2", "C10", "C20", "H20"} ); + + array1d< real64 > & molarWeight = fluid.getReference< array1d< real64 > >( MultiFluidBase::viewKeyStruct::componentMolarWeightString() ); + fill< 4 >( molarWeight, {28e-3, 134e-3, 275e-3, 18e-3} ); + + array1d< real64 > & criticalPressure = fluid.getReference< array1d< real64 > >( FluidModel::viewKeyStruct::componentCriticalPressureString() ); + fill< 4 >( criticalPressure, {34e5, 25.3e5, 14.6e5, 220.5e5} ); + array1d< real64 > & criticalTemperature = fluid.getReference< array1d< real64 > >( FluidModel::viewKeyStruct::componentCriticalTemperatureString() ); + fill< 4 >( criticalTemperature, {126.2, 622.0, 782.0, 647.0} ); + array1d< real64 > & acentricFactor = fluid.getReference< array1d< real64 > >( FluidModel::viewKeyStruct::componentAcentricFactorString() ); + fill< 4 >( acentricFactor, {0.04, 0.443, 0.816, 0.344} ); + array2d< real64 > & binaryCoeff = fluid.getReference< array2d< real64 > >( FluidModel::viewKeyStruct::componentBinaryCoeffString() ); + fillBinaryCoeffs< 4 >( binaryCoeff, {0.0, 0.1, 0.0, 0.0, 0.0, 0.0} ); + } + + static void getSamples( array2d< real64 > & samples ) + { + samples.resize( 3, 4 ); + fill< 4 >( samples[0], {0.099, 0.300, 0.600, 0.001} ); + fill< 4 >( samples[1], {0.350, 0.350, 0.200, 0.100} ); + fill< 4 >( samples[2], {0.000, 0.000, 0.000, 1.000} ); + } +}; + +template< typename FluidModel > +struct Fluid< FluidModel, 5 > +{ + static void fillProperties( Group & fluid ) + { + string_array & componentNames = fluid.getReference< string_array >( MultiFluidBase::viewKeyStruct::componentNamesString() ); + fill< 5 >( componentNames, {"CO2", "N2", "C1", "C2", "C4"} ); + + array1d< real64 > & molarWeight = fluid.getReference< array1d< real64 > >( MultiFluidBase::viewKeyStruct::componentMolarWeightString() ); + fill< 5 >( molarWeight, {44.0098e-3, 28.0135e-3, 16.0428e-3, 30.0700e-3, 82.4191e-3} ); + + array1d< real64 > & criticalPressure = fluid.getReference< array1d< real64 > >( FluidModel::viewKeyStruct::componentCriticalPressureString() ); + fill< 5 >( criticalPressure, {73.77300e5, 33.95800e5, 45.99200e5, 48.71800e5, 33.20710e5} ); + array1d< real64 > & criticalTemperature = fluid.getReference< array1d< real64 > >( FluidModel::viewKeyStruct::componentCriticalTemperatureString() ); + fill< 5 >( criticalTemperature, {304.1280, 126.1920, 190.5640, 305.3300, 504.2160} ); + array1d< real64 > & acentricFactor = fluid.getReference< array1d< real64 > >( FluidModel::viewKeyStruct::componentAcentricFactorString() ); + fill< 5 >( acentricFactor, {0.223000, 0.037200, 0.010400, 0.099100, 0.250274} ); + array1d< real64 > & volumeShift = fluid.getReference< array1d< real64 > >( FluidModel::viewKeyStruct::componentVolumeShiftString() ); + fill< 5 >( volumeShift, {1.845465e-01, -1.283880e-01, 9.225800e-02, 6.458060e-02, 0.000000e+00} ); + array2d< real64 > & binaryCoeff = fluid.getReference< array2d< real64 > >( FluidModel::viewKeyStruct::componentBinaryCoeffString() ); + fillBinaryCoeffs< 5 >( binaryCoeff, {0.0, 0.1, 0.03, 0.139, 0.032, 0.0, 0.12, 0.03, 0.0, 0.0} ); + } + + static void getSamples( array2d< real64 > & samples ) + { + samples.resize( 1, 5 ); + fill< 5 >( samples[0], {0.050, 0.150, 0.550, 0.150, 0.100} ); + } +}; +template< EquationOfStateType EOS, VISCOSITY_TYPE VISCOSITY, integer NUM_COMP > +typename MultiFluidCompositionalMultiphaseTest< EOS, VISCOSITY, NUM_COMP >::FluidModel * +MultiFluidCompositionalMultiphaseTest< EOS, VISCOSITY, NUM_COMP >:: +makeFluid( string const & name, Group * parent ) +{ + FluidModel & fluid = parent->registerGroup< FluidModel >( name ); + + string_array & phaseNames = fluid.template getReference< string_array >( MultiFluidBase::viewKeyStruct::phaseNamesString() ); + fill< 2 >( phaseNames, {"oil", "gas"} ); + + string const eosName = EnumStrings< EquationOfStateType >::toString( EOS ); + string_array & equationOfState = fluid.template getReference< string_array >( EquationOfState::viewKeyStruct::equationsOfStateString() ); + fill< 2 >( equationOfState, {eosName, eosName} ); + + Fluid< FluidModel, NUM_COMP >::fillProperties( fluid ); + + fluid.postInputInitializationRecursive(); + return &fluid; +} + +using PengRobinson4Test = MultiFluidCompositionalMultiphaseTest< EquationOfStateType::PengRobinson, VISCOSITY_TYPE::CONSTANT, 4 >; +using PengRobinsonLBC4Test = MultiFluidCompositionalMultiphaseTest< EquationOfStateType::PengRobinson, VISCOSITY_TYPE::LBC, 4 >; +using SoaveRedlichKwong4Test = MultiFluidCompositionalMultiphaseTest< EquationOfStateType::SoaveRedlichKwong, VISCOSITY_TYPE::CONSTANT, 4 >; +using SoaveRedlichKwongLBC4Test = MultiFluidCompositionalMultiphaseTest< EquationOfStateType::SoaveRedlichKwong, VISCOSITY_TYPE::LBC, 4 >; +TEST_F( PengRobinson4Test, numericalDerivativesMolar ) +{ + testNumericalDerivatives( false ); +} +TEST_F( PengRobinsonLBC4Test, numericalDerivativesMolar ) +{ + testNumericalDerivatives( false ); +} +TEST_F( SoaveRedlichKwong4Test, numericalDerivativesMolar ) +{ + testNumericalDerivatives( false ); +} +TEST_F( SoaveRedlichKwongLBC4Test, numericalDerivativesMolar ) +{ + testNumericalDerivatives( false ); +} + +using PengRobinsonLBC5Test = MultiFluidCompositionalMultiphaseTest< EquationOfStateType::PengRobinson, VISCOSITY_TYPE::LBC, 5 >; +using SoaveRedlichKwongLBC5Test = MultiFluidCompositionalMultiphaseTest< EquationOfStateType::SoaveRedlichKwong, VISCOSITY_TYPE::LBC, 5 >; +TEST_F( PengRobinsonLBC5Test, numericalDerivativesMolar ) +{ + testNumericalDerivatives( false ); +} +TEST_F( SoaveRedlichKwongLBC5Test, numericalDerivativesMolar ) +{ + testNumericalDerivatives( false ); +} + +int main( int argc, char * * argv ) +{ + ::testing::InitGoogleTest( &argc, argv ); + + geos::GeosxState state( geos::basicSetup( argc, argv ) ); + + int const result = RUN_ALL_TESTS(); + + geos::basicCleanup(); + + return result; +} diff --git a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCompositionalMultiphasePVTPackage.cpp b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCompositionalMultiphasePVTPackage.cpp index fe6c9453352..367c8bbd724 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCompositionalMultiphasePVTPackage.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidCompositionalMultiphasePVTPackage.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -23,6 +23,7 @@ using namespace geos; using namespace geos::testing; +using namespace geos::dataRepository; using namespace geos::constitutive; namespace geos diff --git a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidDeadOil.cpp b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidDeadOil.cpp index 7921e3ec313..9b4b515ac7d 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidDeadOil.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidDeadOil.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -23,6 +23,7 @@ using namespace geos; using namespace geos::testing; +using namespace geos::dataRepository; using namespace geos::constitutive; static constexpr char const * pvdgTableContent = "# Pg(Pa) Bg(m3/sm3) Visc(Pa.s)\n" diff --git a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidLiveOil.cpp b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidLiveOil.cpp index f62078f4d39..659fd8b3d18 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testMultiFluidLiveOil.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testMultiFluidLiveOil.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -23,6 +23,7 @@ using namespace geos; using namespace geos::testing; +using namespace geos::dataRepository; using namespace geos::constitutive; static constexpr char const * pvdgTableContent = "# Pg(Pa) Bg(m3/sm3) Visc(Pa.s)\n" diff --git a/src/coreComponents/unitTests/constitutiveTests/testPVT.cpp b/src/coreComponents/unitTests/constitutiveTests/testPVT.cpp index 5709e50346a..7c2208cdce9 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testPVT.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testPVT.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/constitutiveTests/testPVT.xml b/src/coreComponents/unitTests/constitutiveTests/testPVT.xml index aacf9b001c0..cb59ac5f35c 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testPVT.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testPVT.xml @@ -113,7 +113,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testPVT_CO2Brine.xml b/src/coreComponents/unitTests/constitutiveTests/testPVT_CO2Brine.xml index 12ec4e62d8d..a48e22dfbe5 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testPVT_CO2Brine.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testPVT_CO2Brine.xml @@ -147,7 +147,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testPVT_CO2BrineTables.xml b/src/coreComponents/unitTests/constitutiveTests/testPVT_CO2BrineTables.xml index 4a667e05691..4db6d9f6b7a 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testPVT_CO2BrineTables.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testPVT_CO2BrineTables.xml @@ -96,7 +96,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testPVT_PhaseComposition.xml b/src/coreComponents/unitTests/constitutiveTests/testPVT_PhaseComposition.xml index 75d490e6a50..5207c9746d9 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testPVT_PhaseComposition.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testPVT_PhaseComposition.xml @@ -149,7 +149,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testPVT_docExample.xml b/src/coreComponents/unitTests/constitutiveTests/testPVT_docExample.xml index b1747d41dd3..872a6a54a4c 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testPVT_docExample.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testPVT_docExample.xml @@ -70,7 +70,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testReactiveFluid.cpp b/src/coreComponents/unitTests/constitutiveTests/testReactiveFluid.cpp index 47a3d690b1a..18bac11d647 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testReactiveFluid.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testReactiveFluid.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/constitutiveTests/testReactiveFluid.xml b/src/coreComponents/unitTests/constitutiveTests/testReactiveFluid.xml index 65a3c58cf4f..d37ed605c49 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testReactiveFluid.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testReactiveFluid.xml @@ -74,7 +74,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testRelPerm.cpp b/src/coreComponents/unitTests/constitutiveTests/testRelPerm.cpp index 4947a54b4b6..d2526d367c2 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testRelPerm.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testRelPerm.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/constitutiveTests/testRelPermHysteresis.cpp b/src/coreComponents/unitTests/constitutiveTests/testRelPermHysteresis.cpp index 0885ef245ca..292957072bf 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testRelPermHysteresis.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testRelPermHysteresis.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial.cpp b/src/coreComponents/unitTests/constitutiveTests/testTriaxial.cpp index 2ccd1d7a8ab..e208b9720aa 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggCase1.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggCase1.xml index b88f0be473f..f60770dd5e0 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggCase1.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggCase1.xml @@ -66,7 +66,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggCase2.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggCase2.xml index f61bf8507bc..f89a07a98cf 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggCase2.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggCase2.xml @@ -65,7 +65,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggLoadPathDryUseLinear.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggLoadPathDryUseLinear.xml index 4fb6558ae89..10ca3761690 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggLoadPathDryUseLinear.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggLoadPathDryUseLinear.xml @@ -66,7 +66,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggLoadPathWetUseLinear.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggLoadPathWetUseLinear.xml index d365bb0e506..f8e2dd37298 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggLoadPathWetUseLinear.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggLoadPathWetUseLinear.xml @@ -66,7 +66,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggUseLinear.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggUseLinear.xml index 69703b7ad1f..dd42c6b0330 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggUseLinear.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_delftEggUseLinear.xml @@ -66,7 +66,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_druckerPragerExtended.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_druckerPragerExtended.xml index cd4849ab65b..f92445a9639 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_druckerPragerExtended.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_druckerPragerExtended.xml @@ -66,7 +66,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_elasticIsotropic.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_elasticIsotropic.xml index 57beb56efc0..dde6e2b9a66 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_elasticIsotropic.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_elasticIsotropic.xml @@ -61,7 +61,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_elasticIsotropicPressureDependent.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_elasticIsotropicPressureDependent.xml index 585599a36e3..beb0a7f5d99 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_elasticIsotropicPressureDependent.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_elasticIsotropicPressureDependent.xml @@ -57,7 +57,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_modifiedCamClay.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_modifiedCamClay.xml index c1ae1b25dec..03b171303db 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_modifiedCamClay.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_modifiedCamClay.xml @@ -66,7 +66,7 @@ diff --git a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_modifiedCamClayVolumetric.xml b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_modifiedCamClayVolumetric.xml index d6075857430..b55ed3a520a 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testTriaxial_modifiedCamClayVolumetric.xml +++ b/src/coreComponents/unitTests/constitutiveTests/testTriaxial_modifiedCamClayVolumetric.xml @@ -60,7 +60,7 @@ diff --git a/src/coreComponents/unitTests/dataRepositoryTests/CMakeLists.txt b/src/coreComponents/unitTests/dataRepositoryTests/CMakeLists.txt index d8e7129a73e..47b3b63d0a0 100644 --- a/src/coreComponents/unitTests/dataRepositoryTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/dataRepositoryTests/CMakeLists.txt @@ -6,29 +6,12 @@ set( dataRepository_tests testWrapperHelpers.cpp testGroupPath.cpp ) -set( dependencyList ${parallelDeps} gtest ) +set( tplDependencyList ${parallelDeps} gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() +set( dependencyList mainInterface ) -if (TARGET pugixml::pugixml) - list( APPEND dependencyList pugixml::pugixml ) -endif() - -if (TARGET pugixml) - list( APPEND dependencyList pugixml ) -endif() - -if (TARGET fmt::fmt-header-only) - list( APPEND dependencyList fmt::fmt-header-only ) -endif() - -if (TARGET fmt) - list( APPEND dependencyList fmt ) -endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # Add gtest C++ based tests foreach(test ${dataRepository_tests}) @@ -36,7 +19,7 @@ foreach(test ${dataRepository_tests}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) diff --git a/src/coreComponents/unitTests/dataRepositoryTests/testGroupPath.cpp b/src/coreComponents/unitTests/dataRepositoryTests/testGroupPath.cpp index 1b7ad5cb828..032d6a191ab 100644 --- a/src/coreComponents/unitTests/dataRepositoryTests/testGroupPath.cpp +++ b/src/coreComponents/unitTests/dataRepositoryTests/testGroupPath.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -67,7 +67,7 @@ TEST( testGroupPath, testGlobalPaths ) diff --git a/src/coreComponents/unitTests/dataRepositoryTests/testObjectCatalog.cpp b/src/coreComponents/unitTests/dataRepositoryTests/testObjectCatalog.cpp index 365e1c1124b..e511c09a0e0 100644 --- a/src/coreComponents/unitTests/dataRepositoryTests/testObjectCatalog.cpp +++ b/src/coreComponents/unitTests/dataRepositoryTests/testObjectCatalog.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/dataRepositoryTests/testRestartBasic.cpp b/src/coreComponents/unitTests/dataRepositoryTests/testRestartBasic.cpp index e71259ce9cc..e77aae20bff 100644 --- a/src/coreComponents/unitTests/dataRepositoryTests/testRestartBasic.cpp +++ b/src/coreComponents/unitTests/dataRepositoryTests/testRestartBasic.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/dataRepositoryTests/testRestartExtended.cpp b/src/coreComponents/unitTests/dataRepositoryTests/testRestartExtended.cpp index c6fb25aa69e..48d30aa4750 100644 --- a/src/coreComponents/unitTests/dataRepositoryTests/testRestartExtended.cpp +++ b/src/coreComponents/unitTests/dataRepositoryTests/testRestartExtended.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/dataRepositoryTests/testWrapperHelpers.cpp b/src/coreComponents/unitTests/dataRepositoryTests/testWrapperHelpers.cpp index ce73fb0f095..2d06ad0fcca 100644 --- a/src/coreComponents/unitTests/dataRepositoryTests/testWrapperHelpers.cpp +++ b/src/coreComponents/unitTests/dataRepositoryTests/testWrapperHelpers.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/dataRepositoryTests/utils.hpp b/src/coreComponents/unitTests/dataRepositoryTests/utils.hpp index 6aa1b76f2ef..79b749fa981 100644 --- a/src/coreComponents/unitTests/dataRepositoryTests/utils.hpp +++ b/src/coreComponents/unitTests/dataRepositoryTests/utils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/fieldSpecificationTests/CMakeLists.txt b/src/coreComponents/unitTests/fieldSpecificationTests/CMakeLists.txt index 978a41e3a99..d66f6661e22 100644 --- a/src/coreComponents/unitTests/fieldSpecificationTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/fieldSpecificationTests/CMakeLists.txt @@ -5,37 +5,20 @@ set( gtest_geosx_tests testRecursiveFieldApplication.cpp ) -set( dependencyList ${parallelDeps} gtest ) +set( tplDependencyList ${parallelDeps} gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() - -if (TARGET pugixml::pugixml) - list( APPEND dependencyList pugixml::pugixml ) -endif() - -if (TARGET pugixml) - list( APPEND dependencyList pugixml ) -endif() - -if (TARGET fmt::fmt-header-only) - list( APPEND dependencyList fmt::fmt-header-only ) -endif() - -if (TARGET fmt) - list( APPEND dependencyList fmt ) -endif() +set( dependencyList mainInterface ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + # Add gtest C++ based tests foreach(test ${gtest_geosx_tests}) get_filename_component( test_name ${test} NAME_WE ) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) diff --git a/src/coreComponents/unitTests/fieldSpecificationTests/testAquiferBoundaryCondition.cpp b/src/coreComponents/unitTests/fieldSpecificationTests/testAquiferBoundaryCondition.cpp index 96686031ffc..05de91b1a60 100644 --- a/src/coreComponents/unitTests/fieldSpecificationTests/testAquiferBoundaryCondition.cpp +++ b/src/coreComponents/unitTests/fieldSpecificationTests/testAquiferBoundaryCondition.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/fieldSpecificationTests/testFieldSpecificationsEnums.cpp b/src/coreComponents/unitTests/fieldSpecificationTests/testFieldSpecificationsEnums.cpp index ca33e6ceddc..0a4cd2d67de 100644 --- a/src/coreComponents/unitTests/fieldSpecificationTests/testFieldSpecificationsEnums.cpp +++ b/src/coreComponents/unitTests/fieldSpecificationTests/testFieldSpecificationsEnums.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/fieldSpecificationTests/testRecursiveFieldApplication.cpp b/src/coreComponents/unitTests/fieldSpecificationTests/testRecursiveFieldApplication.cpp index 6ceb929e8c6..12288b381e0 100644 --- a/src/coreComponents/unitTests/fieldSpecificationTests/testRecursiveFieldApplication.cpp +++ b/src/coreComponents/unitTests/fieldSpecificationTests/testRecursiveFieldApplication.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -20,6 +20,7 @@ #include "fieldSpecification/FieldSpecificationManager.hpp" #include "mesh/DomainPartition.hpp" #include "mesh/generators/CellBlockManager.hpp" +#include "mesh/CellElementRegionSelector.hpp" #include "common/GEOS_RAJA_Interface.hpp" #include "common/DataTypes.hpp" #include "common/TimingMacros.hpp" @@ -98,13 +99,15 @@ TEST( FieldSpecification, Recursive ) reg1Tet.setElementType( geos::ElementType::Tetrahedron ); reg1Tet.resize( nbTetReg1 ); + Group const & cellBlocks = cellBlockManager.getCellBlocks(); + reg0.addCellBlockName( reg0Hex.getName() ); reg0.addCellBlockName( reg0Tet.getName() ); - reg0.generateMesh( cellBlockManager.getCellBlocks() ); + reg0.generateMesh( cellBlocks ); reg1.addCellBlockName( reg1Hex.getName() ); reg1.addCellBlockName( reg1Tet.getName() ); - reg1.generateMesh( cellBlockManager.getCellBlocks() ); + reg1.generateMesh( cellBlocks ); // The cell block manager should not be used anymore. domain.deregisterGroup( keys::cellManager ); diff --git a/src/coreComponents/unitTests/fileIOTests/CMakeLists.txt b/src/coreComponents/unitTests/fileIOTests/CMakeLists.txt index 16aec0c79db..7bf5498da5b 100644 --- a/src/coreComponents/unitTests/fileIOTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/fileIOTests/CMakeLists.txt @@ -1,13 +1,12 @@ # Specify list of tests set( geosx_fileio_tests testHDFFile.cpp ) -set( dependencyList ${parallelDeps} gtest HDF5::HDF5 ) +set( tplDependencyList ${parallelDeps} gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core ) -else() - list( APPEND dependencyList ${geosx_core_libs} ) -endif() +set( dependencyList mainInterface ) + +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # Add gtest C++ based tests foreach(test ${geosx_fileio_tests}) @@ -15,7 +14,7 @@ foreach(test ${geosx_fileio_tests}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) @@ -32,7 +31,7 @@ if ( ENABLE_MPI ) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} diff --git a/src/coreComponents/unitTests/fileIOTests/testHDFFile.cpp b/src/coreComponents/unitTests/fileIOTests/testHDFFile.cpp index 7b28a1973f5..dc759b01c77 100644 --- a/src/coreComponents/unitTests/fileIOTests/testHDFFile.cpp +++ b/src/coreComponents/unitTests/fileIOTests/testHDFFile.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/fileIOTests/testHDFParallelFile.cpp b/src/coreComponents/unitTests/fileIOTests/testHDFParallelFile.cpp index 0b65e47b2b3..1a8e7ca4609 100644 --- a/src/coreComponents/unitTests/fileIOTests/testHDFParallelFile.cpp +++ b/src/coreComponents/unitTests/fileIOTests/testHDFParallelFile.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/finiteVolumeTests/CMakeLists.txt b/src/coreComponents/unitTests/finiteVolumeTests/CMakeLists.txt index 9837bc2a1ff..d809c09d7c3 100644 --- a/src/coreComponents/unitTests/finiteVolumeTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/finiteVolumeTests/CMakeLists.txt @@ -2,21 +2,20 @@ set( gtest_geosx_tests testMimeticInnerProducts.cpp ) -set( dependencyList ${parallelDeps} gtest ) - -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() +set( tplDependencyList ${parallelDeps} gtest ) +set( dependencyList mainInterface ) + +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) + # Add gtest C++ based tests foreach(test ${gtest_geosx_tests}) get_filename_component( test_name ${test} NAME_WE ) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) # Guard to prevent GCC (version 8) from giving warnings due # to some sort of possible conversion from int to long unsigned. diff --git a/src/coreComponents/unitTests/finiteVolumeTests/testMimeticInnerProducts.cpp b/src/coreComponents/unitTests/finiteVolumeTests/testMimeticInnerProducts.cpp index fa265348074..df8f7af001c 100644 --- a/src/coreComponents/unitTests/finiteVolumeTests/testMimeticInnerProducts.cpp +++ b/src/coreComponents/unitTests/finiteVolumeTests/testMimeticInnerProducts.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/fluidFlowTests/CMakeLists.txt b/src/coreComponents/unitTests/fluidFlowTests/CMakeLists.txt index 23399171ff5..c21190560cf 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/fluidFlowTests/CMakeLists.txt @@ -6,40 +6,19 @@ set( gtest_geosx_tests testFlowStatistics.cpp testTransmissibility.cpp ) -set( dependencyList ${parallelDeps} gtest ) - -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() - -set( dependencyList testingUtilities ) - if( ENABLE_PVTPackage ) list( APPEND gtest_geosx_tests testCompMultiphaseFlow.cpp testCompMultiphaseFlowHybrid.cpp testReactiveCompositionalMultiphaseOBL.cpp ) - - list( APPEND dependencyList PVTPackage ) endif() -if (TARGET pugixml::pugixml) - list( APPEND dependencyList pugixml::pugixml ) -endif() +set( tplDependencyList ${parallelDeps} gtest ) -if (TARGET pugixml) - list( APPEND dependencyList pugixml ) -endif() +set( dependencyList mainInterface testingUtilities ) -if (TARGET fmt::fmt-header-only) - list( APPEND dependencyList fmt::fmt-header-only ) -endif() - -if (TARGET fmt) - list( APPEND dependencyList fmt ) -endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # Add gtest C++ based tests foreach(test ${gtest_geosx_tests}) @@ -48,7 +27,7 @@ foreach(test ${gtest_geosx_tests}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) diff --git a/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp b/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp index eefff08fcd4..791e5fe8607 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -33,9 +33,6 @@ namespace geos namespace testing { -using namespace geos::constitutive; -using namespace geos::constitutive::multifluid; - inline void fillNumericalJacobian( arrayView1d< real64 const > const & residual, arrayView1d< real64 const > const & residualOrig, @@ -127,7 +124,7 @@ void testCompositionNumericalDerivatives( CompositionalMultiphaseFVM & solver, SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseBase::viewKeyStruct::fluidNamesString() ); - MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); + constitutive::MultiFluidBase const & fluid = subRegion.getConstitutiveModel< constitutive::MultiFluidBase >( fluidName ); arrayView1d< string const > const & components = fluid.componentNames(); arrayView2d< real64, compflow::USD_COMP > const compDens = @@ -194,7 +191,7 @@ void testPhaseVolumeFractionNumericalDerivatives( CompositionalMultiphaseFVM & s real64 const perturbParameter, real64 const relTol ) { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const numComp = solver.numFluidComponents(); integer const numPhase = solver.numFluidPhases(); @@ -212,7 +209,7 @@ void testPhaseVolumeFractionNumericalDerivatives( CompositionalMultiphaseFVM & s SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseFVM::viewKeyStruct::fluidNamesString() ); - MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); + constitutive::MultiFluidBase const & fluid = subRegion.getConstitutiveModel< constitutive::MultiFluidBase >( fluidName ); arrayView1d< string const > const & components = fluid.componentNames(); arrayView1d< string const > const & phases = fluid.phaseNames(); @@ -359,7 +356,7 @@ void testPhaseMobilityNumericalDerivatives( CompositionalMultiphaseFVM & solver, real64 const perturbParameter, real64 const relTol ) { - using Deriv = multifluid::DerivativeOffset; + using Deriv = constitutive::multifluid::DerivativeOffset; integer const numComp = solver.numFluidComponents(); integer const numPhase = solver.numFluidPhases(); @@ -377,7 +374,7 @@ void testPhaseMobilityNumericalDerivatives( CompositionalMultiphaseFVM & solver, SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseFVM::viewKeyStruct::fluidNamesString() ); - MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); + constitutive::MultiFluidBase const & fluid = subRegion.getConstitutiveModel< constitutive::MultiFluidBase >( fluidName ); arrayView1d< string const > const & components = fluid.componentNames(); arrayView1d< string const > const & phases = fluid.phaseNames(); diff --git a/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlow.cpp b/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlow.cpp index f294bfc327c..31f816164e1 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlow.cpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlow.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -68,7 +68,7 @@ char const * xmlInput = - + - + - + const & residual, arrayView1d< real64 const > const & residualOrig, globalIndex const dofIndex, diff --git a/src/coreComponents/unitTests/fluidFlowTests/testSinglePhaseBaseKernels.cpp b/src/coreComponents/unitTests/fluidFlowTests/testSinglePhaseBaseKernels.cpp index cf40a3ef249..03f0b903e14 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testSinglePhaseBaseKernels.cpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testSinglePhaseBaseKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/fluidFlowTests/testSinglePhaseFVMKernels.cpp b/src/coreComponents/unitTests/fluidFlowTests/testSinglePhaseFVMKernels.cpp index 9f284792cf8..31ec3c9951a 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testSinglePhaseFVMKernels.cpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testSinglePhaseFVMKernels.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/fluidFlowTests/testThermalCompMultiphaseFlow.cpp b/src/coreComponents/unitTests/fluidFlowTests/testThermalCompMultiphaseFlow.cpp index f9143d3ff7b..1eb5ce7c95a 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testThermalCompMultiphaseFlow.cpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testThermalCompMultiphaseFlow.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -95,7 +95,7 @@ char const * xmlInput = @@ -103,7 +103,7 @@ char const * xmlInput = solidModelName="nullSolid" porosityModelName="rockPorosity" permeabilityModelName="rockPerm" - solidInternalEnergyModelName="rockInternalEnergy" /> + solidInternalEnergyModelName="rockInternalEnergy"/> @@ -109,8 +109,8 @@ char const * xmlInput = thermalExpansionCoeff="7e-4" viscosibility="0.0" specificHeatCapacity="4.5e3" /> - + + +// Source includes +#include "codingUtilities/UnitTestUtilities.hpp" +#include "dataRepository/xmlWrapper.hpp" +#include "mainInterface/GeosxState.hpp" +#include "mainInterface/initialization.hpp" +#include "mainInterface/ProblemManager.hpp" +#include "mesh/generators/CellBlockManagerABC.hpp" +#include "mesh/generators/CellBlockABC.hpp" + +// special CMake-generated include +#include "tests/meshDirName.hpp" + +using namespace geos; +using namespace geos::testing; +using namespace geos::dataRepository; + + +CommandLineOptions g_commandLineOptions; + +struct TestCase +{ + string name; + bool isExpectedToPass = true; + std::vector< string > stringsToMention; + string_view xmlRegions; +}; + +class ElementRegionTestFixture : public ::testing::TestWithParam< TestCase > +{ +public: + ElementRegionTestFixture(): + state( std::make_unique< CommandLineOptions >( g_commandLineOptions ) ) + {} + + virtual ~ElementRegionTestFixture() = default; +private: + GeosxState state; +}; + +TEST_P( ElementRegionTestFixture, testVTKImportRegionSyntaxes ) +{ + TestCase const testCase = GetParam(); + + string const pattern = + R"xml( + + + + + + {} + + + )xml"; + string const xmlInput = GEOS_FMT( pattern, + testMeshDir + "/box_hybrid_mesh.vtu", + testCase.xmlRegions ); + + ProblemManager & problem = getGlobalState().getProblemManager(); + problem.parseInputString( xmlInput ); + + if( testCase.isExpectedToPass ) + { + try + { + EXPECT_NO_FATAL_FAILURE( problem.problemSetup() ) << GEOS_FMT( "Test case '{}' did throw an error.", + testCase.name ); + } + catch( std::exception const & e ) + { + GTEST_FAIL() << GEOS_FMT( "Test case '{}' did throw an exception ({}) but was not expected to :\n{}", + testCase.name, LvArray::system::demangle( typeid( e ).name() ), e.what() ); + } + } + else + { + try + { + EXPECT_NO_FATAL_FAILURE( problem.problemSetup() ) << GEOS_FMT( "Test case '{}' did throw an error.", + testCase.name ); + GTEST_FAIL() << GEOS_FMT( "Test case '{}' did not thrown any exception but was expected to.", + testCase.name ); + } + catch( InputError const & e ) + { + string const expStr = e.what(); + for( auto const & str : testCase.stringsToMention ) + { + bool isExceptionContainingStr = expStr.find( str ) != string::npos; + EXPECT_TRUE( isExceptionContainingStr ) << GEOS_FMT( "Test case '{}' exception did not mention the string '{}'. Exception string:\n{}", + testCase.name, str, e.what() ); + } + } + catch( std::exception const & e ) + { + GTEST_FAIL() << GEOS_FMT( "Test case '{}' did throw an exception ({}) but was not expected to :\n{}", + testCase.name, LvArray::system::demangle( typeid( e ).name() ), e.what() ); + } + catch( ... ) + { + GTEST_FAIL() << GEOS_FMT( "Test case '{}': Unexpected exception.", + testCase.name ); + } + } +} + +TestCase const vtkImportRegionSyntaxCases[] = { + { // should not crash + "regular cell-block list", true, { }, + R"xml( + + + )xml" + }, + { // crash because of not existing primitive (2_pendecagonalPrism) + "non existing 2_pendecagonalPrism", false, { "reservoir", "2_pendecagonalPrism" }, + R"xml( + + + )xml" + }, + { // crash because of not unknown primitive name (helloWorld) + "non existing helloWorld", false, { "overburden", "helloWorld" }, + R"xml( + + + )xml" + }, + { // crash because of lacking one primitive (1_hexahedra) + "lacking 1_hexahedra", false, { "1_hexahedra" }, + R"xml( + + + )xml" + }, + { // mentioning the same cell-blocks in multiple regions (1_hexahedra) + "multiple 1_hexahedra", false, { "overburden", "reservoir", "1_hexahedra" }, + R"xml( + + + )xml" + }, + { // should not crash + "regular region attribute list", true, { }, + R"xml( + + + )xml" + }, + { // mentioning the same region attribute in multiple cellBlocks (6 in overburden & reservoir) + "multiple region 1", false, { "6", "region attribute", "overburden", "reservoir" }, + R"xml( + + + )xml" + }, + { // forgetting a region attribute (5) + "forget region 5", false, { "5", "region attribute" }, + R"xml( + + + )xml" + }, + { // should not crash + "regular * wildcard", true, { }, + R"xml( + + )xml" + }, + { // mentioning the same regions in multiple cellBlocks (because of "*") + "* wildcard + region list", false, { "2", "6", "everything", "reservoir" }, + R"xml( + + + )xml" + }, + { // should not crash + "mixing selection methods on 2 regions", true, { }, + R"xml( + + + )xml" + }, + { // should not crash + "mixing all selection methods on 1 region", true, { }, + R"xml( + + )xml" + } +}; +INSTANTIATE_TEST_SUITE_P( testElementRegions, ElementRegionTestFixture, + ::testing::ValuesIn( vtkImportRegionSyntaxCases ) ); + + +int main( int argc, char * * argv ) +{ + ::testing::InitGoogleTest( &argc, argv ); + g_commandLineOptions = *geos::basicSetup( argc, argv ); + + int const result = RUN_ALL_TESTS(); + + geos::basicCleanup(); + + return result; +} diff --git a/src/coreComponents/unitTests/meshTests/testMeshEnums.cpp b/src/coreComponents/unitTests/meshTests/testMeshEnums.cpp index eb5bf5c5f6c..3dad8b16738 100644 --- a/src/coreComponents/unitTests/meshTests/testMeshEnums.cpp +++ b/src/coreComponents/unitTests/meshTests/testMeshEnums.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/meshTests/testMeshGeneration.cpp b/src/coreComponents/unitTests/meshTests/testMeshGeneration.cpp index bad8b501521..cb0bc13651b 100644 --- a/src/coreComponents/unitTests/meshTests/testMeshGeneration.cpp +++ b/src/coreComponents/unitTests/meshTests/testMeshGeneration.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/meshTests/testNeighborCommunicator.cpp b/src/coreComponents/unitTests/meshTests/testNeighborCommunicator.cpp index 3302fd488ab..31fa9918fe7 100644 --- a/src/coreComponents/unitTests/meshTests/testNeighborCommunicator.cpp +++ b/src/coreComponents/unitTests/meshTests/testNeighborCommunicator.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/meshTests/testVTKImport.cpp b/src/coreComponents/unitTests/meshTests/testVTKImport.cpp index 5a81e5d8cda..38dbd02ced9 100644 --- a/src/coreComponents/unitTests/meshTests/testVTKImport.cpp +++ b/src/coreComponents/unitTests/meshTests/testVTKImport.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -17,6 +17,7 @@ // Source includes #include "codingUtilities/UnitTestUtilities.hpp" #include "dataRepository/xmlWrapper.hpp" +#include "LvArray/src/system.hpp" #include "mainInterface/GeosxState.hpp" #include "mainInterface/initialization.hpp" #include "mesh/MeshManager.hpp" @@ -41,6 +42,8 @@ #include +#include + using namespace geos; using namespace geos::testing; @@ -97,6 +100,9 @@ class TestFractureImport : public ::testing::Test void SetUp() override { + // Disable floating point exceptions for the tests. + // clang15 on x86_64 does throws an FPE. + LvArray::system::disableFloatingPointExceptions( FE_ALL_EXCEPT ); if( MpiWrapper::commRank() == 0 ) { namespace fs = std::filesystem; diff --git a/src/coreComponents/unitTests/testingUtilities/CMakeLists.txt b/src/coreComponents/unitTests/testingUtilities/CMakeLists.txt index b89d54ba0f5..7534c11b82d 100644 --- a/src/coreComponents/unitTests/testingUtilities/CMakeLists.txt +++ b/src/coreComponents/unitTests/testingUtilities/CMakeLists.txt @@ -15,19 +15,19 @@ set( testingUtilities_sources # # Specify all dependencies # -set( dependencyList ${parallelDeps} gtest ) +set( tplDependencyList ${parallelDeps} gtest ) + +set( dependencyList events ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() - blt_add_library( NAME testingUtilities SOURCES ${testingUtilities_sources} HEADERS ${testingUtilities_headers} - DEPENDS_ON ${dependencyList} + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} OBJECT ${GEOS_BUILD_OBJ_LIBS} + SHARED ${GEOS_BUILD_SHARED_LIBS} ) target_include_directories( testingUtilities PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +target_include_directories( testingUtilities PUBLIC ${CMAKE_BINARY_DIR}/include ) diff --git a/src/coreComponents/unitTests/testingUtilities/TestingTasks.cpp b/src/coreComponents/unitTests/testingUtilities/TestingTasks.cpp index ef9459bfc26..1a0cdda6e2f 100644 --- a/src/coreComponents/unitTests/testingUtilities/TestingTasks.cpp +++ b/src/coreComponents/unitTests/testingUtilities/TestingTasks.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/testingUtilities/TestingTasks.hpp b/src/coreComponents/unitTests/testingUtilities/TestingTasks.hpp index 456c2bce29a..0080b79c749 100644 --- a/src/coreComponents/unitTests/testingUtilities/TestingTasks.hpp +++ b/src/coreComponents/unitTests/testingUtilities/TestingTasks.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/toolchain/CMakeLists.txt b/src/coreComponents/unitTests/toolchain/CMakeLists.txt index f4509635eb7..e8b25319ad9 100644 --- a/src/coreComponents/unitTests/toolchain/CMakeLists.txt +++ b/src/coreComponents/unitTests/toolchain/CMakeLists.txt @@ -2,7 +2,10 @@ set( gtest_geosx_tests testToolchain.cpp ) # NOTE: we explicitly depend on internal libraries in order to check for the spurious addition of -DNDEBUG flag -set( dependencyList ${parallelDeps} gtest physicsSolvers discretizationMethods fieldSpecification linearAlgebra dataRepository events fileIO optionparser HDF5::HDF5 ) +set( dependencyList ${parallelDeps} physicsSolvers ) +set( tplDependencyList ${parallelDeps} gtest HDF5::HDF5 optionparser ) +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # Add gtest C++ based tests foreach(test ${gtest_geosx_tests}) @@ -11,7 +14,7 @@ foreach(test ${gtest_geosx_tests}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) diff --git a/src/coreComponents/unitTests/toolchain/testToolchain.cpp b/src/coreComponents/unitTests/toolchain/testToolchain.cpp index e83cb5dcbf2..8c5ff278d92 100644 --- a/src/coreComponents/unitTests/toolchain/testToolchain.cpp +++ b/src/coreComponents/unitTests/toolchain/testToolchain.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/virtualElementTests/CMakeLists.txt b/src/coreComponents/unitTests/virtualElementTests/CMakeLists.txt index c10c31f429f..0d99a9b63ca 100644 --- a/src/coreComponents/unitTests/virtualElementTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/virtualElementTests/CMakeLists.txt @@ -2,29 +2,13 @@ set( testSources testConformingVirtualElementOrder1.cpp ) -set( dependencyList ${parallelDeps} gtest ) +set( tplDependencyList ${parallelDeps} gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() - -if (TARGET pugixml::pugixml) - list( APPEND dependencyList pugixml::pugixml ) -endif() +set( dependencyList mainInterface ) -if (TARGET pugixml) - list( APPEND dependencyList pugixml ) -endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) -if (TARGET fmt::fmt-header-only) - list( APPEND dependencyList fmt::fmt-header-only ) -endif() - -if (TARGET fmt) - list( APPEND dependencyList fmt ) -endif() # Add gtest C++ based tests foreach(test ${testSources}) @@ -32,7 +16,7 @@ foreach(test ${testSources}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) diff --git a/src/coreComponents/unitTests/virtualElementTests/testConformingVirtualElementOrder1.cpp b/src/coreComponents/unitTests/virtualElementTests/testConformingVirtualElementOrder1.cpp index acb1a734678..0344a73c899 100644 --- a/src/coreComponents/unitTests/virtualElementTests/testConformingVirtualElementOrder1.cpp +++ b/src/coreComponents/unitTests/virtualElementTests/testConformingVirtualElementOrder1.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/wavePropagationTests/CMakeLists.txt b/src/coreComponents/unitTests/wavePropagationTests/CMakeLists.txt index de07f14b079..fab0a741e73 100644 --- a/src/coreComponents/unitTests/wavePropagationTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/wavePropagationTests/CMakeLists.txt @@ -8,29 +8,12 @@ set( gtest_geosx_tests testWavePropagationAttenuation.cpp testWavePropagationAcousticFirstOrder.cpp ) -set( dependencyList ${parallelDeps} gtest ) +set( tplDependencyList ${parallelDeps} gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() - -if (TARGET pugixml::pugixml) - list( APPEND dependencyList pugixml::pugixml ) -endif() - -if (TARGET pugixml) - list( APPEND dependencyList pugixml ) -endif() - -if (TARGET fmt::fmt-header-only) - list( APPEND dependencyList fmt::fmt-header-only ) -endif() +set( dependencyList mainInterface ) -if (TARGET fmt) - list( APPEND dependencyList fmt ) -endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # Add gtest C++ based tests foreach(test ${gtest_geosx_tests}) @@ -38,7 +21,7 @@ foreach(test ${gtest_geosx_tests}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) # Guard to prevent GCC (version 8) from giving warnings due # to some sort of possible conversion from int to long unsigned. diff --git a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagation.cpp b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagation.cpp index a5f972cb437..11664efc437 100644 --- a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagation.cpp +++ b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagation.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -99,7 +99,7 @@ char const * xmlInput = diff --git a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationAcousticFirstOrder.cpp b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationAcousticFirstOrder.cpp index ef1b90414e9..bb9a6eef28e 100644 --- a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationAcousticFirstOrder.cpp +++ b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationAcousticFirstOrder.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -106,7 +106,7 @@ char const * xmlInput = diff --git a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationAttenuation.cpp b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationAttenuation.cpp index 2b48e1a6214..fed816e5022 100644 --- a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationAttenuation.cpp +++ b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationAttenuation.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationDAS.cpp b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationDAS.cpp index bfda1e3036c..e05e49735ae 100644 --- a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationDAS.cpp +++ b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationDAS.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -104,7 +104,7 @@ char const * xmlInput = diff --git a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationElasticFirstOrder.cpp b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationElasticFirstOrder.cpp index e809afa0746..10fa8cae06f 100644 --- a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationElasticFirstOrder.cpp +++ b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationElasticFirstOrder.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -106,7 +106,7 @@ char const * xmlInput = diff --git a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationElasticVTI.cpp b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationElasticVTI.cpp index 31bf7a4d154..136e7ab17fa 100644 --- a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationElasticVTI.cpp +++ b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationElasticVTI.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationQ2.cpp b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationQ2.cpp index 42dd003a8e8..ad2e70b9b5c 100644 --- a/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationQ2.cpp +++ b/src/coreComponents/unitTests/wavePropagationTests/testWavePropagationQ2.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/wellsTests/CMakeLists.txt b/src/coreComponents/unitTests/wellsTests/CMakeLists.txt index e74f160e705..1420b47ec78 100644 --- a/src/coreComponents/unitTests/wellsTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/wellsTests/CMakeLists.txt @@ -3,13 +3,9 @@ set( gtest_geosx_tests testReservoirSinglePhaseMSWells.cpp testWellEnums.cpp ) -set( dependencyList ${parallelDeps} gtest ) +set( tplDependencyList ${parallelDeps} gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core ${parallelDeps} HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} ${parallelDeps} HDF5::HDF5 ) -endif() +set( dependencyList mainInterface ) if( ENABLE_PVTPackage ) list( APPEND gtest_geosx_tests @@ -18,26 +14,10 @@ if( ENABLE_PVTPackage ) testIsothermalReservoirCompositionalMultiphaseSSWells.cpp testThermalReservoirCompositionalMultiphaseSSWells.cpp testThermalReservoirCompositionalMultiphaseMSWells.cpp ) - - list( APPEND dependencyList PVTPackage ) -endif() - -if (TARGET pugixml::pugixml) - list( APPEND dependencyList pugixml::pugixml ) -endif() - -if (TARGET pugixml) - list( APPEND dependencyList pugixml ) -endif() - -if (TARGET fmt::fmt-header-only) - list( APPEND dependencyList fmt::fmt-header-only ) -endif() - -if (TARGET fmt) - list( APPEND dependencyList fmt ) endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # Add gtest C++ based tests foreach(test ${gtest_geosx_tests}) get_filename_component( test_name ${test} NAME_WE ) @@ -45,7 +25,7 @@ foreach(test ${gtest_geosx_tests}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} ) geos_add_test( NAME ${test_name} COMMAND ${test_name} ) diff --git a/src/coreComponents/unitTests/wellsTests/testReservoirCompositionalMultiphaseMSWells.cpp b/src/coreComponents/unitTests/wellsTests/testReservoirCompositionalMultiphaseMSWells.cpp index e9f2ebb9aff..f69e0b5cb2c 100644 --- a/src/coreComponents/unitTests/wellsTests/testReservoirCompositionalMultiphaseMSWells.cpp +++ b/src/coreComponents/unitTests/wellsTests/testReservoirCompositionalMultiphaseMSWells.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/wellsTests/testReservoirSinglePhaseMSWells.cpp b/src/coreComponents/unitTests/wellsTests/testReservoirSinglePhaseMSWells.cpp index 2d28c52159a..c54c1419c40 100644 --- a/src/coreComponents/unitTests/wellsTests/testReservoirSinglePhaseMSWells.cpp +++ b/src/coreComponents/unitTests/wellsTests/testReservoirSinglePhaseMSWells.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -97,7 +97,7 @@ char const * PostXmlInput = diff --git a/src/coreComponents/unitTests/wellsTests/testWellEnums.cpp b/src/coreComponents/unitTests/wellsTests/testWellEnums.cpp index c012d99cd38..192f3e50f71 100644 --- a/src/coreComponents/unitTests/wellsTests/testWellEnums.cpp +++ b/src/coreComponents/unitTests/wellsTests/testWellEnums.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/coreComponents/unitTests/xmlTests/CMakeLists.txt b/src/coreComponents/unitTests/xmlTests/CMakeLists.txt index 0a5a81b1d57..28d5cc772ae 100644 --- a/src/coreComponents/unitTests/xmlTests/CMakeLists.txt +++ b/src/coreComponents/unitTests/xmlTests/CMakeLists.txt @@ -15,22 +15,12 @@ set( multi_files multifile_input/outputs.xml multifile_input/solver.xml ) -# Add gtest C++ based tests -set( dependencyList ${parallelDeps} gtest optionparser HDF5::HDF5 ) +set( tplDependencyList ${parallelDeps} gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core HDF5::HDF5 ) -else() - list( APPEND dependencyList ${geosx_core_libs} HDF5::HDF5 ) -endif() +set( dependencyList mainInterface ) -if (TARGET pugixml::pugixml) - set( dependencyList ${dependencyList} pugixml::pugixml ) -endif() - -if (TARGET pugixml) - set( dependencyList ${dependencyList} pugixml ) -endif() +geos_decorate_link_dependencies( LIST decoratedDependencies + DEPENDENCIES ${dependencyList} ) # create test executables foreach(test ${gtest_geosx_tests} ${gtest_tests_with_input}) @@ -38,7 +28,7 @@ foreach(test ${gtest_geosx_tests} ${gtest_tests_with_input}) blt_add_executable( NAME ${test_name} SOURCES ${test} OUTPUT_DIR ${TEST_OUTPUT_DIRECTORY} - DEPENDS_ON ${dependencyList} "-lz" ) + DEPENDS_ON ${decoratedDependencies} ${tplDependencyList} "-lz" ) endforeach() # add tests that don't require input files diff --git a/src/coreComponents/unitTests/xmlTests/basic_input.xml b/src/coreComponents/unitTests/xmlTests/basic_input.xml index 37c611aa479..3735d47c0f4 100644 --- a/src/coreComponents/unitTests/xmlTests/basic_input.xml +++ b/src/coreComponents/unitTests/xmlTests/basic_input.xml @@ -46,7 +46,7 @@ diff --git a/src/coreComponents/unitTests/xmlTests/multifile_input/solver.xml b/src/coreComponents/unitTests/xmlTests/multifile_input/solver.xml index c1e25343bc3..9b2bc1e11e2 100644 --- a/src/coreComponents/unitTests/xmlTests/multifile_input/solver.xml +++ b/src/coreComponents/unitTests/xmlTests/multifile_input/solver.xml @@ -29,7 +29,7 @@ diff --git a/src/coreComponents/unitTests/xmlTests/testXML.cpp b/src/coreComponents/unitTests/xmlTests/testXML.cpp index d0e6df69ad5..40fa4f64f9b 100644 --- a/src/coreComponents/unitTests/xmlTests/testXML.cpp +++ b/src/coreComponents/unitTests/xmlTests/testXML.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -64,7 +64,7 @@ TEST( testXML, testXMLString ) diff --git a/src/coreComponents/unitTests/xmlTests/testXMLFile.cpp b/src/coreComponents/unitTests/xmlTests/testXMLFile.cpp index 09608d1e877..8d2231cc216 100644 --- a/src/coreComponents/unitTests/xmlTests/testXMLFile.cpp +++ b/src/coreComponents/unitTests/xmlTests/testXMLFile.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/docs/doxygen/Doxyfile.in b/src/docs/doxygen/Doxyfile.in index f872f18f60c..7038c667890 100644 --- a/src/docs/doxygen/Doxyfile.in +++ b/src/docs/doxygen/Doxyfile.in @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "GEOSX" +PROJECT_NAME = "GEOS" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -767,6 +767,7 @@ INPUT = @PROJECT_SOURCE_DIR@/coreComponents/common \ @PROJECT_SOURCE_DIR@/coreComponents/finiteElement/elementFormulations \ @PROJECT_SOURCE_DIR@/coreComponents/finiteElement/kernelInterface \ @PROJECT_SOURCE_DIR@/coreComponents/mesh/MeshFields.hpp \ + @PROJECT_SOURCE_DIR@/coreComponents/physicsSolvers/SolverBase.hpp \ @PROJECT_SOURCE_DIR@/coreComponents/physicsSolvers/simplePDE/LaplaceFEMKernels.hpp \ @PROJECT_SOURCE_DIR@/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitFiniteStrain.hpp \ @PROJECT_SOURCE_DIR@/coreComponents/physicsSolvers/solidMechanics/kernels/ExplicitSmallStrain.hpp \ diff --git a/src/docs/sphinx/CompleteXMLSchema.rst b/src/docs/sphinx/CompleteXMLSchema.rst deleted file mode 100644 index 92595791056..00000000000 --- a/src/docs/sphinx/CompleteXMLSchema.rst +++ /dev/null @@ -1,3095 +0,0 @@ -###################### -Datastructure Index -###################### - -************************** - -Input Schema Definitions -************************** - -:download:`XML Schema <../../coreComponents/schema/docs/../schema.xsd>` - - -.. _XML_AcousticElasticSEM: - -Element: AcousticElasticSEM -=========================== -.. include:: ../../coreComponents/schema/docs/AcousticElasticSEM.rst - - -.. _XML_AcousticFirstOrderSEM: - -Element: AcousticFirstOrderSEM -============================== -.. include:: ../../coreComponents/schema/docs/AcousticFirstOrderSEM.rst - - -.. _XML_AcousticSEM: - -Element: AcousticSEM -==================== -.. include:: ../../coreComponents/schema/docs/AcousticSEM.rst - - -.. _XML_AcousticVTISEM: - -Element: AcousticVTISEM -======================= -.. include:: ../../coreComponents/schema/docs/AcousticVTISEM.rst - - -.. _XML_Aquifer: - -Element: Aquifer -================ -.. include:: ../../coreComponents/schema/docs/Aquifer.rst - - -.. _XML_Benchmarks: - -Element: Benchmarks -=================== -.. include:: ../../coreComponents/schema/docs/Benchmarks.rst - - -.. _XML_BiotPorosity: - -Element: BiotPorosity -===================== -.. include:: ../../coreComponents/schema/docs/BiotPorosity.rst - - -.. _XML_BlackOilFluid: - -Element: BlackOilFluid -====================== -.. include:: ../../coreComponents/schema/docs/BlackOilFluid.rst - - -.. _XML_Blueprint: - -Element: Blueprint -================== -.. include:: ../../coreComponents/schema/docs/Blueprint.rst - - -.. _XML_Box: - -Element: Box -============ -.. include:: ../../coreComponents/schema/docs/Box.rst - - -.. _XML_BrooksCoreyBakerRelativePermeability: - -Element: BrooksCoreyBakerRelativePermeability -============================================= -.. include:: ../../coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability.rst - - -.. _XML_BrooksCoreyCapillaryPressure: - -Element: BrooksCoreyCapillaryPressure -===================================== -.. include:: ../../coreComponents/schema/docs/BrooksCoreyCapillaryPressure.rst - - -.. _XML_BrooksCoreyRelativePermeability: - -Element: BrooksCoreyRelativePermeability -======================================== -.. include:: ../../coreComponents/schema/docs/BrooksCoreyRelativePermeability.rst - - -.. _XML_BrooksCoreyStone2RelativePermeability: - -Element: BrooksCoreyStone2RelativePermeability -============================================== -.. include:: ../../coreComponents/schema/docs/BrooksCoreyStone2RelativePermeability.rst - - -.. _XML_CO2BrineEzrokhiFluid: - -Element: CO2BrineEzrokhiFluid -============================= -.. include:: ../../coreComponents/schema/docs/CO2BrineEzrokhiFluid.rst - - -.. _XML_CO2BrineEzrokhiThermalFluid: - -Element: CO2BrineEzrokhiThermalFluid -==================================== -.. include:: ../../coreComponents/schema/docs/CO2BrineEzrokhiThermalFluid.rst - - -.. _XML_CO2BrinePhillipsFluid: - -Element: CO2BrinePhillipsFluid -============================== -.. include:: ../../coreComponents/schema/docs/CO2BrinePhillipsFluid.rst - - -.. _XML_CO2BrinePhillipsThermalFluid: - -Element: CO2BrinePhillipsThermalFluid -===================================== -.. include:: ../../coreComponents/schema/docs/CO2BrinePhillipsThermalFluid.rst - - -.. _XML_CarmanKozenyPermeability: - -Element: CarmanKozenyPermeability -================================= -.. include:: ../../coreComponents/schema/docs/CarmanKozenyPermeability.rst - - -.. _XML_CellElementRegion: - -Element: CellElementRegion -========================== -.. include:: ../../coreComponents/schema/docs/CellElementRegion.rst - - -.. _XML_CellToCellDataCollection: - -Element: CellToCellDataCollection -================================= -.. include:: ../../coreComponents/schema/docs/CellToCellDataCollection.rst - - -.. _XML_CeramicDamage: - -Element: CeramicDamage -====================== -.. include:: ../../coreComponents/schema/docs/CeramicDamage.rst - - -.. _XML_ChomboIO: - -Element: ChomboIO -================= -.. include:: ../../coreComponents/schema/docs/ChomboIO.rst - - -.. _XML_CompositeFunction: - -Element: CompositeFunction -========================== -.. include:: ../../coreComponents/schema/docs/CompositeFunction.rst - - -.. _XML_CompositionalMultiphaseFVM: - -Element: CompositionalMultiphaseFVM -=================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseFVM.rst - - -.. _XML_CompositionalMultiphaseFluid: - -Element: CompositionalMultiphaseFluid -===================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseFluid.rst - - -.. _XML_CompositionalMultiphaseHybridFVM: - -Element: CompositionalMultiphaseHybridFVM -========================================= -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseHybridFVM.rst - - -.. _XML_CompositionalMultiphaseReservoir: - -Element: CompositionalMultiphaseReservoir -========================================= -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseReservoir.rst - - -.. _XML_CompositionalMultiphaseReservoirPoromechanics: - -Element: CompositionalMultiphaseReservoirPoromechanics -====================================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanics.rst - - -.. _XML_CompositionalMultiphaseReservoirPoromechanicsInitialization: - -Element: CompositionalMultiphaseReservoirPoromechanicsInitialization -==================================================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanicsInitialization.rst - - -.. _XML_CompositionalMultiphaseStatistics: - -Element: CompositionalMultiphaseStatistics -========================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseStatistics.rst - - -.. _XML_CompositionalMultiphaseWell: - -Element: CompositionalMultiphaseWell -==================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseWell.rst - - -.. _XML_CompositionalTwoPhaseFluid: - -Element: CompositionalTwoPhaseFluid -=================================== -.. include:: ../../coreComponents/schema/docs/CompositionalTwoPhaseFluid.rst - - -.. _XML_CompositionalTwoPhaseFluidLohrenzBrayClark: - -Element: CompositionalTwoPhaseFluidLohrenzBrayClark -=================================================== -.. include:: ../../coreComponents/schema/docs/CompositionalTwoPhaseFluidLohrenzBrayClark.rst - - -.. _XML_CompressibleSinglePhaseFluid: - -Element: CompressibleSinglePhaseFluid -===================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSinglePhaseFluid.rst - - -.. _XML_CompressibleSolidCarmanKozenyPermeability: - -Element: CompressibleSolidCarmanKozenyPermeability -================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidCarmanKozenyPermeability.rst - - -.. _XML_CompressibleSolidConstantPermeability: - -Element: CompressibleSolidConstantPermeability -============================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidConstantPermeability.rst - - -.. _XML_CompressibleSolidExponentialDecayPermeability: - -Element: CompressibleSolidExponentialDecayPermeability -====================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidExponentialDecayPermeability.rst - - -.. _XML_CompressibleSolidParallelPlatesPermeability: - -Element: CompressibleSolidParallelPlatesPermeability -==================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidParallelPlatesPermeability.rst - - -.. _XML_CompressibleSolidPressurePermeability: - -Element: CompressibleSolidPressurePermeability -============================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidPressurePermeability.rst - - -.. _XML_CompressibleSolidSlipDependentPermeability: - -Element: CompressibleSolidSlipDependentPermeability -=================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidSlipDependentPermeability.rst - - -.. _XML_CompressibleSolidWillisRichardsPermeability: - -Element: CompressibleSolidWillisRichardsPermeability -==================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidWillisRichardsPermeability.rst - - -.. _XML_ConstantDiffusion: - -Element: ConstantDiffusion -========================== -.. include:: ../../coreComponents/schema/docs/ConstantDiffusion.rst - - -.. _XML_ConstantPermeability: - -Element: ConstantPermeability -============================= -.. include:: ../../coreComponents/schema/docs/ConstantPermeability.rst - - -.. _XML_Constitutive: - -Element: Constitutive -===================== -.. include:: ../../coreComponents/schema/docs/Constitutive.rst - - -.. _XML_Coulomb: - -Element: Coulomb -================ -.. include:: ../../coreComponents/schema/docs/Coulomb.rst - - -.. _XML_CustomPolarObject: - -Element: CustomPolarObject -========================== -.. include:: ../../coreComponents/schema/docs/CustomPolarObject.rst - - -.. _XML_Cylinder: - -Element: Cylinder -================= -.. include:: ../../coreComponents/schema/docs/Cylinder.rst - - -.. _XML_DamageElasticIsotropic: - -Element: DamageElasticIsotropic -=============================== -.. include:: ../../coreComponents/schema/docs/DamageElasticIsotropic.rst - - -.. _XML_DamageSpectralElasticIsotropic: - -Element: DamageSpectralElasticIsotropic -======================================= -.. include:: ../../coreComponents/schema/docs/DamageSpectralElasticIsotropic.rst - - -.. _XML_DamageVolDevElasticIsotropic: - -Element: DamageVolDevElasticIsotropic -===================================== -.. include:: ../../coreComponents/schema/docs/DamageVolDevElasticIsotropic.rst - - -.. _XML_DeadOilFluid: - -Element: DeadOilFluid -===================== -.. include:: ../../coreComponents/schema/docs/DeadOilFluid.rst - - -.. _XML_DelftEgg: - -Element: DelftEgg -================= -.. include:: ../../coreComponents/schema/docs/DelftEgg.rst - - -.. _XML_Dirichlet: - -Element: Dirichlet -================== -.. include:: ../../coreComponents/schema/docs/Dirichlet.rst - - -.. _XML_Disc: - -Element: Disc -============= -.. include:: ../../coreComponents/schema/docs/Disc.rst - - -.. _XML_DruckerPrager: - -Element: DruckerPrager -====================== -.. include:: ../../coreComponents/schema/docs/DruckerPrager.rst - - -.. _XML_ElasticFirstOrderSEM: - -Element: ElasticFirstOrderSEM -============================= -.. include:: ../../coreComponents/schema/docs/ElasticFirstOrderSEM.rst - - -.. _XML_ElasticIsotropic: - -Element: ElasticIsotropic -========================= -.. include:: ../../coreComponents/schema/docs/ElasticIsotropic.rst - - -.. _XML_ElasticIsotropicPressureDependent: - -Element: ElasticIsotropicPressureDependent -========================================== -.. include:: ../../coreComponents/schema/docs/ElasticIsotropicPressureDependent.rst - - -.. _XML_ElasticOrthotropic: - -Element: ElasticOrthotropic -=========================== -.. include:: ../../coreComponents/schema/docs/ElasticOrthotropic.rst - - -.. _XML_ElasticSEM: - -Element: ElasticSEM -=================== -.. include:: ../../coreComponents/schema/docs/ElasticSEM.rst - - -.. _XML_ElasticTransverseIsotropic: - -Element: ElasticTransverseIsotropic -=================================== -.. include:: ../../coreComponents/schema/docs/ElasticTransverseIsotropic.rst - - -.. _XML_ElementRegions: - -Element: ElementRegions -======================= -.. include:: ../../coreComponents/schema/docs/ElementRegions.rst - - -.. _XML_EmbeddedSurfaceGenerator: - -Element: EmbeddedSurfaceGenerator -================================= -.. include:: ../../coreComponents/schema/docs/EmbeddedSurfaceGenerator.rst - - -.. _XML_Events: - -Element: Events -=============== -.. include:: ../../coreComponents/schema/docs/Events.rst - - -.. _XML_ExponentialDecayPermeability: - -Element: ExponentialDecayPermeability -===================================== -.. include:: ../../coreComponents/schema/docs/ExponentialDecayPermeability.rst - - -.. _XML_ExtendedDruckerPrager: - -Element: ExtendedDruckerPrager -============================== -.. include:: ../../coreComponents/schema/docs/ExtendedDruckerPrager.rst - - -.. _XML_FieldSpecification: - -Element: FieldSpecification -=========================== -.. include:: ../../coreComponents/schema/docs/FieldSpecification.rst - - -.. _XML_FieldSpecifications: - -Element: FieldSpecifications -============================ -.. include:: ../../coreComponents/schema/docs/FieldSpecifications.rst - - -.. _XML_File: - -Element: File -============= -.. include:: ../../coreComponents/schema/docs/File.rst - - -.. _XML_FiniteElementSpace: - -Element: FiniteElementSpace -=========================== -.. include:: ../../coreComponents/schema/docs/FiniteElementSpace.rst - - -.. _XML_FiniteElements: - -Element: FiniteElements -======================= -.. include:: ../../coreComponents/schema/docs/FiniteElements.rst - - -.. _XML_FiniteVolume: - -Element: FiniteVolume -===================== -.. include:: ../../coreComponents/schema/docs/FiniteVolume.rst - - -.. _XML_FlowProppantTransport: - -Element: FlowProppantTransport -============================== -.. include:: ../../coreComponents/schema/docs/FlowProppantTransport.rst - - -.. _XML_FrictionlessContact: - -Element: FrictionlessContact -============================ -.. include:: ../../coreComponents/schema/docs/FrictionlessContact.rst - - -.. _XML_Functions: - -Element: Functions -================== -.. include:: ../../coreComponents/schema/docs/Functions.rst - - -.. _XML_Geometry: - -Element: Geometry -================= -.. include:: ../../coreComponents/schema/docs/Geometry.rst - - -.. _XML_HaltEvent: - -Element: HaltEvent -================== -.. include:: ../../coreComponents/schema/docs/HaltEvent.rst - - -.. _XML_HybridMimeticDiscretization: - -Element: HybridMimeticDiscretization -==================================== -.. include:: ../../coreComponents/schema/docs/HybridMimeticDiscretization.rst - - -.. _XML_HydraulicApertureTable: - -Element: HydraulicApertureTable -=============================== -.. include:: ../../coreComponents/schema/docs/HydraulicApertureTable.rst - - -.. _XML_Hydrofracture: - -Element: Hydrofracture -====================== -.. include:: ../../coreComponents/schema/docs/Hydrofracture.rst - - -.. _XML_HydrofractureInitialization: - -Element: HydrofractureInitialization -==================================== -.. include:: ../../coreComponents/schema/docs/HydrofractureInitialization.rst - - -.. _XML_HydrostaticEquilibrium: - -Element: HydrostaticEquilibrium -=============================== -.. include:: ../../coreComponents/schema/docs/HydrostaticEquilibrium.rst - - -.. _XML_Included: - -Element: Included -================= -.. include:: ../../coreComponents/schema/docs/Included.rst - - -.. _XML_InternalMesh: - -Element: InternalMesh -===================== -.. include:: ../../coreComponents/schema/docs/InternalMesh.rst - - -.. _XML_InternalWell: - -Element: InternalWell -===================== -.. include:: ../../coreComponents/schema/docs/InternalWell.rst - - -.. _XML_InternalWellbore: - -Element: InternalWellbore -========================= -.. include:: ../../coreComponents/schema/docs/InternalWellbore.rst - - -.. _XML_JFunctionCapillaryPressure: - -Element: JFunctionCapillaryPressure -=================================== -.. include:: ../../coreComponents/schema/docs/JFunctionCapillaryPressure.rst - - -.. _XML_LaplaceFEM: - -Element: LaplaceFEM -=================== -.. include:: ../../coreComponents/schema/docs/LaplaceFEM.rst - - -.. _XML_LinearIsotropicDispersion: - -Element: LinearIsotropicDispersion -================================== -.. include:: ../../coreComponents/schema/docs/LinearIsotropicDispersion.rst - - -.. _XML_LinearSolverParameters: - -Element: LinearSolverParameters -=============================== -.. include:: ../../coreComponents/schema/docs/LinearSolverParameters.rst - - -.. _XML_Mesh: - -Element: Mesh -============= -.. include:: ../../coreComponents/schema/docs/Mesh.rst - - -.. _XML_ModifiedCamClay: - -Element: ModifiedCamClay -======================== -.. include:: ../../coreComponents/schema/docs/ModifiedCamClay.rst - - -.. _XML_MultiPhaseConstantThermalConductivity: - -Element: MultiPhaseConstantThermalConductivity -============================================== -.. include:: ../../coreComponents/schema/docs/MultiPhaseConstantThermalConductivity.rst - - -.. _XML_MultiPhaseVolumeWeightedThermalConductivity: - -Element: MultiPhaseVolumeWeightedThermalConductivity -==================================================== -.. include:: ../../coreComponents/schema/docs/MultiPhaseVolumeWeightedThermalConductivity.rst - - -.. _XML_MultiphasePoromechanics: - -Element: MultiphasePoromechanics -================================ -.. include:: ../../coreComponents/schema/docs/MultiphasePoromechanics.rst - - -.. _XML_MultiphasePoromechanicsInitialization: - -Element: MultiphasePoromechanicsInitialization -============================================== -.. include:: ../../coreComponents/schema/docs/MultiphasePoromechanicsInitialization.rst - - -.. _XML_MultiphasePoromechanicsReservoir: - -Element: MultiphasePoromechanicsReservoir -========================================= -.. include:: ../../coreComponents/schema/docs/MultiphasePoromechanicsReservoir.rst - - -.. _XML_MultivariableTableFunction: - -Element: MultivariableTableFunction -=================================== -.. include:: ../../coreComponents/schema/docs/MultivariableTableFunction.rst - - -.. _XML_NonlinearSolverParameters: - -Element: NonlinearSolverParameters -================================== -.. include:: ../../coreComponents/schema/docs/NonlinearSolverParameters.rst - - -.. _XML_NullModel: - -Element: NullModel -================== -.. include:: ../../coreComponents/schema/docs/NullModel.rst - - -.. _XML_NumericalMethods: - -Element: NumericalMethods -========================= -.. include:: ../../coreComponents/schema/docs/NumericalMethods.rst - - -.. _XML_Outputs: - -Element: Outputs -================ -.. include:: ../../coreComponents/schema/docs/Outputs.rst - - -.. _XML_PML: - -Element: PML -============ -.. include:: ../../coreComponents/schema/docs/PML.rst - - -.. _XML_PVTDriver: - -Element: PVTDriver -================== -.. include:: ../../coreComponents/schema/docs/PVTDriver.rst - - -.. _XML_PackCollection: - -Element: PackCollection -======================= -.. include:: ../../coreComponents/schema/docs/PackCollection.rst - - -.. _XML_ParallelPlatesPermeability: - -Element: ParallelPlatesPermeability -=================================== -.. include:: ../../coreComponents/schema/docs/ParallelPlatesPermeability.rst - - -.. _XML_Parameter: - -Element: Parameter -================== -.. include:: ../../coreComponents/schema/docs/Parameter.rst - - -.. _XML_Parameters: - -Element: Parameters -=================== -.. include:: ../../coreComponents/schema/docs/Parameters.rst - - -.. _XML_ParticleFluid: - -Element: ParticleFluid -====================== -.. include:: ../../coreComponents/schema/docs/ParticleFluid.rst - - -.. _XML_ParticleMesh: - -Element: ParticleMesh -===================== -.. include:: ../../coreComponents/schema/docs/ParticleMesh.rst - - -.. _XML_ParticleRegion: - -Element: ParticleRegion -======================= -.. include:: ../../coreComponents/schema/docs/ParticleRegion.rst - - -.. _XML_ParticleRegions: - -Element: ParticleRegions -======================== -.. include:: ../../coreComponents/schema/docs/ParticleRegions.rst - - -.. _XML_PerfectlyPlastic: - -Element: PerfectlyPlastic -========================= -.. include:: ../../coreComponents/schema/docs/PerfectlyPlastic.rst - - -.. _XML_Perforation: - -Element: Perforation -==================== -.. include:: ../../coreComponents/schema/docs/Perforation.rst - - -.. _XML_PeriodicEvent: - -Element: PeriodicEvent -====================== -.. include:: ../../coreComponents/schema/docs/PeriodicEvent.rst - - -.. _XML_PhaseFieldDamageFEM: - -Element: PhaseFieldDamageFEM -============================ -.. include:: ../../coreComponents/schema/docs/PhaseFieldDamageFEM.rst - - -.. _XML_PhaseFieldFracture: - -Element: PhaseFieldFracture -=========================== -.. include:: ../../coreComponents/schema/docs/PhaseFieldFracture.rst - - -.. _XML_PorousDamageElasticIsotropic: - -Element: PorousDamageElasticIsotropic -===================================== -.. include:: ../../coreComponents/schema/docs/PorousDamageElasticIsotropic.rst - - -.. _XML_PorousDamageSpectralElasticIsotropic: - -Element: PorousDamageSpectralElasticIsotropic -============================================= -.. include:: ../../coreComponents/schema/docs/PorousDamageSpectralElasticIsotropic.rst - - -.. _XML_PorousDamageVolDevElasticIsotropic: - -Element: PorousDamageVolDevElasticIsotropic -=========================================== -.. include:: ../../coreComponents/schema/docs/PorousDamageVolDevElasticIsotropic.rst - - -.. _XML_PorousDelftEgg: - -Element: PorousDelftEgg -======================= -.. include:: ../../coreComponents/schema/docs/PorousDelftEgg.rst - - -.. _XML_PorousDruckerPrager: - -Element: PorousDruckerPrager -============================ -.. include:: ../../coreComponents/schema/docs/PorousDruckerPrager.rst - - -.. _XML_PorousElasticIsotropic: - -Element: PorousElasticIsotropic -=============================== -.. include:: ../../coreComponents/schema/docs/PorousElasticIsotropic.rst - - -.. _XML_PorousElasticOrthotropic: - -Element: PorousElasticOrthotropic -================================= -.. include:: ../../coreComponents/schema/docs/PorousElasticOrthotropic.rst - - -.. _XML_PorousElasticTransverseIsotropic: - -Element: PorousElasticTransverseIsotropic -========================================= -.. include:: ../../coreComponents/schema/docs/PorousElasticTransverseIsotropic.rst - - -.. _XML_PorousExtendedDruckerPrager: - -Element: PorousExtendedDruckerPrager -==================================== -.. include:: ../../coreComponents/schema/docs/PorousExtendedDruckerPrager.rst - - -.. _XML_PorousModifiedCamClay: - -Element: PorousModifiedCamClay -============================== -.. include:: ../../coreComponents/schema/docs/PorousModifiedCamClay.rst - - -.. _XML_PorousViscoDruckerPrager: - -Element: PorousViscoDruckerPrager -================================= -.. include:: ../../coreComponents/schema/docs/PorousViscoDruckerPrager.rst - - -.. _XML_PorousViscoExtendedDruckerPrager: - -Element: PorousViscoExtendedDruckerPrager -========================================= -.. include:: ../../coreComponents/schema/docs/PorousViscoExtendedDruckerPrager.rst - - -.. _XML_PorousViscoModifiedCamClay: - -Element: PorousViscoModifiedCamClay -=================================== -.. include:: ../../coreComponents/schema/docs/PorousViscoModifiedCamClay.rst - - -.. _XML_PressurePermeability: - -Element: PressurePermeability -============================= -.. include:: ../../coreComponents/schema/docs/PressurePermeability.rst - - -.. _XML_PressurePorosity: - -Element: PressurePorosity -========================= -.. include:: ../../coreComponents/schema/docs/PressurePorosity.rst - - -.. _XML_Problem: - -Element: Problem -================ -.. include:: ../../coreComponents/schema/docs/Problem.rst - - -.. _XML_ProppantPermeability: - -Element: ProppantPermeability -============================= -.. include:: ../../coreComponents/schema/docs/ProppantPermeability.rst - - -.. _XML_ProppantPorosity: - -Element: ProppantPorosity -========================= -.. include:: ../../coreComponents/schema/docs/ProppantPorosity.rst - - -.. _XML_ProppantSlurryFluid: - -Element: ProppantSlurryFluid -============================ -.. include:: ../../coreComponents/schema/docs/ProppantSlurryFluid.rst - - -.. _XML_ProppantSolidProppantPermeability: - -Element: ProppantSolidProppantPermeability -========================================== -.. include:: ../../coreComponents/schema/docs/ProppantSolidProppantPermeability.rst - - -.. _XML_ProppantTransport: - -Element: ProppantTransport -========================== -.. include:: ../../coreComponents/schema/docs/ProppantTransport.rst - - -.. _XML_Python: - -Element: Python -=============== -.. include:: ../../coreComponents/schema/docs/Python.rst - - -.. _XML_ReactiveBrine: - -Element: ReactiveBrine -====================== -.. include:: ../../coreComponents/schema/docs/ReactiveBrine.rst - - -.. _XML_ReactiveBrineThermal: - -Element: ReactiveBrineThermal -============================= -.. include:: ../../coreComponents/schema/docs/ReactiveBrineThermal.rst - - -.. _XML_ReactiveCompositionalMultiphaseOBL: - -Element: ReactiveCompositionalMultiphaseOBL -=========================================== -.. include:: ../../coreComponents/schema/docs/ReactiveCompositionalMultiphaseOBL.rst - - -.. _XML_ReactiveFluidDriver: - -Element: ReactiveFluidDriver -============================ -.. include:: ../../coreComponents/schema/docs/ReactiveFluidDriver.rst - - -.. _XML_Rectangle: - -Element: Rectangle -================== -.. include:: ../../coreComponents/schema/docs/Rectangle.rst - - -.. _XML_RelpermDriver: - -Element: RelpermDriver -====================== -.. include:: ../../coreComponents/schema/docs/RelpermDriver.rst - - -.. _XML_Restart: - -Element: Restart -================ -.. include:: ../../coreComponents/schema/docs/Restart.rst - - -.. _XML_Run: - -Element: Run -============ -.. include:: ../../coreComponents/schema/docs/Run.rst - - -.. _XML_SeismicityRate: - -Element: SeismicityRate -======================= -.. include:: ../../coreComponents/schema/docs/SeismicityRate.rst - - -.. _XML_Silo: - -Element: Silo -============= -.. include:: ../../coreComponents/schema/docs/Silo.rst - - -.. _XML_SinglePhaseConstantThermalConductivity: - -Element: SinglePhaseConstantThermalConductivity -=============================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseConstantThermalConductivity.rst - - -.. _XML_SinglePhaseFVM: - -Element: SinglePhaseFVM -======================= -.. include:: ../../coreComponents/schema/docs/SinglePhaseFVM.rst - - -.. _XML_SinglePhaseHybridFVM: - -Element: SinglePhaseHybridFVM -============================= -.. include:: ../../coreComponents/schema/docs/SinglePhaseHybridFVM.rst - - -.. _XML_SinglePhasePoromechanics: - -Element: SinglePhasePoromechanics -================================= -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanics.rst - - -.. _XML_SinglePhasePoromechanicsConformingFractures: - -Element: SinglePhasePoromechanicsConformingFractures -==================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsConformingFractures.rst - - -.. _XML_SinglePhasePoromechanicsConformingFracturesInitialization: - -Element: SinglePhasePoromechanicsConformingFracturesInitialization -================================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesInitialization.rst - - -.. _XML_SinglePhasePoromechanicsConformingFracturesReservoir: - -Element: SinglePhasePoromechanicsConformingFracturesReservoir -============================================================= -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesReservoir.rst - - -.. _XML_SinglePhasePoromechanicsEmbeddedFractures: - -Element: SinglePhasePoromechanicsEmbeddedFractures -================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures.rst - - -.. _XML_SinglePhasePoromechanicsEmbeddedFracturesInitialization: - -Element: SinglePhasePoromechanicsEmbeddedFracturesInitialization -================================================================ -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFracturesInitialization.rst - - -.. _XML_SinglePhasePoromechanicsInitialization: - -Element: SinglePhasePoromechanicsInitialization -=============================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsInitialization.rst - - -.. _XML_SinglePhasePoromechanicsReservoir: - -Element: SinglePhasePoromechanicsReservoir -========================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsReservoir.rst - - -.. _XML_SinglePhaseProppantFVM: - -Element: SinglePhaseProppantFVM -=============================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseProppantFVM.rst - - -.. _XML_SinglePhaseReservoir: - -Element: SinglePhaseReservoir -============================= -.. include:: ../../coreComponents/schema/docs/SinglePhaseReservoir.rst - - -.. _XML_SinglePhaseReservoirPoromechanics: - -Element: SinglePhaseReservoirPoromechanics -========================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseReservoirPoromechanics.rst - - -.. _XML_SinglePhaseReservoirPoromechanicsInitialization: - -Element: SinglePhaseReservoirPoromechanicsInitialization -======================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseReservoirPoromechanicsInitialization.rst - - -.. _XML_SinglePhaseStatistics: - -Element: SinglePhaseStatistics -============================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseStatistics.rst - - -.. _XML_SinglePhaseWell: - -Element: SinglePhaseWell -======================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseWell.rst - - -.. _XML_SlipDependentPermeability: - -Element: SlipDependentPermeability -================================== -.. include:: ../../coreComponents/schema/docs/SlipDependentPermeability.rst - - -.. _XML_SolidInternalEnergy: - -Element: SolidInternalEnergy -============================ -.. include:: ../../coreComponents/schema/docs/SolidInternalEnergy.rst - - -.. _XML_SolidMechanicsAugmentedLagrangianContact: - -Element: SolidMechanicsAugmentedLagrangianContact -================================================= -.. include:: ../../coreComponents/schema/docs/SolidMechanicsAugmentedLagrangianContact.rst - - -.. _XML_SolidMechanicsEmbeddedFractures: - -Element: SolidMechanicsEmbeddedFractures -======================================== -.. include:: ../../coreComponents/schema/docs/SolidMechanicsEmbeddedFractures.rst - - -.. _XML_SolidMechanicsLagrangeContact: - -Element: SolidMechanicsLagrangeContact -====================================== -.. include:: ../../coreComponents/schema/docs/SolidMechanicsLagrangeContact.rst - - -.. _XML_SolidMechanicsLagrangianSSLE: - -Element: SolidMechanicsLagrangianSSLE -===================================== -.. include:: ../../coreComponents/schema/docs/SolidMechanicsLagrangianSSLE.rst - - -.. _XML_SolidMechanicsStateReset: - -Element: SolidMechanicsStateReset -================================= -.. include:: ../../coreComponents/schema/docs/SolidMechanicsStateReset.rst - - -.. _XML_SolidMechanicsStatistics: - -Element: SolidMechanicsStatistics -================================= -.. include:: ../../coreComponents/schema/docs/SolidMechanicsStatistics.rst - - -.. _XML_SolidMechanics_LagrangianFEM: - -Element: SolidMechanics_LagrangianFEM -===================================== -.. include:: ../../coreComponents/schema/docs/SolidMechanics_LagrangianFEM.rst - - -.. _XML_SolidMechanics_MPM: - -Element: SolidMechanics_MPM -=========================== -.. include:: ../../coreComponents/schema/docs/SolidMechanics_MPM.rst - - -.. _XML_SoloEvent: - -Element: SoloEvent -================== -.. include:: ../../coreComponents/schema/docs/SoloEvent.rst - - -.. _XML_Solvers: - -Element: Solvers -================ -.. include:: ../../coreComponents/schema/docs/Solvers.rst - - -.. _XML_SourceFlux: - -Element: SourceFlux -=================== -.. include:: ../../coreComponents/schema/docs/SourceFlux.rst - - -.. _XML_SourceFluxStatistics: - -Element: SourceFluxStatistics -============================= -.. include:: ../../coreComponents/schema/docs/SourceFluxStatistics.rst - - -.. _XML_SurfaceElementRegion: - -Element: SurfaceElementRegion -============================= -.. include:: ../../coreComponents/schema/docs/SurfaceElementRegion.rst - - -.. _XML_SurfaceGenerator: - -Element: SurfaceGenerator -========================= -.. include:: ../../coreComponents/schema/docs/SurfaceGenerator.rst - - -.. _XML_SymbolicFunction: - -Element: SymbolicFunction -========================= -.. include:: ../../coreComponents/schema/docs/SymbolicFunction.rst - - -.. _XML_TableCapillaryPressure: - -Element: TableCapillaryPressure -=============================== -.. include:: ../../coreComponents/schema/docs/TableCapillaryPressure.rst - - -.. _XML_TableFunction: - -Element: TableFunction -====================== -.. include:: ../../coreComponents/schema/docs/TableFunction.rst - - -.. _XML_TableRelativePermeability: - -Element: TableRelativePermeability -================================== -.. include:: ../../coreComponents/schema/docs/TableRelativePermeability.rst - - -.. _XML_TableRelativePermeabilityHysteresis: - -Element: TableRelativePermeabilityHysteresis -============================================ -.. include:: ../../coreComponents/schema/docs/TableRelativePermeabilityHysteresis.rst - - -.. _XML_Tasks: - -Element: Tasks -============== -.. include:: ../../coreComponents/schema/docs/Tasks.rst - - -.. _XML_ThermalCompressibleSinglePhaseFluid: - -Element: ThermalCompressibleSinglePhaseFluid -============================================ -.. include:: ../../coreComponents/schema/docs/ThermalCompressibleSinglePhaseFluid.rst - - -.. _XML_ThickPlane: - -Element: ThickPlane -=================== -.. include:: ../../coreComponents/schema/docs/ThickPlane.rst - - -.. _XML_TimeHistory: - -Element: TimeHistory -==================== -.. include:: ../../coreComponents/schema/docs/TimeHistory.rst - - -.. _XML_Traction: - -Element: Traction -================= -.. include:: ../../coreComponents/schema/docs/Traction.rst - - -.. _XML_TriaxialDriver: - -Element: TriaxialDriver -======================= -.. include:: ../../coreComponents/schema/docs/TriaxialDriver.rst - - -.. _XML_TwoPointFluxApproximation: - -Element: TwoPointFluxApproximation -================================== -.. include:: ../../coreComponents/schema/docs/TwoPointFluxApproximation.rst - - -.. _XML_VTK: - -Element: VTK -============ -.. include:: ../../coreComponents/schema/docs/VTK.rst - - -.. _XML_VTKMesh: - -Element: VTKMesh -================ -.. include:: ../../coreComponents/schema/docs/VTKMesh.rst - - -.. _XML_VTKWell: - -Element: VTKWell -================ -.. include:: ../../coreComponents/schema/docs/VTKWell.rst - - -.. _XML_VanGenuchtenBakerRelativePermeability: - -Element: VanGenuchtenBakerRelativePermeability -============================================== -.. include:: ../../coreComponents/schema/docs/VanGenuchtenBakerRelativePermeability.rst - - -.. _XML_VanGenuchtenCapillaryPressure: - -Element: VanGenuchtenCapillaryPressure -====================================== -.. include:: ../../coreComponents/schema/docs/VanGenuchtenCapillaryPressure.rst - - -.. _XML_VanGenuchtenStone2RelativePermeability: - -Element: VanGenuchtenStone2RelativePermeability -=============================================== -.. include:: ../../coreComponents/schema/docs/VanGenuchtenStone2RelativePermeability.rst - - -.. _XML_ViscoDruckerPrager: - -Element: ViscoDruckerPrager -=========================== -.. include:: ../../coreComponents/schema/docs/ViscoDruckerPrager.rst - - -.. _XML_ViscoExtendedDruckerPrager: - -Element: ViscoExtendedDruckerPrager -=================================== -.. include:: ../../coreComponents/schema/docs/ViscoExtendedDruckerPrager.rst - - -.. _XML_ViscoModifiedCamClay: - -Element: ViscoModifiedCamClay -============================= -.. include:: ../../coreComponents/schema/docs/ViscoModifiedCamClay.rst - - -.. _XML_WellControls: - -Element: WellControls -===================== -.. include:: ../../coreComponents/schema/docs/WellControls.rst - - -.. _XML_WellElementRegion: - -Element: WellElementRegion -========================== -.. include:: ../../coreComponents/schema/docs/WellElementRegion.rst - - -.. _XML_WillisRichardsPermeability: - -Element: WillisRichardsPermeability -=================================== -.. include:: ../../coreComponents/schema/docs/WillisRichardsPermeability.rst - - -.. _XML_crusher: - -Element: crusher -================ -.. include:: ../../coreComponents/schema/docs/crusher.rst - - -.. _XML_lassen: - -Element: lassen -=============== -.. include:: ../../coreComponents/schema/docs/lassen.rst - - -.. _XML_quartz: - -Element: quartz -=============== -.. include:: ../../coreComponents/schema/docs/quartz.rst - -******************************** -Datastructure Definitions -******************************** - - -.. _DATASTRUCTURE_AcousticElasticSEM: - -Datastructure: AcousticElasticSEM -================================= -.. include:: ../../coreComponents/schema/docs/AcousticElasticSEM_other.rst - - -.. _DATASTRUCTURE_AcousticFirstOrderSEM: - -Datastructure: AcousticFirstOrderSEM -==================================== -.. include:: ../../coreComponents/schema/docs/AcousticFirstOrderSEM_other.rst - - -.. _DATASTRUCTURE_AcousticSEM: - -Datastructure: AcousticSEM -========================== -.. include:: ../../coreComponents/schema/docs/AcousticSEM_other.rst - - -.. _DATASTRUCTURE_AcousticVTISEM: - -Datastructure: AcousticVTISEM -============================= -.. include:: ../../coreComponents/schema/docs/AcousticVTISEM_other.rst - - -.. _DATASTRUCTURE_Aquifer: - -Datastructure: Aquifer -====================== -.. include:: ../../coreComponents/schema/docs/Aquifer_other.rst - - -.. _DATASTRUCTURE_Benchmarks: - -Datastructure: Benchmarks -========================= -.. include:: ../../coreComponents/schema/docs/Benchmarks_other.rst - - -.. _DATASTRUCTURE_BiotPorosity: - -Datastructure: BiotPorosity -=========================== -.. include:: ../../coreComponents/schema/docs/BiotPorosity_other.rst - - -.. _DATASTRUCTURE_BlackOilFluid: - -Datastructure: BlackOilFluid -============================ -.. include:: ../../coreComponents/schema/docs/BlackOilFluid_other.rst - - -.. _DATASTRUCTURE_Blueprint: - -Datastructure: Blueprint -======================== -.. include:: ../../coreComponents/schema/docs/Blueprint_other.rst - - -.. _DATASTRUCTURE_Box: - -Datastructure: Box -================== -.. include:: ../../coreComponents/schema/docs/Box_other.rst - - -.. _DATASTRUCTURE_BrooksCoreyBakerRelativePermeability: - -Datastructure: BrooksCoreyBakerRelativePermeability -=================================================== -.. include:: ../../coreComponents/schema/docs/BrooksCoreyBakerRelativePermeability_other.rst - - -.. _DATASTRUCTURE_BrooksCoreyCapillaryPressure: - -Datastructure: BrooksCoreyCapillaryPressure -=========================================== -.. include:: ../../coreComponents/schema/docs/BrooksCoreyCapillaryPressure_other.rst - - -.. _DATASTRUCTURE_BrooksCoreyRelativePermeability: - -Datastructure: BrooksCoreyRelativePermeability -============================================== -.. include:: ../../coreComponents/schema/docs/BrooksCoreyRelativePermeability_other.rst - - -.. _DATASTRUCTURE_BrooksCoreyStone2RelativePermeability: - -Datastructure: BrooksCoreyStone2RelativePermeability -==================================================== -.. include:: ../../coreComponents/schema/docs/BrooksCoreyStone2RelativePermeability_other.rst - - -.. _DATASTRUCTURE_CO2BrineEzrokhiFluid: - -Datastructure: CO2BrineEzrokhiFluid -=================================== -.. include:: ../../coreComponents/schema/docs/CO2BrineEzrokhiFluid_other.rst - - -.. _DATASTRUCTURE_CO2BrineEzrokhiThermalFluid: - -Datastructure: CO2BrineEzrokhiThermalFluid -========================================== -.. include:: ../../coreComponents/schema/docs/CO2BrineEzrokhiThermalFluid_other.rst - - -.. _DATASTRUCTURE_CO2BrinePhillipsFluid: - -Datastructure: CO2BrinePhillipsFluid -==================================== -.. include:: ../../coreComponents/schema/docs/CO2BrinePhillipsFluid_other.rst - - -.. _DATASTRUCTURE_CO2BrinePhillipsThermalFluid: - -Datastructure: CO2BrinePhillipsThermalFluid -=========================================== -.. include:: ../../coreComponents/schema/docs/CO2BrinePhillipsThermalFluid_other.rst - - -.. _DATASTRUCTURE_CarmanKozenyPermeability: - -Datastructure: CarmanKozenyPermeability -======================================= -.. include:: ../../coreComponents/schema/docs/CarmanKozenyPermeability_other.rst - - -.. _DATASTRUCTURE_CellElementRegion: - -Datastructure: CellElementRegion -================================ -.. include:: ../../coreComponents/schema/docs/CellElementRegion_other.rst - - -.. _DATASTRUCTURE_CellToCellDataCollection: - -Datastructure: CellToCellDataCollection -======================================= -.. include:: ../../coreComponents/schema/docs/CellToCellDataCollection_other.rst - - -.. _DATASTRUCTURE_CeramicDamage: - -Datastructure: CeramicDamage -============================ -.. include:: ../../coreComponents/schema/docs/CeramicDamage_other.rst - - -.. _DATASTRUCTURE_ChomboIO: - -Datastructure: ChomboIO -======================= -.. include:: ../../coreComponents/schema/docs/ChomboIO_other.rst - - -.. _DATASTRUCTURE_CompositeFunction: - -Datastructure: CompositeFunction -================================ -.. include:: ../../coreComponents/schema/docs/CompositeFunction_other.rst - - -.. _DATASTRUCTURE_CompositionalMultiphaseFVM: - -Datastructure: CompositionalMultiphaseFVM -========================================= -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst - - -.. _DATASTRUCTURE_CompositionalMultiphaseFluid: - -Datastructure: CompositionalMultiphaseFluid -=========================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseFluid_other.rst - - -.. _DATASTRUCTURE_CompositionalMultiphaseHybridFVM: - -Datastructure: CompositionalMultiphaseHybridFVM -=============================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst - - -.. _DATASTRUCTURE_CompositionalMultiphaseReservoir: - -Datastructure: CompositionalMultiphaseReservoir -=============================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst - - -.. _DATASTRUCTURE_CompositionalMultiphaseReservoirPoromechanics: - -Datastructure: CompositionalMultiphaseReservoirPoromechanics -============================================================ -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanics_other.rst - - -.. _DATASTRUCTURE_CompositionalMultiphaseReservoirPoromechanicsInitialization: - -Datastructure: CompositionalMultiphaseReservoirPoromechanicsInitialization -========================================================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseReservoirPoromechanicsInitialization_other.rst - - -.. _DATASTRUCTURE_CompositionalMultiphaseStatistics: - -Datastructure: CompositionalMultiphaseStatistics -================================================ -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseStatistics_other.rst - - -.. _DATASTRUCTURE_CompositionalMultiphaseWell: - -Datastructure: CompositionalMultiphaseWell -========================================== -.. include:: ../../coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst - - -.. _DATASTRUCTURE_CompositionalTwoPhaseFluid: - -Datastructure: CompositionalTwoPhaseFluid -========================================= -.. include:: ../../coreComponents/schema/docs/CompositionalTwoPhaseFluid_other.rst - - -.. _DATASTRUCTURE_CompositionalTwoPhaseFluidLohrenzBrayClark: - -Datastructure: CompositionalTwoPhaseFluidLohrenzBrayClark -========================================================= -.. include:: ../../coreComponents/schema/docs/CompositionalTwoPhaseFluidLohrenzBrayClark_other.rst - - -.. _DATASTRUCTURE_CompressibleSinglePhaseFluid: - -Datastructure: CompressibleSinglePhaseFluid -=========================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSinglePhaseFluid_other.rst - - -.. _DATASTRUCTURE_CompressibleSolidCarmanKozenyPermeability: - -Datastructure: CompressibleSolidCarmanKozenyPermeability -======================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidCarmanKozenyPermeability_other.rst - - -.. _DATASTRUCTURE_CompressibleSolidConstantPermeability: - -Datastructure: CompressibleSolidConstantPermeability -==================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidConstantPermeability_other.rst - - -.. _DATASTRUCTURE_CompressibleSolidExponentialDecayPermeability: - -Datastructure: CompressibleSolidExponentialDecayPermeability -============================================================ -.. include:: ../../coreComponents/schema/docs/CompressibleSolidExponentialDecayPermeability_other.rst - - -.. _DATASTRUCTURE_CompressibleSolidParallelPlatesPermeability: - -Datastructure: CompressibleSolidParallelPlatesPermeability -========================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidParallelPlatesPermeability_other.rst - - -.. _DATASTRUCTURE_CompressibleSolidPressurePermeability: - -Datastructure: CompressibleSolidPressurePermeability -==================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidPressurePermeability_other.rst - - -.. _DATASTRUCTURE_CompressibleSolidSlipDependentPermeability: - -Datastructure: CompressibleSolidSlipDependentPermeability -========================================================= -.. include:: ../../coreComponents/schema/docs/CompressibleSolidSlipDependentPermeability_other.rst - - -.. _DATASTRUCTURE_CompressibleSolidWillisRichardsPermeability: - -Datastructure: CompressibleSolidWillisRichardsPermeability -========================================================== -.. include:: ../../coreComponents/schema/docs/CompressibleSolidWillisRichardsPermeability_other.rst - - -.. _DATASTRUCTURE_ConstantDiffusion: - -Datastructure: ConstantDiffusion -================================ -.. include:: ../../coreComponents/schema/docs/ConstantDiffusion_other.rst - - -.. _DATASTRUCTURE_ConstantPermeability: - -Datastructure: ConstantPermeability -=================================== -.. include:: ../../coreComponents/schema/docs/ConstantPermeability_other.rst - - -.. _DATASTRUCTURE_Constitutive: - -Datastructure: Constitutive -=========================== -.. include:: ../../coreComponents/schema/docs/Constitutive_other.rst - - -.. _DATASTRUCTURE_ConstitutiveModels: - -Datastructure: ConstitutiveModels -================================= -.. include:: ../../coreComponents/schema/docs/ConstitutiveModels_other.rst - - -.. _DATASTRUCTURE_Coulomb: - -Datastructure: Coulomb -====================== -.. include:: ../../coreComponents/schema/docs/Coulomb_other.rst - - -.. _DATASTRUCTURE_CustomPolarObject: - -Datastructure: CustomPolarObject -================================ -.. include:: ../../coreComponents/schema/docs/CustomPolarObject_other.rst - - -.. _DATASTRUCTURE_Cylinder: - -Datastructure: Cylinder -======================= -.. include:: ../../coreComponents/schema/docs/Cylinder_other.rst - - -.. _DATASTRUCTURE_DamageElasticIsotropic: - -Datastructure: DamageElasticIsotropic -===================================== -.. include:: ../../coreComponents/schema/docs/DamageElasticIsotropic_other.rst - - -.. _DATASTRUCTURE_DamageSpectralElasticIsotropic: - -Datastructure: DamageSpectralElasticIsotropic -============================================= -.. include:: ../../coreComponents/schema/docs/DamageSpectralElasticIsotropic_other.rst - - -.. _DATASTRUCTURE_DamageVolDevElasticIsotropic: - -Datastructure: DamageVolDevElasticIsotropic -=========================================== -.. include:: ../../coreComponents/schema/docs/DamageVolDevElasticIsotropic_other.rst - - -.. _DATASTRUCTURE_DeadOilFluid: - -Datastructure: DeadOilFluid -=========================== -.. include:: ../../coreComponents/schema/docs/DeadOilFluid_other.rst - - -.. _DATASTRUCTURE_DelftEgg: - -Datastructure: DelftEgg -======================= -.. include:: ../../coreComponents/schema/docs/DelftEgg_other.rst - - -.. _DATASTRUCTURE_Dirichlet: - -Datastructure: Dirichlet -======================== -.. include:: ../../coreComponents/schema/docs/Dirichlet_other.rst - - -.. _DATASTRUCTURE_Disc: - -Datastructure: Disc -=================== -.. include:: ../../coreComponents/schema/docs/Disc_other.rst - - -.. _DATASTRUCTURE_DruckerPrager: - -Datastructure: DruckerPrager -============================ -.. include:: ../../coreComponents/schema/docs/DruckerPrager_other.rst - - -.. _DATASTRUCTURE_ElasticFirstOrderSEM: - -Datastructure: ElasticFirstOrderSEM -=================================== -.. include:: ../../coreComponents/schema/docs/ElasticFirstOrderSEM_other.rst - - -.. _DATASTRUCTURE_ElasticIsotropic: - -Datastructure: ElasticIsotropic -=============================== -.. include:: ../../coreComponents/schema/docs/ElasticIsotropic_other.rst - - -.. _DATASTRUCTURE_ElasticIsotropicPressureDependent: - -Datastructure: ElasticIsotropicPressureDependent -================================================ -.. include:: ../../coreComponents/schema/docs/ElasticIsotropicPressureDependent_other.rst - - -.. _DATASTRUCTURE_ElasticOrthotropic: - -Datastructure: ElasticOrthotropic -================================= -.. include:: ../../coreComponents/schema/docs/ElasticOrthotropic_other.rst - - -.. _DATASTRUCTURE_ElasticSEM: - -Datastructure: ElasticSEM -========================= -.. include:: ../../coreComponents/schema/docs/ElasticSEM_other.rst - - -.. _DATASTRUCTURE_ElasticTransverseIsotropic: - -Datastructure: ElasticTransverseIsotropic -========================================= -.. include:: ../../coreComponents/schema/docs/ElasticTransverseIsotropic_other.rst - - -.. _DATASTRUCTURE_ElementRegions: - -Datastructure: ElementRegions -============================= -.. include:: ../../coreComponents/schema/docs/ElementRegions_other.rst - - -.. _DATASTRUCTURE_EmbeddedSurfaceGenerator: - -Datastructure: EmbeddedSurfaceGenerator -======================================= -.. include:: ../../coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst - - -.. _DATASTRUCTURE_Events: - -Datastructure: Events -===================== -.. include:: ../../coreComponents/schema/docs/Events_other.rst - - -.. _DATASTRUCTURE_ExponentialDecayPermeability: - -Datastructure: ExponentialDecayPermeability -=========================================== -.. include:: ../../coreComponents/schema/docs/ExponentialDecayPermeability_other.rst - - -.. _DATASTRUCTURE_ExtendedDruckerPrager: - -Datastructure: ExtendedDruckerPrager -==================================== -.. include:: ../../coreComponents/schema/docs/ExtendedDruckerPrager_other.rst - - -.. _DATASTRUCTURE_FieldSpecification: - -Datastructure: FieldSpecification -================================= -.. include:: ../../coreComponents/schema/docs/FieldSpecification_other.rst - - -.. _DATASTRUCTURE_FieldSpecifications: - -Datastructure: FieldSpecifications -================================== -.. include:: ../../coreComponents/schema/docs/FieldSpecifications_other.rst - - -.. _DATASTRUCTURE_File: - -Datastructure: File -=================== -.. include:: ../../coreComponents/schema/docs/File_other.rst - - -.. _DATASTRUCTURE_FiniteElementSpace: - -Datastructure: FiniteElementSpace -================================= -.. include:: ../../coreComponents/schema/docs/FiniteElementSpace_other.rst - - -.. _DATASTRUCTURE_FiniteElements: - -Datastructure: FiniteElements -============================= -.. include:: ../../coreComponents/schema/docs/FiniteElements_other.rst - - -.. _DATASTRUCTURE_FiniteVolume: - -Datastructure: FiniteVolume -=========================== -.. include:: ../../coreComponents/schema/docs/FiniteVolume_other.rst - - -.. _DATASTRUCTURE_FlowProppantTransport: - -Datastructure: FlowProppantTransport -==================================== -.. include:: ../../coreComponents/schema/docs/FlowProppantTransport_other.rst - - -.. _DATASTRUCTURE_FrictionlessContact: - -Datastructure: FrictionlessContact -================================== -.. include:: ../../coreComponents/schema/docs/FrictionlessContact_other.rst - - -.. _DATASTRUCTURE_Functions: - -Datastructure: Functions -======================== -.. include:: ../../coreComponents/schema/docs/Functions_other.rst - - -.. _DATASTRUCTURE_Geometry: - -Datastructure: Geometry -======================= -.. include:: ../../coreComponents/schema/docs/Geometry_other.rst - - -.. _DATASTRUCTURE_HaltEvent: - -Datastructure: HaltEvent -======================== -.. include:: ../../coreComponents/schema/docs/HaltEvent_other.rst - - -.. _DATASTRUCTURE_HybridMimeticDiscretization: - -Datastructure: HybridMimeticDiscretization -========================================== -.. include:: ../../coreComponents/schema/docs/HybridMimeticDiscretization_other.rst - - -.. _DATASTRUCTURE_HydraulicApertureTable: - -Datastructure: HydraulicApertureTable -===================================== -.. include:: ../../coreComponents/schema/docs/HydraulicApertureTable_other.rst - - -.. _DATASTRUCTURE_Hydrofracture: - -Datastructure: Hydrofracture -============================ -.. include:: ../../coreComponents/schema/docs/Hydrofracture_other.rst - - -.. _DATASTRUCTURE_HydrofractureInitialization: - -Datastructure: HydrofractureInitialization -========================================== -.. include:: ../../coreComponents/schema/docs/HydrofractureInitialization_other.rst - - -.. _DATASTRUCTURE_HydrostaticEquilibrium: - -Datastructure: HydrostaticEquilibrium -===================================== -.. include:: ../../coreComponents/schema/docs/HydrostaticEquilibrium_other.rst - - -.. _DATASTRUCTURE_Included: - -Datastructure: Included -======================= -.. include:: ../../coreComponents/schema/docs/Included_other.rst - - -.. _DATASTRUCTURE_InternalMesh: - -Datastructure: InternalMesh -=========================== -.. include:: ../../coreComponents/schema/docs/InternalMesh_other.rst - - -.. _DATASTRUCTURE_InternalWell: - -Datastructure: InternalWell -=========================== -.. include:: ../../coreComponents/schema/docs/InternalWell_other.rst - - -.. _DATASTRUCTURE_InternalWellbore: - -Datastructure: InternalWellbore -=============================== -.. include:: ../../coreComponents/schema/docs/InternalWellbore_other.rst - - -.. _DATASTRUCTURE_JFunctionCapillaryPressure: - -Datastructure: JFunctionCapillaryPressure -========================================= -.. include:: ../../coreComponents/schema/docs/JFunctionCapillaryPressure_other.rst - - -.. _DATASTRUCTURE_LaplaceFEM: - -Datastructure: LaplaceFEM -========================= -.. include:: ../../coreComponents/schema/docs/LaplaceFEM_other.rst - - -.. _DATASTRUCTURE_Level0: - -Datastructure: Level0 -===================== -.. include:: ../../coreComponents/schema/docs/Level0_other.rst - - -.. _DATASTRUCTURE_LinearIsotropicDispersion: - -Datastructure: LinearIsotropicDispersion -======================================== -.. include:: ../../coreComponents/schema/docs/LinearIsotropicDispersion_other.rst - - -.. _DATASTRUCTURE_LinearSolverParameters: - -Datastructure: LinearSolverParameters -===================================== -.. include:: ../../coreComponents/schema/docs/LinearSolverParameters_other.rst - - -.. _DATASTRUCTURE_Mesh: - -Datastructure: Mesh -=================== -.. include:: ../../coreComponents/schema/docs/Mesh_other.rst - - -.. _DATASTRUCTURE_MeshBodies: - -Datastructure: MeshBodies -========================= -.. include:: ../../coreComponents/schema/docs/MeshBodies_other.rst - - -.. _DATASTRUCTURE_ModifiedCamClay: - -Datastructure: ModifiedCamClay -============================== -.. include:: ../../coreComponents/schema/docs/ModifiedCamClay_other.rst - - -.. _DATASTRUCTURE_MultiPhaseConstantThermalConductivity: - -Datastructure: MultiPhaseConstantThermalConductivity -==================================================== -.. include:: ../../coreComponents/schema/docs/MultiPhaseConstantThermalConductivity_other.rst - - -.. _DATASTRUCTURE_MultiPhaseVolumeWeightedThermalConductivity: - -Datastructure: MultiPhaseVolumeWeightedThermalConductivity -========================================================== -.. include:: ../../coreComponents/schema/docs/MultiPhaseVolumeWeightedThermalConductivity_other.rst - - -.. _DATASTRUCTURE_MultiphasePoromechanics: - -Datastructure: MultiphasePoromechanics -====================================== -.. include:: ../../coreComponents/schema/docs/MultiphasePoromechanics_other.rst - - -.. _DATASTRUCTURE_MultiphasePoromechanicsInitialization: - -Datastructure: MultiphasePoromechanicsInitialization -==================================================== -.. include:: ../../coreComponents/schema/docs/MultiphasePoromechanicsInitialization_other.rst - - -.. _DATASTRUCTURE_MultiphasePoromechanicsReservoir: - -Datastructure: MultiphasePoromechanicsReservoir -=============================================== -.. include:: ../../coreComponents/schema/docs/MultiphasePoromechanicsReservoir_other.rst - - -.. _DATASTRUCTURE_MultivariableTableFunction: - -Datastructure: MultivariableTableFunction -========================================= -.. include:: ../../coreComponents/schema/docs/MultivariableTableFunction_other.rst - - -.. _DATASTRUCTURE_NonlinearSolverParameters: - -Datastructure: NonlinearSolverParameters -======================================== -.. include:: ../../coreComponents/schema/docs/NonlinearSolverParameters_other.rst - - -.. _DATASTRUCTURE_NullModel: - -Datastructure: NullModel -======================== -.. include:: ../../coreComponents/schema/docs/NullModel_other.rst - - -.. _DATASTRUCTURE_NumericalMethods: - -Datastructure: NumericalMethods -=============================== -.. include:: ../../coreComponents/schema/docs/NumericalMethods_other.rst - - -.. _DATASTRUCTURE_Outputs: - -Datastructure: Outputs -====================== -.. include:: ../../coreComponents/schema/docs/Outputs_other.rst - - -.. _DATASTRUCTURE_PML: - -Datastructure: PML -================== -.. include:: ../../coreComponents/schema/docs/PML_other.rst - - -.. _DATASTRUCTURE_PVTDriver: - -Datastructure: PVTDriver -======================== -.. include:: ../../coreComponents/schema/docs/PVTDriver_other.rst - - -.. _DATASTRUCTURE_PackCollection: - -Datastructure: PackCollection -============================= -.. include:: ../../coreComponents/schema/docs/PackCollection_other.rst - - -.. _DATASTRUCTURE_ParallelPlatesPermeability: - -Datastructure: ParallelPlatesPermeability -========================================= -.. include:: ../../coreComponents/schema/docs/ParallelPlatesPermeability_other.rst - - -.. _DATASTRUCTURE_Parameter: - -Datastructure: Parameter -======================== -.. include:: ../../coreComponents/schema/docs/Parameter_other.rst - - -.. _DATASTRUCTURE_Parameters: - -Datastructure: Parameters -========================= -.. include:: ../../coreComponents/schema/docs/Parameters_other.rst - - -.. _DATASTRUCTURE_ParticleFluid: - -Datastructure: ParticleFluid -============================ -.. include:: ../../coreComponents/schema/docs/ParticleFluid_other.rst - - -.. _DATASTRUCTURE_ParticleMesh: - -Datastructure: ParticleMesh -=========================== -.. include:: ../../coreComponents/schema/docs/ParticleMesh_other.rst - - -.. _DATASTRUCTURE_ParticleRegion: - -Datastructure: ParticleRegion -============================= -.. include:: ../../coreComponents/schema/docs/ParticleRegion_other.rst - - -.. _DATASTRUCTURE_ParticleRegions: - -Datastructure: ParticleRegions -============================== -.. include:: ../../coreComponents/schema/docs/ParticleRegions_other.rst - - -.. _DATASTRUCTURE_PerfectlyPlastic: - -Datastructure: PerfectlyPlastic -=============================== -.. include:: ../../coreComponents/schema/docs/PerfectlyPlastic_other.rst - - -.. _DATASTRUCTURE_Perforation: - -Datastructure: Perforation -========================== -.. include:: ../../coreComponents/schema/docs/Perforation_other.rst - - -.. _DATASTRUCTURE_PeriodicEvent: - -Datastructure: PeriodicEvent -============================ -.. include:: ../../coreComponents/schema/docs/PeriodicEvent_other.rst - - -.. _DATASTRUCTURE_PhaseFieldDamageFEM: - -Datastructure: PhaseFieldDamageFEM -================================== -.. include:: ../../coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst - - -.. _DATASTRUCTURE_PhaseFieldFracture: - -Datastructure: PhaseFieldFracture -================================= -.. include:: ../../coreComponents/schema/docs/PhaseFieldFracture_other.rst - - -.. _DATASTRUCTURE_PorousDamageElasticIsotropic: - -Datastructure: PorousDamageElasticIsotropic -=========================================== -.. include:: ../../coreComponents/schema/docs/PorousDamageElasticIsotropic_other.rst - - -.. _DATASTRUCTURE_PorousDamageSpectralElasticIsotropic: - -Datastructure: PorousDamageSpectralElasticIsotropic -=================================================== -.. include:: ../../coreComponents/schema/docs/PorousDamageSpectralElasticIsotropic_other.rst - - -.. _DATASTRUCTURE_PorousDamageVolDevElasticIsotropic: - -Datastructure: PorousDamageVolDevElasticIsotropic -================================================= -.. include:: ../../coreComponents/schema/docs/PorousDamageVolDevElasticIsotropic_other.rst - - -.. _DATASTRUCTURE_PorousDelftEgg: - -Datastructure: PorousDelftEgg -============================= -.. include:: ../../coreComponents/schema/docs/PorousDelftEgg_other.rst - - -.. _DATASTRUCTURE_PorousDruckerPrager: - -Datastructure: PorousDruckerPrager -================================== -.. include:: ../../coreComponents/schema/docs/PorousDruckerPrager_other.rst - - -.. _DATASTRUCTURE_PorousElasticIsotropic: - -Datastructure: PorousElasticIsotropic -===================================== -.. include:: ../../coreComponents/schema/docs/PorousElasticIsotropic_other.rst - - -.. _DATASTRUCTURE_PorousElasticOrthotropic: - -Datastructure: PorousElasticOrthotropic -======================================= -.. include:: ../../coreComponents/schema/docs/PorousElasticOrthotropic_other.rst - - -.. _DATASTRUCTURE_PorousElasticTransverseIsotropic: - -Datastructure: PorousElasticTransverseIsotropic -=============================================== -.. include:: ../../coreComponents/schema/docs/PorousElasticTransverseIsotropic_other.rst - - -.. _DATASTRUCTURE_PorousExtendedDruckerPrager: - -Datastructure: PorousExtendedDruckerPrager -========================================== -.. include:: ../../coreComponents/schema/docs/PorousExtendedDruckerPrager_other.rst - - -.. _DATASTRUCTURE_PorousModifiedCamClay: - -Datastructure: PorousModifiedCamClay -==================================== -.. include:: ../../coreComponents/schema/docs/PorousModifiedCamClay_other.rst - - -.. _DATASTRUCTURE_PorousViscoDruckerPrager: - -Datastructure: PorousViscoDruckerPrager -======================================= -.. include:: ../../coreComponents/schema/docs/PorousViscoDruckerPrager_other.rst - - -.. _DATASTRUCTURE_PorousViscoExtendedDruckerPrager: - -Datastructure: PorousViscoExtendedDruckerPrager -=============================================== -.. include:: ../../coreComponents/schema/docs/PorousViscoExtendedDruckerPrager_other.rst - - -.. _DATASTRUCTURE_PorousViscoModifiedCamClay: - -Datastructure: PorousViscoModifiedCamClay -========================================= -.. include:: ../../coreComponents/schema/docs/PorousViscoModifiedCamClay_other.rst - - -.. _DATASTRUCTURE_PressurePermeability: - -Datastructure: PressurePermeability -=================================== -.. include:: ../../coreComponents/schema/docs/PressurePermeability_other.rst - - -.. _DATASTRUCTURE_PressurePorosity: - -Datastructure: PressurePorosity -=============================== -.. include:: ../../coreComponents/schema/docs/PressurePorosity_other.rst - - -.. _DATASTRUCTURE_Problem: - -Datastructure: Problem -====================== -.. include:: ../../coreComponents/schema/docs/Problem_other.rst - - -.. _DATASTRUCTURE_ProppantPermeability: - -Datastructure: ProppantPermeability -=================================== -.. include:: ../../coreComponents/schema/docs/ProppantPermeability_other.rst - - -.. _DATASTRUCTURE_ProppantPorosity: - -Datastructure: ProppantPorosity -=============================== -.. include:: ../../coreComponents/schema/docs/ProppantPorosity_other.rst - - -.. _DATASTRUCTURE_ProppantSlurryFluid: - -Datastructure: ProppantSlurryFluid -================================== -.. include:: ../../coreComponents/schema/docs/ProppantSlurryFluid_other.rst - - -.. _DATASTRUCTURE_ProppantSolidProppantPermeability: - -Datastructure: ProppantSolidProppantPermeability -================================================ -.. include:: ../../coreComponents/schema/docs/ProppantSolidProppantPermeability_other.rst - - -.. _DATASTRUCTURE_ProppantTransport: - -Datastructure: ProppantTransport -================================ -.. include:: ../../coreComponents/schema/docs/ProppantTransport_other.rst - - -.. _DATASTRUCTURE_Python: - -Datastructure: Python -===================== -.. include:: ../../coreComponents/schema/docs/Python_other.rst - - -.. _DATASTRUCTURE_ReactiveBrine: - -Datastructure: ReactiveBrine -============================ -.. include:: ../../coreComponents/schema/docs/ReactiveBrine_other.rst - - -.. _DATASTRUCTURE_ReactiveBrineThermal: - -Datastructure: ReactiveBrineThermal -=================================== -.. include:: ../../coreComponents/schema/docs/ReactiveBrineThermal_other.rst - - -.. _DATASTRUCTURE_ReactiveCompositionalMultiphaseOBL: - -Datastructure: ReactiveCompositionalMultiphaseOBL -================================================= -.. include:: ../../coreComponents/schema/docs/ReactiveCompositionalMultiphaseOBL_other.rst - - -.. _DATASTRUCTURE_ReactiveFluidDriver: - -Datastructure: ReactiveFluidDriver -================================== -.. include:: ../../coreComponents/schema/docs/ReactiveFluidDriver_other.rst - - -.. _DATASTRUCTURE_Rectangle: - -Datastructure: Rectangle -======================== -.. include:: ../../coreComponents/schema/docs/Rectangle_other.rst - - -.. _DATASTRUCTURE_RelpermDriver: - -Datastructure: RelpermDriver -============================ -.. include:: ../../coreComponents/schema/docs/RelpermDriver_other.rst - - -.. _DATASTRUCTURE_Restart: - -Datastructure: Restart -====================== -.. include:: ../../coreComponents/schema/docs/Restart_other.rst - - -.. _DATASTRUCTURE_Run: - -Datastructure: Run -================== -.. include:: ../../coreComponents/schema/docs/Run_other.rst - - -.. _DATASTRUCTURE_SeismicityRate: - -Datastructure: SeismicityRate -============================= -.. include:: ../../coreComponents/schema/docs/SeismicityRate_other.rst - - -.. _DATASTRUCTURE_Silo: - -Datastructure: Silo -=================== -.. include:: ../../coreComponents/schema/docs/Silo_other.rst - - -.. _DATASTRUCTURE_SinglePhaseConstantThermalConductivity: - -Datastructure: SinglePhaseConstantThermalConductivity -===================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseConstantThermalConductivity_other.rst - - -.. _DATASTRUCTURE_SinglePhaseFVM: - -Datastructure: SinglePhaseFVM -============================= -.. include:: ../../coreComponents/schema/docs/SinglePhaseFVM_other.rst - - -.. _DATASTRUCTURE_SinglePhaseHybridFVM: - -Datastructure: SinglePhaseHybridFVM -=================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst - - -.. _DATASTRUCTURE_SinglePhasePoromechanics: - -Datastructure: SinglePhasePoromechanics -======================================= -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanics_other.rst - - -.. _DATASTRUCTURE_SinglePhasePoromechanicsConformingFractures: - -Datastructure: SinglePhasePoromechanicsConformingFractures -========================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsConformingFractures_other.rst - - -.. _DATASTRUCTURE_SinglePhasePoromechanicsConformingFracturesInitialization: - -Datastructure: SinglePhasePoromechanicsConformingFracturesInitialization -======================================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesInitialization_other.rst - - -.. _DATASTRUCTURE_SinglePhasePoromechanicsConformingFracturesReservoir: - -Datastructure: SinglePhasePoromechanicsConformingFracturesReservoir -=================================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsConformingFracturesReservoir_other.rst - - -.. _DATASTRUCTURE_SinglePhasePoromechanicsEmbeddedFractures: - -Datastructure: SinglePhasePoromechanicsEmbeddedFractures -======================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst - - -.. _DATASTRUCTURE_SinglePhasePoromechanicsEmbeddedFracturesInitialization: - -Datastructure: SinglePhasePoromechanicsEmbeddedFracturesInitialization -====================================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFracturesInitialization_other.rst - - -.. _DATASTRUCTURE_SinglePhasePoromechanicsInitialization: - -Datastructure: SinglePhasePoromechanicsInitialization -===================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsInitialization_other.rst - - -.. _DATASTRUCTURE_SinglePhasePoromechanicsReservoir: - -Datastructure: SinglePhasePoromechanicsReservoir -================================================ -.. include:: ../../coreComponents/schema/docs/SinglePhasePoromechanicsReservoir_other.rst - - -.. _DATASTRUCTURE_SinglePhaseProppantFVM: - -Datastructure: SinglePhaseProppantFVM -===================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst - - -.. _DATASTRUCTURE_SinglePhaseReservoir: - -Datastructure: SinglePhaseReservoir -=================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseReservoir_other.rst - - -.. _DATASTRUCTURE_SinglePhaseReservoirPoromechanics: - -Datastructure: SinglePhaseReservoirPoromechanics -================================================ -.. include:: ../../coreComponents/schema/docs/SinglePhaseReservoirPoromechanics_other.rst - - -.. _DATASTRUCTURE_SinglePhaseReservoirPoromechanicsInitialization: - -Datastructure: SinglePhaseReservoirPoromechanicsInitialization -============================================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseReservoirPoromechanicsInitialization_other.rst - - -.. _DATASTRUCTURE_SinglePhaseStatistics: - -Datastructure: SinglePhaseStatistics -==================================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseStatistics_other.rst - - -.. _DATASTRUCTURE_SinglePhaseWell: - -Datastructure: SinglePhaseWell -============================== -.. include:: ../../coreComponents/schema/docs/SinglePhaseWell_other.rst - - -.. _DATASTRUCTURE_SlipDependentPermeability: - -Datastructure: SlipDependentPermeability -======================================== -.. include:: ../../coreComponents/schema/docs/SlipDependentPermeability_other.rst - - -.. _DATASTRUCTURE_SolidInternalEnergy: - -Datastructure: SolidInternalEnergy -================================== -.. include:: ../../coreComponents/schema/docs/SolidInternalEnergy_other.rst - - -.. _DATASTRUCTURE_SolidMechanicsAugmentedLagrangianContact: - -Datastructure: SolidMechanicsAugmentedLagrangianContact -======================================================= -.. include:: ../../coreComponents/schema/docs/SolidMechanicsAugmentedLagrangianContact_other.rst - - -.. _DATASTRUCTURE_SolidMechanicsEmbeddedFractures: - -Datastructure: SolidMechanicsEmbeddedFractures -============================================== -.. include:: ../../coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst - - -.. _DATASTRUCTURE_SolidMechanicsLagrangeContact: - -Datastructure: SolidMechanicsLagrangeContact -============================================ -.. include:: ../../coreComponents/schema/docs/SolidMechanicsLagrangeContact_other.rst - - -.. _DATASTRUCTURE_SolidMechanicsLagrangianSSLE: - -Datastructure: SolidMechanicsLagrangianSSLE -=========================================== -.. include:: ../../coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst - - -.. _DATASTRUCTURE_SolidMechanicsStateReset: - -Datastructure: SolidMechanicsStateReset -======================================= -.. include:: ../../coreComponents/schema/docs/SolidMechanicsStateReset_other.rst - - -.. _DATASTRUCTURE_SolidMechanicsStatistics: - -Datastructure: SolidMechanicsStatistics -======================================= -.. include:: ../../coreComponents/schema/docs/SolidMechanicsStatistics_other.rst - - -.. _DATASTRUCTURE_SolidMechanics_LagrangianFEM: - -Datastructure: SolidMechanics_LagrangianFEM -=========================================== -.. include:: ../../coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst - - -.. _DATASTRUCTURE_SolidMechanics_MPM: - -Datastructure: SolidMechanics_MPM -================================= -.. include:: ../../coreComponents/schema/docs/SolidMechanics_MPM_other.rst - - -.. _DATASTRUCTURE_SoloEvent: - -Datastructure: SoloEvent -======================== -.. include:: ../../coreComponents/schema/docs/SoloEvent_other.rst - - -.. _DATASTRUCTURE_SolverStatistics: - -Datastructure: SolverStatistics -=============================== -.. include:: ../../coreComponents/schema/docs/SolverStatistics_other.rst - - -.. _DATASTRUCTURE_Solvers: - -Datastructure: Solvers -====================== -.. include:: ../../coreComponents/schema/docs/Solvers_other.rst - - -.. _DATASTRUCTURE_SourceFlux: - -Datastructure: SourceFlux -========================= -.. include:: ../../coreComponents/schema/docs/SourceFlux_other.rst - - -.. _DATASTRUCTURE_SourceFluxStatistics: - -Datastructure: SourceFluxStatistics -=================================== -.. include:: ../../coreComponents/schema/docs/SourceFluxStatistics_other.rst - - -.. _DATASTRUCTURE_SurfaceElementRegion: - -Datastructure: SurfaceElementRegion -=================================== -.. include:: ../../coreComponents/schema/docs/SurfaceElementRegion_other.rst - - -.. _DATASTRUCTURE_SurfaceGenerator: - -Datastructure: SurfaceGenerator -=============================== -.. include:: ../../coreComponents/schema/docs/SurfaceGenerator_other.rst - - -.. _DATASTRUCTURE_SymbolicFunction: - -Datastructure: SymbolicFunction -=============================== -.. include:: ../../coreComponents/schema/docs/SymbolicFunction_other.rst - - -.. _DATASTRUCTURE_TableCapillaryPressure: - -Datastructure: TableCapillaryPressure -===================================== -.. include:: ../../coreComponents/schema/docs/TableCapillaryPressure_other.rst - - -.. _DATASTRUCTURE_TableFunction: - -Datastructure: TableFunction -============================ -.. include:: ../../coreComponents/schema/docs/TableFunction_other.rst - - -.. _DATASTRUCTURE_TableRelativePermeability: - -Datastructure: TableRelativePermeability -======================================== -.. include:: ../../coreComponents/schema/docs/TableRelativePermeability_other.rst - - -.. _DATASTRUCTURE_TableRelativePermeabilityHysteresis: - -Datastructure: TableRelativePermeabilityHysteresis -================================================== -.. include:: ../../coreComponents/schema/docs/TableRelativePermeabilityHysteresis_other.rst - - -.. _DATASTRUCTURE_Tasks: - -Datastructure: Tasks -==================== -.. include:: ../../coreComponents/schema/docs/Tasks_other.rst - - -.. _DATASTRUCTURE_ThermalCompressibleSinglePhaseFluid: - -Datastructure: ThermalCompressibleSinglePhaseFluid -================================================== -.. include:: ../../coreComponents/schema/docs/ThermalCompressibleSinglePhaseFluid_other.rst - - -.. _DATASTRUCTURE_ThickPlane: - -Datastructure: ThickPlane -========================= -.. include:: ../../coreComponents/schema/docs/ThickPlane_other.rst - - -.. _DATASTRUCTURE_TimeHistory: - -Datastructure: TimeHistory -========================== -.. include:: ../../coreComponents/schema/docs/TimeHistory_other.rst - - -.. _DATASTRUCTURE_Traction: - -Datastructure: Traction -======================= -.. include:: ../../coreComponents/schema/docs/Traction_other.rst - - -.. _DATASTRUCTURE_TriaxialDriver: - -Datastructure: TriaxialDriver -============================= -.. include:: ../../coreComponents/schema/docs/TriaxialDriver_other.rst - - -.. _DATASTRUCTURE_TwoPointFluxApproximation: - -Datastructure: TwoPointFluxApproximation -======================================== -.. include:: ../../coreComponents/schema/docs/TwoPointFluxApproximation_other.rst - - -.. _DATASTRUCTURE_VTK: - -Datastructure: VTK -================== -.. include:: ../../coreComponents/schema/docs/VTK_other.rst - - -.. _DATASTRUCTURE_VTKMesh: - -Datastructure: VTKMesh -====================== -.. include:: ../../coreComponents/schema/docs/VTKMesh_other.rst - - -.. _DATASTRUCTURE_VTKWell: - -Datastructure: VTKWell -====================== -.. include:: ../../coreComponents/schema/docs/VTKWell_other.rst - - -.. _DATASTRUCTURE_VanGenuchtenBakerRelativePermeability: - -Datastructure: VanGenuchtenBakerRelativePermeability -==================================================== -.. include:: ../../coreComponents/schema/docs/VanGenuchtenBakerRelativePermeability_other.rst - - -.. _DATASTRUCTURE_VanGenuchtenCapillaryPressure: - -Datastructure: VanGenuchtenCapillaryPressure -============================================ -.. include:: ../../coreComponents/schema/docs/VanGenuchtenCapillaryPressure_other.rst - - -.. _DATASTRUCTURE_VanGenuchtenStone2RelativePermeability: - -Datastructure: VanGenuchtenStone2RelativePermeability -===================================================== -.. include:: ../../coreComponents/schema/docs/VanGenuchtenStone2RelativePermeability_other.rst - - -.. _DATASTRUCTURE_ViscoDruckerPrager: - -Datastructure: ViscoDruckerPrager -================================= -.. include:: ../../coreComponents/schema/docs/ViscoDruckerPrager_other.rst - - -.. _DATASTRUCTURE_ViscoExtendedDruckerPrager: - -Datastructure: ViscoExtendedDruckerPrager -========================================= -.. include:: ../../coreComponents/schema/docs/ViscoExtendedDruckerPrager_other.rst - - -.. _DATASTRUCTURE_ViscoModifiedCamClay: - -Datastructure: ViscoModifiedCamClay -=================================== -.. include:: ../../coreComponents/schema/docs/ViscoModifiedCamClay_other.rst - - -.. _DATASTRUCTURE_WellControls: - -Datastructure: WellControls -=========================== -.. include:: ../../coreComponents/schema/docs/WellControls_other.rst - - -.. _DATASTRUCTURE_WellElementRegion: - -Datastructure: WellElementRegion -================================ -.. include:: ../../coreComponents/schema/docs/WellElementRegion_other.rst - - -.. _DATASTRUCTURE_WellElementRegionUniqueSubRegion: - -Datastructure: WellElementRegionUniqueSubRegion -=============================================== -.. include:: ../../coreComponents/schema/docs/WellElementRegionUniqueSubRegion_other.rst - - -.. _DATASTRUCTURE_WillisRichardsPermeability: - -Datastructure: WillisRichardsPermeability -========================================= -.. include:: ../../coreComponents/schema/docs/WillisRichardsPermeability_other.rst - - -.. _DATASTRUCTURE_commandLine: - -Datastructure: commandLine -========================== -.. include:: ../../coreComponents/schema/docs/commandLine_other.rst - - -.. _DATASTRUCTURE_crusher: - -Datastructure: crusher -====================== -.. include:: ../../coreComponents/schema/docs/crusher_other.rst - - -.. _DATASTRUCTURE_domain: - -Datastructure: domain -===================== -.. include:: ../../coreComponents/schema/docs/domain_other.rst - - -.. _DATASTRUCTURE_edgeManager: - -Datastructure: edgeManager -========================== -.. include:: ../../coreComponents/schema/docs/edgeManager_other.rst - - -.. _DATASTRUCTURE_elementRegionsGroup: - -Datastructure: elementRegionsGroup -================================== -.. include:: ../../coreComponents/schema/docs/elementRegionsGroup_other.rst - - -.. _DATASTRUCTURE_elementSubRegions: - -Datastructure: elementSubRegions -================================ -.. include:: ../../coreComponents/schema/docs/elementSubRegions_other.rst - - -.. _DATASTRUCTURE_embeddedSurfacesEdgeManager: - -Datastructure: embeddedSurfacesEdgeManager -========================================== -.. include:: ../../coreComponents/schema/docs/embeddedSurfacesEdgeManager_other.rst - - -.. _DATASTRUCTURE_embeddedSurfacesNodeManager: - -Datastructure: embeddedSurfacesNodeManager -========================================== -.. include:: ../../coreComponents/schema/docs/embeddedSurfacesNodeManager_other.rst - - -.. _DATASTRUCTURE_faceManager: - -Datastructure: faceManager -========================== -.. include:: ../../coreComponents/schema/docs/faceManager_other.rst - - -.. _DATASTRUCTURE_lassen: - -Datastructure: lassen -===================== -.. include:: ../../coreComponents/schema/docs/lassen_other.rst - - -.. _DATASTRUCTURE_meshLevels: - -Datastructure: meshLevels -========================= -.. include:: ../../coreComponents/schema/docs/meshLevels_other.rst - - -.. _DATASTRUCTURE_neighborData: - -Datastructure: neighborData -=========================== -.. include:: ../../coreComponents/schema/docs/neighborData_other.rst - - -.. _DATASTRUCTURE_nodeManager: - -Datastructure: nodeManager -========================== -.. include:: ../../coreComponents/schema/docs/nodeManager_other.rst - - -.. _DATASTRUCTURE_particleRegionsGroup: - -Datastructure: particleRegionsGroup -=================================== -.. include:: ../../coreComponents/schema/docs/particleRegionsGroup_other.rst - - -.. _DATASTRUCTURE_particleSubRegions: - -Datastructure: particleSubRegions -================================= -.. include:: ../../coreComponents/schema/docs/particleSubRegions_other.rst - - -.. _DATASTRUCTURE_quartz: - -Datastructure: quartz -===================== -.. include:: ../../coreComponents/schema/docs/quartz_other.rst - - -.. _DATASTRUCTURE_sets: - -Datastructure: sets -=================== -.. include:: ../../coreComponents/schema/docs/sets_other.rst - - -.. _DATASTRUCTURE_wellElementSubRegion: - -Datastructure: wellElementSubRegion -=================================== -.. include:: ../../coreComponents/schema/docs/wellElementSubRegion_other.rst - diff --git a/src/docs/sphinx/Doxygen.rst b/src/docs/sphinx/Doxygen.rst index 6e541b988e0..217411e6083 100644 --- a/src/docs/sphinx/Doxygen.rst +++ b/src/docs/sphinx/Doxygen.rst @@ -2,11 +2,17 @@ Doxygen ############################################################################### -The c++ source in GEOS is annotated using doxygen. Our doxygen pages are -linked below. +The GEOS c++ API in is documented using doxygen. +The doxygen `class list pages <../../doxygen_output/html/classes.html>`_ -.. raw:: html +Developers may find it helpful to review the :ref:`KeyComponents` described in the Developer Guide before diving into the doxygen. - GEOS Doxygen Pages +Some key doxygen pages are linked below: -Developers may find it helpful to review the key code components described in the Developer Guide before diving into the doxygen. +`Group API <../../doxygen_output/html/classgeos_1_1data_repository_1_1_group.html>`_ + +`Wrapper API <../../doxygen_output/html/classgeos_1_1data_repository_1_1_wrapper.html>`_ + +`ObjectManagerBase API <../../doxygen_output/html/classgeos_1_1_object_manager_base.html>`_ + +`SolverBase API <../../doxygen_output/html/classgeos_1_1_solver_base.html>`_ \ No newline at end of file diff --git a/src/docs/sphinx/Publications.rst b/src/docs/sphinx/Publications.rst index e3c1ef438c7..57df228cddb 100644 --- a/src/docs/sphinx/Publications.rst +++ b/src/docs/sphinx/Publications.rst @@ -2,7 +2,7 @@ Publications ############################################################################### -Last updated 9-July-2024 +Last updated 26-August-2024 Preprints and Early-Views ========================= @@ -49,6 +49,10 @@ Preprints and Early-Views | Journal of Computational Physics | `doi:10.1016/j.jcp.2024.113163 `_ + * - | **Theory and analytical solutions to wellbore problems with hardening/softening Drucker-Prager models** + | T Nguyen-Sy, J Huang, H Gross + | International Journal of Rock Mechanics and Mining Sciences + | `doi:10.1016/j.ijrmms.2024.105878 `_ 2023 ==== diff --git a/src/docs/sphinx/QuickStart.rst b/src/docs/sphinx/QuickStart.rst index 71b94c08e02..71a74716fad 100644 --- a/src/docs/sphinx/QuickStart.rst +++ b/src/docs/sphinx/QuickStart.rst @@ -164,8 +164,6 @@ First, using a terminal, create the ``codes`` directory wherever you like. Inside this directory, we can clone the GEOS repository. We will also use some Git commands to initialize and download the submodules (e.g. ``LvArray``). -Note that most users will not have access to our integrated tests repository, and so we "deinit" (deactivate) this submodule. -Developers who will be working with the integratedTests repository should skip this line. .. code-block:: sh @@ -173,7 +171,6 @@ Developers who will be working with the integratedTests repository should skip t cd GEOS git lfs install git submodule init - git submodule deinit integratedTests git submodule update cd .. @@ -181,10 +178,10 @@ If all goes well, you should have a complete copy of the GEOS source at this poi The most common errors people encounter here have to do with Github not recognizing their authentication settings and/or repository permissions. See the previous section for tips on ensuring your SSH is working properly. -*Note*: The integratedTests submodule is not publicly available, with access limited to the core development team. -This may cause the ``git submodule update`` command to fail -if you forget the ``git submodule deinit integratedTests`` step above. -This submodule is not required for building GEOS. If you see an error message here, however, you may need to initialize and update the submodules manually: +*Note*: Previous versions of GEOS also imported the integratedTests submodule, which is not publicly available (access is limited to the core development team). +This may cause the ``git submodule update`` command to fail. +In that case, run ``git submodule deinit integratedTests`` before ``git submodule update``. +This submodule is not required for building GEOS. .. code-block:: sh @@ -218,11 +215,10 @@ If you are using an older version, you may need to add ``git lfs pull`` after `` The clone ``https://github.com/GEOS-DEV/GEOS.git`` becomes ``git clone git@github.com:GEOS-DEV/GEOS.git``. You may also be willing to insert your credentials in the command line (less secure) ``git clone https://${USER}:${TOKEN}@github.com/GEOS-DEV/GEOS.git``. -Configuration -================ +Configuration +============= -At a minimum, you will need a relatively recent compiler suite installed on your system (e.g. `GCC `_, `Clang `_) as well as `CMake `_. -If you want to run jobs using MPI-based parallelism, you will also need an MPI implementation (e.g. `OpenMPI `_, `MVAPICH `_). +Before proceeding, make sure to have installed all the minimal prerequisites as described in :ref:`Prerequisites` Note that GEOS supports a variety of parallel computing models, depending on the hardware and software environment. Advanced users are referred to the :ref:`BuildGuide` for a discussion of the available configuration options. @@ -237,120 +233,109 @@ If something goes wrong, the first thing the support team will ask you for is th Here, you may need to replace ``cpp`` with the full path to the C++ compiler you would like to use, depending on how your path and any aliases are configured. -GEOS compilations are driven by a cmake ``host-config`` file, which tells the build system about the compilers you are using, where various packages reside, and what options you want to enable. -We have created a number of default hostconfig files for common systems. -You should browse them to see if any are close to your needs: +Defining a Host-Config File +--------------------------- -.. code-block:: sh +GEOS compilations are driven by a CMake ``host-config`` file, which informs the build system about the compilers you are using, where various packages reside, and what options you want to enable. - cd GEOS/host-configs +A template for creating a simple ``host-config`` is provided in ``host-configs/quick-start-template.cmake``. -We maintain host configs (ending in ``.cmake``) for HPC systems at various institutions, as well as ones for common personal systems. -If you cannot find one that matches your needs, we suggest beginning with one of the shorter ones and modifying as needed. -A typical one may look like: +.. literalinclude:: ../../../host-configs/quick-start-template.cmake + :language: sh -.. code-block:: sh +The various ``set()`` commands are used to set variables that control the build. To begin, make a copy of the template file and modify the paths according to the installation locations on your system. - # file: your-platform.cmake - - # detect host and name the configuration file - site_name(HOST_NAME) - set(CONFIG_NAME "your-platform" CACHE PATH "") - message("CONFIG_NAME = ${CONFIG_NAME}") - - # set paths to C, C++, and Fortran compilers. Note that while GEOS does not contain any Fortran code, - # some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. - set(CMAKE_C_COMPILER "/usr/bin/clang" CACHE PATH "") - set(CMAKE_CXX_COMPILER "/usr/bin/clang++" CACHE PATH "") - set(CMAKE_Fortran_COMPILER "/usr/local/bin/gfortran" CACHE PATH "") - set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) - - # enable MPI and set paths to compilers and executable. - # Note that the MPI compilers are wrappers around standard serial compilers. - # Therefore, the MPI compilers must wrap the appropriate serial compilers specified - # in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. - set(ENABLE_MPI ON CACHE BOOL "") - set(MPI_C_COMPILER "/usr/local/bin/mpicc" CACHE PATH "") - set(MPI_CXX_COMPILER "/usr/local/bin/mpicxx" CACHE PATH "") - set(MPI_Fortran_COMPILER "/usr/local/bin/mpifort" CACHE PATH "") - set(MPIEXEC "/usr/local/bin/mpirun" CACHE PATH "") - - # disable CUDA and OpenMP - set(ENABLE_CUDA OFF CACHE BOOL "" FORCE) - set(ENABLE_OPENMP OFF CACHE BOOL "" FORCE) - - # enable PVTPackage - set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) - - # enable tests - set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) - - # define the path to your compiled installation directory - set(GEOS_TPL_DIR "/path/to/your/TPL/installation/dir" CACHE PATH "") - # let GEOS define some third party libraries information for you - include(${CMAKE_CURRENT_LIST_DIR}/tpls.cmake) - -The various ``set()`` commands are used to set environment variables that control the build. -You will see in the above example that we set the C++ compiler to ``/user/bin/clang++`` and so forth. -We also disable CUDA and OpenMP, but enable PVTPackage. -The final line is related to our unit test suite. See the :ref:`BuildGuide` for more details on available options. +We have created a number of default host-config files for common systems. You should browse them to see if any are close to your needs: +We maintain host configuration files (ending in ``.cmake``) for HPC systems at various institutions, as well as for common personal systems. +If you cannot find one that matches your needs, we suggest starting with one of the shorter ones and modifying it as needed. .. note:: If you develop a new ``host-config`` for a particular platform that may be useful for other users, please consider sharing it with the developer team. Compilation -================== +=========== + +The configuration process for both the third-party libraries (TPLs) and GEOS is managed through a Python script called ``config-build.py``. This script simplifies and automates the setup by configuring the build and install directories and by running CMake based on the options set in the host-config file +which is passed as a command-lne argument. The ``config-build.py`` script has several command-line options. Here, we will only use some basic options and rely on default values for many others. During this build process there wil be automatically generated build and install directories for both the TPLs and the main code, +with names consistent with the name specified in the host-config by the variable ``CONFIG_NAME``, i.e. ``build-your-platform-release`` and ``install-your-platform-release``. + +All options can be visualized by running + +.. code-block:: sh -We will begin by compiling the TPLs, followed by the main code. -If you work on an HPC system with other GEOS developers, check with them to see if the TPLs have already been compiled in a shared directory. -If this is the case, you can skip ahead to just compiling the main code. -If you are working on your own machine, you will need to compile both. + cd thirdPartyLibs + python scripts/config-build.py -h -We strongly suggest that GEOS and TPLs be built with the same hostconfig file. -Below, we assume that you keep it in, say, ``GEOS/host-configs/your-platform.cmake``, but this is up to you. +.. note:: -We begin with the third-party libraries, and use a python ``config-build.py`` script to configure and build all of the TPLs. -Note that we will request a Release build type, which will enable various optimizations. -The other option is a Debug build, which allows for debugging but will be much slower in production mode. -The TPLS will then be built in a build directory named consistently with your hostconfig file. + It is strongly recommended that GEOS and TPLs be configured using the same host configuration file. Below, we assume that you keep this file in, for example, ``GEOS/host-configs/your-platform.cmake``, but the exact location is up to you. + +Compiling the TPLs +------------------- + +.. note:: + + If you are working on an HPC system with other GEOS developers, check with them to see if the TPLs have already been compiled in a shared directory. If this is the case, you can skip ahead to just compiling the main code. + If you are working on your own machine, you will need to configure and compile both the TPLs and the main code. + +We begin by configuring the third-party libraries (TPLs) using the ``config-build.py`` script. This script sets up the build directory and runs CMake to generate the necessary build files. .. code-block:: sh cd thirdPartyLibs python scripts/config-build.py -hc ../GEOS/host-configs/your-platform.cmake -bt Release + +The TPLs will be configured in a build directory named consistently with your host configuration file, i.e., ``build-your-platform-release``. + +.. code-block:: sh + cd build-your-platform-release make -Note that building all of the TPLs can take quite a while, so you may want to go get a cup of coffee at this point. -Also note that you should *not* use a parallel ``make -j N`` command to try and speed up the build time. +.. note:: + + Building all of the TPLs can take quite a while, so you may want to go get a cup of coffee at this point. + Also note that you should *not* use a parallel ``make -j N`` command to try and speed up the build time. -The next step is to compile the main code. -Again, the ``config-build.py`` sets up cmake for you, so the process is very similar. +Compiling GEOS +------------------- + +Once the TPLs have been compiler, the next step is to compile the main code. The ``config-build.py`` script is used to configure the build directory. Before running the configuration script, ensure that the path to the TPLs is correctly set in the host configuration file by setting + +.. code-block:: sh + + set(GEOS_TPL_DIR "/path/to/your/TPL/installation/dir" CACHE PATH "") + +If you have followed these instructions, the TPLs are installed at the default location, i.e. ``/path/to/your/TPL/thirdPartyLibs/install-your-platform-release``. .. code-block:: sh cd ../../GEOS python scripts/config-build.py -hc host-configs/your-platform.cmake -bt Release - cd build-your-platform-release - make -j4 - make install -The host-config file is the place to set all relevant configuration options. -Note that the path to the previously installed third party libraries is typically specified within this file. An alternative is to set the path ``GEOS_TPL_DIR`` via a cmake command line option, e.g. .. code-block:: sh python scripts/config-build.py -hc host-configs/your-platform.cmake -bt Release -D GEOS_TPL_DIR=/full/path/to/thirdPartyLibs -We highly recommend using full paths, rather than relative paths, whenever possible. +.. note:: + + We highly recommend using full paths, rather than relative paths, whenever possible. + +Once the configuration process is completed, we proceed with the compilation of the main code and the instalation of geos. + +.. code-block:: sh + + cd build-your-platform-release + make -j4 + make install + The parallel ``make -j 4`` will use four processes for compilation, which can substantially speed up the build if you have a multi-processor machine. You can adjust this value to match the number of processors available on your machine. The ``make install`` command then installs GEOS to a default location unless otherwise specified. - - -If all goes well, a ``geosx`` executable should now be available: +If all goes well, a ``geosx`` executable should now be available .. code-block:: sh diff --git a/src/docs/sphinx/advancedExamples/performanceBenchmarks/Index.rst b/src/docs/sphinx/advancedExamples/performanceBenchmarks/Index.rst index ed9671bbc64..8d75689daf8 100644 --- a/src/docs/sphinx/advancedExamples/performanceBenchmarks/Index.rst +++ b/src/docs/sphinx/advancedExamples/performanceBenchmarks/Index.rst @@ -4,4 +4,156 @@ Performance Benchmarks ######################## +==================================== +Wellbore problem scaling on Frontier +==================================== +.. _wellboreProblemScaling: +The wellbore problem described here was used to test the weak scaling of GEOS on the +`Frontier supercomputer ` at Oak Ridge National +Laboratory. The hardware details of the Frontier system are described in the `Frontier +User Guide `_. + +The wellbore problem consists of a single wellbore with an internal radius of 0.057m, a +casing thickness of 0.006m, with varying length and number elements depending level in the +scaling study. There are 6 levels of scaling summarized in the table below. The number of +ranks used for each level is dependent on the physics solver applied, as the number of +degrees of freedom in the problem changes. + ++-------+------+------+-------+----------------+ +| Level | nr | nt | nz | nelem | ++=======+======+======+=======+================+ +| 1 | 33 | 64 | 391 | 825,792 | ++-------+------+------+-------+----------------+ +| 2 | 33 | 64 | 3125 | 6,600,000 | ++-------+------+------+-------+----------------+ +| 3 | 66 | 128 | 6250 | 52,800,000 | ++-------+------+------+-------+----------------+ +| 4 | 132 | 256 | 12500 | 422,400,000 | ++-------+------+------+-------+----------------+ +| 5 | 264 | 512 | 25000 | 3,379,200,000 | ++-------+------+------+-------+----------------+ +| 6 | 528 | 1024 | 50000 | 27,033,600,000 | ++-------+------+------+-------+----------------+ + +An image of the wellbore geometry is give below: + +.. .. figure:: /coreComponents/physics/docs/Wellbore.png +.. :align: center +.. :width: 500 +.. :figclass: align-center + + +The scaling results for the wellbore problem applied to different physics models on the +Frontier supercomputer are shown below: + +Mechanics +--------- + +.. figure:: weakscal_frontier_mechanics.png + :align: center + :width: 500 + :figclass: align-center + + Weak scaling results for the mechanics model on Frontier. + +Single Phase Flow +----------------- + +.. figure:: weakscal_frontier_singlePhaseFlow.png + :align: center + :width: 500 + :figclass: align-center + + Weak scaling results for the single phase flow model on Frontier. + +Compositional Multiphase Flow +----------------------------- + +.. figure:: weakscal_frontier_compositionalMultiphaseFlow.png + :align: center + :width: 500 + :figclass: align-center + + Weak scaling results for the compositional multiphase flow model on Frontier. + +.. _wellboreRunning: + +Running the Performance Study +----------------------------- + +To execute a performance study across different GPU configurations and problem levels for +the wellbore problem on the Frontier supercomputer, follow these steps: + +Prerequisites +~~~~~~~~~~~~~ +Ensure you have access to the Frontier system and that you have access to a valid job +allocation account. For detailed instructions on system access and environment setup, +refer to the `Frontier User Guide +`_. + +Directory Structure +~~~~~~~~~~~~~~~~~~~ +The input files for different problem levels and configurations are organized under +``${GEOS_DIR}/inputFiles/wellboreECP/``. Each physical problem (e.g., +``mechanics``, ``compositionalMultiphaseFlow``, ``singlePhaseFlow``) has its own directory +containing multiple levels of problem refinement as described in the table above. + +Dispatching Jobs +~~~~~~~~~~~~~~~~ +Use the ``dispatch.py`` script to automate the setup and submission of jobs for different +levels of problem refinement and physics models. + +**Usage:** + +.. code-block:: bash + + python3 dispatch.py --acount [account_id] --binary [path_to_binary] --model [model_type] --levels + [specific_levels_to_run] --caliper [def] + +- **--account**: Account name for running jobs on compute nodes. +- **--binary**: Path to the geos executable. +- **--model**: Physics model type, such as ``mechanics``, ``singlePhaseFlow`` or ``compositionalMultiphaseFlow``. +- **--levels**: (optional) Specific levels to run, e.g., ``1 3 5``. If omitted, all levels + are run. +- **--caliper**: (optional) Turn on profiling with `caliper `_. + +**Example:** + +.. code-block:: bash + + python3 dispatch.py --binary /path/to/geos --model mechanics --levels 1 2 3 + +This command launches jobs for levels 1, 2, and 3 under the mechanics problem configuration. + +Analyzing Output +~~~~~~~~~~~~~~~~ +After job completion, utilize the ``postprocess.py`` script to extract and plot performance metrics from the output files. + +**Usage:** + +.. code-block:: bash + + python3 postprocess.py --model [model_type] --levels [specific_levels_to_plot] + +- **--model**: Physics model type, such as ``mechanics``, ``singlePhaseFlow`` or ``compositionalMultiphaseFlow``. +- **--levels**: (optional) Specific levels to plot, e.g., ``2 3 4 5``. If omitted, results + for all available levels are plotted. + +**Example:** + +.. code-block:: bash + + python3 postprocess.py --model mechanics --levels 2 3 4 5 + +This command parses the latest output files in the mechanics directory, selected by the +highest ``[jobID]``. It matches files with the pattern +``[machine_name]-[jobID]-[model_type]-geom[level].out``, extracting average +execution times per non-linear step for the following phases: GEOS, matrix creation, Hypre +setup, and Hypre solve. + +Note +~~~~ +The job scripts designed for Frontier are likely compatible with other Slurm-based +systems, making them reusable across different high-performance computing environments +with minimal adjustments. diff --git a/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_compositionalMultiphaseFlow.png b/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_compositionalMultiphaseFlow.png new file mode 100644 index 00000000000..ae2442bcf5c Binary files /dev/null and b/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_compositionalMultiphaseFlow.png differ diff --git a/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_mechanics.png b/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_mechanics.png new file mode 100644 index 00000000000..b797b43a440 Binary files /dev/null and b/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_mechanics.png differ diff --git a/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_singlePhaseFlow.png b/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_singlePhaseFlow.png new file mode 100644 index 00000000000..7944cbba173 Binary files /dev/null and b/src/docs/sphinx/advancedExamples/performanceBenchmarks/weakscal_frontier_singlePhaseFlow.png differ diff --git a/src/docs/sphinx/advancedExamples/pygeosxExamples/inSituDataMonitor/AdvancedExample.rst b/src/docs/sphinx/advancedExamples/pygeosxExamples/inSituDataMonitor/AdvancedExample.rst index 918ec1422d1..2d9d42bad7b 100644 --- a/src/docs/sphinx/advancedExamples/pygeosxExamples/inSituDataMonitor/AdvancedExample.rst +++ b/src/docs/sphinx/advancedExamples/pygeosxExamples/inSituDataMonitor/AdvancedExample.rst @@ -63,8 +63,8 @@ The custom packages include pygeosx, which provides an interface to GEOS, and py .. literalinclude:: ../../../../../../examples/pygeosxExamples/hydraulicFractureWithMonitor/hydraulicFractureWithMonitor.py :language: python - :start-after: # PYGEOS_SETUP - :end-before: # PYGEOS_SETUP_END + :start-after: # PYGEOSX_SETUP + :end-before: # PYGEOSX_SETUP_END In the next step, we apply the xml preprocessor to resolve the advanced xml features. Note that this step will modify the input arguments to reflect the location of the compiled xml file, which is processed directly by GEOS. @@ -73,8 +73,8 @@ There is an opportunity to interact with the GEOS before the initial conditions .. literalinclude:: ../../../../../../examples/pygeosxExamples/hydraulicFractureWithMonitor/hydraulicFractureWithMonitor.py :language: python - :start-after: # PYGEOS_INITIALIZATION - :end-before: # PYGEOS_INITIALIZATION_END + :start-after: # PYGEOSX_INITIALIZATION + :end-before: # PYGEOSX_INITIALIZATION_END To extract information from the problem, you need to know the full path (or 'key') to the target object. These keys can be quite long, and can change depending on the xml input. @@ -84,8 +84,8 @@ Note that these functions will throw an error if they do not find a matching key .. literalinclude:: ../../../../../../examples/pygeosxExamples/hydraulicFractureWithMonitor/hydraulicFractureWithMonitor.py :language: python - :start-after: # PYGEOS_KEY_SEARCH - :end-before: # PYGEOS_KEY_SEARCH_END + :start-after: # PYGEOSX_KEY_SEARCH + :end-before: # PYGEOSX_KEY_SEARCH_END Next, we setup a dictionary that will allow us to use pygeosx_tools to automatically query the problem. The root level of this dictionary contains the target keys (fracture location and aperture) and the required `time` key. @@ -94,8 +94,8 @@ The target dictionaries also hold an entry `fhandle`, which contains a matplotli .. literalinclude:: ../../../../../../examples/pygeosxExamples/hydraulicFractureWithMonitor/hydraulicFractureWithMonitor.py :language: python - :start-after: # PYGEOS_QUERY_SETUP - :end-before: # PYGEOS_QUERY_SETUP_END + :start-after: # PYGEOSX_QUERY_SETUP + :end-before: # PYGEOSX_QUERY_SETUP_END After setting up the problem, we enter the main problem loop. Upon calling `pygeosx.run()`, the code will execute until a Python event is triggered in the Event loop. @@ -104,8 +104,8 @@ Here, we use pygeosx_tools to query the datastructure and occasionaly plot the r .. literalinclude:: ../../../../../../examples/pygeosxExamples/hydraulicFractureWithMonitor/hydraulicFractureWithMonitor.py :language: python - :start-after: # PYGEOS_QUERY_SETUP - :end-before: # PYGEOS_QUERY_SETUP_END + :start-after: # PYGEOSX_QUERY_SETUP + :end-before: # PYGEOSX_QUERY_SETUP_END --------------------------------- diff --git a/src/docs/sphinx/advancedExamples/pygeosxExamples/initialConditionModification/AdvancedExample.rst b/src/docs/sphinx/advancedExamples/pygeosxExamples/initialConditionModification/AdvancedExample.rst index 7c32edc5c86..614d3d6fb64 100644 --- a/src/docs/sphinx/advancedExamples/pygeosxExamples/initialConditionModification/AdvancedExample.rst +++ b/src/docs/sphinx/advancedExamples/pygeosxExamples/initialConditionModification/AdvancedExample.rst @@ -59,32 +59,32 @@ Similar to the previous example, the python script begins by importing the requi .. literalinclude:: ../../../../../../examples/pygeosxExamples/sedovWithStressFunction/run_sedov_problem.py :language: python - :start-after: # PYGEOS_INITIALIZATION - :end-before: # PYGEOS_INITIALIZATION_END + :start-after: # PYGEOSX_INITIALIZATION + :end-before: # PYGEOSX_INITIALIZATION_END The next steps rely on a python function that we use to set stress. The argument to this function, x, is assumed to be a numpy array of element centers: .. literalinclude:: ../../../../../../examples/pygeosxExamples/sedovWithStressFunction/run_sedov_problem.py :language: python - :start-after: # PYGEOS_STRESS_FN - :end-before: # PYGEOS_STRESS_FN_END + :start-after: # PYGEOSX_STRESS_FN + :end-before: # PYGEOSX_STRESS_FN_END In the following section, we zero out the initial stress and then set it based on `stress_fn`. While doing this, we use `wrapper.print_global_value_range` to check on the process. .. literalinclude:: ../../../../../../examples/pygeosxExamples/sedovWithStressFunction/run_sedov_problem.py :language: python - :start-after: # PYGEOS_STRESS_IC - :end-before: # PYGEOS_STRESS_IC_END + :start-after: # PYGEOSX_STRESS_IC + :end-before: # PYGEOSX_STRESS_IC_END Finally, we run the simulation. As an optional step, we extract numpy arrays from the datastructure using different parallel approaches: .. literalinclude:: ../../../../../../examples/pygeosxExamples/sedovWithStressFunction/run_sedov_problem.py :language: python - :start-after: # PYGEOS_MAIN_LOOP - :end-before: # PYGEOS_MAIN_LOOP_END + :start-after: # PYGEOSX_MAIN_LOOP + :end-before: # PYGEOSX_MAIN_LOOP_END --------------------------------- diff --git a/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/buckleyLeverett/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/buckleyLeverett/Example.rst index 0259759d569..9aedba305d5 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/buckleyLeverett/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/buckleyLeverett/Example.rst @@ -154,9 +154,9 @@ Either the entire field or specified named sets of indices in the field can be c In this example, ``phaseVolumeFractionCollection`` is specified to output the time history of phase saturations ``fieldName="phaseVolumeFraction"`` across the computational domain. .. literalinclude:: ../../../../../../../inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_base.xml - :language: xml - :start-after: - :end-before: + :language: xml + :start-after: + :end-before: This task is triggered using the ``Event`` manager with a ``PeriodicEvent`` defined for the recurring tasks. GEOS writes one file named after the string defined in the ``filename`` keyword, formatted as a HDF5 file (saturationHistory.hdf5). The TimeHistory file contains the collected time history information from the specified time history collector. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/buckleyLeverett/buckleyLeverettFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/buckleyLeverett/buckleyLeverettFigure.py index 507ffc44cb3..f4faa2eaeae 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/buckleyLeverett/buckleyLeverettFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/buckleyLeverett/buckleyLeverettFigure.py @@ -3,6 +3,8 @@ import xml.etree.ElementTree as ElementTree import numpy as np import h5py +import os +import argparse def getMaxTime(xmlFilePath): @@ -118,12 +120,25 @@ def computeFractionalFlow( phaseVolFrac, \ def main(): + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File paths - hdf5FilePath = "saturationHistory.hdf5" - pvdgFilePath = "../../../../../../../inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_table/pvdg.txt" - pvtwFilePath = "../../../../../../../inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_table/pvtw.txt" - xmlFile1Path = "../../../../../../../inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_base.xml" - xmlFile2Path = "../../../../../../../inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_benchmark.xml" + outputDir = args.outputDir + geosDir = args.geosDir + hdf5FilePath = outputDir + "/saturationHistory.hdf5" + pvdgFilePath = geosDir + "/inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_table/pvdg.txt" + pvtwFilePath = geosDir + "/inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_table/pvtw.txt" + xmlFile1Path = geosDir + "/inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_base.xml" + xmlFile2Path = geosDir + "/inputFiles/compositionalMultiphaseFlow/benchmarks/buckleyLeverettProblem/buckleyLeverett_benchmark.xml" # Read simulation parameters from XML file xMin, xMax, yMin, yMax, zMin, zMax = getDomainMaxMinCoords(xmlFile2Path) @@ -138,11 +153,11 @@ def main(): # Read simulation output from HDF5 file hf = h5py.File(hdf5FilePath, 'r') time = hf.get('phaseVolumeFraction Time') - time = np.array(time) + time = np.asarray(time) center = hf.get('phaseVolumeFraction elementCenter') - center = np.array(center) + center = np.asarray(center) phaseVolFracFromGEOSX = hf.get('phaseVolumeFraction') - phaseVolFracFromGEOSX = np.array(phaseVolFracFromGEOSX) + phaseVolFracFromGEOSX = np.asarray(phaseVolFracFromGEOSX) n = 100000 # sampling value, will decide the accuracy of front detection in the BL analytical solution minDiff = 1e99 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/isothermalLeakyWell/isothermalLeakyWellFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/isothermalLeakyWell/isothermalLeakyWellFigure.py index fc67ae8b080..a116c42d825 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/isothermalLeakyWell/isothermalLeakyWellFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/isothermalLeakyWell/isothermalLeakyWellFigure.py @@ -14,9 +14,10 @@ def main(): # Read HDF5 hf = h5py.File(hdf5FilePath, 'r') time = hf.get('phaseOutflux Time') - time = np.array(time) phaseOutflux = hf.get('phaseOutflux') - phaseOutflux = np.array(phaseOutflux) + + time = np.asarray(time) + phaseOutflux = np.asarray(phaseOutflux) # Conversions inKilograms = 479.0 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/thermalLeakyWell/thermalLeakyWell.py b/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/thermalLeakyWell/thermalLeakyWell.py index bc28a9aeccb..95e6ddac052 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/thermalLeakyWell/thermalLeakyWell.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/carbonStorage/thermalLeakyWell/thermalLeakyWell.py @@ -15,15 +15,15 @@ def main(): # Read HDF5 hf = h5py.File(hdf5FilePathRefined, 'r') timeRefined = hf.get('componentOutflux Time') - timeRefined = np.array(timeRefined) + timeRefined = np.asarray(timeRefined) compOutfluxRefined = hf.get('componentOutflux') - compOutfluxRefined = np.array(compOutfluxRefined) + compOutfluxRefined = np.asarray(compOutfluxRefined) hf = h5py.File(hdf5FilePathCoarse, 'r') timeCoarse = hf.get('componentOutflux Time') - timeCoarse = np.array(timeCoarse) + timeCoarse = np.asarray(timeCoarse) compOutfluxCoarse = hf.get('componentOutflux') - compOutfluxCoarse = np.array(compOutfluxCoarse) + compOutfluxCoarse = np.asarray(compOutfluxCoarse) # Conversions inDays = 1.0 / 86400.0 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/faultVerification/faultVerificationFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/faultVerification/faultVerificationFigure.py index 09e5db15f3d..20c937e0d34 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/faultVerification/faultVerificationFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/faultVerification/faultVerificationFigure.py @@ -4,6 +4,8 @@ from matplotlib.ticker import (MultipleLocator, FormatStrFormatter, AutoMinorLocator) import xml.etree.ElementTree as ElementTree import csv +import os +import argparse def getHydromechanicalParametersFromXML(xmlFilePath): @@ -25,7 +27,7 @@ def getHydromechanicalParametersFromXML(xmlFilePath): G = E / 2.0 / (1.0 + nu) hydromechanicalParameters["bulkModulus"] = K hydromechanicalParameters["shearModulus"] = G - Ks = float(param2.get("grainBulkModulus")) + Ks = float(param2.get("defaultGrainBulkModulus")) hydromechanicalParameters["biotCoefficient"] = 1.0 - K / Ks hydromechanicalParameters["porosity"] = float(param2.get("defaultReferencePorosity")) @@ -73,8 +75,21 @@ def getCompressiveStressFromXML(xmlFilePath): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + # File path - xmlFilePath = "../../../../../../../inputFiles/poromechanics/faultPoroelastic_base.xml" + outputDir = args.outputDir + geosDir = args.geosDir + xmlFilePath = geosDir + "/inputFiles/poromechanics/faultPoroelastic_base.xml" # Extract info from XML hydromechanicalParameters = getHydromechanicalParametersFromXML(xmlFilePath) @@ -82,7 +97,7 @@ def main(): Stress, Pr_i = getCompressiveStressFromXML(xmlFilePath) # Load simulation result for case with impermeable fault - file = open("result_imp.csv") + file = open(outputDir + "/result_imp.csv") csvreader = csv.reader(file) header = next(csvreader) rows = [] @@ -104,7 +119,7 @@ def main(): y_imp[i] = float(rows[i, 26]) # Load simulation result for case with permeable fault - file = open("result_per.csv") + file = open( outputDir + "/result_per.csv") csvreader = csv.reader(file) header = next(csvreader) rows = [] diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/intersectFrac/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/intersectFrac/Example.rst index a1019bac817..6714806e81f 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/intersectFrac/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/intersectFrac/Example.rst @@ -14,11 +14,15 @@ method `(Phan et al., 2003) :end-before: @@ -78,7 +82,7 @@ with one group of cell blocks named here ``cb1``. Refinement is necessary to conform with the fracture geometry specified in the ``Geometry`` section. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/TFrac_base.xml :language: xml :start-after: :end-before: @@ -124,7 +128,7 @@ A homogeneous and isotropic domain with one solid material is assumed, and its m Fracture surface slippage is assumed to be governed by the Coulomb failure criterion. The contact constitutive behavior is named ``fractureMaterial`` in the ``Coulomb`` block, where cohesion ``cohesion="0.0"`` and friction coefficient ``frictionCoefficient="0.577350269"`` are specified. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/TFrac_base.xml :language: xml :start-after: :end-before: @@ -145,7 +149,7 @@ In the ``Tasks`` section, ``PackCollection`` tasks are defined to collect time h Either the entire field or specified named sets of indices in the field can be collected. In this example, ``tractionCollection`` and ``displacementJumpCollection`` tasks are specified to output the local traction ``fieldName="traction"`` and relative displacement ``fieldName="displacementJump"`` on the fracture surface. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/TFrac_base.xml :language: xml :start-after: :end-before: @@ -171,7 +175,7 @@ The remaining parts of the outer boundaries are subjected to roller constraints. These boundary conditions are set up through the ``FieldSpecifications`` section. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/TFrac_base.xml :language: xml :start-after: :end-before: diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/intersectFrac/intersectFracFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/intersectFrac/intersectFracFigure.py index 63ad214a36f..ac6f796ed04 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/intersectFrac/intersectFracFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/intersectFrac/intersectFracFigure.py @@ -7,6 +7,8 @@ import math from math import sin, cos, tan, exp, atan, asin from mpl_toolkits.mplot3d import axes3d +import os +import argparse class Sneddon: @@ -87,29 +89,42 @@ def getFractureGeometryFromXML(xmlFilePath): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + # File path - hdf5File1Path = "traction_history.hdf5" - hdf5File2Path = "displacementJump_history.hdf5" - xmlFilePath = "../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_TFrac_base.xml" + outputDir = args.outputDir + geosDir = args.geosDir + hdf5File1Path = outputDir + "/traction_history.hdf5" + hdf5File2Path = outputDir + "/displacementJump_history.hdf5" + xmlFilePath = geosDir + "/inputFiles/lagrangianContactMechanics/TFrac_base.xml" # Read HDF5 # Global Coordinate of Fracture Element Center hf = h5py.File(hdf5File1Path, 'r') xl = hf.get('traction elementCenter') - xl = np.array(xl) + xl = np.asarray(xl) xcord = xl[0, :, 0] ycord = xl[0, :, 1] zcord = xl[0, :, 2] # Local Normal Traction trac = hf.get('traction') - trac = np.array(trac) + trac = np.asarray(trac) normalTraction = trac[-1, :, 0] # Local Shear Displacement hf = h5py.File(hdf5File2Path, 'r') jump = hf.get('displacementJump') - jump = np.array(jump) + jump = np.asarray(jump) displacementJump = jump[-1, :, 1] aperture = jump[-1, :, 0] diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/singleFracCompression/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/singleFracCompression/Example.rst index c34a6cf30cb..4b29541ce9d 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/singleFracCompression/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/singleFracCompression/Example.rst @@ -13,11 +13,15 @@ In this example, a single fracture is simulated using a Lagrange contact model i **Input file** -Everything required is contained within two GEOS input files and one mesh file located at: +Everything required is contained within these GEOS input files and one mesh file located at: .. code-block:: console - inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml + inputFiles/lagrangianContactMechanics/SingleFracCompression_base.xml + +.. code-block:: console + + inputFiles/lagrangianContactMechanics/SingleFracCompression_benchmark.xml .. code-block:: console @@ -79,7 +83,7 @@ The syntax to import external meshes is simple: in the XML file, the mesh file ``crackInPlane_benchmark.vtu`` is included with its relative or absolute path to the location of the GEOS XML file and a user-specified label (here ``CubeHex``) is given to the mesh object. This unstructured mesh contains quadrilaterals elements and interface elements. Refinement is performed to conform with the fracture geometry specified in the ``Geometry`` section. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_benchmark.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/SingleFracCompression_benchmark.xml :language: xml :start-after: :end-before: @@ -110,7 +114,7 @@ To setup a coupling between rock and fracture deformations, we define three diff - The solver ``SurfaceGenerator`` defines the fracture region and rock toughness. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_benchmark.xml :language: xml :start-after: :end-before: @@ -124,7 +128,7 @@ For this specific problem, we simulate the elastic deformation and fracture slip Fracture surface slippage is assumed to be governed by the Coulomb failure criterion. The contact constitutive behavior is named ``fractureMaterial`` in the ``Coulomb`` block, where cohesion ``cohesion="0.0"`` and friction coefficient ``frictionCoefficient="0.577350269"`` are specified. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/SingleFracCompression_base.xml :language: xml :start-after: :end-before: @@ -145,7 +149,7 @@ In the ``Tasks`` section, ``PackCollection`` tasks are defined to collect time h Either the entire field or specified named sets of indices in the field can be collected. In this example, ``tractionCollection`` and ``displacementJumpCollection`` tasks are specified to output the local traction ``fieldName="traction"`` and relative displacement ``fieldName="displacementJump"`` on the fracture surface. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/SingleFracCompression_base.xml :language: xml :start-after: :end-before: @@ -170,7 +174,7 @@ The remaining parts of the outer boundaries are subjected to roller constraints. These boundary conditions are set up through the ``FieldSpecifications`` section. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/SingleFracCompression_base.xml :language: xml :start-after: :end-before: diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/singleFracCompression/singleFracCompressionFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/singleFracCompression/singleFracCompressionFigure.py index e4c5f331e8c..32afe5d42b2 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/singleFracCompression/singleFracCompressionFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/singleFracCompression/singleFracCompressionFigure.py @@ -7,6 +7,8 @@ import math from math import sin, cos, tan, exp, atan, asin from mpl_toolkits.mplot3d import axes3d +import os +import argparse class Analytical: @@ -78,17 +80,30 @@ def getFractureGeometryFromXML(xmlFilePath): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + # File path - hdf5File1Path = "traction_history.hdf5" - hdf5File2Path = "displacementJump_history.hdf5" - xmlFile1Path = "../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_base.xml" - xmlFile2Path = "../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_SingleFracCompression_benchmark.xml" + outputDir = args.outputDir + geosDir = args.geosDir + hdf5File1Path = outputDir + "/traction_history.hdf5" + hdf5File2Path = outputDir + "/displacementJump_history.hdf5" + xmlFile1Path = geosDir + "/inputFiles/lagrangianContactMechanics/SingleFracCompression_base.xml" + xmlFile2Path = geosDir + "/inputFiles/lagrangianContactMechanics/SingleFracCompression_benchmark.xml" # Read HDF5 # Global Coordinate of Fracture Element Center hf = h5py.File(hdf5File1Path, 'r') xl = hf.get('traction elementCenter') - xl = np.array(xl) + xl = np.asarray(xl) xcord = xl[0, :, 0] ycord = xl[0, :, 1] zcord = xl[0, :, 2] @@ -96,13 +111,13 @@ def main(): # Local Normal Traction hf = h5py.File(hdf5File1Path, 'r') trac = hf.get('traction') - trac = np.array(trac) + trac = np.asarray(trac) normalTraction = trac[0, :, 0] # Local Shear Displacement hf = h5py.File(hdf5File2Path, 'r') jump = hf.get('displacementJump') - jump = np.array(jump) + jump = np.asarray(jump) displacementJump = jump[0, :, 1] # Extract Local Inform for The Middle Layer diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/sneddon/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/sneddon/Example.rst index 65a1ad48d5e..c8a81833630 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/sneddon/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/sneddon/Example.rst @@ -29,8 +29,9 @@ The xml input files for the case with LagrangianContact solver are located at: .. code-block:: console - inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_base.xml - inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_benchmark.xml + inputFiles/lagrangianContactMechanics/Sneddon_base.xml + inputFiles/lagrangianContactMechanics/Sneddon_benchmark.xml + inputFiles/lagrangianContactMechanics/ContactMechanics_Sneddon_benchmark.xml The xml input files for the case with HydroFracture solver are located at: @@ -99,7 +100,7 @@ To setup a coupling between rock and fracture deformations in LagrangianContact - The solver ``SurfaceGenerator`` defines the fracture region and rock toughness. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_benchmark.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/ContactMechanics_Sneddon_benchmark.xml :language: xml :start-after: :end-before: @@ -155,7 +156,7 @@ along the Z axes, 121 elements along the X axis and 921 elements along the Y axi The mesh for the case with LagrangianContact solver was also created using the internal mesh generator, as parametrized in the ``InternalMesh`` XML tag. The mesh discretizes the same compational domain (:math:`40\, m \, \times 40 \, m \, \times 1 \, m`) with 300 x 300 x 2 eight-node brick elements in the x, y, and z directions respectively. -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_benchmark.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/Sneddon_benchmark.xml :language: xml :start-after: :end-before: @@ -209,7 +210,7 @@ The static fracture is defined by a nodeset occupying a small region within the - The test case with LagrangianContact solver: -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/Sneddon_base.xml :language: xml :start-after: :end-before: @@ -242,7 +243,7 @@ In this example, a task is specified to output fracture aperture (normal opening - The test case with LagrangianContact solver: -.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_base.xml +.. literalinclude:: ../../../../../../../inputFiles/lagrangianContactMechanics/Sneddon_base.xml :language: xml :start-after: :end-before: @@ -271,7 +272,7 @@ To run these three cases, use the following commands: ``path/to/geos -i inputFiles/efemFractureMechanics/Sneddon_embeddedFrac_verification.xml`` -``path/to/geos -i inputFiles/lagrangianContactMechanics/Sneddon_contactMechanics_benchmark.xml`` +``path/to/geos -i inputFiles/lagrangianContactMechanics/ContactMechanics_Sneddon_benchmark.xml`` ``path/to/geos -i inputFiles/hydraulicFracturing/Sneddon_hydroFrac_benchmark.xml`` diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/sneddon/sneddonFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/sneddon/sneddonFigure.py index 5d3db7e4687..6562cfdc8e9 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/sneddon/sneddonFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/sneddon/sneddonFigure.py @@ -5,6 +5,8 @@ import xml.etree.ElementTree as ElementTree from mpmath import * import math +import os +import argparse class Sneddon: @@ -62,13 +64,26 @@ def getFractureLengthFromXML(xmlFilePath): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + #-------- EmbeddeFrac File path - hdf5File1Path = "displacementJump_embeddedFrac.hdf5" + outputDir = args.outputDir + geosDir = args.geosDir + hdf5File1Path = outputDir + "/displacementJump_embeddedFrac.hdf5" # Read HDF5 hf = h5py.File(hdf5File1Path, 'r') jump = hf.get('displacementJump') - jump = np.array(jump) + jump = np.asarray(jump) aperture_EmbeddeFrac = jump[0, :, 0] x = hf.get('displacementJump elementCenter') loc_EmbeddeFrac = x[0, :, 1] @@ -79,7 +94,7 @@ def main(): # Read HDF5 hf = h5py.File(hdf5File2Path, 'r') jump = hf.get('displacementJump') - jump = np.array(jump) + jump = np.asarray(jump) aperture_Contact = jump[0, :, 0] x = hf.get('displacementJump elementCenter') loc_Contact = x[0, :, 1] @@ -90,13 +105,13 @@ def main(): # Read HDF5 hf = h5py.File(hdf5File3Path, 'r') jump = hf.get('elementAperture') - jump = np.array(jump) + jump = np.asarray(jump) aperture_HydroFrac = jump[0, :] x = hf.get('elementAperture elementCenter') loc_HydroFrac = x[0, :, 1] #-------- Extract info from XML - xmlFilePath = "../../../../../../../inputFiles/efemFractureMechanics/Sneddon_embeddedFrac" + xmlFilePath = geosDir + "/inputFiles/efemFractureMechanics/Sneddon_embeddedFrac" mechanicalParameters = getMechanicalParametersFromXML(xmlFilePath+"_base.xml") appliedPressure = getFracturePressureFromXML(xmlFilePath+"_base.xml") diff --git a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdToughnessDominated/kgdToughnessDominatedFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdToughnessDominated/kgdToughnessDominatedFigure.py index ce6deb2112c..98c7e241dd7 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdToughnessDominated/kgdToughnessDominatedFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdToughnessDominated/kgdToughnessDominatedFigure.py @@ -1,6 +1,9 @@ import sys +import os +import argparse + sys.path.append('../../../../../../../inputFiles/hydraulicFracturing/scripts') import hydrofractureFigure -hydrofractureFigure.main(xmlFilePathPrefix='kgdToughnessDominated') +hydrofractureFigure.main( geosDir='../../../../../../..',xmlFilePrefix='kgdToughnessDominated') diff --git a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdValidation/kgdValidationFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdValidation/kgdValidationFigure.py index 5ef9337d72a..e16cbbaba83 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdValidation/kgdValidationFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdValidation/kgdValidationFigure.py @@ -1,10 +1,23 @@ import matplotlib import numpy as np import matplotlib.pyplot as plt +import os +import argparse def main(): + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + outputDir = args.outputDir + + # Experiments (Rubin, 1983) H = 0.055 Tinj = 3.7 @@ -16,7 +29,7 @@ def main(): P58list = [1.677, 4.145, 4.134, 3.507, 3.381, 2.827, 2.292, 1.894, 1.557, 1.345, 1.172, 1.050, 0.949] # Load GEOSX results - GTime, GWellP, G58P, G57P, GAper, GArea = np.loadtxt("model_results.txt", skiprows=1, unpack=True) + GTime, GWellP, G58P, G57P, GAper, GArea = np.loadtxt(outputDir + "/model_results.txt", skiprows=1, unpack=True) GLength = GArea / H * 1000 GTime = GTime + Tinj diff --git a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdValidation/kgdValidationQueries.py b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdValidation/kgdValidationQueries.py index 18354b98f23..f46826d4c03 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdValidation/kgdValidationQueries.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdValidation/kgdValidationQueries.py @@ -43,9 +43,20 @@ def getMeshSettings(xmlFilePath): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + # Load and process GEOSX results # File path - prefix = "../../../../../../../inputFiles/hydraulicFracturing/" + prefix = geosDir + "/inputFiles/hydraulicFracturing/" hdf5File = prefix + "KGD_validation_output.hdf5" xmlFile1Path = prefix + "kgdValidation_base.xml" xmlFile2Path = prefix + "kgdValidation_benchmark.xml" @@ -62,21 +73,21 @@ def main(): # Global Coordinate of Element Center hf = hdf5_wrapper.hdf5_wrapper(hdf5File) xl = hf['pressure elementCenter'] - xl = np.array(xl) + xl = np.asarray(xl) xcord = xl[-1, :, 0] ycord = xl[-1, :, 1] zcord = xl[-1, :, 2] tl = hf['pressure Time'] - tl = np.array(tl) + tl = np.asarray(tl) # Load pressure fpre = hf['pressure'] - fpre = np.array(fpre) + fpre = np.asarray(fpre) # Load elementAperture aper = hf['elementAperture'] - aper = np.array(aper) + aper = np.asarray(aper) # Load elementArea area = hf['elementArea'] - area = np.array(area) + area = np.asarray(area) # Query simulation results xloc_58 = 0.015 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdViscosityDominated/kgdViscosityDominatedFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdViscosityDominated/kgdViscosityDominatedFigure.py index f27bdd261c4..94fca42b18e 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdViscosityDominated/kgdViscosityDominatedFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/kgdViscosityDominated/kgdViscosityDominatedFigure.py @@ -1,6 +1,8 @@ import sys +import os +import argparse sys.path.append('../../../../../../../inputFiles/hydraulicFracturing/scripts') import hydrofractureFigure -hydrofractureFigure.main(xmlFilePathPrefix='kgdViscosityDominated') +hydrofractureFigure.main( geosDir='../../../../../../..',xmlFilePrefix='kgdViscosityDominated') diff --git a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pennyFracToughnessDominated/pennyShapedToughnessDominatedFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pennyFracToughnessDominated/pennyShapedToughnessDominatedFigure.py index 79da99b2b64..1fbe44c6ddf 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pennyFracToughnessDominated/pennyShapedToughnessDominatedFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pennyFracToughnessDominated/pennyShapedToughnessDominatedFigure.py @@ -1,6 +1,8 @@ import sys +import os +import argparse sys.path.append('../../../../../../../inputFiles/hydraulicFracturing/scripts') import hydrofractureFigure -hydrofractureFigure.main(xmlFilePathPrefix='pennyShapedToughnessDominated') +hydrofractureFigure.main( geosDir='../../../../../../..',xmlFilePrefix='pennyShapedToughnessDominated') diff --git a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pennyFracViscosityDominated/pennyShapedViscosityDominatedFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pennyFracViscosityDominated/pennyShapedViscosityDominatedFigure.py index 8f1e331a3c4..a2ca7bea56f 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pennyFracViscosityDominated/pennyShapedViscosityDominatedFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pennyFracViscosityDominated/pennyShapedViscosityDominatedFigure.py @@ -1,6 +1,8 @@ import sys +import os +import argparse sys.path.append('../../../../../../../inputFiles/hydraulicFracturing/scripts') import hydrofractureFigure -hydrofractureFigure.main(xmlFilePathPrefix='pennyShapedViscosityDominated') +hydrofractureFigure.main( geosDir='../../../../../../..',xmlFilePrefix='pennyShapedViscosityDominated') diff --git a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pknFracViscosityDominated/pknViscosityDominatedFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pknFracViscosityDominated/pknViscosityDominatedFigure.py index 3fe908fb9f8..824b5c3dfe8 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pknFracViscosityDominated/pknViscosityDominatedFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/pknFracViscosityDominated/pknViscosityDominatedFigure.py @@ -1,6 +1,8 @@ import sys +import os +import argparse sys.path.append('../../../../../../../inputFiles/hydraulicFracturing/scripts') import hydrofractureFigure -hydrofractureFigure.main(xmlFilePathPrefix='pknViscosityDominated') +hydrofractureFigure.main( geosDir='../../../../../../..',xmlFilePrefix='pknViscosityDominated') diff --git a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/proppantSlotTest/proppantSlotTestFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/proppantSlotTest/proppantSlotTestFigure.py index 39e494eb0e0..5a528ad123e 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/proppantSlotTest/proppantSlotTestFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/hydraulicFracture/proppantSlotTest/proppantSlotTestFigure.py @@ -2,14 +2,27 @@ import matplotlib import numpy as np import matplotlib.pyplot as plt +import os +import argparse def main(): - eTime, eLength, eArea = np.loadtxt("experiment-data.txt", skiprows=0, unpack=True) - esTime, esArea = np.loadtxt("experiment-data2.txt", skiprows=0, unpack=True) - dTime, dLength, dArea = np.loadtxt("model-results.txt", skiprows=1, unpack=True) - sTime, sArea = np.loadtxt("model-results2.txt", skiprows=1, unpack=True) + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + outputDir = args.outputDir + + eTime, eLength, eArea = np.loadtxt(outputDir + "/experiment-data.txt", skiprows=0, unpack=True) + esTime, esArea = np.loadtxt(outputDir + "/experiment-data2.txt", skiprows=0, unpack=True) + + dTime, dLength, dArea = np.loadtxt(outputDir + "/model-results.txt", skiprows=1, unpack=True) + sTime, sArea = np.loadtxt(outputDir + "/model-results2.txt", skiprows=1, unpack=True) # offSize is the size of the bounday cell which should be excluded from the model domain offSize = 0.0127 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/Index.rst b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/Index.rst index 46eda39040d..3b5ff0a73ca 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/Index.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/Index.rst @@ -1,4 +1,4 @@ -.. _ValidationStudiesFaultMechanics: +.. _ValidationStudiesPoromechanics: Poromechanics diff --git a/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/Example.rst index ea1107077f7..3e0cf3e0710 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/Example.rst @@ -30,7 +30,7 @@ Description of the case We simulate the consolidation of a poroelastic slab between two rigid and impermeable plates subjected to a constant normal force. The slab is assumed to be fully saturated, homogeneous, isotropic, and infinitely long in the y-direction. We apply a uniform compressive load in the vertical direction. This force leads to a change of pore pressure and mechanical deformations of the sample, evolving with time due to fluid diffusion and coupling effects. The numerical model represents a plane strain deformation and lateral drainage without confinement, showing only a quarter of the computational domain in the x-z plane (the rest follows by symmetry). -.. _problemSketchFig: +.. _mandelProblemSketchFig: .. figure:: sketch.png :align: center :width: 500 @@ -119,7 +119,7 @@ As demonstrated in this example, to setup a poromechanical coupling, we need to - the mechanics solver, a solver of type ``SolidMechanicsLagrangianSSLE`` called here ``lagsolve`` (more information here: :ref:`SolidMechanicsLagrangianFEM`), -.. literalinclude:: ../../../../../../../inputFiles/poromechanics/PoroElastic_Mandel_base.xml +.. literalinclude:: ../../../../../../../inputFiles/poromechanics/PoroElastic_Mandel_smoke_sequential.xml :language: xml :start-after: :end-before: @@ -127,7 +127,7 @@ As demonstrated in this example, to setup a poromechanical coupling, we need to - the single-phase flow solver, a solver of type ``SinglePhaseFVM`` called here ``SinglePhaseFlow`` (more information on these solvers at :ref:`SinglePhaseFlow`), -.. literalinclude:: ../../../../../../../inputFiles/poromechanics/PoroElastic_Mandel_base.xml +.. literalinclude:: ../../../../../../../inputFiles/poromechanics/PoroElastic_Mandel_smoke_sequential.xml :language: xml :start-after: :end-before: @@ -135,7 +135,7 @@ As demonstrated in this example, to setup a poromechanical coupling, we need to - the coupling solver (``SinglePhasePoromechanics``) that will bind the two single-physics solvers above, which is named as ``poroSolve`` (more information at :ref:`PoroelasticSolver`). -.. literalinclude:: ../../../../../../../inputFiles/poromechanics/PoroElastic_Mandel_base.xml +.. literalinclude:: ../../../../../../../inputFiles/poromechanics/PoroElastic_Mandel_smoke_sequential.xml :language: xml :start-after: :end-before: @@ -267,6 +267,7 @@ The figure below compares the results from GEOS (marks) and the corresponding an .. plot:: docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mandelFigure.py +.. note:: The python script included above is used to generate the figure shown here. If you want to run this script to verify your results, you will need to run the script from your output directory, and modify the path to the variables `xmlFile1Path` and `xmlFile1Path` in the script to point to the location of the input files on your system. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mandelFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mandelFigure.py index b484b5bda99..737c8680836 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mandelFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mandelFigure.py @@ -7,7 +7,8 @@ import math from math import sin, cos, tan, exp, atan, asin from scipy.optimize import newton - +import os +import argparse class Mandel: @@ -140,11 +141,25 @@ def getGeometryFromXML(xmlFilePath): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File path - hdf5File1Path = "pressure_history.hdf5" - hdf5File2Path = "displacement_history.hdf5" - xmlFile1Path = "../../../../../../../inputFiles/poromechanics/PoroElastic_Mandel_base.xml" - xmlFile2Path = "../../../../../../../inputFiles/poromechanics/PoroElastic_Mandel_benchmark_fim.xml" + outputDir = args.outputDir + geosDir = args.geosDir + hdf5File1Path = outputDir + "/pressure_history.hdf5" + hdf5File2Path = outputDir + "/displacement_history.hdf5" + xmlFile1Path = geosDir + "/inputFiles/poromechanics/PoroElastic_Mandel_base.xml" + xmlFile2Path = geosDir + "/inputFiles/poromechanics/PoroElastic_Mandel_benchmark_fim.xml" # Read HDF5 # Global Coordinate of Element Center diff --git a/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/Example.rst index 74e9a10750d..7e67e01d820 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/Example.rst @@ -31,7 +31,7 @@ The initial temperature of the saturated soil is 0 degrees Celsius. The soil column is insulated and sealed everywhere, except at the top surface. The problem setup is illustrated below. -.. _problemSketchFig: +.. _thermoPoroMechanicsProblemSketchFig: .. figure:: sketch.png :align: center :width: 350 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationDisplacementFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationDisplacementFigure.py index 210bfd27a8c..285a7b15706 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationDisplacementFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationDisplacementFigure.py @@ -15,11 +15,11 @@ def main(): # Read simulation output from HDF5 file hf = h5py.File(hdf5FilePathDisplacement, 'r') timeDisplacement = hf.get('totalDisplacement Time') - timeDisplacement = np.array(timeDisplacement) + timeDisplacement = np.asarray(timeDisplacement) centerDisplacement = hf.get('totalDisplacement ReferencePosition') - centerDisplacement = np.array(centerDisplacement) + centerDisplacement = np.asarray(centerDisplacement) displacement = hf.get('totalDisplacement') - displacement = np.array(displacement) + displacement = np.asarray(displacement) time = 1 posVertex1 = -1 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationPressureFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationPressureFigure.py index 90a074889f1..d72455e6020 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationPressureFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationPressureFigure.py @@ -15,11 +15,11 @@ def main(): # Read simulation output from HDF5 file hf = h5py.File(hdf5FilePathPressure, 'r') timePressure = hf.get('pressure Time') - timePressure = np.array(timePressure) + timePressure = np.asarray(timePressure) centerPressure = hf.get('pressure elementCenter') - centerPressure = np.array(centerPressure) + centerPressure = np.asarray(centerPressure) pressure = hf.get('pressure') - pressure = np.array(pressure) + pressure = np.asarray(pressure) time = 1 posElement1 = -1 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationTemperatureFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationTemperatureFigure.py index 65b4dd710d5..ee60cf94ab5 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationTemperatureFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/thermoPoromechanics/thermalConsolidation/thermalConsolidationTemperatureFigure.py @@ -15,11 +15,11 @@ def main(): # Read simulation output from HDF5 file hf = h5py.File(hdf5FilePathTemperature, 'r') timeTemperature = hf.get('temperature Time') - timeTemperature = np.array(timeTemperature) + timeTemperature = np.asarray(timeTemperature) centerTemperature = hf.get('temperature elementCenter') - centerTemperature = np.array(centerTemperature) + centerTemperature = np.asarray(centerTemperature) temperature = hf.get('temperature') - temperature = np.array(temperature) + temperature = np.asarray(temperature) time = 1 posElement1 = -1 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/Example.rst index 7eec2c3f25c..e02f57bc2b7 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/Example.rst @@ -121,4 +121,4 @@ To go further **Feedback on this example** -For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/TriaxialDriver_vs_SemiAnalytic_DruckerPrager.py b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/TriaxialDriver_vs_SemiAnalytic_DruckerPrager.py index 4c15b4b910f..454ba85d837 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/TriaxialDriver_vs_SemiAnalytic_DruckerPrager.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/TriaxialDriver_vs_SemiAnalytic_DruckerPrager.py @@ -3,240 +3,255 @@ import numpy as np import matplotlib.pyplot as plt import xml.etree.ElementTree as ElementTree +import os +import argparse def main(): - # File paths - path = "DruckerPragerResults.txt" - xmlFilePath = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_base.xml" - xmlFilePath_case = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_DruckerPrager.xml" - imposedStrainFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/axialStrain.geos" - imposedStressFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/radialStress.geos" - - # Load GEOSX results - time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( - path, skiprows=5, unpack=True) - - # Extract mechanical parameters from XML files - tree = ElementTree.parse(xmlFilePath) - tree_case = ElementTree.parse(xmlFilePath_case) - model = tree_case.find('Tasks/TriaxialDriver') - param = tree.find('Constitutive/DruckerPrager') - - bulkModulus = float(param.get("defaultBulkModulus")) - shearModulus = float(param.get("defaultShearModulus")) - cohesion = float(param.get("defaultCohesion")) - frictionAngle = float(param.get("defaultFrictionAngle")) - dilationAngle = float(param.get("defaultDilationAngle")) - hardeningRate = float(param.get("defaultHardeningRate")) - initialStress = float(model.get("initialStress")) - - # Compute Lame modulus and Young modulus - lameModulus = bulkModulus - 2.0/3.0*shearModulus - youngModulus = 1.0 / ( 1.0/9.0/bulkModulus + 1.0/3.0/shearModulus ) - - # Friction and cohesion parameters - frictionAngleRad = frictionAngle*3.1416/180.0 - cosFrictionAngle = np.cos(frictionAngleRad) - sinFrictionAngle = np.sin(frictionAngleRad) - a = 6.0*cohesion*cosFrictionAngle/(3.0-sinFrictionAngle) - b = 6.0*sinFrictionAngle/(3.0-sinFrictionAngle) - - # Dilation parameter - dilationAngleRad = dilationAngle*np.pi/180.0 - cosDilationAngle = np.cos(dilationAngleRad) - sinDilationAngle = np.sin(dilationAngleRad) - b_dilation = 6.0*sinDilationAngle/(3.0-sinDilationAngle) - - # Elasto-plastic moduli for plastic yield during the loading period - plasticYoungModulus = 1.0 / ( 1.0/youngModulus + (b_dilation-3.0)*(b-3.0)/9.0/hardeningRate ) - plasticModulusForRaStrain = 1.0 / ( 1.0/2.0/shearModulus - (b-3.0)/2.0/hardeningRate ) - - # Elasto-plastic moduli for plastic yield during the unloading period - plasticYoungModulus_unload = 1.0 / ( 1.0/youngModulus + (b_dilation+3.0)*(b+3.0)/9.0/hardeningRate ) - plasticModulusForRaStrain_unload = 1.0 / ( 1.0/2.0/shearModulus + (b+3.0)/2.0/hardeningRate ) - - # Extract axial strain loading from input tables - imp_strain = np.loadtxt( - imposedStrainFilePath, skiprows=0, unpack=True) - - list_ax_strain_anal = [] - numStepPerLoadingPeriod = 1000 - - for i in range(0,len(imp_strain)-1): - dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod - loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) - list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) - - # Extract radial stress loading from input tables - imp_stress = np.loadtxt( - imposedStressFilePath, skiprows=0, unpack=True) - - list_ra_stress_anal = imp_stress[0]*np.ones(len(list_ax_strain_anal)) #constant radial confining stress - - # Initiate radial strain and axial stress arrays - list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal[0] = initialStress - list_ra_strain_anal[0] = 0 - - # Loop over the loading/unloading steps - for idx in range(1,len(list_ax_strain_anal)): - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - delta_ra_stress_anal = 0 # constant radial confining stress - - # Elastic trial - delta_ra_strain_anal = ( delta_ra_stress_anal - lameModulus*delta_ax_strain_anal ) / ( 2.0*lameModulus + 2.0*shearModulus ) - delta_ax_stress_anal = ( lameModulus + 2.0*shearModulus )*delta_ax_strain_anal + lameModulus/( lameModulus + shearModulus ) * ( delta_ra_stress_anal - lameModulus*delta_ax_strain_anal ) - - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Compute mean and shear stresses - ra_stress_anal = list_ra_stress_anal[idx] - - p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 - q_anal = -(ax_stress_anal - ra_stress_anal) - - # Plastic correction - if(q_anal>=0): #loading - F_anal = q_anal + b*p_anal - a - - if(F_anal>=0): - # Compute stress and strain variations - delta_ax_stress_anal = delta_ax_strain_anal * plasticYoungModulus - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / plasticModulusForRaStrain - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic cohesion - delta_a = (b-3.0)/3.0*delta_ax_stress_anal - a += delta_a - - else: #unloading - F_anal = -q_anal + b*p_anal - a # negative sign added to q for q<0 to obtain the absolute value - - if(F_anal>=0): - # Compute stress and strain variations - delta_ax_stress_anal = delta_ax_strain_anal * plasticYoungModulus_unload - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / plasticModulusForRaStrain_unload - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic cohesion - delta_a = (b+3.0)/3.0*delta_ax_stress_anal - a += delta_a - - list_ax_stress_anal[idx] = ax_stress_anal - list_ra_strain_anal[idx] = ra_strain_anal - - # Preparing data for visualizing semi-analytical results - list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 - list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) - - list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal - - p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 - q_num = -(ax_stress - ra_stress1) - - strain_vol = ax_strain + 2.0 * ra_strain1 - - #Visualization parameters - fsize = 30 - msize = 12 - lw = 6 - malpha = 0.5 - fig, ax = plt.subplots(1, 3, figsize=(37, 10)) - cmap = plt.get_cmap("tab10") - - # Plot strain versus shear stress - ax[0].plot(-ax_strain * 100, #convert to % - q_num*1e-6, #convert to MPa - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[0].plot(-ra_strain1 * 100, - q_num*1e-6, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha) - ax[0].plot(-list_ax_strain_anal* 100, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[0].plot(-list_ra_strain_anal * 100, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - linewidth=6) - ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") - ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - ax[0].xaxis.set_tick_params(labelsize=fsize) - ax[0].yaxis.set_tick_params(labelsize=fsize) - - # Plot axial strain versus volumetric strain - ax[1].plot(-ax_strain * 100, - -strain_vol * 100, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[1].plot(-list_ax_strain_anal* 100, - -list_strain_vol_anal* 100, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[1].set_ylabel(r'Volumetric Strain (%)', size=fsize, weight="bold") - #ax[1].legend(loc='lower right', fontsize=fsize) - ax[1].xaxis.set_tick_params(labelsize=fsize) - ax[1].yaxis.set_tick_params(labelsize=fsize) - - # Plot shear stress versus mean stress - ax[2].plot(-p_num*1e-6, - q_num*1e-6, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[2].plot(-list_p_anal*1e-6, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[2].set_xlabel(r'Mean stress (MPa)', size=fsize, weight="bold") - ax[2].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - ax[2].legend(loc='lower right', fontsize=fsize) - ax[2].xaxis.set_tick_params(labelsize=fsize) - ax[2].yaxis.set_tick_params(labelsize=fsize) - - plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) - plt.show() + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File paths + outputDir = args.outputDir + geosDir = args.geosDir + path = outputDir + "/DruckerPragerResults.txt" + xmlFilePath = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_base.xml" + xmlFilePath_case = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_DruckerPrager.xml" + imposedStrainFilePath = geosDir + "/inputFiles/triaxialDriver/tables/axialStrain.geos" + imposedStressFilePath = geosDir + "/inputFiles/triaxialDriver/tables/radialStress.geos" + + # Load GEOSX results + time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( + path, skiprows=5, unpack=True) + + # Extract mechanical parameters from XML files + tree = ElementTree.parse(xmlFilePath) + tree_case = ElementTree.parse(xmlFilePath_case) + model = tree_case.find('Tasks/TriaxialDriver') + param = tree.find('Constitutive/DruckerPrager') + + bulkModulus = float(param.get("defaultBulkModulus")) + shearModulus = float(param.get("defaultShearModulus")) + cohesion = float(param.get("defaultCohesion")) + frictionAngle = float(param.get("defaultFrictionAngle")) + dilationAngle = float(param.get("defaultDilationAngle")) + hardeningRate = float(param.get("defaultHardeningRate")) + initialStress = float(model.get("initialStress")) + + # Compute Lame modulus and Young modulus + lameModulus = bulkModulus - 2.0/3.0*shearModulus + youngModulus = 1.0 / ( 1.0/9.0/bulkModulus + 1.0/3.0/shearModulus ) + + # Friction and cohesion parameters + frictionAngleRad = frictionAngle*3.1416/180.0 + cosFrictionAngle = np.cos(frictionAngleRad) + sinFrictionAngle = np.sin(frictionAngleRad) + a = 6.0*cohesion*cosFrictionAngle/(3.0-sinFrictionAngle) + b = 6.0*sinFrictionAngle/(3.0-sinFrictionAngle) + + # Dilation parameter + dilationAngleRad = dilationAngle*np.pi/180.0 + cosDilationAngle = np.cos(dilationAngleRad) + sinDilationAngle = np.sin(dilationAngleRad) + b_dilation = 6.0*sinDilationAngle/(3.0-sinDilationAngle) + + # Elasto-plastic moduli for plastic yield during the loading period + plasticYoungModulus = 1.0 / ( 1.0/youngModulus + (b_dilation-3.0)*(b-3.0)/9.0/hardeningRate ) + plasticModulusForRaStrain = 1.0 / ( 1.0/2.0/shearModulus - (b-3.0)/2.0/hardeningRate ) + + # Elasto-plastic moduli for plastic yield during the unloading period + plasticYoungModulus_unload = 1.0 / ( 1.0/youngModulus + (b_dilation+3.0)*(b+3.0)/9.0/hardeningRate ) + plasticModulusForRaStrain_unload = 1.0 / ( 1.0/2.0/shearModulus + (b+3.0)/2.0/hardeningRate ) + + # Extract axial strain loading from input tables + imp_strain = np.loadtxt( + imposedStrainFilePath, skiprows=0, unpack=True) + + list_ax_strain_anal = [] + numStepPerLoadingPeriod = 1000 + + for i in range(0,len(imp_strain)-1): + dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod + loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) + list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) + + # Extract radial stress loading from input tables + imp_stress = np.loadtxt( + imposedStressFilePath, skiprows=0, unpack=True) + + list_ra_stress_anal = imp_stress[0]*np.ones(len(list_ax_strain_anal)) #constant radial confining stress + + # Initiate radial strain and axial stress arrays + list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal[0] = initialStress + list_ra_strain_anal[0] = 0 + + # Loop over the loading/unloading steps + for idx in range(1,len(list_ax_strain_anal)): + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + delta_ra_stress_anal = 0 # constant radial confining stress + + # Elastic trial + delta_ra_strain_anal = ( delta_ra_stress_anal - lameModulus*delta_ax_strain_anal ) / ( 2.0*lameModulus + 2.0*shearModulus ) + delta_ax_stress_anal = ( lameModulus + 2.0*shearModulus )*delta_ax_strain_anal + lameModulus/( lameModulus + shearModulus ) * ( delta_ra_stress_anal - lameModulus*delta_ax_strain_anal ) + + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Compute mean and shear stresses + ra_stress_anal = list_ra_stress_anal[idx] + + p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 + q_anal = -(ax_stress_anal - ra_stress_anal) + + # Plastic correction + if(q_anal>=0): #loading + F_anal = q_anal + b*p_anal - a + + if(F_anal>=0): + # Compute stress and strain variations + delta_ax_stress_anal = delta_ax_strain_anal * plasticYoungModulus + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / plasticModulusForRaStrain + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic cohesion + delta_a = (b-3.0)/3.0*delta_ax_stress_anal + a += delta_a + + else: #unloading + F_anal = -q_anal + b*p_anal - a # negative sign added to q for q<0 to obtain the absolute value + + if(F_anal>=0): + # Compute stress and strain variations + delta_ax_stress_anal = delta_ax_strain_anal * plasticYoungModulus_unload + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / plasticModulusForRaStrain_unload + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic cohesion + delta_a = (b+3.0)/3.0*delta_ax_stress_anal + a += delta_a + + list_ax_stress_anal[idx] = ax_stress_anal + list_ra_strain_anal[idx] = ra_strain_anal + + # Preparing data for visualizing semi-analytical results + list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 + list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) + + list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal + + p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 + q_num = -(ax_stress - ra_stress1) + + strain_vol = ax_strain + 2.0 * ra_strain1 + + #Visualization parameters + fsize = 30 + msize = 12 + lw = 6 + malpha = 0.5 + fig, ax = plt.subplots(1, 3, figsize=(37, 10)) + cmap = plt.get_cmap("tab10") + + # Plot strain versus shear stress + ax[0].plot(-ax_strain * 100, #convert to % + q_num*1e-6, #convert to MPa + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[0].plot(-ra_strain1 * 100, + q_num*1e-6, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha) + ax[0].plot(-list_ax_strain_anal* 100, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[0].plot(-list_ra_strain_anal * 100, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + linewidth=6) + ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") + ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + ax[0].xaxis.set_tick_params(labelsize=fsize) + ax[0].yaxis.set_tick_params(labelsize=fsize) + + # Plot axial strain versus volumetric strain + ax[1].plot(-ax_strain * 100, + -strain_vol * 100, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[1].plot(-list_ax_strain_anal* 100, + -list_strain_vol_anal* 100, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[1].set_ylabel(r'Volumetric Strain (%)', size=fsize, weight="bold") + #ax[1].legend(loc='lower right', fontsize=fsize) + ax[1].xaxis.set_tick_params(labelsize=fsize) + ax[1].yaxis.set_tick_params(labelsize=fsize) + + # Plot shear stress versus mean stress + ax[2].plot(-p_num*1e-6, + q_num*1e-6, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[2].plot(-list_p_anal*1e-6, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[2].set_xlabel(r'Mean stress (MPa)', size=fsize, weight="bold") + ax[2].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + ax[2].legend(loc='lower right', fontsize=fsize) + ax[2].xaxis.set_tick_params(labelsize=fsize) + ax[2].yaxis.set_tick_params(labelsize=fsize) + + plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) + plt.show() if __name__ == "__main__": main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ExtendedDruckerPrager/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ExtendedDruckerPrager/Example.rst index ceaf5963b8d..4c51b85d703 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ExtendedDruckerPrager/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ExtendedDruckerPrager/Example.rst @@ -126,4 +126,4 @@ To go further **Feedback on this example** -For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ExtendedDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ExtendedDruckerPrager.py b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ExtendedDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ExtendedDruckerPrager.py index e55ccc04526..6589ac70c4a 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ExtendedDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ExtendedDruckerPrager.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ExtendedDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ExtendedDruckerPrager.py @@ -3,258 +3,273 @@ import numpy as np import matplotlib.pyplot as plt import xml.etree.ElementTree as ElementTree +import os +import argparse def main(): - # File paths - path = "ExtendedDruckerPragerResults.txt" - xmlFilePath = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_base.xml" - xmlFilePath_case = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_ExtendedDruckerPrager.xml" - imposedStrainFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/axialStrain.geos" - imposedStressFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/radialStress.geos" - - # Load GEOSX results - time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( - path, skiprows=5, unpack=True) - - # Extract mechanical parameters from XML file - tree = ElementTree.parse(xmlFilePath) - tree_case = ElementTree.parse(xmlFilePath_case) - model = tree_case.find('Tasks/TriaxialDriver') - param = tree.find('Constitutive/ExtendedDruckerPrager') - - bulkModulus = float(param.get("defaultBulkModulus")) - shearModulus = float(param.get("defaultShearModulus")) - cohesion = float(param.get("defaultCohesion")) - initialFrictionAngle = float(param.get("defaultInitialFrictionAngle")) - residualFrictionAngle = float(param.get("defaultResidualFrictionAngle")) - hardeningParameter = float(param.get("defaultHardening")) - dilationRatio = float(param.get("defaultDilationRatio")) - initialStress = float(model.get("initialStress")) - - # Compute Lame modulus and Young modulus - lameModulus = bulkModulus - 2.0/3.0*shearModulus - youngModulus = 1.0 / ( 1.0/9.0/bulkModulus + 1.0/3.0/shearModulus ) - - # Friction and cohesion parameters - initialFrictionAngleRad = initialFrictionAngle * np.pi / 180.0 - cosInitialFrictionAngle = np.cos(initialFrictionAngleRad) - sinInitialFrictionAngle = np.sin(initialFrictionAngleRad) - a_init = 6.0*cohesion*cosInitialFrictionAngle / ( 3.0 - sinInitialFrictionAngle ) - b_init = 6.0*sinInitialFrictionAngle / ( 3.0 - sinInitialFrictionAngle ) - - residualFrictionAngleRad = residualFrictionAngle * np.pi / 180.0 - sinResidualFrictionAngle = np.sin(residualFrictionAngleRad) - b_resi = 6.0*sinResidualFrictionAngle/(3.0-sinResidualFrictionAngle) - - # Extract loading from input tables - imp_strain = np.loadtxt( - imposedStrainFilePath, skiprows=0, unpack=True) - - list_ax_strain_anal = [] - numStepPerLoadingPeriod = 1000 - - for i in range(0,len(imp_strain)-1): - dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod - loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) - list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) - - # Extract radial stress loading from input tables - imp_stress = np.loadtxt( - imposedStressFilePath, skiprows=0, unpack=True) - - list_ra_stress_anal = imp_stress[0]*np.ones(len(list_ax_strain_anal)) #constant radial confining stress - - # Initiate radial strain and axial stress arrays - list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal[0] = initialStress - list_ra_strain_anal[0] = 0 - - - # Loop over the loading/unloading steps - plasticMultiplier = 0 - b = b_init - - for idx in range(1,len(list_ax_strain_anal)): - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - delta_ra_stress_anal = 0 # constant lateral confining stress - - # Elastic trial - delta_ra_strain_anal = ( delta_ra_stress_anal - lameModulus*delta_ax_strain_anal ) / ( 2.0*lameModulus + 2.0*shearModulus ) - delta_ax_stress_anal = ( lameModulus + 2.0*shearModulus )*delta_ax_strain_anal + lameModulus/( lameModulus + shearModulus )*( delta_ra_stress_anal - lameModulus*delta_ax_strain_anal ) - - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Compute mean and shear stresses - ra_stress_anal = list_ra_stress_anal[idx] - - p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 - q_anal = -(ax_stress_anal - ra_stress_anal) - - # Plastic correction - if(q_anal>=0): #loading - - F_anal = q_anal + b*p_anal - b*a_init/b_init - - if(F_anal>=0): - b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) - dF_db = p_anal - a_init/b_init - db_dlambda = hardeningParameter * (b_resi - b_init) / ( hardeningParameter + plasticMultiplier ) / ( hardeningParameter + plasticMultiplier ) - hardeningRate = -dF_db*db_dlambda - - # Elasto-plastic moduli for plastic yield during the loading period - plasticYoungModulus = 1.0 / ( 1.0/youngModulus + (b*dilationRatio-3.0)*(b-3.0)/9.0/hardeningRate ) - plasticModulusForRaStrain = 1.0 / ( 1.0/2.0/shearModulus - (b-3.0)/2.0/hardeningRate ) - - # Compute stress and strain variations - delta_ax_stress_anal = delta_ax_strain_anal*plasticYoungModulus - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / plasticModulusForRaStrain - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic multiplier - delta_lambda = (b-3.0)/3.0/hardeningRate*delta_ax_stress_anal - plasticMultiplier += delta_lambda - - else: #unloading - - F_anal = -q_anal + b*p_anal - b*a_init/b_init # negative sign added to q for q<0 to obtain the absolute value - - if(F_anal>=0): - b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) - dF_db = p_anal - a_init/b_init - db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) - hardeningRate = -dF_db*db_dlambda - - # Elasto-plastic moduli for plastic yield during the unloading period - plasticYoungModulus_unload = 1.0/(1.0/youngModulus + (b*dilationRatio+3.0)*(b+3.0)/9.0/hardeningRate) - plasticModulusForRaStrain_unload = 1.0/(1.0/2.0/shearModulus + (b+3.0)/2.0/hardeningRate) - - # Compute stress and strain variations - delta_ax_stress_anal = delta_ax_strain_anal*plasticYoungModulus_unload - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / plasticModulusForRaStrain_unload - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic multiplier - delta_lambda = (b+3.0)/3.0/hardeningRate*delta_ax_stress_anal - plasticMultiplier += delta_lambda - - list_ax_stress_anal[idx] = ax_stress_anal - list_ra_strain_anal[idx] = ra_strain_anal - - # Preparing data for visualizing semi-analytical results - list_p_anal = -(list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 - list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) - - list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal - - p_num = -(ax_stress + 2.0 * ra_stress1) / 3.0 - q_num = -(ax_stress - ra_stress1) - - strain_vol = ax_strain + 2.0 * ra_strain1 - - #Visualization parameters - fsize = 30 - msize = 12 - lw = 6 - malpha = 0.5 - fig, ax = plt.subplots(1, 3, figsize=(37, 10)) - cmap = plt.get_cmap("tab10") - - # Plot strain versus shear stress - ax[0].plot(-ax_strain * 100, #convert to % - q_num*1e-6, #convert to MPa - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[0].plot(-ra_strain1 * 100, - q_num*1e-6, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha) - ax[0].plot(-list_ax_strain_anal* 100, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[0].plot(-list_ra_strain_anal * 100, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - linewidth=6) - ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") - ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - #ax[0].legend(loc='lower right', fontsize=fsize) - ax[0].xaxis.set_tick_params(labelsize=fsize) - ax[0].yaxis.set_tick_params(labelsize=fsize) - - # Plot axial strain versus volumetric strain - ax[1].plot(-ax_strain * 100, - -strain_vol * 100, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[1].plot(-list_ax_strain_anal* 100, - -list_strain_vol_anal* 100, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[1].set_ylabel(r'Volumetric Strain (%)', size=fsize, weight="bold") - #ax[1].legend(loc='lower right', fontsize=fsize) - ax[1].xaxis.set_tick_params(labelsize=fsize) - ax[1].yaxis.set_tick_params(labelsize=fsize) - - - # Plot shear stress versus mean stress - ax[2].plot(p_num*1e-6, - q_num*1e-6, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[2].plot(list_p_anal*1e-6, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[2].set_xlabel(r'Mean stress (MPa)', size=fsize, weight="bold") - ax[2].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - ax[2].legend(loc='lower right', fontsize=fsize) - ax[2].xaxis.set_tick_params(labelsize=fsize) - ax[2].yaxis.set_tick_params(labelsize=fsize) - - plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) - - plt.show() + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File paths + outputDir = args.outputDir + geosDir = args.geosDir + path = outputDir + "/ExtendedDruckerPragerResults.txt" + xmlFilePath = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_base.xml" + xmlFilePath_case = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_ExtendedDruckerPrager.xml" + imposedStrainFilePath = geosDir + "/inputFiles/triaxialDriver/tables/axialStrain.geos" + imposedStressFilePath = geosDir + "/inputFiles/triaxialDriver/tables/radialStress.geos" + + # Load GEOSX results + time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( + path, skiprows=5, unpack=True) + + # Extract mechanical parameters from XML file + tree = ElementTree.parse(xmlFilePath) + tree_case = ElementTree.parse(xmlFilePath_case) + model = tree_case.find('Tasks/TriaxialDriver') + param = tree.find('Constitutive/ExtendedDruckerPrager') + + bulkModulus = float(param.get("defaultBulkModulus")) + shearModulus = float(param.get("defaultShearModulus")) + cohesion = float(param.get("defaultCohesion")) + initialFrictionAngle = float(param.get("defaultInitialFrictionAngle")) + residualFrictionAngle = float(param.get("defaultResidualFrictionAngle")) + hardeningParameter = float(param.get("defaultHardening")) + dilationRatio = float(param.get("defaultDilationRatio")) + initialStress = float(model.get("initialStress")) + + # Compute Lame modulus and Young modulus + lameModulus = bulkModulus - 2.0/3.0*shearModulus + youngModulus = 1.0 / ( 1.0/9.0/bulkModulus + 1.0/3.0/shearModulus ) + + # Friction and cohesion parameters + initialFrictionAngleRad = initialFrictionAngle * np.pi / 180.0 + cosInitialFrictionAngle = np.cos(initialFrictionAngleRad) + sinInitialFrictionAngle = np.sin(initialFrictionAngleRad) + a_init = 6.0*cohesion*cosInitialFrictionAngle / ( 3.0 - sinInitialFrictionAngle ) + b_init = 6.0*sinInitialFrictionAngle / ( 3.0 - sinInitialFrictionAngle ) + + residualFrictionAngleRad = residualFrictionAngle * np.pi / 180.0 + sinResidualFrictionAngle = np.sin(residualFrictionAngleRad) + b_resi = 6.0*sinResidualFrictionAngle/(3.0-sinResidualFrictionAngle) + + # Extract loading from input tables + imp_strain = np.loadtxt( + imposedStrainFilePath, skiprows=0, unpack=True) + + list_ax_strain_anal = [] + numStepPerLoadingPeriod = 1000 + + for i in range(0,len(imp_strain)-1): + dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod + loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) + list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) + + # Extract radial stress loading from input tables + imp_stress = np.loadtxt( + imposedStressFilePath, skiprows=0, unpack=True) + + list_ra_stress_anal = imp_stress[0]*np.ones(len(list_ax_strain_anal)) #constant radial confining stress + + # Initiate radial strain and axial stress arrays + list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal[0] = initialStress + list_ra_strain_anal[0] = 0 + + + # Loop over the loading/unloading steps + plasticMultiplier = 0 + b = b_init + + for idx in range(1,len(list_ax_strain_anal)): + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + delta_ra_stress_anal = 0 # constant lateral confining stress + + # Elastic trial + delta_ra_strain_anal = ( delta_ra_stress_anal - lameModulus*delta_ax_strain_anal ) / ( 2.0*lameModulus + 2.0*shearModulus ) + delta_ax_stress_anal = ( lameModulus + 2.0*shearModulus )*delta_ax_strain_anal + lameModulus/( lameModulus + shearModulus )*( delta_ra_stress_anal - lameModulus*delta_ax_strain_anal ) + + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Compute mean and shear stresses + ra_stress_anal = list_ra_stress_anal[idx] + + p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 + q_anal = -(ax_stress_anal - ra_stress_anal) + + # Plastic correction + if(q_anal>=0): #loading + + F_anal = q_anal + b*p_anal - b*a_init/b_init + + if(F_anal>=0): + b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) + dF_db = p_anal - a_init/b_init + db_dlambda = hardeningParameter * (b_resi - b_init) / ( hardeningParameter + plasticMultiplier ) / ( hardeningParameter + plasticMultiplier ) + hardeningRate = -dF_db*db_dlambda + + # Elasto-plastic moduli for plastic yield during the loading period + plasticYoungModulus = 1.0 / ( 1.0/youngModulus + (b*dilationRatio-3.0)*(b-3.0)/9.0/hardeningRate ) + plasticModulusForRaStrain = 1.0 / ( 1.0/2.0/shearModulus - (b-3.0)/2.0/hardeningRate ) + + # Compute stress and strain variations + delta_ax_stress_anal = delta_ax_strain_anal*plasticYoungModulus + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / plasticModulusForRaStrain + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic multiplier + delta_lambda = (b-3.0)/3.0/hardeningRate*delta_ax_stress_anal + plasticMultiplier += delta_lambda + + else: #unloading + + F_anal = -q_anal + b*p_anal - b*a_init/b_init # negative sign added to q for q<0 to obtain the absolute value + + if(F_anal>=0): + b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) + dF_db = p_anal - a_init/b_init + db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) + hardeningRate = -dF_db*db_dlambda + + # Elasto-plastic moduli for plastic yield during the unloading period + plasticYoungModulus_unload = 1.0/(1.0/youngModulus + (b*dilationRatio+3.0)*(b+3.0)/9.0/hardeningRate) + plasticModulusForRaStrain_unload = 1.0/(1.0/2.0/shearModulus + (b+3.0)/2.0/hardeningRate) + + # Compute stress and strain variations + delta_ax_stress_anal = delta_ax_strain_anal*plasticYoungModulus_unload + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / plasticModulusForRaStrain_unload + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic multiplier + delta_lambda = (b+3.0)/3.0/hardeningRate*delta_ax_stress_anal + plasticMultiplier += delta_lambda + + list_ax_stress_anal[idx] = ax_stress_anal + list_ra_strain_anal[idx] = ra_strain_anal + + # Preparing data for visualizing semi-analytical results + list_p_anal = -(list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 + list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) + + list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal + + p_num = -(ax_stress + 2.0 * ra_stress1) / 3.0 + q_num = -(ax_stress - ra_stress1) + + strain_vol = ax_strain + 2.0 * ra_strain1 + + #Visualization parameters + fsize = 30 + msize = 12 + lw = 6 + malpha = 0.5 + fig, ax = plt.subplots(1, 3, figsize=(37, 10)) + cmap = plt.get_cmap("tab10") + + # Plot strain versus shear stress + ax[0].plot(-ax_strain * 100, #convert to % + q_num*1e-6, #convert to MPa + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[0].plot(-ra_strain1 * 100, + q_num*1e-6, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha) + ax[0].plot(-list_ax_strain_anal* 100, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[0].plot(-list_ra_strain_anal * 100, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + linewidth=6) + ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") + ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + #ax[0].legend(loc='lower right', fontsize=fsize) + ax[0].xaxis.set_tick_params(labelsize=fsize) + ax[0].yaxis.set_tick_params(labelsize=fsize) + + # Plot axial strain versus volumetric strain + ax[1].plot(-ax_strain * 100, + -strain_vol * 100, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[1].plot(-list_ax_strain_anal* 100, + -list_strain_vol_anal* 100, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[1].set_ylabel(r'Volumetric Strain (%)', size=fsize, weight="bold") + #ax[1].legend(loc='lower right', fontsize=fsize) + ax[1].xaxis.set_tick_params(labelsize=fsize) + ax[1].yaxis.set_tick_params(labelsize=fsize) + + + # Plot shear stress versus mean stress + ax[2].plot(p_num*1e-6, + q_num*1e-6, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[2].plot(list_p_anal*1e-6, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[2].set_xlabel(r'Mean stress (MPa)', size=fsize, weight="bold") + ax[2].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + ax[2].legend(loc='lower right', fontsize=fsize) + ax[2].xaxis.set_tick_params(labelsize=fsize) + ax[2].yaxis.set_tick_params(labelsize=fsize) + + plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) + + plt.show() if __name__ == "__main__": main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ModifiedCamClay/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ModifiedCamClay/Example.rst index b9c3d9a3a09..48760a4f70d 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ModifiedCamClay/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ModifiedCamClay/Example.rst @@ -97,4 +97,4 @@ To go further **Feedback on this example** -For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ModifiedCamClay/TriaxialDriver_vs_SemiAnalytic_ModifiedCamClay.py b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ModifiedCamClay/TriaxialDriver_vs_SemiAnalytic_ModifiedCamClay.py index d87be34dcad..440c44b3474 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ModifiedCamClay/TriaxialDriver_vs_SemiAnalytic_ModifiedCamClay.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ModifiedCamClay/TriaxialDriver_vs_SemiAnalytic_ModifiedCamClay.py @@ -3,206 +3,221 @@ import numpy as np import matplotlib.pyplot as plt import xml.etree.ElementTree as ElementTree +import os +import argparse def main(): - # File paths - path = "ModifiedCamClayResults.txt" - xmlFilePath = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_base.xml" - xmlFilePath_case = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_ModifiedCamClay.xml" - imposedStrainFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/axialStrain.geos" - - # Load GEOSX results - time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( - path, skiprows=5, unpack=True) - - # Extract mechanical parameters from XML file - tree = ElementTree.parse(xmlFilePath) - tree_case = ElementTree.parse(xmlFilePath_case) - model = tree_case.find('Tasks/TriaxialDriver') - param = tree.find('Constitutive/ModifiedCamClay') - - refPressure = float(param.get("defaultRefPressure")) - refStrainVol = float(param.get("defaultRefStrainVol")) - shearModulus = float(param.get("defaultShearModulus")) - preConsolidationPressure = float(param.get("defaultPreConsolidationPressure")) - cslSlope = float(param.get("defaultCslSlope")) - virginCompressionIndex = float(param.get("defaultVirginCompressionIndex")) - recompressionIndex = float(param.get("defaultRecompressionIndex")) - initialStress = float(model.get("initialStress")) - - # Extract loading from input tables - imp_strain = np.loadtxt( - imposedStrainFilePath, skiprows=0, unpack=True) - - list_ax_strain_anal = [] - numStepPerLoadingPeriod = 10000 - - for i in range(0,len(imp_strain)-1): - dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod - loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) - list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) - - list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ra_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) - - p_anal = refPressure - list_ax_strain_anal += refStrainVol # Oedometric compaction: zero lateral strain - list_ax_stress_anal += initialStress # Assuming isotropic initial stress condition - list_ra_stress_anal += initialStress - - for idx in range(1,len(list_ax_strain_anal)): - delta_ax_strain_anal = list_ax_strain_anal[idx]-list_ax_strain_anal[idx-1] - delta_ra_strain_anal = 0 - - # Compute elastic moduli - bulkModulus = - p_anal/recompressionIndex - lameModulus = bulkModulus - 2.0/3.0*shearModulus - - # Elastic trial - delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + 2.0*lameModulus*delta_ra_strain_anal - delta_ra_stress_anal = lameModulus*delta_ax_strain_anal + (2.0*lameModulus+2.0*shearModulus)*delta_ra_strain_anal - - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_stress_anal = list_ra_stress_anal[idx-1] + delta_ra_stress_anal - - p_anal = (ax_stress_anal + 2.0*ra_stress_anal)/3.0 - q_anal = -(ax_stress_anal - ra_stress_anal) - - # Plastic correction - F_anal = q_anal*q_anal + cslSlope*cslSlope*p_anal*(p_anal-preConsolidationPressure) - - if(F_anal>=0): - # Derivatives - dF_dp = cslSlope*cslSlope*(2.0*p_anal-preConsolidationPressure) - dF_dq = 2.0*q_anal - dF_dpc = -cslSlope*cslSlope*p_anal - - dG_dp = dF_dp # associated plastic rule was considered - dG_dq = dF_dq - - dpc_dlambda = -preConsolidationPressure/(virginCompressionIndex-recompressionIndex)*dG_dp - hardeningRate = -dF_dpc*dpc_dlambda - - # Elasto-plastic coefficients - coeff_1 = 1.0/bulkModulus + dG_dp*dF_dp/hardeningRate - coeff_2 = dG_dp*dF_dq/hardeningRate - coeff_3 = 3.0/2.0*dG_dq*dF_dp/hardeningRate - coeff_4 = 1.0/2.0/shearModulus + 3.0/2.0*dG_dq*dF_dq/hardeningRate - denom = coeff_1*coeff_4 - coeff_2*coeff_3 - - # Compute stress variations - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - - delta_strain_vol = delta_ax_strain_anal - delta_strain_shear = -delta_ax_strain_anal - delta_p_anal = (coeff_4*delta_strain_vol - coeff_2*delta_strain_shear)/denom - delta_q_anal = (coeff_1*delta_strain_shear - coeff_3*delta_strain_vol)/denom - - delta_ax_stress_anal = (3.0*delta_p_anal-2*delta_q_anal)/3.0 - delta_ra_stress_anal = delta_ax_stress_anal+delta_q_anal - - # Update stress - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_stress_anal = list_ra_stress_anal[idx-1] + delta_ra_stress_anal - - delta_lambda = (dF_dq*delta_q_anal + dF_dp*delta_p_anal)/hardeningRate - delta_pc = dpc_dlambda * delta_lambda - preConsolidationPressure += delta_pc - - p_anal = (ax_stress_anal + 2.0*ra_stress_anal)/3.0 - q_anal = -(ax_stress_anal - ra_stress_anal) - - list_ax_stress_anal[idx] = ax_stress_anal - list_ra_stress_anal[idx] = ra_stress_anal - - list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 - list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) - - list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal - - p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 - q_num = -(ax_stress - ra_stress1) - - #Visualization parameters - fsize = 30 - msize = 12 - lw = 6 - malpha = 0.5 - fig, ax = plt.subplots(1, 3, figsize=(37, 10)) - cmap = plt.get_cmap("tab10") - - ax[0].plot(-ax_strain * 100, #convert to % - -ax_stress*1e-3, #convert to kPa - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[0].plot(-list_ax_strain_anal* 100, - -list_ax_stress_anal*1e-3, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - - ax[0].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[0].set_ylabel(r'Axial Stress (kPa)', size=fsize, weight="bold") - #ax[0].legend(loc='lower right', fontsize=fsize) - ax[0].xaxis.set_tick_params(labelsize=fsize) - ax[0].yaxis.set_tick_params(labelsize=fsize) - - ax[1].plot(-ax_strain * 100, - -ra_stress1 * 1e-3, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[1].plot(-list_ax_strain_anal* 100, - -list_ra_stress_anal* 1e-3, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[1].set_ylabel(r'Radial stress (kPa)', size=fsize, weight="bold") - #ax[1].legend(loc='lower right', fontsize=fsize) - ax[1].xaxis.set_tick_params(labelsize=fsize) - ax[1].yaxis.set_tick_params(labelsize=fsize) - - # Plan p-q - ax[2].plot(-p_num*1e-3, - q_num*1e-3, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[2].plot(-list_p_anal*1e-3, - list_q_anal*1e-3, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[2].set_xlabel(r'Mean stress (kPa)', size=fsize, weight="bold") - ax[2].set_ylabel(r'Deviatoric Stress (kPa)', size=fsize, weight="bold") - ax[2].legend(loc='lower right', fontsize=fsize) - ax[2].xaxis.set_tick_params(labelsize=fsize) - ax[2].yaxis.set_tick_params(labelsize=fsize) - - plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) - - plt.show() - + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File paths + outputDir = args.outputDir + geosDir = args.geosDir + path = outputDir + "/ModifiedCamClayResults.txt" + xmlFilePath = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_base.xml" + xmlFilePath_case = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_ModifiedCamClay.xml" + imposedStrainFilePath = geosDir + "/inputFiles/triaxialDriver/tables/axialStrain.geos" + + # Load GEOSX results + time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( + path, skiprows=5, unpack=True) + + # Extract mechanical parameters from XML file + tree = ElementTree.parse(xmlFilePath) + tree_case = ElementTree.parse(xmlFilePath_case) + model = tree_case.find('Tasks/TriaxialDriver') + param = tree.find('Constitutive/ModifiedCamClay') + + refPressure = float(param.get("defaultRefPressure")) + refStrainVol = float(param.get("defaultRefStrainVol")) + shearModulus = float(param.get("defaultShearModulus")) + preConsolidationPressure = float(param.get("defaultPreConsolidationPressure")) + cslSlope = float(param.get("defaultCslSlope")) + virginCompressionIndex = float(param.get("defaultVirginCompressionIndex")) + recompressionIndex = float(param.get("defaultRecompressionIndex")) + initialStress = float(model.get("initialStress")) + + # Extract loading from input tables + imp_strain = np.loadtxt( + imposedStrainFilePath, skiprows=0, unpack=True) + + list_ax_strain_anal = [] + numStepPerLoadingPeriod = 10000 + + for i in range(0,len(imp_strain)-1): + dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod + loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) + list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) + + list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ra_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) + + p_anal = refPressure + list_ax_strain_anal += refStrainVol # Oedometric compaction: zero lateral strain + list_ax_stress_anal += initialStress # Assuming isotropic initial stress condition + list_ra_stress_anal += initialStress + + for idx in range(1,len(list_ax_strain_anal)): + delta_ax_strain_anal = list_ax_strain_anal[idx]-list_ax_strain_anal[idx-1] + delta_ra_strain_anal = 0 + + # Compute elastic moduli + bulkModulus = - p_anal/recompressionIndex + lameModulus = bulkModulus - 2.0/3.0*shearModulus + + # Elastic trial + delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + 2.0*lameModulus*delta_ra_strain_anal + delta_ra_stress_anal = lameModulus*delta_ax_strain_anal + (2.0*lameModulus+2.0*shearModulus)*delta_ra_strain_anal + + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_stress_anal = list_ra_stress_anal[idx-1] + delta_ra_stress_anal + + p_anal = (ax_stress_anal + 2.0*ra_stress_anal)/3.0 + q_anal = -(ax_stress_anal - ra_stress_anal) + + # Plastic correction + F_anal = q_anal*q_anal + cslSlope*cslSlope*p_anal*(p_anal-preConsolidationPressure) + + if(F_anal>=0): + # Derivatives + dF_dp = cslSlope*cslSlope*(2.0*p_anal-preConsolidationPressure) + dF_dq = 2.0*q_anal + dF_dpc = -cslSlope*cslSlope*p_anal + + dG_dp = dF_dp # associated plastic rule was considered + dG_dq = dF_dq + + dpc_dlambda = -preConsolidationPressure/(virginCompressionIndex-recompressionIndex)*dG_dp + hardeningRate = -dF_dpc*dpc_dlambda + + # Elasto-plastic coefficients + coeff_1 = 1.0/bulkModulus + dG_dp*dF_dp/hardeningRate + coeff_2 = dG_dp*dF_dq/hardeningRate + coeff_3 = 3.0/2.0*dG_dq*dF_dp/hardeningRate + coeff_4 = 1.0/2.0/shearModulus + 3.0/2.0*dG_dq*dF_dq/hardeningRate + denom = coeff_1*coeff_4 - coeff_2*coeff_3 + + # Compute stress variations + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + + delta_strain_vol = delta_ax_strain_anal + delta_strain_shear = -delta_ax_strain_anal + delta_p_anal = (coeff_4*delta_strain_vol - coeff_2*delta_strain_shear)/denom + delta_q_anal = (coeff_1*delta_strain_shear - coeff_3*delta_strain_vol)/denom + + delta_ax_stress_anal = (3.0*delta_p_anal-2*delta_q_anal)/3.0 + delta_ra_stress_anal = delta_ax_stress_anal+delta_q_anal + + # Update stress + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_stress_anal = list_ra_stress_anal[idx-1] + delta_ra_stress_anal + + delta_lambda = (dF_dq*delta_q_anal + dF_dp*delta_p_anal)/hardeningRate + delta_pc = dpc_dlambda * delta_lambda + preConsolidationPressure += delta_pc + + p_anal = (ax_stress_anal + 2.0*ra_stress_anal)/3.0 + q_anal = -(ax_stress_anal - ra_stress_anal) + + list_ax_stress_anal[idx] = ax_stress_anal + list_ra_stress_anal[idx] = ra_stress_anal + + list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 + list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) + + list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal + + p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 + q_num = -(ax_stress - ra_stress1) + + #Visualization parameters + fsize = 30 + msize = 12 + lw = 6 + malpha = 0.5 + fig, ax = plt.subplots(1, 3, figsize=(37, 10)) + cmap = plt.get_cmap("tab10") + + ax[0].plot(-ax_strain * 100, #convert to % + -ax_stress*1e-3, #convert to kPa + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[0].plot(-list_ax_strain_anal* 100, + -list_ax_stress_anal*1e-3, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + + ax[0].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[0].set_ylabel(r'Axial Stress (kPa)', size=fsize, weight="bold") + #ax[0].legend(loc='lower right', fontsize=fsize) + ax[0].xaxis.set_tick_params(labelsize=fsize) + ax[0].yaxis.set_tick_params(labelsize=fsize) + + ax[1].plot(-ax_strain * 100, + -ra_stress1 * 1e-3, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[1].plot(-list_ax_strain_anal* 100, + -list_ra_stress_anal* 1e-3, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[1].set_ylabel(r'Radial stress (kPa)', size=fsize, weight="bold") + #ax[1].legend(loc='lower right', fontsize=fsize) + ax[1].xaxis.set_tick_params(labelsize=fsize) + ax[1].yaxis.set_tick_params(labelsize=fsize) + + # Plan p-q + ax[2].plot(-p_num*1e-3, + q_num*1e-3, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[2].plot(-list_p_anal*1e-3, + list_q_anal*1e-3, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[2].set_xlabel(r'Mean stress (kPa)', size=fsize, weight="bold") + ax[2].set_ylabel(r'Deviatoric Stress (kPa)', size=fsize, weight="bold") + ax[2].legend(loc='lower right', fontsize=fsize) + ax[2].xaxis.set_tick_params(labelsize=fsize) + ax[2].yaxis.set_tick_params(labelsize=fsize) + + plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) + + plt.show() + if __name__ == "__main__": main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/RelaxationTest/relaxationTestFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/RelaxationTest/relaxationTestFigure.py index 842855692f8..abb10fdcaac 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/RelaxationTest/relaxationTestFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/RelaxationTest/relaxationTestFigure.py @@ -5,305 +5,320 @@ import xml.etree.ElementTree as ElementTree from math import sin,cos,tan,exp,atan import h5py +import os +import argparse def getMechanicalParametersFromXML( xmlFilePath ): - tree = ElementTree.parse(xmlFilePath) + tree = ElementTree.parse(xmlFilePath) - param = tree.find('Constitutive/ViscoExtendedDruckerPrager') + param = tree.find('Constitutive/ViscoExtendedDruckerPrager') - mechanicalParameters = dict.fromkeys(["bulkModulus", "shearModulus", "cohesion", "initialFrictionAngle", "residualFrictionAngle", "dilationRatio", "hardening", "relaxationTime"]) - mechanicalParameters["bulkModulus"] = float(param.get("defaultBulkModulus")) - mechanicalParameters["shearModulus"] = float(param.get("defaultShearModulus")) - mechanicalParameters["cohesion"] = float(param.get("defaultCohesion")) - mechanicalParameters["initialFrictionAngle"] = float(param.get("defaultInitialFrictionAngle")) - mechanicalParameters["residualFrictionAngle"] = float(param.get("defaultResidualFrictionAngle")) - mechanicalParameters["dilationRatio"] = float(param.get("defaultDilationRatio")) - mechanicalParameters["hardening"] = float(param.get("defaultHardening")) - mechanicalParameters["relaxationTime"] = float(param.get("relaxationTime")) + mechanicalParameters = dict.fromkeys(["bulkModulus", "shearModulus", "cohesion", "initialFrictionAngle", "residualFrictionAngle", "dilationRatio", "hardening", "relaxationTime"]) + mechanicalParameters["bulkModulus"] = float(param.get("defaultBulkModulus")) + mechanicalParameters["shearModulus"] = float(param.get("defaultShearModulus")) + mechanicalParameters["cohesion"] = float(param.get("defaultCohesion")) + mechanicalParameters["initialFrictionAngle"] = float(param.get("defaultInitialFrictionAngle")) + mechanicalParameters["residualFrictionAngle"] = float(param.get("defaultResidualFrictionAngle")) + mechanicalParameters["dilationRatio"] = float(param.get("defaultDilationRatio")) + mechanicalParameters["hardening"] = float(param.get("defaultHardening")) + mechanicalParameters["relaxationTime"] = float(param.get("relaxationTime")) - return mechanicalParameters + return mechanicalParameters def getLoadingFromXML(xmlFilePath): - tree = ElementTree.parse(xmlFilePath) + tree = ElementTree.parse(xmlFilePath) - param = tree.findall('FieldSpecifications/FieldSpecification') - - for elem in param: - if elem.get("name") == "stressZZ" and elem.get("initialCondition") == "1": - initialStress = float(elem.get("scale")) + param = tree.findall('FieldSpecifications/FieldSpecification') + + for elem in param: + if elem.get("name") == "stressZZ" and elem.get("initialCondition") == "1": + initialStress = float(elem.get("scale")) - elif elem.get("name") == "axialload" and elem.get("fieldName") == "totalDisplacement": - strainScale = float(elem.get("scale")) + elif elem.get("name") == "axialload" and elem.get("fieldName") == "totalDisplacement": + strainScale = float(elem.get("scale")) - param1 = tree.find('Functions/TableFunction') - if param1.get("name") == "timeFunction" and param1.get("inputVarNames") == "{ time }": - load = param1.get("values") - load = [float(i)*strainScale for i in load[1:-1].split(",")] - loadTime = param1.get("coordinates") - loadTime = [float(i) for i in loadTime[1:-1].split(",")] + param1 = tree.find('Functions/TableFunction') + if param1.get("name") == "timeFunction" and param1.get("inputVarNames") == "{ time }": + load = param1.get("values") + load = [float(i)*strainScale for i in load[1:-1].split(",")] + loadTime = param1.get("coordinates") + loadTime = [float(i) for i in loadTime[1:-1].split(",")] - return initialStress, load, loadTime + return initialStress, load, loadTime def semiAnalytical( mechanicalParameters, imp_strain, imp_time, initialStress ): - bulkModulus = mechanicalParameters["bulkModulus"] - shearModulus = mechanicalParameters["shearModulus"] - cohesion = mechanicalParameters["cohesion"] - dilationRatio = mechanicalParameters["dilationRatio"] - hardeningParameter = mechanicalParameters["hardening"] - relaxationTime = mechanicalParameters["relaxationTime"] - # Compute Lame modulus and Young modulus - lameModulus = bulkModulus - 2.0/3.0*shearModulus - youngModulus = 1.0/(1.0/9.0/bulkModulus + 1.0/3.0/shearModulus) - - # Initial friction and cohesion parameters - initialFrictionAngleRad = mechanicalParameters["initialFrictionAngle"]*np.pi/180.0 - cosInitialFrictionAngle = np.cos(initialFrictionAngleRad) - sinInitialFrictionAngle = np.sin(initialFrictionAngleRad) - a_init = 6.0*cohesion*cosInitialFrictionAngle/(3.0-sinInitialFrictionAngle) - b_init = 6.0*sinInitialFrictionAngle/(3.0-sinInitialFrictionAngle) - - # Residual friction parameters - residualFrictionAngleRad = mechanicalParameters["residualFrictionAngle"]*np.pi/180.0 - sinResidualFrictionAngle = np.sin(residualFrictionAngleRad) - b_resi = 6.0*sinResidualFrictionAngle/(3.0-sinResidualFrictionAngle) - - list_ax_strain_anal = [] - numStepPerLoadingPeriod = 1000 - - for i in range(0,len(imp_strain)-1): - loadingPeriod = np.linspace(imp_strain[i],imp_strain[i+1], numStepPerLoadingPeriod, endpoint=False) - list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) - - list_time_anal = [] - for i in range(0,len(imp_time)-1): - timePeriod = np.linspace(imp_time[i],imp_time[i+1], numStepPerLoadingPeriod, endpoint=False) - list_time_anal = np.concatenate((list_time_anal, timePeriod), axis=0) - - list_ra_stress_anal = initialStress*np.ones(len(list_ax_strain_anal)) #constant radial confining stress - - # Initiate radial strain and axial stress arrays - list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal[0] = initialStress - - # Loop over the loading/unloading steps - list_ra_strain_anal[0] = 0 - plasticMultiplier = 0 - b = b_init - - for idx in range(1,len(list_ax_strain_anal)): - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - delta_time_anal = list_time_anal[idx]-list_time_anal[idx-1] - delta_ra_stress_anal = 0 - - # Elastic trial - delta_ra_strain_anal = (delta_ra_stress_anal-lameModulus*delta_ax_strain_anal)/(2.0*lameModulus+2.0*shearModulus) - delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + lameModulus/(lameModulus+shearModulus)*(delta_ra_stress_anal-lameModulus*delta_ax_strain_anal) - - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Compute mean and shear stresses - ra_stress_anal = list_ra_stress_anal[idx] - p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 - q_anal = -(ax_stress_anal - ra_stress_anal) - - # Plastic correction - if(q_anal>=0): #loading - - F_anal = q_anal + b*p_anal - b*a_init/b_init - - if(F_anal>=0): - - b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) - b_dilation = b*dilationRatio - - dF_db = p_anal - a_init/b_init - db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) - hardeningRate = -dF_db*db_dlambda - - # Variation of Perzyna plastic multiplier, see Runesson et al. 1999, see Eq. 56, 4, 80, 62, 63 - parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate - delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) - - # Compute stress and strain variations - delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation-3.0)/3.0 ) * youngModulus - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus + 3.0/2.0*delta_lambda - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic multiplier - plasticMultiplier += delta_lambda - - else: #unloading - - F_anal = -q_anal + b*p_anal - b*a_init/b_init # negative sign added to q for q<0 to obtain the absolute value - - if(F_anal>=0): - b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) - b_dilation = b*dilationRatio - - dF_db = p_anal - a_init/b_init - db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) - hardeningRate = -dF_db*db_dlambda - - # Variation of Perzyna plastic multiplier, see Runesson et al. 1999, see Eq. 56, 4, 80, 62, 63 - parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate - delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) - - # Compute stress and strain variations - delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation+3.0)/3.0 ) * youngModulus - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus - 3.0/2.0*delta_lambda - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic multiplier - plasticMultiplier += delta_lambda - - list_ax_stress_anal[idx] = ax_stress_anal - list_ra_strain_anal[idx] = ra_strain_anal - - # Preparing data for visualizing semi-analytical results - list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 - list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) - - return list_ax_stress_anal,list_time_anal,list_ax_strain_anal,list_ra_strain_anal,list_p_anal,list_q_anal + bulkModulus = mechanicalParameters["bulkModulus"] + shearModulus = mechanicalParameters["shearModulus"] + cohesion = mechanicalParameters["cohesion"] + dilationRatio = mechanicalParameters["dilationRatio"] + hardeningParameter = mechanicalParameters["hardening"] + relaxationTime = mechanicalParameters["relaxationTime"] + # Compute Lame modulus and Young modulus + lameModulus = bulkModulus - 2.0/3.0*shearModulus + youngModulus = 1.0/(1.0/9.0/bulkModulus + 1.0/3.0/shearModulus) + + # Initial friction and cohesion parameters + initialFrictionAngleRad = mechanicalParameters["initialFrictionAngle"]*np.pi/180.0 + cosInitialFrictionAngle = np.cos(initialFrictionAngleRad) + sinInitialFrictionAngle = np.sin(initialFrictionAngleRad) + a_init = 6.0*cohesion*cosInitialFrictionAngle/(3.0-sinInitialFrictionAngle) + b_init = 6.0*sinInitialFrictionAngle/(3.0-sinInitialFrictionAngle) + + # Residual friction parameters + residualFrictionAngleRad = mechanicalParameters["residualFrictionAngle"]*np.pi/180.0 + sinResidualFrictionAngle = np.sin(residualFrictionAngleRad) + b_resi = 6.0*sinResidualFrictionAngle/(3.0-sinResidualFrictionAngle) + + list_ax_strain_anal = [] + numStepPerLoadingPeriod = 1000 + + for i in range(0,len(imp_strain)-1): + loadingPeriod = np.linspace(imp_strain[i],imp_strain[i+1], numStepPerLoadingPeriod, endpoint=False) + list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) + + list_time_anal = [] + for i in range(0,len(imp_time)-1): + timePeriod = np.linspace(imp_time[i],imp_time[i+1], numStepPerLoadingPeriod, endpoint=False) + list_time_anal = np.concatenate((list_time_anal, timePeriod), axis=0) + + list_ra_stress_anal = initialStress*np.ones(len(list_ax_strain_anal)) #constant radial confining stress + + # Initiate radial strain and axial stress arrays + list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal[0] = initialStress + + # Loop over the loading/unloading steps + list_ra_strain_anal[0] = 0 + plasticMultiplier = 0 + b = b_init + + for idx in range(1,len(list_ax_strain_anal)): + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + delta_time_anal = list_time_anal[idx]-list_time_anal[idx-1] + delta_ra_stress_anal = 0 + + # Elastic trial + delta_ra_strain_anal = (delta_ra_stress_anal-lameModulus*delta_ax_strain_anal)/(2.0*lameModulus+2.0*shearModulus) + delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + lameModulus/(lameModulus+shearModulus)*(delta_ra_stress_anal-lameModulus*delta_ax_strain_anal) + + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Compute mean and shear stresses + ra_stress_anal = list_ra_stress_anal[idx] + p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 + q_anal = -(ax_stress_anal - ra_stress_anal) + + # Plastic correction + if(q_anal>=0): #loading + + F_anal = q_anal + b*p_anal - b*a_init/b_init + + if(F_anal>=0): + + b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) + b_dilation = b*dilationRatio + + dF_db = p_anal - a_init/b_init + db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) + hardeningRate = -dF_db*db_dlambda + + # Variation of Perzyna plastic multiplier, see Runesson et al. 1999, see Eq. 56, 4, 80, 62, 63 + parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate + delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) + + # Compute stress and strain variations + delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation-3.0)/3.0 ) * youngModulus + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus + 3.0/2.0*delta_lambda + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic multiplier + plasticMultiplier += delta_lambda + + else: #unloading + + F_anal = -q_anal + b*p_anal - b*a_init/b_init # negative sign added to q for q<0 to obtain the absolute value + + if(F_anal>=0): + b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) + b_dilation = b*dilationRatio + + dF_db = p_anal - a_init/b_init + db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) + hardeningRate = -dF_db*db_dlambda + + # Variation of Perzyna plastic multiplier, see Runesson et al. 1999, see Eq. 56, 4, 80, 62, 63 + parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate + delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) + + # Compute stress and strain variations + delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation+3.0)/3.0 ) * youngModulus + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus - 3.0/2.0*delta_lambda + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic multiplier + plasticMultiplier += delta_lambda + + list_ax_stress_anal[idx] = ax_stress_anal + list_ra_strain_anal[idx] = ra_strain_anal + + # Preparing data for visualizing semi-analytical results + list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 + list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) + + return list_ax_stress_anal,list_time_anal,list_ax_strain_anal,list_ra_strain_anal,list_p_anal,list_q_anal def main(): - # File path - hdf5File1Path = "displacement_history.hdf5" - hdf5File2Path = "stress_history.hdf5" - xmlFile1Path = "../../../../../../../inputFiles/solidMechanics/viscoExtendedDruckerPrager_relaxation_base.xml" - xmlFile2Path = "../../../../../../../inputFiles/solidMechanics/viscoExtendedDruckerPrager_relaxation_benchmark.xml" - - # Read HDF5 - # Global Coordinate of Nodal Point - hf = h5py.File(hdf5File1Path, 'r') - xl_node = hf.get('totalDisplacement ReferencePosition topPoint') - xcord_node = xl_node[0,:,0] - ycord_node = xl_node[0,:,1] - zcord_node = xl_node[0,:,2] - # Load Displacement Components - disp = hf.get('totalDisplacement topPoint') - - # Global Coordinate of Element Center - hf = h5py.File(hdf5File2Path, 'r') - xl_elm = hf.get('rock_stress elementCenter') - xl_elm = np.array(xl_elm) - xcord_elm = xl_elm[0, :, 0] - ycord_elm = xl_elm[0, :, 1] - zcord_elm = xl_elm[0, :, 2] - time = hf.get('rock_stress Time') - # Load Stress Components - sigma = hf.get('rock_stress') - sigma = np.array(sigma) - sigma_Cart = np.zeros([len(sigma[:,0,0]), len(sigma[0,:,0]), 6]) - for tl in range(0,len(sigma[:,0,0])): - for i in range(0,len(sigma[0,:,0])): - for j in range(0, 6): - for k in range(0, 8): - sigma_Cart[tl,i,j] += sigma[tl, i, j+6*k]/8. - - ax_stress = sigma_Cart[:, -1, 2] - ra_stress = sigma_Cart[:, -1, 0] - p_num = (ax_stress + 2.0 * ra_stress) / 3.0 - q_num = -(ax_stress - ra_stress) - ax_strain = disp[:, -1, 2] - ra_strain = disp[:, -1, 0] - - - # Extract info from XML - mechanicalParameters = getMechanicalParametersFromXML(xmlFile1Path) - initialStress, imp_strain, imp_time = getLoadingFromXML(xmlFile1Path) - list_ax_stress_anal,list_time_anal,list_ax_strain_anal,list_ra_strain_anal,list_p_anal,list_q_anal = semiAnalytical( mechanicalParameters, imp_strain, imp_time, initialStress ) - - - #Visualization parameters - fsize = 20 - msize = 12 - lw = 6 - malpha = 0.5 - N1 = 3 - fig, ax = plt.subplots(3,1,figsize=(10, 18)) - cmap = plt.get_cmap("tab10") - - - # Plot strain versus shear stress - ax[0].plot(-ax_strain[::N1]*100, q_num[::N1]*1e-6, 'o', color=cmap(2), alpha=malpha, fillstyle='full', markersize=msize, label='GEOS') - ax[0].plot(-ra_strain[::N1]*100, q_num[::N1]*1e-6, 'o', color=cmap(2), alpha=malpha, fillstyle='full', markersize=msize) - ax[0].plot(-list_ax_strain_anal*100, list_q_anal*1e-6, lw=lw, alpha=0.8, color=cmap(2), label='Analytical') - ax[0].plot(-list_ra_strain_anal*100, list_q_anal*1e-6, lw=lw, alpha=0.8, color=cmap(2)) - ax[0].set_xlim([-0.12, 0.12]) - ax[0].set_ylim(0, 12) - ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") - ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - ax[0].legend(loc='lower left',fontsize=fsize) - ax[0].grid(True, which="both", ls="-") - ax[0].xaxis.set_tick_params(labelsize=fsize) - ax[0].yaxis.set_tick_params(labelsize=fsize) - - - # Plot stress path and yield surfaces - phi_i = mechanicalParameters["initialFrictionAngle"] - phi_r= mechanicalParameters["residualFrictionAngle"] - c_i = mechanicalParameters["cohesion"]/1.0e6 - f_i = atan(6.0*sin(phi_i/180*np.pi)/(3.0-sin(phi_i/180*np.pi)))*180/np.pi - f_r = atan(6.0*sin(phi_r/180*np.pi)/(3.0-sin(phi_r/180*np.pi)))*180/np.pi - d_i = 6.0*c_i*cos(phi_i/180*np.pi)/(3.0-sin(phi_i/180*np.pi)) - po = d_i/tan(f_i/180*np.pi) - d_r = po*tan(f_r/180*np.pi) - - k_i = tan(f_i/180*np.pi) - p_Yield = np.linspace(0, 50, 100) - q_iniYield = k_i*p_Yield+d_i - k_r = tan(f_r/180*np.pi) - q_resYield = k_r*p_Yield+d_r - - ax[1].plot(-p_num[::N1]*1e-6, q_num[::N1]*1e-6, 'o', color=cmap(2), alpha=malpha, fillstyle='full', markersize=msize, label='GEOS') - ax[1].plot(-list_p_anal*1e-6, list_q_anal*1e-6, lw=lw, alpha=0.8, color=cmap(2), label='Analytical') - ax[1].plot(p_Yield, q_iniYield, lw=lw, alpha=0.8, color='k', linestyle= '--', label='Initial Yield Surface') - ax[1].plot(p_Yield, q_resYield, lw=lw, alpha=0.8, color='orange', linestyle= '--', label='Residual Yield Surface') - ax[1].set_xlim([0, 15]) - ax[1].set_ylim([0, 15]) - ax[1].set_xlabel(r'p (MPa)', size=fsize, weight="bold") - ax[1].set_ylabel(r'q (MPa)', size=fsize, weight="bold") - ax[1].legend(loc='upper left',fontsize=fsize) - ax[1].grid(True, which="both", ls="-") - ax[1].xaxis.set_tick_params(labelsize=fsize) - ax[1].yaxis.set_tick_params(labelsize=fsize) - - - - # Plot axial stress and strain with time - ax[2].plot(time[::N1]/86400, -ax_strain[::N1]*100, 'o', color=cmap(1), alpha=malpha, fillstyle='full', markersize=msize, label='Axial Strain_GEOS') - ax[2].plot(list_time_anal/86400, -list_ax_strain_anal*100, lw=lw, alpha=0.8, color=cmap(1), label='Axial Strain_Analytical') - ax[2].set_xlabel(r'Time (D)', size=fsize, weight="bold") - ax[2].set_ylabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[2].set_ylim([0, 0.2]) - ax[2].legend(loc='upper left',fontsize=fsize) - ax[2].grid(True, which="both", ls="-") - ax[2].xaxis.set_tick_params(labelsize=fsize) - ax[2].yaxis.set_tick_params(labelsize=fsize) - ax2=ax[2].twinx() - ax2.plot(time[::N1]/86400, -ax_stress[::N1]/1.0e6, 'o', color=cmap(0), alpha=malpha, fillstyle='full', markersize=msize, label='Axial Stress_GEOS') - ax2.plot(list_time_anal/86400, -list_ax_stress_anal/1.0e6, lw=lw, alpha=0.8, color=cmap(0), label='Axial Stress_Analytical') - ax2.set_ylabel(r'Stress (MPa)', size=fsize, weight="bold") - ax2.set_ylim([10, 25]) - ax2.legend(loc='lower right',fontsize=fsize) - ax2.yaxis.set_tick_params(labelsize=fsize) - - - - plt.subplots_adjust(left=0.15, bottom=0.1, right=0.85, top=0.95, wspace=0.4, hspace=0.4) - plt.show() - + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File path + outputDir = args.outputDir + geosDir = args.geosDir + hdf5File1Path = outputDir + "/displacement_history.hdf5" + hdf5File2Path = outputDir + "/stress_history.hdf5" + xmlFile1Path = geosDir + "/inputFiles/solidMechanics/viscoExtendedDruckerPrager_relaxation_base.xml" + xmlFile2Path = geosDir + "/inputFiles/solidMechanics/viscoExtendedDruckerPrager_relaxation_benchmark.xml" + + # Read HDF5 + # Global Coordinate of Nodal Point + hf = h5py.File(hdf5File1Path, 'r') + xl_node = hf.get('totalDisplacement ReferencePosition topPoint') + xcord_node = xl_node[0,:,0] + ycord_node = xl_node[0,:,1] + zcord_node = xl_node[0,:,2] + # Load Displacement Components + disp = hf.get('totalDisplacement topPoint') + + # Global Coordinate of Element Center + hf = h5py.File(hdf5File2Path, 'r') + xl_elm = hf.get('rock_stress elementCenter') + xl_elm = np.asarray(xl_elm) + xcord_elm = xl_elm[0, :, 0] + ycord_elm = xl_elm[0, :, 1] + zcord_elm = xl_elm[0, :, 2] + time = hf.get('rock_stress Time') + # Load Stress Components + sigma = hf.get('rock_stress') + sigma = np.asarray(sigma) + sigma_Cart = np.zeros([len(sigma[:,0,0]), len(sigma[0,:,0]), 6]) + for tl in range(0,len(sigma[:,0,0])): + for i in range(0,len(sigma[0,:,0])): + for j in range(0, 6): + for k in range(0, 8): + sigma_Cart[tl,i,j] += sigma[tl, i, j+6*k]/8. + + ax_stress = sigma_Cart[:, -1, 2] + ra_stress = sigma_Cart[:, -1, 0] + p_num = (ax_stress + 2.0 * ra_stress) / 3.0 + q_num = -(ax_stress - ra_stress) + ax_strain = disp[:, -1, 2] + ra_strain = disp[:, -1, 0] + + + # Extract info from XML + mechanicalParameters = getMechanicalParametersFromXML(xmlFile1Path) + initialStress, imp_strain, imp_time = getLoadingFromXML(xmlFile1Path) + list_ax_stress_anal,list_time_anal,list_ax_strain_anal,list_ra_strain_anal,list_p_anal,list_q_anal = semiAnalytical( mechanicalParameters, imp_strain, imp_time, initialStress ) + + + #Visualization parameters + fsize = 20 + msize = 12 + lw = 6 + malpha = 0.5 + N1 = 3 + fig, ax = plt.subplots(3,1,figsize=(10, 18)) + cmap = plt.get_cmap("tab10") + + + # Plot strain versus shear stress + ax[0].plot(-ax_strain[::N1]*100, q_num[::N1]*1e-6, 'o', color=cmap(2), alpha=malpha, fillstyle='full', markersize=msize, label='GEOS') + ax[0].plot(-ra_strain[::N1]*100, q_num[::N1]*1e-6, 'o', color=cmap(2), alpha=malpha, fillstyle='full', markersize=msize) + ax[0].plot(-list_ax_strain_anal*100, list_q_anal*1e-6, lw=lw, alpha=0.8, color=cmap(2), label='Analytical') + ax[0].plot(-list_ra_strain_anal*100, list_q_anal*1e-6, lw=lw, alpha=0.8, color=cmap(2)) + ax[0].set_xlim([-0.12, 0.12]) + ax[0].set_ylim(0, 12) + ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") + ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + ax[0].legend(loc='lower left',fontsize=fsize) + ax[0].grid(True, which="both", ls="-") + ax[0].xaxis.set_tick_params(labelsize=fsize) + ax[0].yaxis.set_tick_params(labelsize=fsize) + + + # Plot stress path and yield surfaces + phi_i = mechanicalParameters["initialFrictionAngle"] + phi_r= mechanicalParameters["residualFrictionAngle"] + c_i = mechanicalParameters["cohesion"]/1.0e6 + f_i = atan(6.0*sin(phi_i/180*np.pi)/(3.0-sin(phi_i/180*np.pi)))*180/np.pi + f_r = atan(6.0*sin(phi_r/180*np.pi)/(3.0-sin(phi_r/180*np.pi)))*180/np.pi + d_i = 6.0*c_i*cos(phi_i/180*np.pi)/(3.0-sin(phi_i/180*np.pi)) + po = d_i/tan(f_i/180*np.pi) + d_r = po*tan(f_r/180*np.pi) + + k_i = tan(f_i/180*np.pi) + p_Yield = np.linspace(0, 50, 100) + q_iniYield = k_i*p_Yield+d_i + k_r = tan(f_r/180*np.pi) + q_resYield = k_r*p_Yield+d_r + + ax[1].plot(-p_num[::N1]*1e-6, q_num[::N1]*1e-6, 'o', color=cmap(2), alpha=malpha, fillstyle='full', markersize=msize, label='GEOS') + ax[1].plot(-list_p_anal*1e-6, list_q_anal*1e-6, lw=lw, alpha=0.8, color=cmap(2), label='Analytical') + ax[1].plot(p_Yield, q_iniYield, lw=lw, alpha=0.8, color='k', linestyle= '--', label='Initial Yield Surface') + ax[1].plot(p_Yield, q_resYield, lw=lw, alpha=0.8, color='orange', linestyle= '--', label='Residual Yield Surface') + ax[1].set_xlim([0, 15]) + ax[1].set_ylim([0, 15]) + ax[1].set_xlabel(r'p (MPa)', size=fsize, weight="bold") + ax[1].set_ylabel(r'q (MPa)', size=fsize, weight="bold") + ax[1].legend(loc='upper left',fontsize=fsize) + ax[1].grid(True, which="both", ls="-") + ax[1].xaxis.set_tick_params(labelsize=fsize) + ax[1].yaxis.set_tick_params(labelsize=fsize) + + + + # Plot axial stress and strain with time + ax[2].plot(time[::N1]/86400, -ax_strain[::N1]*100, 'o', color=cmap(1), alpha=malpha, fillstyle='full', markersize=msize, label='Axial Strain_GEOS') + ax[2].plot(list_time_anal/86400, -list_ax_strain_anal*100, lw=lw, alpha=0.8, color=cmap(1), label='Axial Strain_Analytical') + ax[2].set_xlabel(r'Time (D)', size=fsize, weight="bold") + ax[2].set_ylabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[2].set_ylim([0, 0.2]) + ax[2].legend(loc='upper left',fontsize=fsize) + ax[2].grid(True, which="both", ls="-") + ax[2].xaxis.set_tick_params(labelsize=fsize) + ax[2].yaxis.set_tick_params(labelsize=fsize) + ax2=ax[2].twinx() + ax2.plot(time[::N1]/86400, -ax_stress[::N1]/1.0e6, 'o', color=cmap(0), alpha=malpha, fillstyle='full', markersize=msize, label='Axial Stress_GEOS') + ax2.plot(list_time_anal/86400, -list_ax_stress_anal/1.0e6, lw=lw, alpha=0.8, color=cmap(0), label='Axial Stress_Analytical') + ax2.set_ylabel(r'Stress (MPa)', size=fsize, weight="bold") + ax2.set_ylim([10, 25]) + ax2.legend(loc='lower right',fontsize=fsize) + ax2.yaxis.set_tick_params(labelsize=fsize) + + + + plt.subplots_adjust(left=0.15, bottom=0.1, right=0.85, top=0.95, wspace=0.4, hspace=0.4) + plt.show() + if __name__ == "__main__": main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoDruckerPrager/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoDruckerPrager/Example.rst index ed576585670..323cef2e2fd 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoDruckerPrager/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoDruckerPrager/Example.rst @@ -112,4 +112,4 @@ To go further **Feedback on this example** -For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoDruckerPrager.py b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoDruckerPrager.py index 80dc6616163..660f780bd75 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoDruckerPrager.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoDruckerPrager.py @@ -3,257 +3,272 @@ import numpy as np import matplotlib.pyplot as plt import xml.etree.ElementTree as ElementTree +import os +import argparse def main(): - # File paths - path = "ViscoDruckerPragerResults.txt" - timeFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/time.geos" - xmlFilePath = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_base.xml" - xmlFilePath_case = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_ViscoDruckerPrager.xml" - imposedStrainFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/axialStrain.geos" - imposedStressFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/radialStress.geos" - - # Load GEOSX results - time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( - path, skiprows=5, unpack=True) - - # Extract mechanical parameters from XML file - tree = ElementTree.parse(xmlFilePath) - tree_case = ElementTree.parse(xmlFilePath_case) - model = tree_case.find('Tasks/TriaxialDriver') - param = tree.find('Constitutive/ViscoDruckerPrager') - - bulkModulus = float(param.get("defaultBulkModulus")) - shearModulus = float(param.get("defaultShearModulus")) - cohesion = float(param.get("defaultCohesion")) - frictionAngle = float(param.get("defaultFrictionAngle")) - dilationAngle = float(param.get("defaultDilationAngle")) - hardeningRate = float(param.get("defaultHardeningRate")) - relaxationTime = float(param.get("relaxationTime")) - initialStress = float(model.get("initialStress")) - - # Compute Lame modulus and Young modulus - lameModulus = bulkModulus - 2.0/3.0*shearModulus - youngModulus = 1.0 / ( 1.0/9.0/bulkModulus + 1.0/3.0/shearModulus ) - - # Friction and cohesion parameters - frictionAngleRad = frictionAngle*np.pi/180.0 - cosFrictionAngle = np.cos(frictionAngleRad) - sinFrictionAngle = np.sin(frictionAngleRad) - a = 6.0*cohesion*cosFrictionAngle/(3.0-sinFrictionAngle) - b = 6.0*sinFrictionAngle/(3.0-sinFrictionAngle) - - # Dilation parameter - dilationAngleRad = dilationAngle*np.pi/180.0 - sinDilationAngle = np.sin(dilationAngleRad) - b_dilation = 6.0*sinDilationAngle/(3.0-sinDilationAngle) - - # See Runesson et al. 1999, see Eq. 56 - parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate - - # Extract loading from input tables - imp_strain = np.loadtxt( - imposedStrainFilePath, skiprows=0, unpack=True) - - list_ax_strain_anal = [] - numStepPerLoadingPeriod = 1000 - - for i in range(0,len(imp_strain)-1): - dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod - loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) - list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) - - # Extract time from input tables - imp_time = np.loadtxt( - timeFilePath, skiprows=0, unpack=True) - - list_time_anal = [] - for i in range(0,len(imp_time)-1): - dTimePerStep = (imp_time[i+1]-imp_time[i])/numStepPerLoadingPeriod - timePeriod = np.arange(imp_time[i],imp_time[i+1]+dTimePerStep,dTimePerStep) - list_time_anal = np.concatenate((list_time_anal, timePeriod), axis=0) - - # Extract radial stress loading from input tables - imp_stress = np.loadtxt( - imposedStressFilePath, skiprows=0, unpack=True) - - list_ra_stress_anal = imp_stress[0]*np.ones(len(list_ax_strain_anal)) #constant radial confining stress - - # Initiate radial strain and axial stress arrays - list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal[0] = initialStress - list_ra_strain_anal[0] = 0 - - # Loop over the loading/unloading steps - for idx in range(1,len(list_ax_strain_anal)): - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - delta_time_anal = list_time_anal[idx]-list_time_anal[idx-1] - delta_ra_stress_anal = 0 # constant radial confining stress - - # Elastic trial - delta_ra_strain_anal = (delta_ra_stress_anal-lameModulus*delta_ax_strain_anal)/(2.0*lameModulus+2.0*shearModulus) - delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + lameModulus/(lameModulus+shearModulus)*(delta_ra_stress_anal-lameModulus*delta_ax_strain_anal) - - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Compute mean and shear stresses - ra_stress_anal = list_ra_stress_anal[idx] - p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 - q_anal = -(ax_stress_anal - ra_stress_anal) - - # Plastic correction - if(q_anal>=0): #loading - - F_anal = q_anal + b*p_anal - a - - if(F_anal>=0): - - # Variation of Perzyna visco-plastic multiplier, see Runesson et al. 1999, see Eq. 4, 80, 62, 63 - delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) - - # Compute stress and strain variations - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation-3.0)/3.0 ) * youngModulus - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus + 3.0/2.0*delta_lambda - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic cohesion - delta_a = hardeningRate*delta_lambda - a += delta_a - - else: #unloading - - F_anal = -q_anal + b*p_anal - a # negative sign added to q for q<0 to obtain the absolute value - - if(F_anal>=0): - # Variation of Perzyna visco-plastic multiplier, see Runesson et al. 1999, see Eq. 4, 80, 62, 63 - delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) - - # Compute stress and strain variations - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation+3.0)/3.0 ) * youngModulus - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus - 3.0/2.0*delta_lambda - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic cohesion - delta_a = hardeningRate*delta_lambda - a += delta_a - - list_ax_stress_anal[idx] = ax_stress_anal - list_ra_strain_anal[idx] = ra_strain_anal - - # Preparing data for visualizing semi-analytical results - list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 - list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) - - list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal - - p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 - q_num = -(ax_stress - ra_stress1) - - strain_vol = ax_strain + 2.0 * ra_strain1 - - #Visualization parameters - fsize = 30 - msize = 12 - lw = 6 - malpha = 0.5 - fig, ax = plt.subplots(1, 3, figsize=(37, 10)) - cmap = plt.get_cmap("tab10") - - # Plot strain versus shear stress - ax[0].plot(-ax_strain * 100, #convert to % - q_num*1e-6, #convert to MPa - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[0].plot(-ra_strain1 * 100, - q_num*1e-6, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha) - ax[0].plot(-list_ax_strain_anal* 100, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[0].plot(-list_ra_strain_anal * 100, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - linewidth=6) - ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") - ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - ax[0].xaxis.set_tick_params(labelsize=fsize) - ax[0].yaxis.set_tick_params(labelsize=fsize) - - # Plot axial strain versus volumetric strain - ax[1].plot(-ax_strain * 100, - -strain_vol * 100, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[1].plot(-list_ax_strain_anal* 100, - -list_strain_vol_anal* 100, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[1].set_ylabel(r'Volumetric Strain (%)', size=fsize, weight="bold") - #ax[1].legend(loc='lower right', fontsize=fsize) - ax[1].xaxis.set_tick_params(labelsize=fsize) - ax[1].yaxis.set_tick_params(labelsize=fsize) - - # Plot shear stress versus mean stress - ax[2].plot(-p_num*1e-6, - q_num*1e-6, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[2].plot(-list_p_anal*1e-6, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[2].set_xlabel(r'Mean stress (MPa)', size=fsize, weight="bold") - ax[2].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - ax[2].legend(loc='lower right', fontsize=fsize) - ax[2].xaxis.set_tick_params(labelsize=fsize) - ax[2].yaxis.set_tick_params(labelsize=fsize) - - plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) - plt.show() - + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File paths + outputDir = args.outputDir + geosDir = args.geosDir + path = outputDir + "/ViscoDruckerPragerResults.txt" + timeFilePath = geosDir + "/inputFiles/triaxialDriver/tables/time.geos" + xmlFilePath = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_base.xml" + xmlFilePath_case = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_ViscoDruckerPrager.xml" + imposedStrainFilePath = geosDir + "/inputFiles/triaxialDriver/tables/axialStrain.geos" + imposedStressFilePath = geosDir + "/inputFiles/triaxialDriver/tables/radialStress.geos" + + # Load GEOSX results + time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( + path, skiprows=5, unpack=True) + + # Extract mechanical parameters from XML file + tree = ElementTree.parse(xmlFilePath) + tree_case = ElementTree.parse(xmlFilePath_case) + model = tree_case.find('Tasks/TriaxialDriver') + param = tree.find('Constitutive/ViscoDruckerPrager') + + bulkModulus = float(param.get("defaultBulkModulus")) + shearModulus = float(param.get("defaultShearModulus")) + cohesion = float(param.get("defaultCohesion")) + frictionAngle = float(param.get("defaultFrictionAngle")) + dilationAngle = float(param.get("defaultDilationAngle")) + hardeningRate = float(param.get("defaultHardeningRate")) + relaxationTime = float(param.get("relaxationTime")) + initialStress = float(model.get("initialStress")) + + # Compute Lame modulus and Young modulus + lameModulus = bulkModulus - 2.0/3.0*shearModulus + youngModulus = 1.0 / ( 1.0/9.0/bulkModulus + 1.0/3.0/shearModulus ) + + # Friction and cohesion parameters + frictionAngleRad = frictionAngle*np.pi/180.0 + cosFrictionAngle = np.cos(frictionAngleRad) + sinFrictionAngle = np.sin(frictionAngleRad) + a = 6.0*cohesion*cosFrictionAngle/(3.0-sinFrictionAngle) + b = 6.0*sinFrictionAngle/(3.0-sinFrictionAngle) + + # Dilation parameter + dilationAngleRad = dilationAngle*np.pi/180.0 + sinDilationAngle = np.sin(dilationAngleRad) + b_dilation = 6.0*sinDilationAngle/(3.0-sinDilationAngle) + + # See Runesson et al. 1999, see Eq. 56 + parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate + + # Extract loading from input tables + imp_strain = np.loadtxt( + imposedStrainFilePath, skiprows=0, unpack=True) + + list_ax_strain_anal = [] + numStepPerLoadingPeriod = 1000 + + for i in range(0,len(imp_strain)-1): + dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod + loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) + list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) + + # Extract time from input tables + imp_time = np.loadtxt( + timeFilePath, skiprows=0, unpack=True) + + list_time_anal = [] + for i in range(0,len(imp_time)-1): + dTimePerStep = (imp_time[i+1]-imp_time[i])/numStepPerLoadingPeriod + timePeriod = np.arange(imp_time[i],imp_time[i+1]+dTimePerStep,dTimePerStep) + list_time_anal = np.concatenate((list_time_anal, timePeriod), axis=0) + + # Extract radial stress loading from input tables + imp_stress = np.loadtxt( + imposedStressFilePath, skiprows=0, unpack=True) + + list_ra_stress_anal = imp_stress[0]*np.ones(len(list_ax_strain_anal)) #constant radial confining stress + + # Initiate radial strain and axial stress arrays + list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal[0] = initialStress + list_ra_strain_anal[0] = 0 + + # Loop over the loading/unloading steps + for idx in range(1,len(list_ax_strain_anal)): + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + delta_time_anal = list_time_anal[idx]-list_time_anal[idx-1] + delta_ra_stress_anal = 0 # constant radial confining stress + + # Elastic trial + delta_ra_strain_anal = (delta_ra_stress_anal-lameModulus*delta_ax_strain_anal)/(2.0*lameModulus+2.0*shearModulus) + delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + lameModulus/(lameModulus+shearModulus)*(delta_ra_stress_anal-lameModulus*delta_ax_strain_anal) + + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Compute mean and shear stresses + ra_stress_anal = list_ra_stress_anal[idx] + p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 + q_anal = -(ax_stress_anal - ra_stress_anal) + + # Plastic correction + if(q_anal>=0): #loading + + F_anal = q_anal + b*p_anal - a + + if(F_anal>=0): + + # Variation of Perzyna visco-plastic multiplier, see Runesson et al. 1999, see Eq. 4, 80, 62, 63 + delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) + + # Compute stress and strain variations + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation-3.0)/3.0 ) * youngModulus + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus + 3.0/2.0*delta_lambda + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic cohesion + delta_a = hardeningRate*delta_lambda + a += delta_a + + else: #unloading + + F_anal = -q_anal + b*p_anal - a # negative sign added to q for q<0 to obtain the absolute value + + if(F_anal>=0): + # Variation of Perzyna visco-plastic multiplier, see Runesson et al. 1999, see Eq. 4, 80, 62, 63 + delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) + + # Compute stress and strain variations + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation+3.0)/3.0 ) * youngModulus + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus - 3.0/2.0*delta_lambda + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic cohesion + delta_a = hardeningRate*delta_lambda + a += delta_a + + list_ax_stress_anal[idx] = ax_stress_anal + list_ra_strain_anal[idx] = ra_strain_anal + + # Preparing data for visualizing semi-analytical results + list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 + list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) + + list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal + + p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 + q_num = -(ax_stress - ra_stress1) + + strain_vol = ax_strain + 2.0 * ra_strain1 + + #Visualization parameters + fsize = 30 + msize = 12 + lw = 6 + malpha = 0.5 + fig, ax = plt.subplots(1, 3, figsize=(37, 10)) + cmap = plt.get_cmap("tab10") + + # Plot strain versus shear stress + ax[0].plot(-ax_strain * 100, #convert to % + q_num*1e-6, #convert to MPa + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[0].plot(-ra_strain1 * 100, + q_num*1e-6, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha) + ax[0].plot(-list_ax_strain_anal* 100, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[0].plot(-list_ra_strain_anal * 100, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + linewidth=6) + ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") + ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + ax[0].xaxis.set_tick_params(labelsize=fsize) + ax[0].yaxis.set_tick_params(labelsize=fsize) + + # Plot axial strain versus volumetric strain + ax[1].plot(-ax_strain * 100, + -strain_vol * 100, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[1].plot(-list_ax_strain_anal* 100, + -list_strain_vol_anal* 100, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[1].set_ylabel(r'Volumetric Strain (%)', size=fsize, weight="bold") + #ax[1].legend(loc='lower right', fontsize=fsize) + ax[1].xaxis.set_tick_params(labelsize=fsize) + ax[1].yaxis.set_tick_params(labelsize=fsize) + + # Plot shear stress versus mean stress + ax[2].plot(-p_num*1e-6, + q_num*1e-6, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[2].plot(-list_p_anal*1e-6, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[2].set_xlabel(r'Mean stress (MPa)', size=fsize, weight="bold") + ax[2].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + ax[2].legend(loc='lower right', fontsize=fsize) + ax[2].xaxis.set_tick_params(labelsize=fsize) + ax[2].yaxis.set_tick_params(labelsize=fsize) + + plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) + plt.show() + if __name__ == "__main__": main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoExtendedDruckerPrager/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoExtendedDruckerPrager/Example.rst index 35c9cef1313..88fba339887 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoExtendedDruckerPrager/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoExtendedDruckerPrager/Example.rst @@ -112,4 +112,4 @@ To go further **Feedback on this example** -For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoExtendedDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoExtendedDruckerPrager.py b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoExtendedDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoExtendedDruckerPrager.py index b8c431e94a4..82cccf82ac8 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoExtendedDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoExtendedDruckerPrager.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoExtendedDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoExtendedDruckerPrager.py @@ -3,270 +3,285 @@ import numpy as np import matplotlib.pyplot as plt import xml.etree.ElementTree as ElementTree +import os +import argparse def main(): - # File paths - path = "ViscoExtendedDruckerPragerResults.txt" - timeFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/time.geos" - xmlFilePath = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_base.xml" - xmlFilePath_case = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_ViscoExtendedDruckerPrager.xml" - imposedStrainFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/axialStrain.geos" - imposedStressFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/radialStress.geos" - - # Load GEOSX results - time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( - path, skiprows=5, unpack=True) - - # Extract mechanical parameters from XML files - tree = ElementTree.parse(xmlFilePath) - tree_case = ElementTree.parse(xmlFilePath_case) - model = tree_case.find('Tasks/TriaxialDriver') - param = tree.find('Constitutive/ViscoExtendedDruckerPrager') - - bulkModulus = float(param.get("defaultBulkModulus")) - shearModulus = float(param.get("defaultShearModulus")) - cohesion = float(param.get("defaultCohesion")) - initialFrictionAngle = float(param.get("defaultInitialFrictionAngle")) - residualFrictionAngle = float(param.get("defaultResidualFrictionAngle")) - hardeningParameter = float(param.get("defaultHardening")) - dilationRatio = float(param.get("defaultDilationRatio")) - relaxationTime = float(param.get("relaxationTime")) - initialStress = float(model.get("initialStress")) - - # Compute Lame modulus and Young modulus - lameModulus = bulkModulus - 2.0/3.0*shearModulus - youngModulus = 1.0/(1.0/9.0/bulkModulus + 1.0/3.0/shearModulus) - - # Initial friction and cohesion parameters - initialFrictionAngleRad = initialFrictionAngle*np.pi/180.0 - cosInitialFrictionAngle = np.cos(initialFrictionAngleRad) - sinInitialFrictionAngle = np.sin(initialFrictionAngleRad) - a_init = 6.0*cohesion*cosInitialFrictionAngle/(3.0-sinInitialFrictionAngle) - b_init = 6.0*sinInitialFrictionAngle/(3.0-sinInitialFrictionAngle) - - # Residual friction parameters - residualFrictionAngleRad = residualFrictionAngle*np.pi/180.0 - sinResidualFrictionAngle = np.sin(residualFrictionAngleRad) - b_resi = 6.0*sinResidualFrictionAngle/(3.0-sinResidualFrictionAngle) - - # Extract loading from input tables - imp_strain = np.loadtxt( - imposedStrainFilePath, skiprows=0, unpack=True) - - list_ax_strain_anal = [] - numStepPerLoadingPeriod = 1000 - - for i in range(0,len(imp_strain)-1): - dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod - loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) - list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) - - # Extract time from input tables - imp_time = np.loadtxt( - timeFilePath, skiprows=0, unpack=True) - - list_time_anal = [] - for i in range(0,len(imp_time)-1): - dTimePerStep = (imp_time[i+1]-imp_time[i])/numStepPerLoadingPeriod - timePeriod = np.arange(imp_time[i],imp_time[i+1]+dTimePerStep,dTimePerStep) - list_time_anal = np.concatenate((list_time_anal, timePeriod), axis=0) - - # Extract radial stress loading from input tables - imp_stress = np.loadtxt( - imposedStressFilePath, skiprows=0, unpack=True) - - list_ra_stress_anal = imp_stress[0]*np.ones(len(list_ax_strain_anal)) #constant radial confining stress - - # Initiate radial strain and axial stress arrays - list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ax_stress_anal[0] = initialStress - - # Loop over the loading/unloading steps - list_ra_strain_anal[0] = 0 - plasticMultiplier = 0 - b = b_init - - for idx in range(1,len(list_ax_strain_anal)): - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - delta_time_anal = list_time_anal[idx]-list_time_anal[idx-1] - delta_ra_stress_anal = 0 - - # Elastic trial - delta_ra_strain_anal = (delta_ra_stress_anal-lameModulus*delta_ax_strain_anal)/(2.0*lameModulus+2.0*shearModulus) - delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + lameModulus/(lameModulus+shearModulus)*(delta_ra_stress_anal-lameModulus*delta_ax_strain_anal) - - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Compute mean and shear stresses - ra_stress_anal = list_ra_stress_anal[idx] - p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 - q_anal = -(ax_stress_anal - ra_stress_anal) - - # Plastic correction - if(q_anal>=0): #loading - - F_anal = q_anal + b*p_anal - b*a_init/b_init - - if(F_anal>=0): - - b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) - b_dilation = b*dilationRatio - - dF_db = p_anal - a_init/b_init - db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) - hardeningRate = -dF_db*db_dlambda - - # Variation of Perzyna plastic multiplier, see Runesson et al. 1999, see Eq. 56, 4, 80, 62, 63 - parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate - delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) - - # Compute stress and strain variations - delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation-3.0)/3.0 ) * youngModulus - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus + 3.0/2.0*delta_lambda - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic multiplier - plasticMultiplier += delta_lambda - - else: #unloading - - F_anal = -q_anal + b*p_anal - b*a_init/b_init # negative sign added to q for q<0 to obtain the absolute value - - if(F_anal>=0): - b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) - b_dilation = b*dilationRatio - - dF_db = p_anal - a_init/b_init - db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) - hardeningRate = -dF_db*db_dlambda - - # Variation of Perzyna plastic multiplier, see Runesson et al. 1999, see Eq. 56, 4, 80, 62, 63 - parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate - delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) - - # Compute stress and strain variations - delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation+3.0)/3.0 ) * youngModulus - delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus - 3.0/2.0*delta_lambda - - # Compute stress and strain at actual loading step - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal - - # Update plastic multiplier - plasticMultiplier += delta_lambda - - list_ax_stress_anal[idx] = ax_stress_anal - list_ra_strain_anal[idx] = ra_strain_anal - - # Preparing data for visualizing semi-analytical results - list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 - list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) - - list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal - - p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 - q_num = -(ax_stress - ra_stress1) - - strain_vol = ax_strain + 2.0 * ra_strain1 - - #Visualization parameters - fsize = 30 - msize = 12 - lw = 6 - malpha = 0.5 - fig, ax = plt.subplots(1, 3, figsize=(37, 10)) - cmap = plt.get_cmap("tab10") - - # Plot strain versus shear stress - ax[0].plot(-ax_strain * 100, #convert to % - q_num*1e-6, #convert to MPa - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[0].plot(-ra_strain1 * 100, - q_num*1e-6, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha) - ax[0].plot(-list_ax_strain_anal* 100, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[0].plot(-list_ra_strain_anal * 100, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - linewidth=6) - ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") - ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - ax[0].xaxis.set_tick_params(labelsize=fsize) - ax[0].yaxis.set_tick_params(labelsize=fsize) - - # Plot axial strain versus volumetric strain - ax[1].plot(-ax_strain * 100, - -strain_vol * 100, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[1].plot(-list_ax_strain_anal* 100, - -list_strain_vol_anal* 100, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[1].set_ylabel(r'Volumetric Strain (%)', size=fsize, weight="bold") - #ax[1].legend(loc='lower right', fontsize=fsize) - ax[1].xaxis.set_tick_params(labelsize=fsize) - ax[1].yaxis.set_tick_params(labelsize=fsize) - - # Plot shear stress versus mean stress - ax[2].plot(-p_num*1e-6, - q_num*1e-6, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[2].plot(-list_p_anal*1e-6, - list_q_anal*1e-6, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[2].set_xlabel(r'Mean stress (MPa)', size=fsize, weight="bold") - ax[2].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") - ax[2].legend(loc='lower right', fontsize=fsize) - ax[2].xaxis.set_tick_params(labelsize=fsize) - ax[2].yaxis.set_tick_params(labelsize=fsize) - - plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) - plt.show() - + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File paths + outputDir = args.outputDir + geosDir = args.geosDir + path = outputDir + "/ViscoExtendedDruckerPragerResults.txt" + timeFilePath = geosDir + "/inputFiles/triaxialDriver/tables/time.geos" + xmlFilePath = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_base.xml" + xmlFilePath_case = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_ViscoExtendedDruckerPrager.xml" + imposedStrainFilePath = geosDir + "/inputFiles/triaxialDriver/tables/axialStrain.geos" + imposedStressFilePath = geosDir + "/inputFiles/triaxialDriver/tables/radialStress.geos" + + # Load GEOSX results + time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( + path, skiprows=5, unpack=True) + + # Extract mechanical parameters from XML files + tree = ElementTree.parse(xmlFilePath) + tree_case = ElementTree.parse(xmlFilePath_case) + model = tree_case.find('Tasks/TriaxialDriver') + param = tree.find('Constitutive/ViscoExtendedDruckerPrager') + + bulkModulus = float(param.get("defaultBulkModulus")) + shearModulus = float(param.get("defaultShearModulus")) + cohesion = float(param.get("defaultCohesion")) + initialFrictionAngle = float(param.get("defaultInitialFrictionAngle")) + residualFrictionAngle = float(param.get("defaultResidualFrictionAngle")) + hardeningParameter = float(param.get("defaultHardening")) + dilationRatio = float(param.get("defaultDilationRatio")) + relaxationTime = float(param.get("relaxationTime")) + initialStress = float(model.get("initialStress")) + + # Compute Lame modulus and Young modulus + lameModulus = bulkModulus - 2.0/3.0*shearModulus + youngModulus = 1.0/(1.0/9.0/bulkModulus + 1.0/3.0/shearModulus) + + # Initial friction and cohesion parameters + initialFrictionAngleRad = initialFrictionAngle*np.pi/180.0 + cosInitialFrictionAngle = np.cos(initialFrictionAngleRad) + sinInitialFrictionAngle = np.sin(initialFrictionAngleRad) + a_init = 6.0*cohesion*cosInitialFrictionAngle/(3.0-sinInitialFrictionAngle) + b_init = 6.0*sinInitialFrictionAngle/(3.0-sinInitialFrictionAngle) + + # Residual friction parameters + residualFrictionAngleRad = residualFrictionAngle*np.pi/180.0 + sinResidualFrictionAngle = np.sin(residualFrictionAngleRad) + b_resi = 6.0*sinResidualFrictionAngle/(3.0-sinResidualFrictionAngle) + + # Extract loading from input tables + imp_strain = np.loadtxt( + imposedStrainFilePath, skiprows=0, unpack=True) + + list_ax_strain_anal = [] + numStepPerLoadingPeriod = 1000 + + for i in range(0,len(imp_strain)-1): + dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod + loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) + list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) + + # Extract time from input tables + imp_time = np.loadtxt( + timeFilePath, skiprows=0, unpack=True) + + list_time_anal = [] + for i in range(0,len(imp_time)-1): + dTimePerStep = (imp_time[i+1]-imp_time[i])/numStepPerLoadingPeriod + timePeriod = np.arange(imp_time[i],imp_time[i+1]+dTimePerStep,dTimePerStep) + list_time_anal = np.concatenate((list_time_anal, timePeriod), axis=0) + + # Extract radial stress loading from input tables + imp_stress = np.loadtxt( + imposedStressFilePath, skiprows=0, unpack=True) + + list_ra_stress_anal = imp_stress[0]*np.ones(len(list_ax_strain_anal)) #constant radial confining stress + + # Initiate radial strain and axial stress arrays + list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ax_stress_anal[0] = initialStress + + # Loop over the loading/unloading steps + list_ra_strain_anal[0] = 0 + plasticMultiplier = 0 + b = b_init + + for idx in range(1,len(list_ax_strain_anal)): + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + delta_time_anal = list_time_anal[idx]-list_time_anal[idx-1] + delta_ra_stress_anal = 0 + + # Elastic trial + delta_ra_strain_anal = (delta_ra_stress_anal-lameModulus*delta_ax_strain_anal)/(2.0*lameModulus+2.0*shearModulus) + delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + lameModulus/(lameModulus+shearModulus)*(delta_ra_stress_anal-lameModulus*delta_ax_strain_anal) + + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Compute mean and shear stresses + ra_stress_anal = list_ra_stress_anal[idx] + p_anal = (ax_stress_anal + 2.0 * ra_stress_anal) / 3.0 + q_anal = -(ax_stress_anal - ra_stress_anal) + + # Plastic correction + if(q_anal>=0): #loading + + F_anal = q_anal + b*p_anal - b*a_init/b_init + + if(F_anal>=0): + + b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) + b_dilation = b*dilationRatio + + dF_db = p_anal - a_init/b_init + db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) + hardeningRate = -dF_db*db_dlambda + + # Variation of Perzyna plastic multiplier, see Runesson et al. 1999, see Eq. 56, 4, 80, 62, 63 + parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate + delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) + + # Compute stress and strain variations + delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation-3.0)/3.0 ) * youngModulus + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus + 3.0/2.0*delta_lambda + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic multiplier + plasticMultiplier += delta_lambda + + else: #unloading + + F_anal = -q_anal + b*p_anal - b*a_init/b_init # negative sign added to q for q<0 to obtain the absolute value + + if(F_anal>=0): + b = b_init + plasticMultiplier/(hardeningParameter+plasticMultiplier) * (b_resi - b_init) + b_dilation = b*dilationRatio + + dF_db = p_anal - a_init/b_init + db_dlambda = hardeningParameter * (b_resi - b_init) / (hardeningParameter+plasticMultiplier) / (hardeningParameter+plasticMultiplier) + hardeningRate = -dF_db*db_dlambda + + # Variation of Perzyna plastic multiplier, see Runesson et al. 1999, see Eq. 56, 4, 80, 62, 63 + parameter_Aep = 3.0*shearModulus + bulkModulus*b*b_dilation + hardeningRate + delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) + + # Compute stress and strain variations + delta_ax_stress_anal = ( delta_ax_strain_anal-delta_lambda*(b_dilation+3.0)/3.0 ) * youngModulus + delta_ra_strain_anal = delta_ax_strain_anal - delta_ax_stress_anal / 2.0 / shearModulus - 3.0/2.0*delta_lambda + + # Compute stress and strain at actual loading step + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_strain_anal = list_ra_strain_anal[idx-1] + delta_ra_strain_anal + + # Update plastic multiplier + plasticMultiplier += delta_lambda + + list_ax_stress_anal[idx] = ax_stress_anal + list_ra_strain_anal[idx] = ra_strain_anal + + # Preparing data for visualizing semi-analytical results + list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 + list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) + + list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal + + p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 + q_num = -(ax_stress - ra_stress1) + + strain_vol = ax_strain + 2.0 * ra_strain1 + + #Visualization parameters + fsize = 30 + msize = 12 + lw = 6 + malpha = 0.5 + fig, ax = plt.subplots(1, 3, figsize=(37, 10)) + cmap = plt.get_cmap("tab10") + + # Plot strain versus shear stress + ax[0].plot(-ax_strain * 100, #convert to % + q_num*1e-6, #convert to MPa + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[0].plot(-ra_strain1 * 100, + q_num*1e-6, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha) + ax[0].plot(-list_ax_strain_anal* 100, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[0].plot(-list_ra_strain_anal * 100, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + linewidth=6) + ax[0].set_xlabel(r'Strain (%)', size=fsize, weight="bold") + ax[0].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + ax[0].xaxis.set_tick_params(labelsize=fsize) + ax[0].yaxis.set_tick_params(labelsize=fsize) + + # Plot axial strain versus volumetric strain + ax[1].plot(-ax_strain * 100, + -strain_vol * 100, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[1].plot(-list_ax_strain_anal* 100, + -list_strain_vol_anal* 100, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[1].set_ylabel(r'Volumetric Strain (%)', size=fsize, weight="bold") + #ax[1].legend(loc='lower right', fontsize=fsize) + ax[1].xaxis.set_tick_params(labelsize=fsize) + ax[1].yaxis.set_tick_params(labelsize=fsize) + + # Plot shear stress versus mean stress + ax[2].plot(-p_num*1e-6, + q_num*1e-6, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[2].plot(-list_p_anal*1e-6, + list_q_anal*1e-6, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[2].set_xlabel(r'Mean stress (MPa)', size=fsize, weight="bold") + ax[2].set_ylabel(r'Deviatoric Stress (MPa)', size=fsize, weight="bold") + ax[2].legend(loc='lower right', fontsize=fsize) + ax[2].xaxis.set_tick_params(labelsize=fsize) + ax[2].yaxis.set_tick_params(labelsize=fsize) + + plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) + plt.show() + if __name__ == "__main__": main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoModifiedCamClay/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoModifiedCamClay/Example.rst index 8972eed2f22..964ffbcbb2c 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoModifiedCamClay/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoModifiedCamClay/Example.rst @@ -103,4 +103,4 @@ To go further **Feedback on this example** -For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoModifiedCamClay/TriaxialDriver_vs_SemiAnalytic_ViscoModifiedCamClay.py b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoModifiedCamClay/TriaxialDriver_vs_SemiAnalytic_ViscoModifiedCamClay.py index 019252903c8..3b4cc7e8fd8 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoModifiedCamClay/TriaxialDriver_vs_SemiAnalytic_ViscoModifiedCamClay.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/ViscoModifiedCamClay/TriaxialDriver_vs_SemiAnalytic_ViscoModifiedCamClay.py @@ -3,214 +3,230 @@ import numpy as np import matplotlib.pyplot as plt import xml.etree.ElementTree as ElementTree +import os +import argparse def main(): - # File paths - path = "ViscoModifiedCamClayResults.txt" - timeFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/time.geos" - xmlFilePath = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_base.xml" - xmlFilePath_case = "../../../../../../../inputFiles/triaxialDriver/triaxialDriver_ViscoModifiedCamClay.xml" - imposedStrainFilePath = "../../../../../../../inputFiles/triaxialDriver/tables/axialStrain.geos" - - # Load GEOSX results - time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( - path, skiprows=5, unpack=True) - - # Extract mechanical parameters from XML file - tree = ElementTree.parse(xmlFilePath) - tree_case = ElementTree.parse(xmlFilePath_case) - model = tree_case.find('Tasks/TriaxialDriver') - param = tree.find('Constitutive/ViscoModifiedCamClay') - - refPressure = float(param.get("defaultRefPressure")) - refStrainVol = float(param.get("defaultRefStrainVol")) - shearModulus = float(param.get("defaultShearModulus")) - preConsolidationPressure = float(param.get("defaultPreConsolidationPressure")) - cslSlope = float(param.get("defaultCslSlope")) - virginCompressionIndex = float(param.get("defaultVirginCompressionIndex")) - recompressionIndex = float(param.get("defaultRecompressionIndex")) - relaxationTime = float(param.get("relaxationTime")) - initialStress = float(model.get("initialStress")) - - # Extract loading from input tables - imp_strain = np.loadtxt( - imposedStrainFilePath, skiprows=0, unpack=True) - - list_ax_strain_anal = [] - numStepPerLoadingPeriod = 10001 - - for i in range(0,len(imp_strain)-1): - dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod - loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) - list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) - - # Extract time from input tables - imp_time = np.loadtxt( - timeFilePath, skiprows=0, unpack=True) - - list_time_anal = [] - for i in range(0,len(imp_time)-1): - dTimePerStep = (imp_time[i+1]-imp_time[i])/numStepPerLoadingPeriod - timePeriod = np.arange(imp_time[i],imp_time[i+1]+dTimePerStep,dTimePerStep) - list_time_anal = np.concatenate((list_time_anal, timePeriod), axis=0) - - list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ra_stress_anal = np.zeros(len(list_ax_strain_anal)) - list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) - - p_anal = refPressure - list_ax_strain_anal += refStrainVol # Oedometric compaction: zero lateral strain - list_ax_stress_anal += initialStress # Assuming isotropic initial stress condition - list_ra_stress_anal += initialStress - - for idx in range(1,len(list_ax_strain_anal)): - delta_ax_strain_anal = list_ax_strain_anal[idx]-list_ax_strain_anal[idx-1] - delta_ra_strain_anal = 0 - - # Compute elastic moduli - bulkModulus = - p_anal/recompressionIndex - lameModulus = bulkModulus - 2.0/3.0*shearModulus - - # Elastic trial - delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + 2.0*lameModulus*delta_ra_strain_anal - delta_ra_stress_anal = lameModulus*delta_ax_strain_anal + (2.0*lameModulus+2.0*shearModulus)*delta_ra_strain_anal - - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_stress_anal = list_ra_stress_anal[idx-1] + delta_ra_stress_anal - - p_anal = (ax_stress_anal + 2.0*ra_stress_anal)/3.0 - q_anal = -(ax_stress_anal - ra_stress_anal) - - # Plastic correction - F_anal = q_anal*q_anal/(cslSlope*cslSlope) + p_anal*(p_anal-preConsolidationPressure) - - if(F_anal>=0): - # Derivatives - dF_dp = 2.0*p_anal-preConsolidationPressure - dF_dq = 2.0*q_anal/(cslSlope*cslSlope) - dF_dpc = -p_anal - - dG_dp = dF_dp # associated plastic rule was considered - dG_dq = dF_dq - - dpc_dlambda = -preConsolidationPressure/(virginCompressionIndex-recompressionIndex)*dG_dp - hardeningRate = -dF_dpc*dpc_dlambda - - # See Runesson et al. 1999, see Eq. 29 - parameter_Aep = 3.0*shearModulus*dF_dq*dG_dq + bulkModulus*dF_dp*dG_dp + hardeningRate - - # Compute stress variations - delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] - delta_time_anal = list_time_anal[idx]-list_time_anal[idx-1] - - delta_strain_vol = delta_ax_strain_anal - delta_strain_shear = -delta_ax_strain_anal #3/2*delta_gamma - - # See Runesson et al. 1999, see Eq. 4, 80, 62, 63 - delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) - delta_p_anal = (delta_strain_vol - delta_lambda*dG_dp)*bulkModulus - delta_q_anal = (delta_strain_shear - 3.0/2.0*delta_lambda*dG_dq)*2.0*shearModulus - - delta_ax_stress_anal = (3.0*delta_p_anal - 2.0*delta_q_anal)/3.0 - delta_ra_stress_anal = delta_ax_stress_anal + delta_q_anal - - # Update stress - ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal - ra_stress_anal = list_ra_stress_anal[idx-1] + delta_ra_stress_anal - - delta_pc = dpc_dlambda * delta_lambda - preConsolidationPressure += delta_pc - - list_ax_stress_anal[idx] = ax_stress_anal - list_ra_stress_anal[idx] = ra_stress_anal - - list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 - list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) - - list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal - - p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 - q_num = -(ax_stress - ra_stress1) - - #Visualization parameters - fsize = 30 - msize = 12 - lw = 6 - malpha = 0.5 - fig, ax = plt.subplots(1, 3, figsize=(37, 10)) - cmap = plt.get_cmap("tab10") - - ax[0].plot(-ax_strain * 100, #convert to % - -ax_stress*1e-3, #convert to kPa - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[0].plot(-list_ax_strain_anal* 100, - -list_ax_stress_anal*1e-3, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - - ax[0].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[0].set_ylabel(r'Axial Stress (kPa)', size=fsize, weight="bold") - #ax[0].legend(loc='lower right', fontsize=fsize) - ax[0].xaxis.set_tick_params(labelsize=fsize) - ax[0].yaxis.set_tick_params(labelsize=fsize) - - ax[1].plot(-ax_strain * 100, - -ra_stress1 * 1e-3, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[1].plot(-list_ax_strain_anal* 100, - -list_ra_stress_anal* 1e-3, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") - ax[1].set_ylabel(r'Radial stress (kPa)', size=fsize, weight="bold") - #ax[1].legend(loc='lower right', fontsize=fsize) - ax[1].xaxis.set_tick_params(labelsize=fsize) - ax[1].yaxis.set_tick_params(labelsize=fsize) - - # Plan p-q - ax[2].plot(-p_num*1e-3, - q_num*1e-3, - 'o', - color=cmap(0), - mec='b', - markersize=msize, - alpha=malpha, - label='Triaxial Driver') - ax[2].plot(-list_p_anal*1e-3, - list_q_anal*1e-3, - '-', - color='r', - mec='r', - markersize=msize, - alpha=malpha, - label='Semi-Analytical', linewidth=6) - ax[2].set_xlabel(r'Mean stress (kPa)', size=fsize, weight="bold") - ax[2].set_ylabel(r'Deviatoric Stress (kPa)', size=fsize, weight="bold") - ax[2].legend(loc='lower right', fontsize=fsize) - ax[2].xaxis.set_tick_params(labelsize=fsize) - ax[2].yaxis.set_tick_params(labelsize=fsize) - - plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) - - plt.show() + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + # File paths + outputDir = args.outputDir + geosDir = args.geosDir + + path = outputDir + "/ViscoModifiedCamClayResults.txt" + timeFilePath = geosDir + "/inputFiles/triaxialDriver/tables/time.geos" + xmlFilePath = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_base.xml" + xmlFilePath_case = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_ViscoModifiedCamClay.xml" + imposedStrainFilePath = geosDir + "/inputFiles/triaxialDriver/tables/axialStrain.geos" + + # Load GEOSX results + time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( + path, skiprows=5, unpack=True) + + # Extract mechanical parameters from XML file + tree = ElementTree.parse(xmlFilePath) + tree_case = ElementTree.parse(xmlFilePath_case) + model = tree_case.find('Tasks/TriaxialDriver') + param = tree.find('Constitutive/ViscoModifiedCamClay') + + refPressure = float(param.get("defaultRefPressure")) + refStrainVol = float(param.get("defaultRefStrainVol")) + shearModulus = float(param.get("defaultShearModulus")) + preConsolidationPressure = float(param.get("defaultPreConsolidationPressure")) + cslSlope = float(param.get("defaultCslSlope")) + virginCompressionIndex = float(param.get("defaultVirginCompressionIndex")) + recompressionIndex = float(param.get("defaultRecompressionIndex")) + relaxationTime = float(param.get("relaxationTime")) + initialStress = float(model.get("initialStress")) + + # Extract loading from input tables + imp_strain = np.loadtxt( + imposedStrainFilePath, skiprows=0, unpack=True) + + list_ax_strain_anal = [] + numStepPerLoadingPeriod = 10001 + + for i in range(0,len(imp_strain)-1): + dStrainPerStep = (imp_strain[i+1]-imp_strain[i])/numStepPerLoadingPeriod + loadingPeriod = np.arange(imp_strain[i],imp_strain[i+1]+dStrainPerStep,dStrainPerStep) + list_ax_strain_anal = np.concatenate((list_ax_strain_anal, loadingPeriod), axis=0) + + # Extract time from input tables + imp_time = np.loadtxt( + timeFilePath, skiprows=0, unpack=True) + + list_time_anal = [] + for i in range(0,len(imp_time)-1): + dTimePerStep = (imp_time[i+1]-imp_time[i])/numStepPerLoadingPeriod + timePeriod = np.arange(imp_time[i],imp_time[i+1]+dTimePerStep,dTimePerStep) + list_time_anal = np.concatenate((list_time_anal, timePeriod), axis=0) + + list_ax_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ra_stress_anal = np.zeros(len(list_ax_strain_anal)) + list_ra_strain_anal = np.zeros(len(list_ax_strain_anal)) + + p_anal = refPressure + list_ax_strain_anal += refStrainVol # Oedometric compaction: zero lateral strain + list_ax_stress_anal += initialStress # Assuming isotropic initial stress condition + list_ra_stress_anal += initialStress + + for idx in range(1,len(list_ax_strain_anal)): + delta_ax_strain_anal = list_ax_strain_anal[idx]-list_ax_strain_anal[idx-1] + delta_ra_strain_anal = 0 + + # Compute elastic moduli + bulkModulus = - p_anal/recompressionIndex + lameModulus = bulkModulus - 2.0/3.0*shearModulus + + # Elastic trial + delta_ax_stress_anal = (lameModulus+2.0*shearModulus)*delta_ax_strain_anal + 2.0*lameModulus*delta_ra_strain_anal + delta_ra_stress_anal = lameModulus*delta_ax_strain_anal + (2.0*lameModulus+2.0*shearModulus)*delta_ra_strain_anal + + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_stress_anal = list_ra_stress_anal[idx-1] + delta_ra_stress_anal + + p_anal = (ax_stress_anal + 2.0*ra_stress_anal)/3.0 + q_anal = -(ax_stress_anal - ra_stress_anal) + + # Plastic correction + F_anal = q_anal*q_anal/(cslSlope*cslSlope) + p_anal*(p_anal-preConsolidationPressure) + + if(F_anal>=0): + # Derivatives + dF_dp = 2.0*p_anal-preConsolidationPressure + dF_dq = 2.0*q_anal/(cslSlope*cslSlope) + dF_dpc = -p_anal + + dG_dp = dF_dp # associated plastic rule was considered + dG_dq = dF_dq + + dpc_dlambda = -preConsolidationPressure/(virginCompressionIndex-recompressionIndex)*dG_dp + hardeningRate = -dF_dpc*dpc_dlambda + + # See Runesson et al. 1999, see Eq. 29 + parameter_Aep = 3.0*shearModulus*dF_dq*dG_dq + bulkModulus*dF_dp*dG_dp + hardeningRate + + # Compute stress variations + delta_ax_strain_anal = list_ax_strain_anal[idx] - list_ax_strain_anal[idx-1] + delta_time_anal = list_time_anal[idx]-list_time_anal[idx-1] + + delta_strain_vol = delta_ax_strain_anal + delta_strain_shear = -delta_ax_strain_anal #3/2*delta_gamma + + # See Runesson et al. 1999, see Eq. 4, 80, 62, 63 + delta_lambda = delta_time_anal / relaxationTime * (F_anal/parameter_Aep) + delta_p_anal = (delta_strain_vol - delta_lambda*dG_dp)*bulkModulus + delta_q_anal = (delta_strain_shear - 3.0/2.0*delta_lambda*dG_dq)*2.0*shearModulus + + delta_ax_stress_anal = (3.0*delta_p_anal - 2.0*delta_q_anal)/3.0 + delta_ra_stress_anal = delta_ax_stress_anal + delta_q_anal + + # Update stress + ax_stress_anal = list_ax_stress_anal[idx-1] + delta_ax_stress_anal + ra_stress_anal = list_ra_stress_anal[idx-1] + delta_ra_stress_anal + + delta_pc = dpc_dlambda * delta_lambda + preConsolidationPressure += delta_pc + + list_ax_stress_anal[idx] = ax_stress_anal + list_ra_stress_anal[idx] = ra_stress_anal + + list_p_anal = (list_ax_stress_anal + 2.0 * list_ra_stress_anal) / 3.0 + list_q_anal = -(list_ax_stress_anal - list_ra_stress_anal) + + list_strain_vol_anal = list_ax_strain_anal + 2.0 * list_ra_strain_anal + + p_num = (ax_stress + 2.0 * ra_stress1) / 3.0 + q_num = -(ax_stress - ra_stress1) + + #Visualization parameters + fsize = 30 + msize = 12 + lw = 6 + malpha = 0.5 + fig, ax = plt.subplots(1, 3, figsize=(37, 10)) + cmap = plt.get_cmap("tab10") + + ax[0].plot(-ax_strain * 100, #convert to % + -ax_stress*1e-3, #convert to kPa + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[0].plot(-list_ax_strain_anal* 100, + -list_ax_stress_anal*1e-3, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + + ax[0].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[0].set_ylabel(r'Axial Stress (kPa)', size=fsize, weight="bold") + #ax[0].legend(loc='lower right', fontsize=fsize) + ax[0].xaxis.set_tick_params(labelsize=fsize) + ax[0].yaxis.set_tick_params(labelsize=fsize) + + ax[1].plot(-ax_strain * 100, + -ra_stress1 * 1e-3, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[1].plot(-list_ax_strain_anal* 100, + -list_ra_stress_anal* 1e-3, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[1].set_xlabel(r'Axial Strain (%)', size=fsize, weight="bold") + ax[1].set_ylabel(r'Radial stress (kPa)', size=fsize, weight="bold") + #ax[1].legend(loc='lower right', fontsize=fsize) + ax[1].xaxis.set_tick_params(labelsize=fsize) + ax[1].yaxis.set_tick_params(labelsize=fsize) + + # Plan p-q + ax[2].plot(-p_num*1e-3, + q_num*1e-3, + 'o', + color=cmap(0), + mec='b', + markersize=msize, + alpha=malpha, + label='Triaxial Driver') + ax[2].plot(-list_p_anal*1e-3, + list_q_anal*1e-3, + '-', + color='r', + mec='r', + markersize=msize, + alpha=malpha, + label='Semi-Analytical', linewidth=6) + ax[2].set_xlabel(r'Mean stress (kPa)', size=fsize, weight="bold") + ax[2].set_ylabel(r'Deviatoric Stress (kPa)', size=fsize, weight="bold") + ax[2].legend(loc='lower right', fontsize=fsize) + ax[2].xaxis.set_tick_params(labelsize=fsize) + ax[2].yaxis.set_tick_params(labelsize=fsize) + + plt.subplots_adjust(left=0.2, bottom=0.1, right=0.9, top=0.9, wspace=0.4, hspace=0.4) + + plt.show() if __name__ == "__main__": main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/Index.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/Index.rst index 795a58cc733..d56e9e5fe2c 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/Index.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/Index.rst @@ -25,7 +25,11 @@ Wellbore Problems verticalPoroElastoPlasticWellbore/Example - pureThermalDiffusion/Example + linearThermalDiffusion/Example + + nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/Example + + nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/Example casedThermoElasticWellbore/Example @@ -35,7 +39,7 @@ Wellbore Problems casedContactThermoElasticWellbore/Example - nonLinearThermalDiffusion/Example + diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactElasticWellbore/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactElasticWellbore/Example.rst index 0fa899e49b3..58b71536263 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactElasticWellbore/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactElasticWellbore/Example.rst @@ -1,9 +1,9 @@ .. _AdvancedExampleCasedElasticWellbore_ImperfectInterfaces: -############################################### +################################################ Cased Elastic Wellbore with Imperfect Interfaces -############################################### +################################################ ------------------------------------------------------------------ Problem description @@ -149,4 +149,4 @@ To go further **Feedback on this example** This concludes the cased wellbore example. -For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactElasticWellbore/elastic_casedWellbore_displacementJump.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactElasticWellbore/elastic_casedWellbore_displacementJump.py index 54d4738a790..6f319c97a47 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactElasticWellbore/elastic_casedWellbore_displacementJump.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactElasticWellbore/elastic_casedWellbore_displacementJump.py @@ -13,8 +13,8 @@ def main(): # Plot GEOSX results hf = h5py.File(hdf5FilePath, 'r') - time = np.array( hf.get('displacementJump Time') ) - displacementJump = np.array( hf.get('displacementJump') ) + time = np.asarray( hf.get('displacementJump Time') ) + displacementJump = np.asarray( hf.get('displacementJump') ) nTime = time.shape[0] diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/Example.rst index fb56a974211..4003200ef5c 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/Example.rst @@ -111,8 +111,6 @@ The GEOS results of displacement jump across the casing-cement and cement-rock i The GEOS results and analytical results for temperature distribution around the cased wellbore are shown in the figures below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_temperature.py - .. _problemCasedContactThermoElasticWellbore_Temperature_Fig: .. figure:: temperature.png :align: center @@ -123,8 +121,6 @@ The GEOS results and analytical results for temperature distribution around the and the radial displacement around the wellbore is shown below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_displacement.py - .. _problemCasedContactThermoElasticWellbore_Displacement_Fig: .. figure:: displacement.png :align: center @@ -135,8 +131,6 @@ and the radial displacement around the wellbore is shown below: The total radial and hoop stress (tangential stress) components computed by GEOS and the reference results are shown in the figure below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_stress.py - .. _problemCasedContactThermoElasticWellbore_Stresses_Fig: .. figure:: stress.png :align: center diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_displacement.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_displacement.py index a3fe2be399e..ec2a13f547a 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_displacement.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_displacement.py @@ -13,9 +13,9 @@ def main(): # Plot GEOSX results hf = h5py.File(hdf5FilePath, 'r') - time = np.array( hf.get('totalDisplacement Time') ) - center = np.array( hf.get('totalDisplacement ReferencePosition') ) - displacement = np.array( hf.get('totalDisplacement') ) + time = np.asarray( hf.get('totalDisplacement Time') ) + center = np.asarray( hf.get('totalDisplacement ReferencePosition') ) + displacement = np.asarray( hf.get('totalDisplacement') ) nNodes = center.shape[1] xCoord = center[0, 0:nNodes, 0] diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_stress.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_stress.py index dfdb898838d..6a641106112 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_stress.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_stress.py @@ -30,13 +30,13 @@ def main(): # Get stress, time and element center hf_stress = h5py.File(filePath_stress, 'r') - time = np.array( hf_stress.get(stress_field_name + ' Time') ) - center = np.array( hf_stress.get(stress_field_name + ' elementCenter') ) - stress = np.array( hf_stress.get(stress_field_name) ) + time = np.asarray( hf_stress.get(stress_field_name + ' Time') ) + center = np.asarray( hf_stress.get(stress_field_name + ' elementCenter') ) + stress = np.asarray( hf_stress.get(stress_field_name) ) # Get temperature hf_temperature = h5py.File(filePath_temperature, 'r') - temperature = np.array( hf_temperature.get('temperature') ) + temperature = np.asarray( hf_temperature.get('temperature') ) # Compute total stress stress_xx_total = stress[:,:,0] - 3 * bulkModuli[idx] * thermalExpansionCoefficients[idx] * temperature diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_temperature.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_temperature.py index 0d93502677d..112a18e726b 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_temperature.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedContactThermoElasticWellbore/thermoElastic_casedContactWellbore_temperature.py @@ -18,9 +18,9 @@ def main(): for filePath in hdf5FilePath: hf = h5py.File(filePath, 'r') - time = np.array( hf.get('temperature Time') ) - center = np.array( hf.get('temperature elementCenter') ) - temperature = np.array( hf.get('temperature') ) + time = np.asarray( hf.get('temperature Time') ) + center = np.asarray( hf.get('temperature elementCenter') ) + temperature = np.asarray( hf.get('temperature') ) nElements = center.shape[1] xCoord = center[0, 0:nElements, 0] @@ -29,7 +29,7 @@ def main(): if (hasLabel): plt.plot( rCoord, - temperature[10, 0:nElements], + temperature[10, 0:nElements], 'r+', label='GEOS: t = 1e4 (s)') diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/Example.rst index c48146a0053..bad01dcc9a7 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/Example.rst @@ -212,8 +212,6 @@ Results and benchmark A good agreement between the GEOS results and analytical results for temperature distribution around the cased wellbore is shown in the figures below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_temperature.py - .. _problemCasedThermoElasticWellbore_Temperature_Fig: .. figure:: temperature.png :align: center @@ -224,8 +222,6 @@ A good agreement between the GEOS results and analytical results for temperature and the validation for the radial displacement around the cased wellbore is shown below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_displacement.py - .. _problemCasedThermoElasticWellbore_Displacement_Fig: .. figure:: displacement.png :align: center @@ -236,8 +232,6 @@ and the validation for the radial displacement around the cased wellbore is show The validations of the total radial and hoop stress (tangent stress) components computed by GEOS against reference results are shown in the figure below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_stress.py - .. _problemCasedThermoElasticWellbore_Stresses_Fig: .. figure:: stress.png :align: center diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_displacement.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_displacement.py index e3179d7296b..e6189fe2c71 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_displacement.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_displacement.py @@ -13,9 +13,9 @@ def main(): # Get GEOS results hf = h5py.File(hdf5FilePath, 'r') - time = np.array( hf.get('totalDisplacement Time') ) - center = np.array( hf.get('totalDisplacement ReferencePosition') ) - displacement = np.array( hf.get('totalDisplacement') ) + time = np.asarray( hf.get('totalDisplacement Time') ) + center = np.asarray( hf.get('totalDisplacement ReferencePosition') ) + displacement = np.asarray( hf.get('totalDisplacement') ) nNodes = center.shape[1] xCoord = center[0, 0:nNodes, 0] diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_stress.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_stress.py index 54cd5044145..e6ec6e50296 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_stress.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_stress.py @@ -31,13 +31,13 @@ def main(): # Get stress, time and element center hf_stress = h5py.File(filePath_stress, 'r') - time = np.array( hf_stress.get(stress_field_name + ' Time') ) - center = np.array( hf_stress.get(stress_field_name + ' elementCenter') ) - stress = np.array( hf_stress.get(stress_field_name) ) + time = np.asarray( hf_stress.get(stress_field_name + ' Time') ) + center = np.asarray( hf_stress.get(stress_field_name + ' elementCenter') ) + stress = np.asarray( hf_stress.get(stress_field_name) ) # Get temperature hf_temperature = h5py.File(filePath_temperature, 'r') - temperature = np.array( hf_temperature.get('temperature') ) + temperature = np.asarray( hf_temperature.get('temperature') ) # Compute total stress: # With the actual version of GEOS, the output stress need to be combined with the temperature contribution to obtain the total tress as follows: diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_temperature.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_temperature.py index 6f942827d58..84c3758b636 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_temperature.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/casedThermoElasticWellbore/thermoElastic_casedWellbore_temperature.py @@ -18,9 +18,9 @@ def main(): for filePath in hdf5FilePath: hf = h5py.File(filePath, 'r') - time = np.array( hf.get('temperature Time') ) - center = np.array( hf.get('temperature elementCenter') ) - temperature = np.array( hf.get('temperature') ) + time = np.asarray( hf.get('temperature Time') ) + center = np.asarray( hf.get('temperature elementCenter') ) + temperature = np.asarray( hf.get('temperature') ) nElements = center.shape[1] xCoord = center[0, 0:nElements, 0] diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/deviatedPoroElasticWellbore/deviatedPoroElasticWellboreExample1Figure.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/deviatedPoroElasticWellbore/deviatedPoroElasticWellboreExample1Figure.py index 3ee5c1af5f4..51ba65feb99 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/deviatedPoroElasticWellbore/deviatedPoroElasticWellboreExample1Figure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/deviatedPoroElasticWellbore/deviatedPoroElasticWellboreExample1Figure.py @@ -3,6 +3,8 @@ import numpy as np import matplotlib.pyplot as plt import xml.etree.ElementTree as ElementTree +import os +import argparse def FFunction(s, R): @@ -94,7 +96,7 @@ def getParametersFromXML(xmlFilePath): porosity = float(tree.find('Constitutive/BiotPorosity').get('defaultReferencePorosity')) - skeletonBulkModulus = float(tree.find('Constitutive/BiotPorosity').get('grainBulkModulus')) + skeletonBulkModulus = float(tree.find('Constitutive/BiotPorosity').get('defaultGrainBulkModulus')) fluidCompressibility = float(tree.find('Constitutive/CompressibleSinglePhaseFluid').get('compressibility')) bBiot = 1.0 - bulkModulus / skeletonBulkModulus @@ -131,7 +133,21 @@ def getWellboreGeometryFromXML(xmlFilePath): def main(): - xmlFilePathPrefix = "../../../../../../../inputFiles/wellbore/DeviatedPoroElasticWellbore_Injection" + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + outputDir = args.outputDir + geosDir = args.geosDir + + xmlFilePathPrefix = geosDir + "/inputFiles/wellbore/DeviatedPoroElasticWellbore_Injection" geometry = getWellboreGeometryFromXML(xmlFilePathPrefix + "_benchmark.xml") parameters = getParametersFromXML(xmlFilePathPrefix + "_base.xml") @@ -187,7 +203,7 @@ def main(): # Get stress_ij and pore pressure # Data are extracted along the y-axis from the wellbore center r, pPore, stress_11, stress_12, stress_13, stress_22, stress_23, stress_33 = [], [], [], [], [], [], [], [] - for line in open('stress_11.curve', 'r'): + for line in open( outputDir + '/stress_11.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] rval = values[0] @@ -195,37 +211,37 @@ def main(): r.append(rval) stress_11.append(sigVal) - for line in open('stress_12.curve', 'r'): + for line in open( outputDir + '/stress_12.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_12.append(sigVal) - for line in open('stress_13.curve', 'r'): + for line in open( outputDir + '/stress_13.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_13.append(sigVal) - for line in open('stress_22.curve', 'r'): + for line in open( outputDir + '/stress_22.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_22.append(sigVal) - for line in open('stress_23.curve', 'r'): + for line in open( outputDir + '/stress_23.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_23.append(sigVal) - for line in open('stress_33.curve', 'r'): + for line in open( outputDir + '/stress_33.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_33.append(sigVal) - for line in open('pressure.curve', 'r'): + for line in open( outputDir + '/pressure.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] pPore.append(values[1] * 1e-6) diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/deviatedPoroElasticWellbore/deviatedPoroElasticWellboreExample2Figure.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/deviatedPoroElasticWellbore/deviatedPoroElasticWellboreExample2Figure.py index 24c2132409b..4bf3b74370f 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/deviatedPoroElasticWellbore/deviatedPoroElasticWellboreExample2Figure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/deviatedPoroElasticWellbore/deviatedPoroElasticWellboreExample2Figure.py @@ -4,6 +4,8 @@ import matplotlib.pyplot as plt import wellboreAnalyticalSolutions as analytic import xml.etree.ElementTree as ElementTree +import os +import argparse # Rotate stress from local coordinates of an inclined borehole to the global coordinates system @@ -101,7 +103,7 @@ def getParametersFromXML(xmlFilePath): porosity = float(tree.find('Constitutive/BiotPorosity').get('defaultReferencePorosity')) - skeletonBulkModulus = float(tree.find('Constitutive/BiotPorosity').get('grainBulkModulus')) + skeletonBulkModulus = float(tree.find('Constitutive/BiotPorosity').get('defaultGrainBulkModulus')) fluidCompressibility = float(tree.find('Constitutive/CompressibleSinglePhaseFluid').get('compressibility')) bBiot = 1.0 - bulkModulus / skeletonBulkModulus @@ -141,7 +143,21 @@ def getWellboreGeometryFromXML(xmlFilePath): def main(): - xmlFilePathPrefix = "../../../../../../../inputFiles/wellbore/DeviatedPoroElasticWellbore_Drilling" + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + outputDir = args.outputDir + geosDir = args.geosDir + + xmlFilePathPrefix = geosDir + "/inputFiles/wellbore/DeviatedPoroElasticWellbore_Drilling" geometry = getWellboreGeometryFromXML(xmlFilePathPrefix + "_benchmark.xml") parameters = getParametersFromXML(xmlFilePathPrefix + "_base.xml") @@ -193,7 +209,7 @@ def main(): # Get radial coordinate and compute analytical results r = [] - for line in open('stress_11_drilling.curve', 'r'): + for line in open( outputDir + '/stress_11_drilling.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] rval = values[0] @@ -202,43 +218,43 @@ def main(): # Get stress_ij and pore pressure # These data are extracted along the y-axis from the well center (theta angle = 90°) stress_11, stress_12, stress_13, stress_22, stress_23, stress_33, pPore = [], [], [], [], [], [], [] - for line in open('stress_11_drilling.curve', 'r'): + for line in open( outputDir + '/stress_11_drilling.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_11.append(sigVal) - for line in open('stress_12_drilling.curve', 'r'): + for line in open( outputDir + '/stress_12_drilling.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_12.append(sigVal) - for line in open('stress_13_drilling.curve', 'r'): + for line in open( outputDir + '/stress_13_drilling.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_13.append(sigVal) - for line in open('stress_22_drilling.curve', 'r'): + for line in open( outputDir + '/stress_22_drilling.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_22.append(sigVal) - for line in open('stress_23_drilling.curve', 'r'): + for line in open( outputDir + '/stress_23_drilling.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_23.append(sigVal) - for line in open('stress_33_drilling.curve', 'r'): + for line in open( outputDir + '/stress_33_drilling.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] sigVal = values[1] * 1e-6 # convert to MPa stress_33.append(sigVal) - for line in open('pressure_drilling.curve', 'r'): + for line in open( outputDir + '/pressure_drilling.curve', 'r'): if not (line.strip().startswith("#") or line.strip() == ''): values = [float(s) for s in line.split()] pPoreVal = values[1] * 1e-6 # convert to MPa diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/Example.rst index df0e8f5ba23..25ca393373a 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/Example.rst @@ -68,9 +68,7 @@ The parameters used in the simulation are summarized in the following table. The validation of GEOS results against analytical results is shown in the figure below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/dpWellbore_plot.py - -.. _edpWellboreVerificationFig: +.. _dpWellboreVerificationFig: .. figure:: dpWellboreVerification.png :align: center :width: 1000 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/dpWellbore_plot.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/dpWellbore_plot.py index f4cc634c4b7..24dd2e4eb2e 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/dpWellbore_plot.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/dpWellbore/dpWellbore_plot.py @@ -76,14 +76,14 @@ def main(): # Get stress, time and element center from GEOSX results stress_field_name = 'rock_stress' hf_stress = h5py.File('stressHistory_rock.hdf5', 'r') - time = np.array( hf_stress.get(stress_field_name + ' Time') ) - center = np.array( hf_stress.get(stress_field_name + ' elementCenter') ) - stress = np.array( hf_stress.get(stress_field_name) ) + time = np.asarray( hf_stress.get(stress_field_name + ' Time') ) + center = np.asarray( hf_stress.get(stress_field_name + ' elementCenter') ) + stress = np.asarray( hf_stress.get(stress_field_name) ) # Get the deformed wellbore radius hf_disp = h5py.File("displacementHistory.hdf5", 'r') - displacement = np.array( hf_disp.get('totalDisplacement') ) - node_position = np.array( hf_disp.get('totalDisplacement ReferencePosition') ) + displacement = np.asarray( hf_disp.get('totalDisplacement') ) + node_position = np.asarray( hf_disp.get('totalDisplacement ReferencePosition') ) da = displacement[:, 0, 0] a = a0 + da diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/Example.rst index ea699e22054..f691cd73e2d 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/Example.rst @@ -201,8 +201,6 @@ Inspecting results In the above example, we requested hdf5 output files. We can therefore use python scripts to visualize the outcome. Below figure shows the comparisons between the numerical predictions (marks) and the corresponding analytical solutions (solid curves) with respect to the distributions of principal stress components, stress path on the wellbore surface, the supporting wellbore pressure and wellbore size. It is clear that the GEOS predictions are in excellent agreement with the analytical results. On the top-right figure, we added also a comparison between GEOS results for elasto-plastic material and the anlytical solutions of an elastic material. Note that the elastic solutions are differed from the elasto-plastic results even in the elastic zone (r/a>2). -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/edpWellbore_plot.py - .. _edpWellboreVerificationFig: .. figure:: edpWellboreVerification.png :align: center diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/edpWellbore_plot.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/edpWellbore_plot.py index cfb316156ac..007ce7f6669 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/edpWellbore_plot.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/edpWellbore/edpWellbore_plot.py @@ -6,240 +6,256 @@ from xml.etree import ElementTree import edpWellbore_analyticalResults as edpAnal import elastoPlasticWellboreAnalyticalSolutions as epwAnal +import os +import argparse def extractDataFromXMLList(paramList): - # Extract data from a list in XML such as "{ 1, 2, 3}" - return paramList.replace('{', '').replace('}', '').strip().split(',') + # Extract data from a list in XML such as "{ 1, 2, 3}" + return paramList.replace('{', '').replace('}', '').strip().split(',') def getDataFromXML(xmlFilePathPrefix): - # Get wellbore inner radius - xmlFilePath = xmlFilePathPrefix + "_benchmark.xml" - tree = ElementTree.parse(xmlFilePath) + # Get wellbore inner radius + xmlFilePath = xmlFilePathPrefix + "_benchmark.xml" + tree = ElementTree.parse(xmlFilePath) - meshParam = tree.find('Mesh/InternalWellbore') - radii = extractDataFromXMLList( meshParam.get("radius") ) - a0 = float(radii[0]) + meshParam = tree.find('Mesh/InternalWellbore') + radii = extractDataFromXMLList( meshParam.get("radius") ) + a0 = float(radii[0]) - # Get the temperature change on the inner surface of the wellbore - xmlFilePath = xmlFilePathPrefix + "_base.xml" - tree = ElementTree.parse(xmlFilePath) + # Get the temperature change on the inner surface of the wellbore + xmlFilePath = xmlFilePathPrefix + "_base.xml" + tree = ElementTree.parse(xmlFilePath) - fsParams = tree.findall('FieldSpecifications/FieldSpecification') - for fsParam in fsParams: - if fsParam.get('name') == 'stressXX': - sh = float( fsParam.get('scale') ) - if fsParam.get('name') == 'stressZZ': - sv = float( fsParam.get('scale') ) + fsParams = tree.findall('FieldSpecifications/FieldSpecification') + for fsParam in fsParams: + if fsParam.get('name') == 'stressXX': + sh = float( fsParam.get('scale') ) + if fsParam.get('name') == 'stressZZ': + sv = float( fsParam.get('scale') ) - pw = float( extractDataFromXMLList(tree.find('Functions/TableFunction').get('values') )[1]) + pw = float( extractDataFromXMLList(tree.find('Functions/TableFunction').get('values') )[1]) - defaultBulkModulus = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultBulkModulus') ) - defaultShearModulus = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultShearModulus') ) - defaultCohesion = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultCohesion') ) - defaultInitialFrictionAngle = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultInitialFrictionAngle') ) - defaultResidualFrictionAngle = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultResidualFrictionAngle') ) - defaultDilationRatio = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultDilationRatio') ) - defaultHardening = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultHardening') ) + defaultBulkModulus = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultBulkModulus') ) + defaultShearModulus = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultShearModulus') ) + defaultCohesion = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultCohesion') ) + defaultInitialFrictionAngle = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultInitialFrictionAngle') ) + defaultResidualFrictionAngle = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultResidualFrictionAngle') ) + defaultDilationRatio = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultDilationRatio') ) + defaultHardening = float( tree.find('Constitutive/ExtendedDruckerPrager').get('defaultHardening') ) - return [a0, sh, sv, pw, defaultBulkModulus, defaultShearModulus, defaultCohesion, defaultInitialFrictionAngle, defaultResidualFrictionAngle, defaultDilationRatio, defaultHardening] + return [a0, sh, sv, pw, defaultBulkModulus, defaultShearModulus, defaultCohesion, defaultInitialFrictionAngle, defaultResidualFrictionAngle, defaultDilationRatio, defaultHardening] def stressRotation(stress, phi_x): rotx = np.array([[np.cos(phi_x), np.sin(phi_x), 0.], [-np.sin(phi_x), np.cos(phi_x), 0.], [0., 0., 1.]]) return np.dot(np.dot(np.transpose(rotx), stress), rotx) def main(): - xmlFilePathPrefix = "../../../../../../../inputFiles/solidMechanics/ExtendedDruckerPragerWellbore" - xmlData = getDataFromXML(xmlFilePathPrefix) - - # Initial wellbore radius - a0 = xmlData[0] - - # Initial stresses - sh = -xmlData[1] #negative sign because of positive sign convention for compression stress in the analytical solution - sv = -xmlData[2] #negative sign because of positive sign convention for compression stress in the analytical solution - - # Boundary condition on the wellbore surface - pw = -xmlData[3] #negative sign because of positive sign convention for compression stress in the analytical solution - # Equivalent displacement condition for the analytical solution - a0_a_ratio = 1.075 # This ratio corresponds to pw, extracted from the relationship between pw and a0/a (see bottom-right figure) - - # Elastic moduli - K = xmlData[4] - G = xmlData[5] - nu = (3.0*K-2.0*G) / (6.0*K+2.0*G) - - # Elasto-plastic parameters - cohesion = xmlData[6] - initialFrictionAngle = xmlData[7] # deg - finalFrictionAngle = xmlData[8] # deg - dilationRatio = xmlData[9] - param_m = xmlData[10] # Extended Drucker-Prager hardening parameter, this is noted by c in the ref. Chen and Abousleiman (2017) - - # Note that the solution developed by Chen and Abousleiman (2017) is for an associated elasto-plastic model (i.e. dilationRatio = 1) with zero cohesion - assert dilationRatio == 1.0, "The associated model is considered by the reference solutions, please set the dilation ratio to 1.0" - assert cohesion == 0.0, "Zero cohesion is considered by the reference solutions, please set the cohesion to 0.0" - - # Get stress, time and element center from GEOSX results - stress_field_name = 'rock_stress' - hf_stress = h5py.File('stressHistory_rock.hdf5', 'r') - time = np.array( hf_stress.get(stress_field_name + ' Time') ) - center = np.array( hf_stress.get(stress_field_name + ' elementCenter') ) - stress = np.array( hf_stress.get(stress_field_name) ) - - # Get the deformed wellbore radius - hf_disp = h5py.File("displacementHistory.hdf5", 'r') - displacement = np.array( hf_disp.get('totalDisplacement') ) - node_position = np.array( hf_disp.get('totalDisplacement ReferencePosition') ) - da = displacement[:, 0, 0] - a = a0 + da - - # Compute total stress, the stress of each element is the average value of its eight Gauss points - nTimeSteps = 30 - stress_xx = ( sum(stress[nTimeSteps,:,6*i+0] for i in range(8)) )/8.0 - stress_yy = ( sum(stress[nTimeSteps,:,6*i+1] for i in range(8)) )/8.0 - stress_zz = ( sum(stress[nTimeSteps,:,6*i+2] for i in range(8)) )/8.0 - stress_yz = ( sum(stress[nTimeSteps,:,6*i+3] for i in range(8)) )/8.0 - stress_xz = ( sum(stress[nTimeSteps,:,6*i+4] for i in range(8)) )/8.0 - stress_xy = ( sum(stress[nTimeSteps,:,6*i+5] for i in range(8)) )/8.0 - - # Coordinate of elemnt center - nElements = center.shape[1] - xCoord = center[0, :, 0] - yCoord = center[0, :, 1] - - rCoord = np.sqrt( xCoord*xCoord + yCoord*yCoord ) - - # Compute stress components in cylindrical coordinate system - stress_rr = np.zeros(stress_xx.shape) - stress_tt = np.zeros(stress_xx.shape) - - for idx_elem in range(stress.shape[1]): - stressMatrix_cartesian = np.array([[stress_xx[idx_elem],stress_xy[idx_elem],stress_xz[idx_elem]],\ - [stress_xy[idx_elem],stress_yy[idx_elem],stress_yz[idx_elem]],\ - [stress_xz[idx_elem],stress_yz[idx_elem],stress_zz[idx_elem]]]) - - if(yCoord[idx_elem] != 0): - phi_x = np.arctan( xCoord[idx_elem]/yCoord[idx_elem] ) - else: - phi_x = 0 - - stressMatrix_cylindirical = stressRotation(stressMatrix_cartesian, phi_x) - stress_rr[idx_elem] = stressMatrix_cylindirical[1][1] - stress_tt[idx_elem] = stressMatrix_cylindirical[0][0] - - # Stress invariants at wellbore surface - stress_xx_wellboresurface = ( sum(stress[:,0,6*i+0] for i in range(8)) )/8.0 - stress_yy_wellboresurface = ( sum(stress[:,0,6*i+1] for i in range(8)) )/8.0 - stress_zz_wellboresurface = ( sum(stress[:,0,6*i+2] for i in range(8)) )/8.0 - stress_yz_wellboresurface = ( sum(stress[:,0,6*i+3] for i in range(8)) )/8.0 - stress_xz_wellboresurface = ( sum(stress[:,0,6*i+4] for i in range(8)) )/8.0 - stress_xy_wellboresurface = ( sum(stress[:,0,6*i+5] for i in range(8)) )/8.0 - p = (stress_xx_wellboresurface + stress_yy_wellboresurface + stress_zz_wellboresurface)/3.0 - q = np.sqrt(1.5) * np.sqrt( (stress_xx_wellboresurface-p)**2.0 + (stress_yy_wellboresurface-p)**2.0 + (stress_zz_wellboresurface-p)**2.0 + \ + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + + outputDir = args.outputDir + geosDir = args.geosDir + + xmlFilePathPrefix = geosDir + "/inputFiles/solidMechanics/ExtendedDruckerPragerWellbore" + xmlData = getDataFromXML(xmlFilePathPrefix) + + # Initial wellbore radius + a0 = xmlData[0] + + # Initial stresses + sh = -xmlData[1] #negative sign because of positive sign convention for compression stress in the analytical solution + sv = -xmlData[2] #negative sign because of positive sign convention for compression stress in the analytical solution + + # Boundary condition on the wellbore surface + pw = -xmlData[3] #negative sign because of positive sign convention for compression stress in the analytical solution + # Equivalent displacement condition for the analytical solution + a0_a_ratio = 1.075 # This ratio corresponds to pw, extracted from the relationship between pw and a0/a (see bottom-right figure) + + # Elastic moduli + K = xmlData[4] + G = xmlData[5] + nu = (3.0*K-2.0*G) / (6.0*K+2.0*G) + + # Elasto-plastic parameters + cohesion = xmlData[6] + initialFrictionAngle = xmlData[7] # deg + finalFrictionAngle = xmlData[8] # deg + dilationRatio = xmlData[9] + param_m = xmlData[10] # Extended Drucker-Prager hardening parameter, this is noted by c in the ref. Chen and Abousleiman (2017) + + # Note that the solution developed by Chen and Abousleiman (2017) is for an associated elasto-plastic model (i.e. dilationRatio = 1) with zero cohesion + assert dilationRatio == 1.0, "The associated model is considered by the reference solutions, please set the dilation ratio to 1.0" + assert cohesion == 0.0, "Zero cohesion is considered by the reference solutions, please set the cohesion to 0.0" + + # Get stress, time and element center from GEOSX results + stress_field_name = 'rock_stress' + hf_stress = h5py.File(outputDir + '/stressHistory_rock.hdf5', 'r') + time = np.asarray( hf_stress.get(stress_field_name + ' Time') ) + center = np.asarray( hf_stress.get(stress_field_name + ' elementCenter') ) + stress = np.asarray( hf_stress.get(stress_field_name) ) + + # Get the deformed wellbore radius + hf_disp = h5py.File(outputDir + "/displacementHistory.hdf5", 'r') + displacement = np.asarray( hf_disp.get('totalDisplacement') ) + node_position = np.asarray( hf_disp.get('totalDisplacement ReferencePosition') ) + da = displacement[:, 0, 0] + a = a0 + da + + # Compute total stress, the stress of each element is the average value of its eight Gauss points + nTimeSteps = 30 + stress_xx = ( sum(stress[nTimeSteps,:,6*i+0] for i in range(8)) )/8.0 + stress_yy = ( sum(stress[nTimeSteps,:,6*i+1] for i in range(8)) )/8.0 + stress_zz = ( sum(stress[nTimeSteps,:,6*i+2] for i in range(8)) )/8.0 + stress_yz = ( sum(stress[nTimeSteps,:,6*i+3] for i in range(8)) )/8.0 + stress_xz = ( sum(stress[nTimeSteps,:,6*i+4] for i in range(8)) )/8.0 + stress_xy = ( sum(stress[nTimeSteps,:,6*i+5] for i in range(8)) )/8.0 + + # Coordinate of elemnt center + nElements = center.shape[1] + xCoord = center[0, :, 0] + yCoord = center[0, :, 1] + + rCoord = np.sqrt( xCoord*xCoord + yCoord*yCoord ) + + # Compute stress components in cylindrical coordinate system + stress_rr = np.zeros(stress_xx.shape) + stress_tt = np.zeros(stress_xx.shape) + + for idx_elem in range(stress.shape[1]): + stressMatrix_cartesian = np.array([[stress_xx[idx_elem],stress_xy[idx_elem],stress_xz[idx_elem]],\ + [stress_xy[idx_elem],stress_yy[idx_elem],stress_yz[idx_elem]],\ + [stress_xz[idx_elem],stress_yz[idx_elem],stress_zz[idx_elem]]]) + + if(yCoord[idx_elem] != 0): + phi_x = np.arctan( xCoord[idx_elem]/yCoord[idx_elem] ) + else: + phi_x = 0 + + stressMatrix_cylindirical = stressRotation(stressMatrix_cartesian, phi_x) + stress_rr[idx_elem] = stressMatrix_cylindirical[1][1] + stress_tt[idx_elem] = stressMatrix_cylindirical[0][0] + + # Stress invariants at wellbore surface + stress_xx_wellboresurface = ( sum(stress[:,0,6*i+0] for i in range(8)) )/8.0 + stress_yy_wellboresurface = ( sum(stress[:,0,6*i+1] for i in range(8)) )/8.0 + stress_zz_wellboresurface = ( sum(stress[:,0,6*i+2] for i in range(8)) )/8.0 + stress_yz_wellboresurface = ( sum(stress[:,0,6*i+3] for i in range(8)) )/8.0 + stress_xz_wellboresurface = ( sum(stress[:,0,6*i+4] for i in range(8)) )/8.0 + stress_xy_wellboresurface = ( sum(stress[:,0,6*i+5] for i in range(8)) )/8.0 + p = (stress_xx_wellboresurface + stress_yy_wellboresurface + stress_zz_wellboresurface)/3.0 + q = np.sqrt(1.5) * np.sqrt( (stress_xx_wellboresurface-p)**2.0 + (stress_yy_wellboresurface-p)**2.0 + (stress_zz_wellboresurface-p)**2.0 + \ stress_xy_wellboresurface**2.0 + stress_xz_wellboresurface**2.0 + stress_yz_wellboresurface**2.0 ) - # Analytical results - r_ep_analytic,srr_ep_analytic,stt_ep_analytic,szz_ep_analytic,r_elas_analytic,srr_elas_analytic,stt_elas_analytic,szz_elas_analytic,\ + # Analytical results + r_ep_analytic,srr_ep_analytic,stt_ep_analytic,szz_ep_analytic,r_elas_analytic,srr_elas_analytic,stt_elas_analytic,szz_elas_analytic,\ pw_analytic,p_wellsurface_analytic,q_wellsurface_analytic = edpAnal.EDP(a0_a_ratio, sh, sv, nu, a0, G, initialFrictionAngle, finalFrictionAngle, param_m) - - # Compute pressure at wellbore surface - list_a0_a_ratio = np.arange(1.0,1.1,0.001) - list_pw_analytic = [] - list_p_wellsurface_analytic = [] - list_q_wellsurface_analytic = [] - - for a0_a_ratio_val in list_a0_a_ratio: - tmp = edpAnal.EDP(a0_a_ratio_val, sh, sv, nu, a0, G, initialFrictionAngle, finalFrictionAngle, param_m) - pw_analytic = tmp[8] - p_wellsurface_analytic = tmp[9] - q_wellsurface_analytic = tmp[10] - list_pw_analytic.append(pw_analytic) - list_p_wellsurface_analytic.append(p_wellsurface_analytic) - list_q_wellsurface_analytic.append(q_wellsurface_analytic) - - # Plots - plt.figure(figsize=(15,10)) - - # Plot GEOS results versus analytical results for elasto-plastic material - plt.subplot(2,2,1) - plt.plot( rCoord/rCoord[0],-stress_rr,'r+',label=r'$\sigma_{rr}$: GEOS Plasticity') - plt.plot(r_ep_analytic,srr_ep_analytic, 'r', label=r'$\sigma_{rr}$: Analytical Plasticity') - plt.plot(r_elas_analytic,srr_elas_analytic, 'r') - - plt.plot( rCoord/rCoord[0],-stress_tt,'b+',label=r'$\sigma_{\theta\theta}$: GEOS Plasticity') - plt.plot(r_ep_analytic,stt_ep_analytic, 'b', label=r'$\sigma_{\theta\theta}$: Analytical Plasticity') - plt.plot(r_elas_analytic,stt_elas_analytic, 'b') - - plt.plot( rCoord/rCoord[0],-stress_zz,'g+',label=r'$\sigma_{zz}$: GEOS Plasticity') - plt.plot(r_ep_analytic,szz_ep_analytic, 'g', label=r'$\sigma_{zz}$: Analytical Plasticity') - plt.plot(r_elas_analytic,szz_elas_analytic, 'g') - - plt.plot([r_ep_analytic[0],r_ep_analytic[0]],[0.0,20e6],'k--', label='Elastic-Plastic boundary') - - plt.ylabel('Stresses [Pa]') - plt.xlabel(r'Normalized radial coordinate, $r/a$') - plt.xlim(1.0,10.0) - plt.ylim(0.0,20e6) - plt.yticks(np.linspace(0.0,20e6,11)) - plt.xscale('log', subs=range(2,10)) - plt.legend() - - # Plot GEOS results for elasto-plastic material versus analytical results for elastic material - r_elas_assumed,srr_elas_assumed,stt_elas_assumed,szz_elas_assumed = epwAnal.solution_elastic(sh,sv,1.0,pw) - - plt.subplot(2,2,2) - plt.plot( rCoord/rCoord[0],-stress_rr,'r+',label=r'$\sigma_{rr}$: GEOS Plasticity') - plt.plot(r_elas_assumed,srr_elas_assumed, 'r', label=r'$\sigma_{rr}$: Analytical Elasticity') - - plt.plot( rCoord/rCoord[0],-stress_tt,'b+',label=r'$\sigma_{\theta\theta}$: GEOS Plasticity') - plt.plot(r_elas_assumed,stt_elas_assumed, 'b', label=r'$\sigma_{\theta\theta}$: Analytical Elasticity') - - plt.plot( rCoord/rCoord[0],-stress_zz,'g+',label=r'$\sigma_{zz}$: GEOS Plasticity') - plt.plot(r_elas_assumed,szz_elas_assumed, 'g', label=r'$\sigma_{zz}$: Analytical Elasticity') - - plt.ylabel('Stresses [Pa]') - plt.xlabel(r'Normalized radial coordinate, $r/a$') - plt.xlim(1.0,10.0) - plt.ylim(0.0,20e6) - plt.yticks(np.linspace(0.0,20e6,11)) - plt.xscale('log', subs=range(2,10)) - plt.legend() - - # Plot the stress path on the p-q plan when the well surface pressure decrease from the in-situ condition - initialFrictionAngle *= np.pi/180.0 # converted to rad - finalFrictionAngle *= np.pi/180.0 # converted to rad - param_b_i = edpAnal.compute_param_b(initialFrictionAngle) - param_b_f = edpAnal.compute_param_b(finalFrictionAngle) - p_yieldSurface = np.arange(0,15e6,1) - q_yieldSurface_i = p_yieldSurface*param_b_i - q_yieldSurface_f = p_yieldSurface*param_b_f - - plt.subplot(2,2,3) - plt.plot(-p,q,'ko',label='GEOS') - plt.plot(list_p_wellsurface_analytic,list_q_wellsurface_analytic,'b',label='Analytical') - plt.plot(p_yieldSurface,q_yieldSurface_i,'g--',label='Initial yield surface') - plt.plot(p_yieldSurface,q_yieldSurface_f,'r--',label='Final yield surface') - - plt.xlabel('p (Pa)') - plt.ylabel('q (Pa)') - plt.xlim(0,15e6) - plt.ylim(0,10e6) - plt.legend() - - # Plot the wellbore deformation a0/a versus wellbore surface pressure pw - pw = stress_xx_wellboresurface - - plt.subplot(2,2,4) - plt.plot(a0/a, -pw,'ko',label='GEOS') - plt.plot(list_a0_a_ratio,list_pw_analytic,'b',label='Analytical') - plt.xlabel('a0/a') - plt.ylabel('pw (Pa)') - plt.xlim(1.0,1.1) - plt.ylim(0,12e6) - plt.legend() - - plt.savefig('edpWellboreVerification.png') - + + # Compute pressure at wellbore surface + list_a0_a_ratio = np.arange(1.0,1.1,0.001) + list_pw_analytic = [] + list_p_wellsurface_analytic = [] + list_q_wellsurface_analytic = [] + + for a0_a_ratio_val in list_a0_a_ratio: + tmp = edpAnal.EDP(a0_a_ratio_val, sh, sv, nu, a0, G, initialFrictionAngle, finalFrictionAngle, param_m) + pw_analytic = tmp[8] + p_wellsurface_analytic = tmp[9] + q_wellsurface_analytic = tmp[10] + list_pw_analytic.append(pw_analytic) + list_p_wellsurface_analytic.append(p_wellsurface_analytic) + list_q_wellsurface_analytic.append(q_wellsurface_analytic) + + # Plots + plt.figure(figsize=(15,10)) + + # Plot GEOS results versus analytical results for elasto-plastic material + plt.subplot(2,2,1) + plt.plot( rCoord/rCoord[0],-stress_rr,'r+',label=r'$\sigma_{rr}$: GEOS Plasticity') + plt.plot(r_ep_analytic,srr_ep_analytic, 'r', label=r'$\sigma_{rr}$: Analytical Plasticity') + plt.plot(r_elas_analytic,srr_elas_analytic, 'r') + + plt.plot( rCoord/rCoord[0],-stress_tt,'b+',label=r'$\sigma_{\theta\theta}$: GEOS Plasticity') + plt.plot(r_ep_analytic,stt_ep_analytic, 'b', label=r'$\sigma_{\theta\theta}$: Analytical Plasticity') + plt.plot(r_elas_analytic,stt_elas_analytic, 'b') + + plt.plot( rCoord/rCoord[0],-stress_zz,'g+',label=r'$\sigma_{zz}$: GEOS Plasticity') + plt.plot(r_ep_analytic,szz_ep_analytic, 'g', label=r'$\sigma_{zz}$: Analytical Plasticity') + plt.plot(r_elas_analytic,szz_elas_analytic, 'g') + + plt.plot([r_ep_analytic[0],r_ep_analytic[0]],[0.0,20e6],'k--', label='Elastic-Plastic boundary') + + plt.ylabel('Stresses [Pa]') + plt.xlabel(r'Normalized radial coordinate, $r/a$') + plt.xlim(1.0,10.0) + plt.ylim(0.0,20e6) + plt.yticks(np.linspace(0.0,20e6,11)) + plt.xscale('log', subs=range(2,10)) + plt.legend() + + # Plot GEOS results for elasto-plastic material versus analytical results for elastic material + r_elas_assumed,srr_elas_assumed,stt_elas_assumed,szz_elas_assumed = epwAnal.solution_elastic(sh,sv,1.0,pw) + + plt.subplot(2,2,2) + plt.plot( rCoord/rCoord[0],-stress_rr,'r+',label=r'$\sigma_{rr}$: GEOS Plasticity') + plt.plot(r_elas_assumed,srr_elas_assumed, 'r', label=r'$\sigma_{rr}$: Analytical Elasticity') + + plt.plot( rCoord/rCoord[0],-stress_tt,'b+',label=r'$\sigma_{\theta\theta}$: GEOS Plasticity') + plt.plot(r_elas_assumed,stt_elas_assumed, 'b', label=r'$\sigma_{\theta\theta}$: Analytical Elasticity') + + plt.plot( rCoord/rCoord[0],-stress_zz,'g+',label=r'$\sigma_{zz}$: GEOS Plasticity') + plt.plot(r_elas_assumed,szz_elas_assumed, 'g', label=r'$\sigma_{zz}$: Analytical Elasticity') + + plt.ylabel('Stresses [Pa]') + plt.xlabel(r'Normalized radial coordinate, $r/a$') + plt.xlim(1.0,10.0) + plt.ylim(0.0,20e6) + plt.yticks(np.linspace(0.0,20e6,11)) + plt.xscale('log', subs=range(2,10)) + plt.legend() + + # Plot the stress path on the p-q plan when the well surface pressure decrease from the in-situ condition + initialFrictionAngle *= np.pi/180.0 # converted to rad + finalFrictionAngle *= np.pi/180.0 # converted to rad + param_b_i = edpAnal.compute_param_b(initialFrictionAngle) + param_b_f = edpAnal.compute_param_b(finalFrictionAngle) + p_yieldSurface = np.arange(0,15e6,1) + q_yieldSurface_i = p_yieldSurface*param_b_i + q_yieldSurface_f = p_yieldSurface*param_b_f + + plt.subplot(2,2,3) + plt.plot(-p,q,'ko',label='GEOS') + plt.plot(list_p_wellsurface_analytic,list_q_wellsurface_analytic,'b',label='Analytical') + plt.plot(p_yieldSurface,q_yieldSurface_i,'g--',label='Initial yield surface') + plt.plot(p_yieldSurface,q_yieldSurface_f,'r--',label='Final yield surface') + + plt.xlabel('p (Pa)') + plt.ylabel('q (Pa)') + plt.xlim(0,15e6) + plt.ylim(0,10e6) + plt.legend() + + # Plot the wellbore deformation a0/a versus wellbore surface pressure pw + pw = stress_xx_wellboresurface + + plt.subplot(2,2,4) + plt.plot(a0/a, -pw,'ko',label='GEOS') + plt.plot(list_a0_a_ratio,list_pw_analytic,'b',label='Analytical') + plt.xlabel('a0/a') + plt.ylabel('pw (Pa)') + plt.xlim(1.0,1.1) + plt.ylim(0,12e6) + plt.legend() + + plt.savefig('edpWellboreVerification.png') + if __name__ == "__main__": - main() - + main() + diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/kirschWellbore/kirschWellboreFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/kirschWellbore/kirschWellboreFigure.py index df68ed728e2..e99152255d5 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/kirschWellbore/kirschWellboreFigure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/kirschWellbore/kirschWellboreFigure.py @@ -5,6 +5,8 @@ import xml.etree.ElementTree as ElementTree import math from math import sin, cos, tan, exp, atan, asin +import os +import argparse class Analytical: @@ -112,24 +114,37 @@ def dispRotation(disp, phi_x): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + # Load and process GEOSX results # File path - hdf5File1Path = "stress_history.hdf5" - hdf5File2Path = "displacement_history.hdf5" - xmlFile1Path = "../../../../../../../inputFiles/solidMechanics/KirschProblem_base.xml" - xmlFile2Path = "../../../../../../../inputFiles/solidMechanics/KirschProblem_benchmark.xml" + outputDir = args.outputDir + geosDir = args.geosDir + hdf5File1Path = outputDir + "/stress_history.hdf5" + hdf5File2Path = outputDir + "/displacement_history.hdf5" + xmlFile1Path = geosDir + "/inputFiles/solidMechanics/KirschProblem_base.xml" + xmlFile2Path = geosDir + "/inputFiles/solidMechanics/KirschProblem_benchmark.xml" # Read HDF5 # Global Coordinate of Element Center hf = h5py.File(hdf5File1Path, 'r') xl_elm = hf.get('rock_stress elementCenter') - xl_elm = np.array(xl_elm) + xl_elm = np.asarray(xl_elm) xcord_elm = xl_elm[0, :, 0] ycord_elm = xl_elm[0, :, 1] zcord_elm = xl_elm[0, :, 2] # Load Stress Components sigma = hf.get('rock_stress') - sigma = np.array(sigma) + sigma = np.asarray(sigma) sigma_Cart = np.zeros([len(sigma[0, :, 0]), 6]) for i in range(0, len(sigma[0, :, 0])): for j in range(0, 6): @@ -139,13 +154,13 @@ def main(): # Global Coordinate of Nodal Point hf = h5py.File(hdf5File2Path, 'r') xl_node = hf.get('totalDisplacement ReferencePosition') - xl_node = np.array(xl_node) + xl_node = np.asarray(xl_node) xcord_node = xl_node[0, :, 0] ycord_node = xl_node[0, :, 1] zcord_node = xl_node[0, :, 2] # Load Displacement Components disp_load = hf.get('totalDisplacement') - disp_load = np.array(disp_load) + disp_load = np.asarray(disp_load) disp_Cart = disp_load[0, :, :] # Extract Mechanical Properties and Fracture Geometry from XML diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/Example.rst similarity index 93% rename from src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/Example.rst rename to src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/Example.rst index 84752f872ea..a16e28b359f 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/Example.rst @@ -58,15 +58,15 @@ The volumetric heat capacity of the medium around the wellbore is defined in the .. literalinclude:: ../../../../../../../inputFiles/singlePhaseFlow/thermalCompressible_2d_base.xml :language: xml - :start-after: - :end-before: + :start-after: + :end-before: The thermal conductivity of the medium around the wellbore is defined in the ``SinglePhaseConstantThermalConductivity`` XML block as .. literalinclude:: ../../../../../../../inputFiles/singlePhaseFlow/thermalCompressible_2d_base.xml :language: xml - :start-after: - :end-before: + :start-after: + :end-before: The volumetric heat capacity of fluid is set to a negligible value to exclude thermal convection effect. It is defined in the ``ThermalCompressibleSinglePhaseFluid`` XML block as @@ -100,7 +100,7 @@ Results and benchmark A good agreement between the GEOS results and analytical results is shown in the figure below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/pureThermalDiffusionAroundWellbore.py +.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/linearThermalDiffusion_plot.py ------------------------------------------------------------------ diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_1.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_1.csv new file mode 100644 index 00000000000..27b265b8428 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_1.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,0.07071,0.072112,0.05,-18.996 +10000,0.07071,0.072112,0.05,-18.996 +10000,0.07211,0.07354,0.05,-17.027 +10000,0.07351,0.074968,0.05,-15.096 +10000,0.075155,0.076646,0.05,-12.871 +10000,0.075155,0.076646,0.05,-12.871 +10000,0.077046,0.078574,0.05,-10.378 +10000,0.077046,0.078574,0.05,-10.378 +10000,0.078936,0.080501,0.05,-7.9475 +10000,0.078936,0.080501,0.05,-7.9475 +10000,0.080826,0.082429,0.05,-5.5759 +10000,0.080826,0.082429,0.05,-5.5759 +10000,0.082716,0.084357,0.05,-3.2609 +10000,0.082716,0.084357,0.05,-3.2609 +10000,0.084607,0.086285,0.05,-1.0005 +10000,0.084607,0.086285,0.05,-1.0005 +10000,0.086497,0.088212,0.05,1.2075 +10000,0.086497,0.088212,0.05,1.2075 +10000,0.088387,0.09014,0.05,3.365 +10000,0.088387,0.09014,0.05,3.365 +10000,0.090278,0.092068,0.05,5.4737 +10000,0.090278,0.092068,0.05,5.4737 +10000,0.092168,0.093995,0.05,7.5355 +10000,0.092168,0.093995,0.05,7.5355 +10000,0.094031,0.095896,0.05,9.5228 +10000,0.095885,0.097786,0.05,11.459 +10000,0.095885,0.097786,0.05,11.459 +10000,0.097776,0.099715,0.05,13.391 +10000,0.097776,0.099715,0.05,13.391 +10000,0.099704,0.10168,0.05,15.318 +10000,0.099704,0.10168,0.05,15.318 +10000,0.10167,0.10369,0.05,17.241 +10000,0.10167,0.10369,0.05,17.241 +10000,0.10368,0.10573,0.05,19.159 +10000,0.10368,0.10573,0.05,19.159 +10000,0.10572,0.10782,0.05,21.071 +10000,0.10572,0.10782,0.05,21.071 +10000,0.10781,0.10995,0.05,22.977 +10000,0.10781,0.10995,0.05,22.977 +10000,0.10993,0.11211,0.05,24.877 +10000,0.10993,0.11211,0.05,24.877 +10000,0.10993,0.11211,0.05,24.877 +10000,0.1121,0.11433,0.05,26.769 +10000,0.1121,0.11433,0.05,26.769 +10000,0.11432,0.11658,0.05,28.653 +10000,0.11432,0.11658,0.05,28.653 +10000,0.11657,0.11888,0.05,30.529 +10000,0.11657,0.11888,0.05,30.529 +10000,0.11887,0.12123,0.05,32.396 +10000,0.11887,0.12123,0.05,32.396 +10000,0.11887,0.12123,0.05,32.396 +10000,0.12122,0.12362,0.05,34.254 +10000,0.12122,0.12362,0.05,34.254 +10000,0.12361,0.12607,0.05,36.1 +10000,0.12361,0.12607,0.05,36.1 +10000,0.12361,0.12607,0.05,36.1 +10000,0.12605,0.12855,0.05,37.936 +10000,0.12605,0.12855,0.05,37.936 +10000,0.12854,0.13109,0.05,39.76 +10000,0.12854,0.13109,0.05,39.76 +10000,0.12854,0.13109,0.05,39.76 +10000,0.13108,0.13368,0.05,41.571 +10000,0.13108,0.13368,0.05,41.571 +10000,0.13367,0.13632,0.05,43.368 +10000,0.13367,0.13632,0.05,43.368 +10000,0.13367,0.13632,0.05,43.368 +10000,0.13631,0.13901,0.05,45.152 +10000,0.13631,0.13901,0.05,45.152 +10000,0.13631,0.13901,0.05,45.152 +10000,0.139,0.14176,0.05,46.92 +10000,0.139,0.14176,0.05,46.92 +10000,0.14175,0.14456,0.05,48.672 +10000,0.14175,0.14456,0.05,48.672 +10000,0.14175,0.14456,0.05,48.672 +10000,0.14455,0.14742,0.05,50.407 +10000,0.14455,0.14742,0.05,50.407 +10000,0.14455,0.14742,0.05,50.407 +10000,0.1474,0.15033,0.05,52.125 +10000,0.1474,0.15033,0.05,52.125 +10000,0.1474,0.15033,0.05,52.125 +10000,0.15032,0.1533,0.05,53.824 +10000,0.15032,0.1533,0.05,53.824 +10000,0.15032,0.1533,0.05,53.824 +10000,0.15329,0.15633,0.05,55.503 +10000,0.15329,0.15633,0.05,55.503 +10000,0.15329,0.15633,0.05,55.503 +10000,0.15632,0.15942,0.05,57.161 +10000,0.15632,0.15942,0.05,57.161 +10000,0.15632,0.15942,0.05,57.161 +10000,0.15941,0.16257,0.05,58.797 +10000,0.15941,0.16257,0.05,58.797 +10000,0.15941,0.16257,0.05,58.797 +10000,0.16256,0.16578,0.05,60.411 +10000,0.16256,0.16578,0.05,60.411 +10000,0.16256,0.16578,0.05,60.411 +10000,0.16577,0.16906,0.05,62.001 +10000,0.16577,0.16906,0.05,62.001 +10000,0.16577,0.16906,0.05,62.001 +10000,0.16577,0.16906,0.05,62.001 +10000,0.16905,0.1724,0.05,63.566 +10000,0.16905,0.1724,0.05,63.566 +10000,0.16905,0.1724,0.05,63.566 +10000,0.17239,0.1758,0.05,65.106 +10000,0.17239,0.1758,0.05,65.106 +10000,0.17239,0.1758,0.05,65.106 +10000,0.17579,0.17928,0.05,66.619 +10000,0.17579,0.17928,0.05,66.619 +10000,0.17579,0.17928,0.05,66.619 +10000,0.17579,0.17928,0.05,66.619 +10000,0.17927,0.18282,0.05,68.104 +10000,0.17927,0.18282,0.05,68.104 +10000,0.17927,0.18282,0.05,68.104 +10000,0.18281,0.18644,0.05,69.56 +10000,0.18281,0.18644,0.05,69.56 +10000,0.18281,0.18644,0.05,69.56 +10000,0.18281,0.18644,0.05,69.56 +10000,0.18643,0.19013,0.05,70.986 +10000,0.18643,0.19013,0.05,70.986 +10000,0.18643,0.19013,0.05,70.986 +10000,0.18643,0.19013,0.05,70.986 +10000,0.19011,0.19388,0.05,72.382 +10000,0.19011,0.19388,0.05,72.382 +10000,0.19011,0.19388,0.05,72.382 +10000,0.19387,0.19772,0.05,73.746 +10000,0.19387,0.19772,0.05,73.746 +10000,0.19387,0.19772,0.05,73.746 +10000,0.19387,0.19772,0.05,73.746 +10000,0.19771,0.20163,0.05,75.077 +10000,0.19771,0.20163,0.05,75.077 +10000,0.19771,0.20163,0.05,75.077 +10000,0.19771,0.20163,0.05,75.077 +10000,0.20162,0.20562,0.05,76.375 +10000,0.20162,0.20562,0.05,76.375 +10000,0.20162,0.20562,0.05,76.375 +10000,0.20162,0.20562,0.05,76.375 +10000,0.2056,0.20968,0.05,77.639 +10000,0.2056,0.20968,0.05,77.639 +10000,0.2056,0.20968,0.05,77.639 +10000,0.2056,0.20968,0.05,77.639 +10000,0.20967,0.21383,0.05,78.867 +10000,0.20967,0.21383,0.05,78.867 +10000,0.20967,0.21383,0.05,78.867 +10000,0.20967,0.21383,0.05,78.867 +10000,0.21382,0.21806,0.05,80.06 +10000,0.21382,0.21806,0.05,80.06 +10000,0.21382,0.21806,0.05,80.06 +10000,0.21382,0.21806,0.05,80.06 +10000,0.21382,0.21806,0.05,80.06 +10000,0.21805,0.22237,0.05,81.216 +10000,0.21805,0.22237,0.05,81.216 +10000,0.21805,0.22237,0.05,81.216 +10000,0.21805,0.22237,0.05,81.216 +10000,0.22236,0.22677,0.05,82.334 +10000,0.22236,0.22677,0.05,82.334 +10000,0.22236,0.22677,0.05,82.334 +10000,0.22236,0.22677,0.05,82.334 +10000,0.22676,0.23125,0.05,83.416 +10000,0.22676,0.23125,0.05,83.416 +10000,0.22676,0.23125,0.05,83.416 +10000,0.22676,0.23125,0.05,83.416 +10000,0.22676,0.23125,0.05,83.416 +10000,0.23124,0.23583,0.05,84.459 +10000,0.23124,0.23583,0.05,84.459 +10000,0.23124,0.23583,0.05,84.459 +10000,0.23124,0.23583,0.05,84.459 +10000,0.23582,0.2405,0.05,85.463 +10000,0.23582,0.2405,0.05,85.463 +10000,0.23582,0.2405,0.05,85.463 +10000,0.23582,0.2405,0.05,85.463 +10000,0.23582,0.2405,0.05,85.463 +10000,0.24048,0.24525,0.05,86.429 +10000,0.24048,0.24525,0.05,86.429 +10000,0.24048,0.24525,0.05,86.429 +10000,0.24048,0.24525,0.05,86.429 +10000,0.24048,0.24525,0.05,86.429 +10000,0.24524,0.25011,0.05,87.355 +10000,0.24524,0.25011,0.05,87.355 +10000,0.24524,0.25011,0.05,87.355 +10000,0.24524,0.25011,0.05,87.355 +10000,0.24524,0.25011,0.05,87.355 +10000,0.25009,0.25505,0.05,88.242 +10000,0.25009,0.25505,0.05,88.242 +10000,0.25009,0.25505,0.05,88.242 +10000,0.25009,0.25505,0.05,88.242 +10000,0.25009,0.25505,0.05,88.242 +10000,0.25504,0.2601,0.05,89.09 +10000,0.25504,0.2601,0.05,89.09 +10000,0.25504,0.2601,0.05,89.09 +10000,0.25504,0.2601,0.05,89.09 +10000,0.25504,0.2601,0.05,89.09 +10000,0.26009,0.26525,0.05,89.899 +10000,0.26009,0.26525,0.05,89.899 +10000,0.26009,0.26525,0.05,89.899 +10000,0.26009,0.26525,0.05,89.899 +10000,0.26009,0.26525,0.05,89.899 +10000,0.26524,0.2705,0.05,90.669 +10000,0.26524,0.2705,0.05,90.669 +10000,0.26524,0.2705,0.05,90.669 +10000,0.26524,0.2705,0.05,90.669 +10000,0.26524,0.2705,0.05,90.669 +10000,0.27048,0.27585,0.05,91.4 +10000,0.27048,0.27585,0.05,91.4 +10000,0.27048,0.27585,0.05,91.4 +10000,0.27048,0.27585,0.05,91.4 +10000,0.27048,0.27585,0.05,91.4 +10000,0.27584,0.28131,0.05,92.092 +10000,0.27584,0.28131,0.05,92.092 +10000,0.27584,0.28131,0.05,92.092 +10000,0.27584,0.28131,0.05,92.092 +10000,0.27584,0.28131,0.05,92.092 +10000,0.27584,0.28131,0.05,92.092 +10000,0.2813,0.28687,0.05,92.746 +10000,0.2813,0.28687,0.05,92.746 +10000,0.2813,0.28687,0.05,92.746 +10000,0.2813,0.28687,0.05,92.746 +10000,0.2813,0.28687,0.05,92.746 +10000,0.28686,0.29255,0.05,93.363 +10000,0.28686,0.29255,0.05,93.363 +10000,0.28686,0.29255,0.05,93.363 +10000,0.28686,0.29255,0.05,93.363 +10000,0.28686,0.29255,0.05,93.363 +10000,0.28686,0.29255,0.05,93.363 +10000,0.29254,0.29834,0.05,93.944 +10000,0.29254,0.29834,0.05,93.944 +10000,0.29254,0.29834,0.05,93.944 +10000,0.29254,0.29834,0.05,93.944 +10000,0.29254,0.29834,0.05,93.944 +10000,0.29254,0.29834,0.05,93.944 +10000,0.29833,0.30425,0.05,94.488 +10000,0.29833,0.30425,0.05,94.488 +10000,0.29833,0.30425,0.05,94.488 +10000,0.29833,0.30425,0.05,94.488 +10000,0.29833,0.30425,0.05,94.488 +10000,0.29833,0.30425,0.05,94.488 +10000,0.30424,0.31027,0.05,94.997 +10000,0.30424,0.31027,0.05,94.997 +10000,0.30424,0.31027,0.05,94.997 +10000,0.30424,0.31027,0.05,94.997 +10000,0.30424,0.31027,0.05,94.997 +10000,0.30424,0.31027,0.05,94.997 +10000,0.31026,0.31641,0.05,95.472 +10000,0.31026,0.31641,0.05,95.472 +10000,0.31026,0.31641,0.05,95.472 +10000,0.31026,0.31641,0.05,95.472 +10000,0.31026,0.31641,0.05,95.472 +10000,0.31026,0.31641,0.05,95.472 +10000,0.3164,0.32267,0.05,95.914 +10000,0.3164,0.32267,0.05,95.914 +10000,0.3164,0.32267,0.05,95.914 +10000,0.3164,0.32267,0.05,95.914 +10000,0.3164,0.32267,0.05,95.914 +10000,0.3164,0.32267,0.05,95.914 +10000,0.32266,0.32906,0.05,96.324 +10000,0.32266,0.32906,0.05,96.324 +10000,0.32266,0.32906,0.05,96.324 +10000,0.32266,0.32906,0.05,96.324 +10000,0.32266,0.32906,0.05,96.324 +10000,0.32266,0.32906,0.05,96.324 +10000,0.32266,0.32906,0.05,96.324 +10000,0.32905,0.33558,0.05,96.703 +10000,0.32905,0.33558,0.05,96.703 +10000,0.32905,0.33558,0.05,96.703 +10000,0.32905,0.33558,0.05,96.703 +10000,0.32905,0.33558,0.05,96.703 +10000,0.32905,0.33558,0.05,96.703 +10000,0.33556,0.34222,0.05,97.052 +10000,0.33556,0.34222,0.05,97.052 +10000,0.33556,0.34222,0.05,97.052 +10000,0.33556,0.34222,0.05,97.052 +10000,0.33556,0.34222,0.05,97.052 +10000,0.33556,0.34222,0.05,97.052 +10000,0.33556,0.34222,0.05,97.052 +10000,0.34221,0.34899,0.05,97.373 +10000,0.34221,0.34899,0.05,97.373 +10000,0.34221,0.34899,0.05,97.373 +10000,0.34221,0.34899,0.05,97.373 +10000,0.34221,0.34899,0.05,97.373 +10000,0.34221,0.34899,0.05,97.373 +10000,0.34221,0.34899,0.05,97.373 +10000,0.34898,0.3559,0.05,97.667 +10000,0.34898,0.3559,0.05,97.667 +10000,0.34898,0.3559,0.05,97.667 +10000,0.34898,0.3559,0.05,97.667 +10000,0.34898,0.3559,0.05,97.667 +10000,0.34898,0.3559,0.05,97.667 +10000,0.35589,0.36295,0.05,97.935 +10000,0.35589,0.36295,0.05,97.935 +10000,0.35589,0.36295,0.05,97.935 +10000,0.35589,0.36295,0.05,97.935 +10000,0.35589,0.36295,0.05,97.935 +10000,0.35589,0.36295,0.05,97.935 +10000,0.35589,0.36295,0.05,97.935 +10000,0.36294,0.37013,0.05,98.179 +10000,0.36294,0.37013,0.05,98.179 +10000,0.36294,0.37013,0.05,98.179 +10000,0.36294,0.37013,0.05,98.179 +10000,0.36294,0.37013,0.05,98.179 +10000,0.36294,0.37013,0.05,98.179 +10000,0.36294,0.37013,0.05,98.179 +10000,0.36294,0.37013,0.05,98.179 +10000,0.37012,0.37746,0.05,98.4 +10000,0.37012,0.37746,0.05,98.4 +10000,0.37012,0.37746,0.05,98.4 +10000,0.37012,0.37746,0.05,98.4 +10000,0.37012,0.37746,0.05,98.4 +10000,0.37012,0.37746,0.05,98.4 +10000,0.37012,0.37746,0.05,98.4 +10000,0.37745,0.38494,0.05,98.599 +10000,0.37745,0.38494,0.05,98.599 +10000,0.37745,0.38494,0.05,98.599 +10000,0.37745,0.38494,0.05,98.599 +10000,0.37745,0.38494,0.05,98.599 +10000,0.37745,0.38494,0.05,98.599 +10000,0.37745,0.38494,0.05,98.599 +10000,0.38493,0.39256,0.05,98.778 +10000,0.38493,0.39256,0.05,98.778 +10000,0.38493,0.39256,0.05,98.778 +10000,0.38493,0.39256,0.05,98.778 +10000,0.38493,0.39256,0.05,98.778 +10000,0.38493,0.39256,0.05,98.778 +10000,0.38493,0.39256,0.05,98.778 +10000,0.38493,0.39256,0.05,98.778 +10000,0.39255,0.40033,0.05,98.939 +10000,0.39255,0.40033,0.05,98.939 +10000,0.39255,0.40033,0.05,98.939 +10000,0.39255,0.40033,0.05,98.939 +10000,0.39255,0.40033,0.05,98.939 +10000,0.39255,0.40033,0.05,98.939 +10000,0.39255,0.40033,0.05,98.939 +10000,0.39255,0.40033,0.05,98.939 +10000,0.40032,0.40826,0.05,99.082 +10000,0.40032,0.40826,0.05,99.082 +10000,0.40032,0.40826,0.05,99.082 +10000,0.40032,0.40826,0.05,99.082 +10000,0.40032,0.40826,0.05,99.082 +10000,0.40032,0.40826,0.05,99.082 +10000,0.40032,0.40826,0.05,99.082 +10000,0.40032,0.40826,0.05,99.082 +10000,0.40825,0.41634,0.05,99.209 +10000,0.40825,0.41634,0.05,99.209 +10000,0.40825,0.41634,0.05,99.209 +10000,0.40825,0.41634,0.05,99.209 +10000,0.40825,0.41634,0.05,99.209 +10000,0.40825,0.41634,0.05,99.209 +10000,0.40825,0.41634,0.05,99.209 +10000,0.40825,0.41634,0.05,99.209 +10000,0.41633,0.42459,0.05,99.321 +10000,0.41633,0.42459,0.05,99.321 +10000,0.41633,0.42459,0.05,99.321 +10000,0.41633,0.42459,0.05,99.321 +10000,0.41633,0.42459,0.05,99.321 +10000,0.41633,0.42459,0.05,99.321 +10000,0.41633,0.42459,0.05,99.321 +10000,0.41633,0.42459,0.05,99.321 +10000,0.42458,0.433,0.05,99.42 +10000,0.42458,0.433,0.05,99.42 +10000,0.42458,0.433,0.05,99.42 +10000,0.42458,0.433,0.05,99.42 +10000,0.42458,0.433,0.05,99.42 +10000,0.42458,0.433,0.05,99.42 +10000,0.42458,0.433,0.05,99.42 +10000,0.42458,0.433,0.05,99.42 +10000,0.42458,0.433,0.05,99.42 +10000,0.43298,0.44157,0.05,99.507 +10000,0.43298,0.44157,0.05,99.507 +10000,0.43298,0.44157,0.05,99.507 +10000,0.43298,0.44157,0.05,99.507 +10000,0.43298,0.44157,0.05,99.507 +10000,0.43298,0.44157,0.05,99.507 +10000,0.43298,0.44157,0.05,99.507 +10000,0.43298,0.44157,0.05,99.507 +10000,0.44156,0.45031,0.05,99.583 +10000,0.44156,0.45031,0.05,99.583 +10000,0.44156,0.45031,0.05,99.583 +10000,0.44156,0.45031,0.05,99.583 +10000,0.44156,0.45031,0.05,99.583 +10000,0.44156,0.45031,0.05,99.583 +10000,0.44156,0.45031,0.05,99.583 +10000,0.44156,0.45031,0.05,99.583 +10000,0.44156,0.45031,0.05,99.583 +10000,0.4503,0.45923,0.05,99.649 +10000,0.4503,0.45923,0.05,99.649 +10000,0.4503,0.45923,0.05,99.649 +10000,0.4503,0.45923,0.05,99.649 +10000,0.4503,0.45923,0.05,99.649 +10000,0.4503,0.45923,0.05,99.649 +10000,0.4503,0.45923,0.05,99.649 +10000,0.4503,0.45923,0.05,99.649 +10000,0.4503,0.45923,0.05,99.649 +10000,0.45922,0.46833,0.05,99.706 +10000,0.45922,0.46833,0.05,99.706 +10000,0.45922,0.46833,0.05,99.706 +10000,0.45922,0.46833,0.05,99.706 +10000,0.45922,0.46833,0.05,99.706 +10000,0.45922,0.46833,0.05,99.706 +10000,0.45922,0.46833,0.05,99.706 +10000,0.45922,0.46833,0.05,99.706 +10000,0.45922,0.46833,0.05,99.706 +10000,0.46832,0.4776,0.05,99.754 +10000,0.46832,0.4776,0.05,99.754 +10000,0.46832,0.4776,0.05,99.754 +10000,0.46832,0.4776,0.05,99.754 +10000,0.46832,0.4776,0.05,99.754 +10000,0.46832,0.4776,0.05,99.754 +10000,0.46832,0.4776,0.05,99.754 +10000,0.46832,0.4776,0.05,99.754 +10000,0.46832,0.4776,0.05,99.754 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.47759,0.48706,0.05,99.796 +10000,0.48705,0.49671,0.05,99.832 +10000,0.48705,0.49671,0.05,99.832 +10000,0.48705,0.49671,0.05,99.832 +10000,0.48705,0.49671,0.05,99.832 +10000,0.48705,0.49671,0.05,99.832 +10000,0.48705,0.49671,0.05,99.832 +10000,0.48705,0.49671,0.05,99.832 +10000,0.48705,0.49671,0.05,99.832 +10000,0.48705,0.49671,0.05,99.832 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.4967,0.50655,0.05,99.862 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.50654,0.51658,0.05,99.887 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.51657,0.52681,0.05,99.908 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.5268,0.53725,0.05,99.926 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.53724,0.54789,0.05,99.941 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.54788,0.55874,0.05,99.953 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.55873,0.56981,0.05,99.962 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.5698,0.5811,0.05,99.97 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.58109,0.59261,0.05,99.977 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.5926,0.60435,0.05,99.982 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.60434,0.61632,0.05,99.986 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.61631,0.62853,0.05,99.99 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.62852,0.64098,0.05,99.992 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.64097,0.65368,0.05,99.994 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.65367,0.66663,0.05,99.996 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.66662,0.67984,0.05,99.997 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.67983,0.69331,0.05,99.998 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_10.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_10.csv new file mode 100644 index 00000000000..7980a3a5bfe --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_10.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,0.07071,0.072112,0.05,-19.432 +1e+05,0.07071,0.072112,0.05,-19.432 +1e+05,0.07211,0.07354,0.05,-18.317 +1e+05,0.07351,0.074968,0.05,-17.224 +1e+05,0.075155,0.076646,0.05,-15.964 +1e+05,0.075155,0.076646,0.05,-15.964 +1e+05,0.077046,0.078574,0.05,-14.552 +1e+05,0.077046,0.078574,0.05,-14.552 +1e+05,0.078936,0.080501,0.05,-13.175 +1e+05,0.078936,0.080501,0.05,-13.175 +1e+05,0.080826,0.082429,0.05,-11.83 +1e+05,0.080826,0.082429,0.05,-11.83 +1e+05,0.082716,0.084357,0.05,-10.516 +1e+05,0.082716,0.084357,0.05,-10.516 +1e+05,0.084607,0.086285,0.05,-9.2319 +1e+05,0.084607,0.086285,0.05,-9.2319 +1e+05,0.086497,0.088212,0.05,-7.9764 +1e+05,0.086497,0.088212,0.05,-7.9764 +1e+05,0.088387,0.09014,0.05,-6.748 +1e+05,0.088387,0.09014,0.05,-6.748 +1e+05,0.090278,0.092068,0.05,-5.5458 +1e+05,0.090278,0.092068,0.05,-5.5458 +1e+05,0.092168,0.093995,0.05,-4.3685 +1e+05,0.092168,0.093995,0.05,-4.3685 +1e+05,0.094031,0.095896,0.05,-3.2318 +1e+05,0.095885,0.097786,0.05,-2.1226 +1e+05,0.095885,0.097786,0.05,-2.1226 +1e+05,0.097776,0.099715,0.05,-1.0134 +1e+05,0.097776,0.099715,0.05,-1.0134 +1e+05,0.099704,0.10168,0.05,0.095763 +1e+05,0.099704,0.10168,0.05,0.095763 +1e+05,0.10167,0.10369,0.05,1.2049 +1e+05,0.10167,0.10369,0.05,1.2049 +1e+05,0.10368,0.10573,0.05,2.3141 +1e+05,0.10368,0.10573,0.05,2.3141 +1e+05,0.10572,0.10782,0.05,3.4231 +1e+05,0.10572,0.10782,0.05,3.4231 +1e+05,0.10781,0.10995,0.05,4.5321 +1e+05,0.10781,0.10995,0.05,4.5321 +1e+05,0.10993,0.11211,0.05,5.641 +1e+05,0.10993,0.11211,0.05,5.641 +1e+05,0.10993,0.11211,0.05,5.641 +1e+05,0.1121,0.11433,0.05,6.7497 +1e+05,0.1121,0.11433,0.05,6.7497 +1e+05,0.11432,0.11658,0.05,7.8584 +1e+05,0.11432,0.11658,0.05,7.8584 +1e+05,0.11657,0.11888,0.05,8.9668 +1e+05,0.11657,0.11888,0.05,8.9668 +1e+05,0.11887,0.12123,0.05,10.075 +1e+05,0.11887,0.12123,0.05,10.075 +1e+05,0.11887,0.12123,0.05,10.075 +1e+05,0.12122,0.12362,0.05,11.183 +1e+05,0.12122,0.12362,0.05,11.183 +1e+05,0.12361,0.12607,0.05,12.291 +1e+05,0.12361,0.12607,0.05,12.291 +1e+05,0.12361,0.12607,0.05,12.291 +1e+05,0.12605,0.12855,0.05,13.399 +1e+05,0.12605,0.12855,0.05,13.399 +1e+05,0.12854,0.13109,0.05,14.506 +1e+05,0.12854,0.13109,0.05,14.506 +1e+05,0.12854,0.13109,0.05,14.506 +1e+05,0.13108,0.13368,0.05,15.613 +1e+05,0.13108,0.13368,0.05,15.613 +1e+05,0.13367,0.13632,0.05,16.72 +1e+05,0.13367,0.13632,0.05,16.72 +1e+05,0.13367,0.13632,0.05,16.72 +1e+05,0.13631,0.13901,0.05,17.826 +1e+05,0.13631,0.13901,0.05,17.826 +1e+05,0.13631,0.13901,0.05,17.826 +1e+05,0.139,0.14176,0.05,18.932 +1e+05,0.139,0.14176,0.05,18.932 +1e+05,0.14175,0.14456,0.05,20.037 +1e+05,0.14175,0.14456,0.05,20.037 +1e+05,0.14175,0.14456,0.05,20.037 +1e+05,0.14455,0.14742,0.05,21.142 +1e+05,0.14455,0.14742,0.05,21.142 +1e+05,0.14455,0.14742,0.05,21.142 +1e+05,0.1474,0.15033,0.05,22.246 +1e+05,0.1474,0.15033,0.05,22.246 +1e+05,0.1474,0.15033,0.05,22.246 +1e+05,0.15032,0.1533,0.05,23.35 +1e+05,0.15032,0.1533,0.05,23.35 +1e+05,0.15032,0.1533,0.05,23.35 +1e+05,0.15329,0.15633,0.05,24.453 +1e+05,0.15329,0.15633,0.05,24.453 +1e+05,0.15329,0.15633,0.05,24.453 +1e+05,0.15632,0.15942,0.05,25.556 +1e+05,0.15632,0.15942,0.05,25.556 +1e+05,0.15632,0.15942,0.05,25.556 +1e+05,0.15941,0.16257,0.05,26.658 +1e+05,0.15941,0.16257,0.05,26.658 +1e+05,0.15941,0.16257,0.05,26.658 +1e+05,0.16256,0.16578,0.05,27.759 +1e+05,0.16256,0.16578,0.05,27.759 +1e+05,0.16256,0.16578,0.05,27.759 +1e+05,0.16577,0.16906,0.05,28.859 +1e+05,0.16577,0.16906,0.05,28.859 +1e+05,0.16577,0.16906,0.05,28.859 +1e+05,0.16577,0.16906,0.05,28.859 +1e+05,0.16905,0.1724,0.05,29.959 +1e+05,0.16905,0.1724,0.05,29.959 +1e+05,0.16905,0.1724,0.05,29.959 +1e+05,0.17239,0.1758,0.05,31.057 +1e+05,0.17239,0.1758,0.05,31.057 +1e+05,0.17239,0.1758,0.05,31.057 +1e+05,0.17579,0.17928,0.05,32.155 +1e+05,0.17579,0.17928,0.05,32.155 +1e+05,0.17579,0.17928,0.05,32.155 +1e+05,0.17579,0.17928,0.05,32.155 +1e+05,0.17927,0.18282,0.05,33.251 +1e+05,0.17927,0.18282,0.05,33.251 +1e+05,0.17927,0.18282,0.05,33.251 +1e+05,0.18281,0.18644,0.05,34.346 +1e+05,0.18281,0.18644,0.05,34.346 +1e+05,0.18281,0.18644,0.05,34.346 +1e+05,0.18281,0.18644,0.05,34.346 +1e+05,0.18643,0.19013,0.05,35.441 +1e+05,0.18643,0.19013,0.05,35.441 +1e+05,0.18643,0.19013,0.05,35.441 +1e+05,0.18643,0.19013,0.05,35.441 +1e+05,0.19011,0.19388,0.05,36.534 +1e+05,0.19011,0.19388,0.05,36.534 +1e+05,0.19011,0.19388,0.05,36.534 +1e+05,0.19387,0.19772,0.05,37.625 +1e+05,0.19387,0.19772,0.05,37.625 +1e+05,0.19387,0.19772,0.05,37.625 +1e+05,0.19387,0.19772,0.05,37.625 +1e+05,0.19771,0.20163,0.05,38.715 +1e+05,0.19771,0.20163,0.05,38.715 +1e+05,0.19771,0.20163,0.05,38.715 +1e+05,0.19771,0.20163,0.05,38.715 +1e+05,0.20162,0.20562,0.05,39.804 +1e+05,0.20162,0.20562,0.05,39.804 +1e+05,0.20162,0.20562,0.05,39.804 +1e+05,0.20162,0.20562,0.05,39.804 +1e+05,0.2056,0.20968,0.05,40.891 +1e+05,0.2056,0.20968,0.05,40.891 +1e+05,0.2056,0.20968,0.05,40.891 +1e+05,0.2056,0.20968,0.05,40.891 +1e+05,0.20967,0.21383,0.05,41.976 +1e+05,0.20967,0.21383,0.05,41.976 +1e+05,0.20967,0.21383,0.05,41.976 +1e+05,0.20967,0.21383,0.05,41.976 +1e+05,0.21382,0.21806,0.05,43.06 +1e+05,0.21382,0.21806,0.05,43.06 +1e+05,0.21382,0.21806,0.05,43.06 +1e+05,0.21382,0.21806,0.05,43.06 +1e+05,0.21382,0.21806,0.05,43.06 +1e+05,0.21805,0.22237,0.05,44.142 +1e+05,0.21805,0.22237,0.05,44.142 +1e+05,0.21805,0.22237,0.05,44.142 +1e+05,0.21805,0.22237,0.05,44.142 +1e+05,0.22236,0.22677,0.05,45.222 +1e+05,0.22236,0.22677,0.05,45.222 +1e+05,0.22236,0.22677,0.05,45.222 +1e+05,0.22236,0.22677,0.05,45.222 +1e+05,0.22676,0.23125,0.05,46.299 +1e+05,0.22676,0.23125,0.05,46.299 +1e+05,0.22676,0.23125,0.05,46.299 +1e+05,0.22676,0.23125,0.05,46.299 +1e+05,0.22676,0.23125,0.05,46.299 +1e+05,0.23124,0.23583,0.05,47.375 +1e+05,0.23124,0.23583,0.05,47.375 +1e+05,0.23124,0.23583,0.05,47.375 +1e+05,0.23124,0.23583,0.05,47.375 +1e+05,0.23582,0.2405,0.05,48.448 +1e+05,0.23582,0.2405,0.05,48.448 +1e+05,0.23582,0.2405,0.05,48.448 +1e+05,0.23582,0.2405,0.05,48.448 +1e+05,0.23582,0.2405,0.05,48.448 +1e+05,0.24048,0.24525,0.05,49.519 +1e+05,0.24048,0.24525,0.05,49.519 +1e+05,0.24048,0.24525,0.05,49.519 +1e+05,0.24048,0.24525,0.05,49.519 +1e+05,0.24048,0.24525,0.05,49.519 +1e+05,0.24524,0.25011,0.05,50.587 +1e+05,0.24524,0.25011,0.05,50.587 +1e+05,0.24524,0.25011,0.05,50.587 +1e+05,0.24524,0.25011,0.05,50.587 +1e+05,0.24524,0.25011,0.05,50.587 +1e+05,0.25009,0.25505,0.05,51.653 +1e+05,0.25009,0.25505,0.05,51.653 +1e+05,0.25009,0.25505,0.05,51.653 +1e+05,0.25009,0.25505,0.05,51.653 +1e+05,0.25009,0.25505,0.05,51.653 +1e+05,0.25504,0.2601,0.05,52.715 +1e+05,0.25504,0.2601,0.05,52.715 +1e+05,0.25504,0.2601,0.05,52.715 +1e+05,0.25504,0.2601,0.05,52.715 +1e+05,0.25504,0.2601,0.05,52.715 +1e+05,0.26009,0.26525,0.05,53.775 +1e+05,0.26009,0.26525,0.05,53.775 +1e+05,0.26009,0.26525,0.05,53.775 +1e+05,0.26009,0.26525,0.05,53.775 +1e+05,0.26009,0.26525,0.05,53.775 +1e+05,0.26524,0.2705,0.05,54.832 +1e+05,0.26524,0.2705,0.05,54.832 +1e+05,0.26524,0.2705,0.05,54.832 +1e+05,0.26524,0.2705,0.05,54.832 +1e+05,0.26524,0.2705,0.05,54.832 +1e+05,0.27048,0.27585,0.05,55.885 +1e+05,0.27048,0.27585,0.05,55.885 +1e+05,0.27048,0.27585,0.05,55.885 +1e+05,0.27048,0.27585,0.05,55.885 +1e+05,0.27048,0.27585,0.05,55.885 +1e+05,0.27584,0.28131,0.05,56.935 +1e+05,0.27584,0.28131,0.05,56.935 +1e+05,0.27584,0.28131,0.05,56.935 +1e+05,0.27584,0.28131,0.05,56.935 +1e+05,0.27584,0.28131,0.05,56.935 +1e+05,0.27584,0.28131,0.05,56.935 +1e+05,0.2813,0.28687,0.05,57.982 +1e+05,0.2813,0.28687,0.05,57.982 +1e+05,0.2813,0.28687,0.05,57.982 +1e+05,0.2813,0.28687,0.05,57.982 +1e+05,0.2813,0.28687,0.05,57.982 +1e+05,0.28686,0.29255,0.05,59.025 +1e+05,0.28686,0.29255,0.05,59.025 +1e+05,0.28686,0.29255,0.05,59.025 +1e+05,0.28686,0.29255,0.05,59.025 +1e+05,0.28686,0.29255,0.05,59.025 +1e+05,0.28686,0.29255,0.05,59.025 +1e+05,0.29254,0.29834,0.05,60.063 +1e+05,0.29254,0.29834,0.05,60.063 +1e+05,0.29254,0.29834,0.05,60.063 +1e+05,0.29254,0.29834,0.05,60.063 +1e+05,0.29254,0.29834,0.05,60.063 +1e+05,0.29254,0.29834,0.05,60.063 +1e+05,0.29833,0.30425,0.05,61.098 +1e+05,0.29833,0.30425,0.05,61.098 +1e+05,0.29833,0.30425,0.05,61.098 +1e+05,0.29833,0.30425,0.05,61.098 +1e+05,0.29833,0.30425,0.05,61.098 +1e+05,0.29833,0.30425,0.05,61.098 +1e+05,0.30424,0.31027,0.05,62.129 +1e+05,0.30424,0.31027,0.05,62.129 +1e+05,0.30424,0.31027,0.05,62.129 +1e+05,0.30424,0.31027,0.05,62.129 +1e+05,0.30424,0.31027,0.05,62.129 +1e+05,0.30424,0.31027,0.05,62.129 +1e+05,0.31026,0.31641,0.05,63.155 +1e+05,0.31026,0.31641,0.05,63.155 +1e+05,0.31026,0.31641,0.05,63.155 +1e+05,0.31026,0.31641,0.05,63.155 +1e+05,0.31026,0.31641,0.05,63.155 +1e+05,0.31026,0.31641,0.05,63.155 +1e+05,0.3164,0.32267,0.05,64.177 +1e+05,0.3164,0.32267,0.05,64.177 +1e+05,0.3164,0.32267,0.05,64.177 +1e+05,0.3164,0.32267,0.05,64.177 +1e+05,0.3164,0.32267,0.05,64.177 +1e+05,0.3164,0.32267,0.05,64.177 +1e+05,0.32266,0.32906,0.05,65.194 +1e+05,0.32266,0.32906,0.05,65.194 +1e+05,0.32266,0.32906,0.05,65.194 +1e+05,0.32266,0.32906,0.05,65.194 +1e+05,0.32266,0.32906,0.05,65.194 +1e+05,0.32266,0.32906,0.05,65.194 +1e+05,0.32266,0.32906,0.05,65.194 +1e+05,0.32905,0.33558,0.05,66.205 +1e+05,0.32905,0.33558,0.05,66.205 +1e+05,0.32905,0.33558,0.05,66.205 +1e+05,0.32905,0.33558,0.05,66.205 +1e+05,0.32905,0.33558,0.05,66.205 +1e+05,0.32905,0.33558,0.05,66.205 +1e+05,0.33556,0.34222,0.05,67.212 +1e+05,0.33556,0.34222,0.05,67.212 +1e+05,0.33556,0.34222,0.05,67.212 +1e+05,0.33556,0.34222,0.05,67.212 +1e+05,0.33556,0.34222,0.05,67.212 +1e+05,0.33556,0.34222,0.05,67.212 +1e+05,0.33556,0.34222,0.05,67.212 +1e+05,0.34221,0.34899,0.05,68.214 +1e+05,0.34221,0.34899,0.05,68.214 +1e+05,0.34221,0.34899,0.05,68.214 +1e+05,0.34221,0.34899,0.05,68.214 +1e+05,0.34221,0.34899,0.05,68.214 +1e+05,0.34221,0.34899,0.05,68.214 +1e+05,0.34221,0.34899,0.05,68.214 +1e+05,0.34898,0.3559,0.05,69.209 +1e+05,0.34898,0.3559,0.05,69.209 +1e+05,0.34898,0.3559,0.05,69.209 +1e+05,0.34898,0.3559,0.05,69.209 +1e+05,0.34898,0.3559,0.05,69.209 +1e+05,0.34898,0.3559,0.05,69.209 +1e+05,0.35589,0.36295,0.05,70.2 +1e+05,0.35589,0.36295,0.05,70.2 +1e+05,0.35589,0.36295,0.05,70.2 +1e+05,0.35589,0.36295,0.05,70.2 +1e+05,0.35589,0.36295,0.05,70.2 +1e+05,0.35589,0.36295,0.05,70.2 +1e+05,0.35589,0.36295,0.05,70.2 +1e+05,0.36294,0.37013,0.05,71.184 +1e+05,0.36294,0.37013,0.05,71.184 +1e+05,0.36294,0.37013,0.05,71.184 +1e+05,0.36294,0.37013,0.05,71.184 +1e+05,0.36294,0.37013,0.05,71.184 +1e+05,0.36294,0.37013,0.05,71.184 +1e+05,0.36294,0.37013,0.05,71.184 +1e+05,0.36294,0.37013,0.05,71.184 +1e+05,0.37012,0.37746,0.05,72.162 +1e+05,0.37012,0.37746,0.05,72.162 +1e+05,0.37012,0.37746,0.05,72.162 +1e+05,0.37012,0.37746,0.05,72.162 +1e+05,0.37012,0.37746,0.05,72.162 +1e+05,0.37012,0.37746,0.05,72.162 +1e+05,0.37012,0.37746,0.05,72.162 +1e+05,0.37745,0.38494,0.05,73.134 +1e+05,0.37745,0.38494,0.05,73.134 +1e+05,0.37745,0.38494,0.05,73.134 +1e+05,0.37745,0.38494,0.05,73.134 +1e+05,0.37745,0.38494,0.05,73.134 +1e+05,0.37745,0.38494,0.05,73.134 +1e+05,0.37745,0.38494,0.05,73.134 +1e+05,0.38493,0.39256,0.05,74.099 +1e+05,0.38493,0.39256,0.05,74.099 +1e+05,0.38493,0.39256,0.05,74.099 +1e+05,0.38493,0.39256,0.05,74.099 +1e+05,0.38493,0.39256,0.05,74.099 +1e+05,0.38493,0.39256,0.05,74.099 +1e+05,0.38493,0.39256,0.05,74.099 +1e+05,0.38493,0.39256,0.05,74.099 +1e+05,0.39255,0.40033,0.05,75.057 +1e+05,0.39255,0.40033,0.05,75.057 +1e+05,0.39255,0.40033,0.05,75.057 +1e+05,0.39255,0.40033,0.05,75.057 +1e+05,0.39255,0.40033,0.05,75.057 +1e+05,0.39255,0.40033,0.05,75.057 +1e+05,0.39255,0.40033,0.05,75.057 +1e+05,0.39255,0.40033,0.05,75.057 +1e+05,0.40032,0.40826,0.05,76.009 +1e+05,0.40032,0.40826,0.05,76.009 +1e+05,0.40032,0.40826,0.05,76.009 +1e+05,0.40032,0.40826,0.05,76.009 +1e+05,0.40032,0.40826,0.05,76.009 +1e+05,0.40032,0.40826,0.05,76.009 +1e+05,0.40032,0.40826,0.05,76.009 +1e+05,0.40032,0.40826,0.05,76.009 +1e+05,0.40825,0.41634,0.05,76.954 +1e+05,0.40825,0.41634,0.05,76.954 +1e+05,0.40825,0.41634,0.05,76.954 +1e+05,0.40825,0.41634,0.05,76.954 +1e+05,0.40825,0.41634,0.05,76.954 +1e+05,0.40825,0.41634,0.05,76.954 +1e+05,0.40825,0.41634,0.05,76.954 +1e+05,0.40825,0.41634,0.05,76.954 +1e+05,0.41633,0.42459,0.05,77.891 +1e+05,0.41633,0.42459,0.05,77.891 +1e+05,0.41633,0.42459,0.05,77.891 +1e+05,0.41633,0.42459,0.05,77.891 +1e+05,0.41633,0.42459,0.05,77.891 +1e+05,0.41633,0.42459,0.05,77.891 +1e+05,0.41633,0.42459,0.05,77.891 +1e+05,0.41633,0.42459,0.05,77.891 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.42458,0.433,0.05,78.821 +1e+05,0.43298,0.44157,0.05,79.743 +1e+05,0.43298,0.44157,0.05,79.743 +1e+05,0.43298,0.44157,0.05,79.743 +1e+05,0.43298,0.44157,0.05,79.743 +1e+05,0.43298,0.44157,0.05,79.743 +1e+05,0.43298,0.44157,0.05,79.743 +1e+05,0.43298,0.44157,0.05,79.743 +1e+05,0.43298,0.44157,0.05,79.743 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.44156,0.45031,0.05,80.658 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.4503,0.45923,0.05,81.565 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.45922,0.46833,0.05,82.464 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.46832,0.4776,0.05,83.355 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.47759,0.48706,0.05,84.238 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.48705,0.49671,0.05,85.112 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.4967,0.50655,0.05,85.979 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.50654,0.51658,0.05,86.837 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.51657,0.52681,0.05,87.687 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.5268,0.53725,0.05,88.53 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.53724,0.54789,0.05,89.364 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.54788,0.55874,0.05,90.19 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.55873,0.56981,0.05,91.009 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.5698,0.5811,0.05,91.82 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.58109,0.59261,0.05,92.624 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.5926,0.60435,0.05,93.422 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.60434,0.61632,0.05,94.213 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.61631,0.62853,0.05,94.998 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.62852,0.64098,0.05,95.778 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.64097,0.65368,0.05,96.553 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.65367,0.66663,0.05,97.325 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.66662,0.67984,0.05,98.093 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.67983,0.69331,0.05,98.858 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,0.6933,0.70704,0.05,99.622 +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_2.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_2.csv new file mode 100644 index 00000000000..898f12c9d0d --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_2.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,0.07071,0.072112,0.05,-19.178 +20000,0.07071,0.072112,0.05,-19.178 +20000,0.07211,0.07354,0.05,-17.568 +20000,0.07351,0.074968,0.05,-15.988 +20000,0.075155,0.076646,0.05,-14.167 +20000,0.075155,0.076646,0.05,-14.167 +20000,0.077046,0.078574,0.05,-12.127 +20000,0.077046,0.078574,0.05,-12.127 +20000,0.078936,0.080501,0.05,-10.136 +20000,0.078936,0.080501,0.05,-10.136 +20000,0.080826,0.082429,0.05,-8.1938 +20000,0.080826,0.082429,0.05,-8.1938 +20000,0.082716,0.084357,0.05,-6.2968 +20000,0.082716,0.084357,0.05,-6.2968 +20000,0.084607,0.086285,0.05,-4.4434 +20000,0.084607,0.086285,0.05,-4.4434 +20000,0.086497,0.088212,0.05,-2.6319 +20000,0.086497,0.088212,0.05,-2.6319 +20000,0.088387,0.09014,0.05,-0.86037 +20000,0.088387,0.09014,0.05,-0.86037 +20000,0.090278,0.092068,0.05,0.87259 +20000,0.090278,0.092068,0.05,0.87259 +20000,0.092168,0.093995,0.05,2.5685 +20000,0.092168,0.093995,0.05,2.5685 +20000,0.094031,0.095896,0.05,4.2049 +20000,0.095885,0.097786,0.05,5.8006 +20000,0.095885,0.097786,0.05,5.8006 +20000,0.097776,0.099715,0.05,7.3951 +20000,0.097776,0.099715,0.05,7.3951 +20000,0.099704,0.10168,0.05,8.9883 +20000,0.099704,0.10168,0.05,8.9883 +20000,0.10167,0.10369,0.05,10.58 +20000,0.10167,0.10369,0.05,10.58 +20000,0.10368,0.10573,0.05,12.17 +20000,0.10368,0.10573,0.05,12.17 +20000,0.10572,0.10782,0.05,13.758 +20000,0.10572,0.10782,0.05,13.758 +20000,0.10781,0.10995,0.05,15.344 +20000,0.10781,0.10995,0.05,15.344 +20000,0.10993,0.11211,0.05,16.928 +20000,0.10993,0.11211,0.05,16.928 +20000,0.10993,0.11211,0.05,16.928 +20000,0.1121,0.11433,0.05,18.509 +20000,0.1121,0.11433,0.05,18.509 +20000,0.11432,0.11658,0.05,20.088 +20000,0.11432,0.11658,0.05,20.088 +20000,0.11657,0.11888,0.05,21.664 +20000,0.11657,0.11888,0.05,21.664 +20000,0.11887,0.12123,0.05,23.237 +20000,0.11887,0.12123,0.05,23.237 +20000,0.11887,0.12123,0.05,23.237 +20000,0.12122,0.12362,0.05,24.806 +20000,0.12122,0.12362,0.05,24.806 +20000,0.12361,0.12607,0.05,26.372 +20000,0.12361,0.12607,0.05,26.372 +20000,0.12361,0.12607,0.05,26.372 +20000,0.12605,0.12855,0.05,27.933 +20000,0.12605,0.12855,0.05,27.933 +20000,0.12854,0.13109,0.05,29.491 +20000,0.12854,0.13109,0.05,29.491 +20000,0.12854,0.13109,0.05,29.491 +20000,0.13108,0.13368,0.05,31.044 +20000,0.13108,0.13368,0.05,31.044 +20000,0.13367,0.13632,0.05,32.592 +20000,0.13367,0.13632,0.05,32.592 +20000,0.13367,0.13632,0.05,32.592 +20000,0.13631,0.13901,0.05,34.135 +20000,0.13631,0.13901,0.05,34.135 +20000,0.13631,0.13901,0.05,34.135 +20000,0.139,0.14176,0.05,35.673 +20000,0.139,0.14176,0.05,35.673 +20000,0.14175,0.14456,0.05,37.204 +20000,0.14175,0.14456,0.05,37.204 +20000,0.14175,0.14456,0.05,37.204 +20000,0.14455,0.14742,0.05,38.73 +20000,0.14455,0.14742,0.05,38.73 +20000,0.14455,0.14742,0.05,38.73 +20000,0.1474,0.15033,0.05,40.248 +20000,0.1474,0.15033,0.05,40.248 +20000,0.1474,0.15033,0.05,40.248 +20000,0.15032,0.1533,0.05,41.76 +20000,0.15032,0.1533,0.05,41.76 +20000,0.15032,0.1533,0.05,41.76 +20000,0.15329,0.15633,0.05,43.264 +20000,0.15329,0.15633,0.05,43.264 +20000,0.15329,0.15633,0.05,43.264 +20000,0.15632,0.15942,0.05,44.76 +20000,0.15632,0.15942,0.05,44.76 +20000,0.15632,0.15942,0.05,44.76 +20000,0.15941,0.16257,0.05,46.248 +20000,0.15941,0.16257,0.05,46.248 +20000,0.15941,0.16257,0.05,46.248 +20000,0.16256,0.16578,0.05,47.726 +20000,0.16256,0.16578,0.05,47.726 +20000,0.16256,0.16578,0.05,47.726 +20000,0.16577,0.16906,0.05,49.195 +20000,0.16577,0.16906,0.05,49.195 +20000,0.16577,0.16906,0.05,49.195 +20000,0.16577,0.16906,0.05,49.195 +20000,0.16905,0.1724,0.05,50.655 +20000,0.16905,0.1724,0.05,50.655 +20000,0.16905,0.1724,0.05,50.655 +20000,0.17239,0.1758,0.05,52.103 +20000,0.17239,0.1758,0.05,52.103 +20000,0.17239,0.1758,0.05,52.103 +20000,0.17579,0.17928,0.05,53.541 +20000,0.17579,0.17928,0.05,53.541 +20000,0.17579,0.17928,0.05,53.541 +20000,0.17579,0.17928,0.05,53.541 +20000,0.17927,0.18282,0.05,54.967 +20000,0.17927,0.18282,0.05,54.967 +20000,0.17927,0.18282,0.05,54.967 +20000,0.18281,0.18644,0.05,56.381 +20000,0.18281,0.18644,0.05,56.381 +20000,0.18281,0.18644,0.05,56.381 +20000,0.18281,0.18644,0.05,56.381 +20000,0.18643,0.19013,0.05,57.781 +20000,0.18643,0.19013,0.05,57.781 +20000,0.18643,0.19013,0.05,57.781 +20000,0.18643,0.19013,0.05,57.781 +20000,0.19011,0.19388,0.05,59.169 +20000,0.19011,0.19388,0.05,59.169 +20000,0.19011,0.19388,0.05,59.169 +20000,0.19387,0.19772,0.05,60.542 +20000,0.19387,0.19772,0.05,60.542 +20000,0.19387,0.19772,0.05,60.542 +20000,0.19387,0.19772,0.05,60.542 +20000,0.19771,0.20163,0.05,61.9 +20000,0.19771,0.20163,0.05,61.9 +20000,0.19771,0.20163,0.05,61.9 +20000,0.19771,0.20163,0.05,61.9 +20000,0.20162,0.20562,0.05,63.243 +20000,0.20162,0.20562,0.05,63.243 +20000,0.20162,0.20562,0.05,63.243 +20000,0.20162,0.20562,0.05,63.243 +20000,0.2056,0.20968,0.05,64.57 +20000,0.2056,0.20968,0.05,64.57 +20000,0.2056,0.20968,0.05,64.57 +20000,0.2056,0.20968,0.05,64.57 +20000,0.20967,0.21383,0.05,65.88 +20000,0.20967,0.21383,0.05,65.88 +20000,0.20967,0.21383,0.05,65.88 +20000,0.20967,0.21383,0.05,65.88 +20000,0.21382,0.21806,0.05,67.173 +20000,0.21382,0.21806,0.05,67.173 +20000,0.21382,0.21806,0.05,67.173 +20000,0.21382,0.21806,0.05,67.173 +20000,0.21382,0.21806,0.05,67.173 +20000,0.21805,0.22237,0.05,68.447 +20000,0.21805,0.22237,0.05,68.447 +20000,0.21805,0.22237,0.05,68.447 +20000,0.21805,0.22237,0.05,68.447 +20000,0.22236,0.22677,0.05,69.702 +20000,0.22236,0.22677,0.05,69.702 +20000,0.22236,0.22677,0.05,69.702 +20000,0.22236,0.22677,0.05,69.702 +20000,0.22676,0.23125,0.05,70.938 +20000,0.22676,0.23125,0.05,70.938 +20000,0.22676,0.23125,0.05,70.938 +20000,0.22676,0.23125,0.05,70.938 +20000,0.22676,0.23125,0.05,70.938 +20000,0.23124,0.23583,0.05,72.153 +20000,0.23124,0.23583,0.05,72.153 +20000,0.23124,0.23583,0.05,72.153 +20000,0.23124,0.23583,0.05,72.153 +20000,0.23582,0.2405,0.05,73.347 +20000,0.23582,0.2405,0.05,73.347 +20000,0.23582,0.2405,0.05,73.347 +20000,0.23582,0.2405,0.05,73.347 +20000,0.23582,0.2405,0.05,73.347 +20000,0.24048,0.24525,0.05,74.519 +20000,0.24048,0.24525,0.05,74.519 +20000,0.24048,0.24525,0.05,74.519 +20000,0.24048,0.24525,0.05,74.519 +20000,0.24048,0.24525,0.05,74.519 +20000,0.24524,0.25011,0.05,75.669 +20000,0.24524,0.25011,0.05,75.669 +20000,0.24524,0.25011,0.05,75.669 +20000,0.24524,0.25011,0.05,75.669 +20000,0.24524,0.25011,0.05,75.669 +20000,0.25009,0.25505,0.05,76.796 +20000,0.25009,0.25505,0.05,76.796 +20000,0.25009,0.25505,0.05,76.796 +20000,0.25009,0.25505,0.05,76.796 +20000,0.25009,0.25505,0.05,76.796 +20000,0.25504,0.2601,0.05,77.898 +20000,0.25504,0.2601,0.05,77.898 +20000,0.25504,0.2601,0.05,77.898 +20000,0.25504,0.2601,0.05,77.898 +20000,0.25504,0.2601,0.05,77.898 +20000,0.26009,0.26525,0.05,78.976 +20000,0.26009,0.26525,0.05,78.976 +20000,0.26009,0.26525,0.05,78.976 +20000,0.26009,0.26525,0.05,78.976 +20000,0.26009,0.26525,0.05,78.976 +20000,0.26524,0.2705,0.05,80.029 +20000,0.26524,0.2705,0.05,80.029 +20000,0.26524,0.2705,0.05,80.029 +20000,0.26524,0.2705,0.05,80.029 +20000,0.26524,0.2705,0.05,80.029 +20000,0.27048,0.27585,0.05,81.055 +20000,0.27048,0.27585,0.05,81.055 +20000,0.27048,0.27585,0.05,81.055 +20000,0.27048,0.27585,0.05,81.055 +20000,0.27048,0.27585,0.05,81.055 +20000,0.27584,0.28131,0.05,82.055 +20000,0.27584,0.28131,0.05,82.055 +20000,0.27584,0.28131,0.05,82.055 +20000,0.27584,0.28131,0.05,82.055 +20000,0.27584,0.28131,0.05,82.055 +20000,0.27584,0.28131,0.05,82.055 +20000,0.2813,0.28687,0.05,83.028 +20000,0.2813,0.28687,0.05,83.028 +20000,0.2813,0.28687,0.05,83.028 +20000,0.2813,0.28687,0.05,83.028 +20000,0.2813,0.28687,0.05,83.028 +20000,0.28686,0.29255,0.05,83.973 +20000,0.28686,0.29255,0.05,83.973 +20000,0.28686,0.29255,0.05,83.973 +20000,0.28686,0.29255,0.05,83.973 +20000,0.28686,0.29255,0.05,83.973 +20000,0.28686,0.29255,0.05,83.973 +20000,0.29254,0.29834,0.05,84.89 +20000,0.29254,0.29834,0.05,84.89 +20000,0.29254,0.29834,0.05,84.89 +20000,0.29254,0.29834,0.05,84.89 +20000,0.29254,0.29834,0.05,84.89 +20000,0.29254,0.29834,0.05,84.89 +20000,0.29833,0.30425,0.05,85.779 +20000,0.29833,0.30425,0.05,85.779 +20000,0.29833,0.30425,0.05,85.779 +20000,0.29833,0.30425,0.05,85.779 +20000,0.29833,0.30425,0.05,85.779 +20000,0.29833,0.30425,0.05,85.779 +20000,0.30424,0.31027,0.05,86.638 +20000,0.30424,0.31027,0.05,86.638 +20000,0.30424,0.31027,0.05,86.638 +20000,0.30424,0.31027,0.05,86.638 +20000,0.30424,0.31027,0.05,86.638 +20000,0.30424,0.31027,0.05,86.638 +20000,0.31026,0.31641,0.05,87.468 +20000,0.31026,0.31641,0.05,87.468 +20000,0.31026,0.31641,0.05,87.468 +20000,0.31026,0.31641,0.05,87.468 +20000,0.31026,0.31641,0.05,87.468 +20000,0.31026,0.31641,0.05,87.468 +20000,0.3164,0.32267,0.05,88.268 +20000,0.3164,0.32267,0.05,88.268 +20000,0.3164,0.32267,0.05,88.268 +20000,0.3164,0.32267,0.05,88.268 +20000,0.3164,0.32267,0.05,88.268 +20000,0.3164,0.32267,0.05,88.268 +20000,0.32266,0.32906,0.05,89.038 +20000,0.32266,0.32906,0.05,89.038 +20000,0.32266,0.32906,0.05,89.038 +20000,0.32266,0.32906,0.05,89.038 +20000,0.32266,0.32906,0.05,89.038 +20000,0.32266,0.32906,0.05,89.038 +20000,0.32266,0.32906,0.05,89.038 +20000,0.32905,0.33558,0.05,89.778 +20000,0.32905,0.33558,0.05,89.778 +20000,0.32905,0.33558,0.05,89.778 +20000,0.32905,0.33558,0.05,89.778 +20000,0.32905,0.33558,0.05,89.778 +20000,0.32905,0.33558,0.05,89.778 +20000,0.33556,0.34222,0.05,90.487 +20000,0.33556,0.34222,0.05,90.487 +20000,0.33556,0.34222,0.05,90.487 +20000,0.33556,0.34222,0.05,90.487 +20000,0.33556,0.34222,0.05,90.487 +20000,0.33556,0.34222,0.05,90.487 +20000,0.33556,0.34222,0.05,90.487 +20000,0.34221,0.34899,0.05,91.166 +20000,0.34221,0.34899,0.05,91.166 +20000,0.34221,0.34899,0.05,91.166 +20000,0.34221,0.34899,0.05,91.166 +20000,0.34221,0.34899,0.05,91.166 +20000,0.34221,0.34899,0.05,91.166 +20000,0.34221,0.34899,0.05,91.166 +20000,0.34898,0.3559,0.05,91.815 +20000,0.34898,0.3559,0.05,91.815 +20000,0.34898,0.3559,0.05,91.815 +20000,0.34898,0.3559,0.05,91.815 +20000,0.34898,0.3559,0.05,91.815 +20000,0.34898,0.3559,0.05,91.815 +20000,0.35589,0.36295,0.05,92.433 +20000,0.35589,0.36295,0.05,92.433 +20000,0.35589,0.36295,0.05,92.433 +20000,0.35589,0.36295,0.05,92.433 +20000,0.35589,0.36295,0.05,92.433 +20000,0.35589,0.36295,0.05,92.433 +20000,0.35589,0.36295,0.05,92.433 +20000,0.36294,0.37013,0.05,93.02 +20000,0.36294,0.37013,0.05,93.02 +20000,0.36294,0.37013,0.05,93.02 +20000,0.36294,0.37013,0.05,93.02 +20000,0.36294,0.37013,0.05,93.02 +20000,0.36294,0.37013,0.05,93.02 +20000,0.36294,0.37013,0.05,93.02 +20000,0.36294,0.37013,0.05,93.02 +20000,0.37012,0.37746,0.05,93.578 +20000,0.37012,0.37746,0.05,93.578 +20000,0.37012,0.37746,0.05,93.578 +20000,0.37012,0.37746,0.05,93.578 +20000,0.37012,0.37746,0.05,93.578 +20000,0.37012,0.37746,0.05,93.578 +20000,0.37012,0.37746,0.05,93.578 +20000,0.37745,0.38494,0.05,94.106 +20000,0.37745,0.38494,0.05,94.106 +20000,0.37745,0.38494,0.05,94.106 +20000,0.37745,0.38494,0.05,94.106 +20000,0.37745,0.38494,0.05,94.106 +20000,0.37745,0.38494,0.05,94.106 +20000,0.37745,0.38494,0.05,94.106 +20000,0.38493,0.39256,0.05,94.604 +20000,0.38493,0.39256,0.05,94.604 +20000,0.38493,0.39256,0.05,94.604 +20000,0.38493,0.39256,0.05,94.604 +20000,0.38493,0.39256,0.05,94.604 +20000,0.38493,0.39256,0.05,94.604 +20000,0.38493,0.39256,0.05,94.604 +20000,0.38493,0.39256,0.05,94.604 +20000,0.39255,0.40033,0.05,95.074 +20000,0.39255,0.40033,0.05,95.074 +20000,0.39255,0.40033,0.05,95.074 +20000,0.39255,0.40033,0.05,95.074 +20000,0.39255,0.40033,0.05,95.074 +20000,0.39255,0.40033,0.05,95.074 +20000,0.39255,0.40033,0.05,95.074 +20000,0.39255,0.40033,0.05,95.074 +20000,0.40032,0.40826,0.05,95.515 +20000,0.40032,0.40826,0.05,95.515 +20000,0.40032,0.40826,0.05,95.515 +20000,0.40032,0.40826,0.05,95.515 +20000,0.40032,0.40826,0.05,95.515 +20000,0.40032,0.40826,0.05,95.515 +20000,0.40032,0.40826,0.05,95.515 +20000,0.40032,0.40826,0.05,95.515 +20000,0.40825,0.41634,0.05,95.929 +20000,0.40825,0.41634,0.05,95.929 +20000,0.40825,0.41634,0.05,95.929 +20000,0.40825,0.41634,0.05,95.929 +20000,0.40825,0.41634,0.05,95.929 +20000,0.40825,0.41634,0.05,95.929 +20000,0.40825,0.41634,0.05,95.929 +20000,0.40825,0.41634,0.05,95.929 +20000,0.41633,0.42459,0.05,96.315 +20000,0.41633,0.42459,0.05,96.315 +20000,0.41633,0.42459,0.05,96.315 +20000,0.41633,0.42459,0.05,96.315 +20000,0.41633,0.42459,0.05,96.315 +20000,0.41633,0.42459,0.05,96.315 +20000,0.41633,0.42459,0.05,96.315 +20000,0.41633,0.42459,0.05,96.315 +20000,0.42458,0.433,0.05,96.674 +20000,0.42458,0.433,0.05,96.674 +20000,0.42458,0.433,0.05,96.674 +20000,0.42458,0.433,0.05,96.674 +20000,0.42458,0.433,0.05,96.674 +20000,0.42458,0.433,0.05,96.674 +20000,0.42458,0.433,0.05,96.674 +20000,0.42458,0.433,0.05,96.674 +20000,0.42458,0.433,0.05,96.674 +20000,0.43298,0.44157,0.05,97.009 +20000,0.43298,0.44157,0.05,97.009 +20000,0.43298,0.44157,0.05,97.009 +20000,0.43298,0.44157,0.05,97.009 +20000,0.43298,0.44157,0.05,97.009 +20000,0.43298,0.44157,0.05,97.009 +20000,0.43298,0.44157,0.05,97.009 +20000,0.43298,0.44157,0.05,97.009 +20000,0.44156,0.45031,0.05,97.318 +20000,0.44156,0.45031,0.05,97.318 +20000,0.44156,0.45031,0.05,97.318 +20000,0.44156,0.45031,0.05,97.318 +20000,0.44156,0.45031,0.05,97.318 +20000,0.44156,0.45031,0.05,97.318 +20000,0.44156,0.45031,0.05,97.318 +20000,0.44156,0.45031,0.05,97.318 +20000,0.44156,0.45031,0.05,97.318 +20000,0.4503,0.45923,0.05,97.603 +20000,0.4503,0.45923,0.05,97.603 +20000,0.4503,0.45923,0.05,97.603 +20000,0.4503,0.45923,0.05,97.603 +20000,0.4503,0.45923,0.05,97.603 +20000,0.4503,0.45923,0.05,97.603 +20000,0.4503,0.45923,0.05,97.603 +20000,0.4503,0.45923,0.05,97.603 +20000,0.4503,0.45923,0.05,97.603 +20000,0.45922,0.46833,0.05,97.866 +20000,0.45922,0.46833,0.05,97.866 +20000,0.45922,0.46833,0.05,97.866 +20000,0.45922,0.46833,0.05,97.866 +20000,0.45922,0.46833,0.05,97.866 +20000,0.45922,0.46833,0.05,97.866 +20000,0.45922,0.46833,0.05,97.866 +20000,0.45922,0.46833,0.05,97.866 +20000,0.45922,0.46833,0.05,97.866 +20000,0.46832,0.4776,0.05,98.107 +20000,0.46832,0.4776,0.05,98.107 +20000,0.46832,0.4776,0.05,98.107 +20000,0.46832,0.4776,0.05,98.107 +20000,0.46832,0.4776,0.05,98.107 +20000,0.46832,0.4776,0.05,98.107 +20000,0.46832,0.4776,0.05,98.107 +20000,0.46832,0.4776,0.05,98.107 +20000,0.46832,0.4776,0.05,98.107 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.47759,0.48706,0.05,98.327 +20000,0.48705,0.49671,0.05,98.527 +20000,0.48705,0.49671,0.05,98.527 +20000,0.48705,0.49671,0.05,98.527 +20000,0.48705,0.49671,0.05,98.527 +20000,0.48705,0.49671,0.05,98.527 +20000,0.48705,0.49671,0.05,98.527 +20000,0.48705,0.49671,0.05,98.527 +20000,0.48705,0.49671,0.05,98.527 +20000,0.48705,0.49671,0.05,98.527 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.4967,0.50655,0.05,98.708 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.50654,0.51658,0.05,98.872 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.51657,0.52681,0.05,99.019 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.5268,0.53725,0.05,99.152 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.53724,0.54789,0.05,99.27 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.54788,0.55874,0.05,99.374 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.55873,0.56981,0.05,99.467 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.5698,0.5811,0.05,99.549 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.58109,0.59261,0.05,99.621 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.5926,0.60435,0.05,99.685 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.60434,0.61632,0.05,99.74 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.61631,0.62853,0.05,99.789 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.62852,0.64098,0.05,99.832 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.64097,0.65368,0.05,99.869 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.65367,0.66663,0.05,99.903 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.66662,0.67984,0.05,99.933 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.67983,0.69331,0.05,99.961 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,0.6933,0.70704,0.05,99.987 +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_5.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_5.csv new file mode 100644 index 00000000000..a0165428e76 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/data_5.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,0.07071,0.072112,0.05,-19.345 +50000,0.07071,0.072112,0.05,-19.345 +50000,0.07211,0.07354,0.05,-18.062 +50000,0.07351,0.074968,0.05,-16.803 +50000,0.075155,0.076646,0.05,-15.352 +50000,0.075155,0.076646,0.05,-15.352 +50000,0.077046,0.078574,0.05,-13.727 +50000,0.077046,0.078574,0.05,-13.727 +50000,0.078936,0.080501,0.05,-12.141 +50000,0.078936,0.080501,0.05,-12.141 +50000,0.080826,0.082429,0.05,-10.592 +50000,0.080826,0.082429,0.05,-10.592 +50000,0.082716,0.084357,0.05,-9.0797 +50000,0.082716,0.084357,0.05,-9.0797 +50000,0.084607,0.086285,0.05,-7.6016 +50000,0.084607,0.086285,0.05,-7.6016 +50000,0.086497,0.088212,0.05,-6.1563 +50000,0.086497,0.088212,0.05,-6.1563 +50000,0.088387,0.09014,0.05,-4.7426 +50000,0.088387,0.09014,0.05,-4.7426 +50000,0.090278,0.092068,0.05,-3.359 +50000,0.090278,0.092068,0.05,-3.359 +50000,0.092168,0.093995,0.05,-2.0045 +50000,0.092168,0.093995,0.05,-2.0045 +50000,0.094031,0.095896,0.05,-0.69679 +50000,0.095885,0.097786,0.05,0.57908 +50000,0.095885,0.097786,0.05,0.57908 +50000,0.097776,0.099715,0.05,1.8547 +50000,0.097776,0.099715,0.05,1.8547 +50000,0.099704,0.10168,0.05,3.1301 +50000,0.099704,0.10168,0.05,3.1301 +50000,0.10167,0.10369,0.05,4.4051 +50000,0.10167,0.10369,0.05,4.4051 +50000,0.10368,0.10573,0.05,5.6798 +50000,0.10368,0.10573,0.05,5.6798 +50000,0.10572,0.10782,0.05,6.9541 +50000,0.10572,0.10782,0.05,6.9541 +50000,0.10781,0.10995,0.05,8.2279 +50000,0.10781,0.10995,0.05,8.2279 +50000,0.10993,0.11211,0.05,9.5012 +50000,0.10993,0.11211,0.05,9.5012 +50000,0.10993,0.11211,0.05,9.5012 +50000,0.1121,0.11433,0.05,10.774 +50000,0.1121,0.11433,0.05,10.774 +50000,0.11432,0.11658,0.05,12.046 +50000,0.11432,0.11658,0.05,12.046 +50000,0.11657,0.11888,0.05,13.317 +50000,0.11657,0.11888,0.05,13.317 +50000,0.11887,0.12123,0.05,14.588 +50000,0.11887,0.12123,0.05,14.588 +50000,0.11887,0.12123,0.05,14.588 +50000,0.12122,0.12362,0.05,15.858 +50000,0.12122,0.12362,0.05,15.858 +50000,0.12361,0.12607,0.05,17.127 +50000,0.12361,0.12607,0.05,17.127 +50000,0.12361,0.12607,0.05,17.127 +50000,0.12605,0.12855,0.05,18.395 +50000,0.12605,0.12855,0.05,18.395 +50000,0.12854,0.13109,0.05,19.662 +50000,0.12854,0.13109,0.05,19.662 +50000,0.12854,0.13109,0.05,19.662 +50000,0.13108,0.13368,0.05,20.927 +50000,0.13108,0.13368,0.05,20.927 +50000,0.13367,0.13632,0.05,22.192 +50000,0.13367,0.13632,0.05,22.192 +50000,0.13367,0.13632,0.05,22.192 +50000,0.13631,0.13901,0.05,23.455 +50000,0.13631,0.13901,0.05,23.455 +50000,0.13631,0.13901,0.05,23.455 +50000,0.139,0.14176,0.05,24.716 +50000,0.139,0.14176,0.05,24.716 +50000,0.14175,0.14456,0.05,25.977 +50000,0.14175,0.14456,0.05,25.977 +50000,0.14175,0.14456,0.05,25.977 +50000,0.14455,0.14742,0.05,27.235 +50000,0.14455,0.14742,0.05,27.235 +50000,0.14455,0.14742,0.05,27.235 +50000,0.1474,0.15033,0.05,28.492 +50000,0.1474,0.15033,0.05,28.492 +50000,0.1474,0.15033,0.05,28.492 +50000,0.15032,0.1533,0.05,29.746 +50000,0.15032,0.1533,0.05,29.746 +50000,0.15032,0.1533,0.05,29.746 +50000,0.15329,0.15633,0.05,30.999 +50000,0.15329,0.15633,0.05,30.999 +50000,0.15329,0.15633,0.05,30.999 +50000,0.15632,0.15942,0.05,32.249 +50000,0.15632,0.15942,0.05,32.249 +50000,0.15632,0.15942,0.05,32.249 +50000,0.15941,0.16257,0.05,33.497 +50000,0.15941,0.16257,0.05,33.497 +50000,0.15941,0.16257,0.05,33.497 +50000,0.16256,0.16578,0.05,34.743 +50000,0.16256,0.16578,0.05,34.743 +50000,0.16256,0.16578,0.05,34.743 +50000,0.16577,0.16906,0.05,35.986 +50000,0.16577,0.16906,0.05,35.986 +50000,0.16577,0.16906,0.05,35.986 +50000,0.16577,0.16906,0.05,35.986 +50000,0.16905,0.1724,0.05,37.226 +50000,0.16905,0.1724,0.05,37.226 +50000,0.16905,0.1724,0.05,37.226 +50000,0.17239,0.1758,0.05,38.464 +50000,0.17239,0.1758,0.05,38.464 +50000,0.17239,0.1758,0.05,38.464 +50000,0.17579,0.17928,0.05,39.698 +50000,0.17579,0.17928,0.05,39.698 +50000,0.17579,0.17928,0.05,39.698 +50000,0.17579,0.17928,0.05,39.698 +50000,0.17927,0.18282,0.05,40.928 +50000,0.17927,0.18282,0.05,40.928 +50000,0.17927,0.18282,0.05,40.928 +50000,0.18281,0.18644,0.05,42.155 +50000,0.18281,0.18644,0.05,42.155 +50000,0.18281,0.18644,0.05,42.155 +50000,0.18281,0.18644,0.05,42.155 +50000,0.18643,0.19013,0.05,43.379 +50000,0.18643,0.19013,0.05,43.379 +50000,0.18643,0.19013,0.05,43.379 +50000,0.18643,0.19013,0.05,43.379 +50000,0.19011,0.19388,0.05,44.598 +50000,0.19011,0.19388,0.05,44.598 +50000,0.19011,0.19388,0.05,44.598 +50000,0.19387,0.19772,0.05,45.813 +50000,0.19387,0.19772,0.05,45.813 +50000,0.19387,0.19772,0.05,45.813 +50000,0.19387,0.19772,0.05,45.813 +50000,0.19771,0.20163,0.05,47.024 +50000,0.19771,0.20163,0.05,47.024 +50000,0.19771,0.20163,0.05,47.024 +50000,0.19771,0.20163,0.05,47.024 +50000,0.20162,0.20562,0.05,48.23 +50000,0.20162,0.20562,0.05,48.23 +50000,0.20162,0.20562,0.05,48.23 +50000,0.20162,0.20562,0.05,48.23 +50000,0.2056,0.20968,0.05,49.431 +50000,0.2056,0.20968,0.05,49.431 +50000,0.2056,0.20968,0.05,49.431 +50000,0.2056,0.20968,0.05,49.431 +50000,0.20967,0.21383,0.05,50.627 +50000,0.20967,0.21383,0.05,50.627 +50000,0.20967,0.21383,0.05,50.627 +50000,0.20967,0.21383,0.05,50.627 +50000,0.21382,0.21806,0.05,51.818 +50000,0.21382,0.21806,0.05,51.818 +50000,0.21382,0.21806,0.05,51.818 +50000,0.21382,0.21806,0.05,51.818 +50000,0.21382,0.21806,0.05,51.818 +50000,0.21805,0.22237,0.05,53.002 +50000,0.21805,0.22237,0.05,53.002 +50000,0.21805,0.22237,0.05,53.002 +50000,0.21805,0.22237,0.05,53.002 +50000,0.22236,0.22677,0.05,54.181 +50000,0.22236,0.22677,0.05,54.181 +50000,0.22236,0.22677,0.05,54.181 +50000,0.22236,0.22677,0.05,54.181 +50000,0.22676,0.23125,0.05,55.353 +50000,0.22676,0.23125,0.05,55.353 +50000,0.22676,0.23125,0.05,55.353 +50000,0.22676,0.23125,0.05,55.353 +50000,0.22676,0.23125,0.05,55.353 +50000,0.23124,0.23583,0.05,56.518 +50000,0.23124,0.23583,0.05,56.518 +50000,0.23124,0.23583,0.05,56.518 +50000,0.23124,0.23583,0.05,56.518 +50000,0.23582,0.2405,0.05,57.677 +50000,0.23582,0.2405,0.05,57.677 +50000,0.23582,0.2405,0.05,57.677 +50000,0.23582,0.2405,0.05,57.677 +50000,0.23582,0.2405,0.05,57.677 +50000,0.24048,0.24525,0.05,58.828 +50000,0.24048,0.24525,0.05,58.828 +50000,0.24048,0.24525,0.05,58.828 +50000,0.24048,0.24525,0.05,58.828 +50000,0.24048,0.24525,0.05,58.828 +50000,0.24524,0.25011,0.05,59.971 +50000,0.24524,0.25011,0.05,59.971 +50000,0.24524,0.25011,0.05,59.971 +50000,0.24524,0.25011,0.05,59.971 +50000,0.24524,0.25011,0.05,59.971 +50000,0.25009,0.25505,0.05,61.107 +50000,0.25009,0.25505,0.05,61.107 +50000,0.25009,0.25505,0.05,61.107 +50000,0.25009,0.25505,0.05,61.107 +50000,0.25009,0.25505,0.05,61.107 +50000,0.25504,0.2601,0.05,62.233 +50000,0.25504,0.2601,0.05,62.233 +50000,0.25504,0.2601,0.05,62.233 +50000,0.25504,0.2601,0.05,62.233 +50000,0.25504,0.2601,0.05,62.233 +50000,0.26009,0.26525,0.05,63.351 +50000,0.26009,0.26525,0.05,63.351 +50000,0.26009,0.26525,0.05,63.351 +50000,0.26009,0.26525,0.05,63.351 +50000,0.26009,0.26525,0.05,63.351 +50000,0.26524,0.2705,0.05,64.46 +50000,0.26524,0.2705,0.05,64.46 +50000,0.26524,0.2705,0.05,64.46 +50000,0.26524,0.2705,0.05,64.46 +50000,0.26524,0.2705,0.05,64.46 +50000,0.27048,0.27585,0.05,65.559 +50000,0.27048,0.27585,0.05,65.559 +50000,0.27048,0.27585,0.05,65.559 +50000,0.27048,0.27585,0.05,65.559 +50000,0.27048,0.27585,0.05,65.559 +50000,0.27584,0.28131,0.05,66.648 +50000,0.27584,0.28131,0.05,66.648 +50000,0.27584,0.28131,0.05,66.648 +50000,0.27584,0.28131,0.05,66.648 +50000,0.27584,0.28131,0.05,66.648 +50000,0.27584,0.28131,0.05,66.648 +50000,0.2813,0.28687,0.05,67.726 +50000,0.2813,0.28687,0.05,67.726 +50000,0.2813,0.28687,0.05,67.726 +50000,0.2813,0.28687,0.05,67.726 +50000,0.2813,0.28687,0.05,67.726 +50000,0.28686,0.29255,0.05,68.794 +50000,0.28686,0.29255,0.05,68.794 +50000,0.28686,0.29255,0.05,68.794 +50000,0.28686,0.29255,0.05,68.794 +50000,0.28686,0.29255,0.05,68.794 +50000,0.28686,0.29255,0.05,68.794 +50000,0.29254,0.29834,0.05,69.85 +50000,0.29254,0.29834,0.05,69.85 +50000,0.29254,0.29834,0.05,69.85 +50000,0.29254,0.29834,0.05,69.85 +50000,0.29254,0.29834,0.05,69.85 +50000,0.29254,0.29834,0.05,69.85 +50000,0.29833,0.30425,0.05,70.894 +50000,0.29833,0.30425,0.05,70.894 +50000,0.29833,0.30425,0.05,70.894 +50000,0.29833,0.30425,0.05,70.894 +50000,0.29833,0.30425,0.05,70.894 +50000,0.29833,0.30425,0.05,70.894 +50000,0.30424,0.31027,0.05,71.926 +50000,0.30424,0.31027,0.05,71.926 +50000,0.30424,0.31027,0.05,71.926 +50000,0.30424,0.31027,0.05,71.926 +50000,0.30424,0.31027,0.05,71.926 +50000,0.30424,0.31027,0.05,71.926 +50000,0.31026,0.31641,0.05,72.945 +50000,0.31026,0.31641,0.05,72.945 +50000,0.31026,0.31641,0.05,72.945 +50000,0.31026,0.31641,0.05,72.945 +50000,0.31026,0.31641,0.05,72.945 +50000,0.31026,0.31641,0.05,72.945 +50000,0.3164,0.32267,0.05,73.951 +50000,0.3164,0.32267,0.05,73.951 +50000,0.3164,0.32267,0.05,73.951 +50000,0.3164,0.32267,0.05,73.951 +50000,0.3164,0.32267,0.05,73.951 +50000,0.3164,0.32267,0.05,73.951 +50000,0.32266,0.32906,0.05,74.943 +50000,0.32266,0.32906,0.05,74.943 +50000,0.32266,0.32906,0.05,74.943 +50000,0.32266,0.32906,0.05,74.943 +50000,0.32266,0.32906,0.05,74.943 +50000,0.32266,0.32906,0.05,74.943 +50000,0.32266,0.32906,0.05,74.943 +50000,0.32905,0.33558,0.05,75.921 +50000,0.32905,0.33558,0.05,75.921 +50000,0.32905,0.33558,0.05,75.921 +50000,0.32905,0.33558,0.05,75.921 +50000,0.32905,0.33558,0.05,75.921 +50000,0.32905,0.33558,0.05,75.921 +50000,0.33556,0.34222,0.05,76.885 +50000,0.33556,0.34222,0.05,76.885 +50000,0.33556,0.34222,0.05,76.885 +50000,0.33556,0.34222,0.05,76.885 +50000,0.33556,0.34222,0.05,76.885 +50000,0.33556,0.34222,0.05,76.885 +50000,0.33556,0.34222,0.05,76.885 +50000,0.34221,0.34899,0.05,77.833 +50000,0.34221,0.34899,0.05,77.833 +50000,0.34221,0.34899,0.05,77.833 +50000,0.34221,0.34899,0.05,77.833 +50000,0.34221,0.34899,0.05,77.833 +50000,0.34221,0.34899,0.05,77.833 +50000,0.34221,0.34899,0.05,77.833 +50000,0.34898,0.3559,0.05,78.766 +50000,0.34898,0.3559,0.05,78.766 +50000,0.34898,0.3559,0.05,78.766 +50000,0.34898,0.3559,0.05,78.766 +50000,0.34898,0.3559,0.05,78.766 +50000,0.34898,0.3559,0.05,78.766 +50000,0.35589,0.36295,0.05,79.683 +50000,0.35589,0.36295,0.05,79.683 +50000,0.35589,0.36295,0.05,79.683 +50000,0.35589,0.36295,0.05,79.683 +50000,0.35589,0.36295,0.05,79.683 +50000,0.35589,0.36295,0.05,79.683 +50000,0.35589,0.36295,0.05,79.683 +50000,0.36294,0.37013,0.05,80.583 +50000,0.36294,0.37013,0.05,80.583 +50000,0.36294,0.37013,0.05,80.583 +50000,0.36294,0.37013,0.05,80.583 +50000,0.36294,0.37013,0.05,80.583 +50000,0.36294,0.37013,0.05,80.583 +50000,0.36294,0.37013,0.05,80.583 +50000,0.36294,0.37013,0.05,80.583 +50000,0.37012,0.37746,0.05,81.466 +50000,0.37012,0.37746,0.05,81.466 +50000,0.37012,0.37746,0.05,81.466 +50000,0.37012,0.37746,0.05,81.466 +50000,0.37012,0.37746,0.05,81.466 +50000,0.37012,0.37746,0.05,81.466 +50000,0.37012,0.37746,0.05,81.466 +50000,0.37745,0.38494,0.05,82.332 +50000,0.37745,0.38494,0.05,82.332 +50000,0.37745,0.38494,0.05,82.332 +50000,0.37745,0.38494,0.05,82.332 +50000,0.37745,0.38494,0.05,82.332 +50000,0.37745,0.38494,0.05,82.332 +50000,0.37745,0.38494,0.05,82.332 +50000,0.38493,0.39256,0.05,83.18 +50000,0.38493,0.39256,0.05,83.18 +50000,0.38493,0.39256,0.05,83.18 +50000,0.38493,0.39256,0.05,83.18 +50000,0.38493,0.39256,0.05,83.18 +50000,0.38493,0.39256,0.05,83.18 +50000,0.38493,0.39256,0.05,83.18 +50000,0.38493,0.39256,0.05,83.18 +50000,0.39255,0.40033,0.05,84.01 +50000,0.39255,0.40033,0.05,84.01 +50000,0.39255,0.40033,0.05,84.01 +50000,0.39255,0.40033,0.05,84.01 +50000,0.39255,0.40033,0.05,84.01 +50000,0.39255,0.40033,0.05,84.01 +50000,0.39255,0.40033,0.05,84.01 +50000,0.39255,0.40033,0.05,84.01 +50000,0.40032,0.40826,0.05,84.821 +50000,0.40032,0.40826,0.05,84.821 +50000,0.40032,0.40826,0.05,84.821 +50000,0.40032,0.40826,0.05,84.821 +50000,0.40032,0.40826,0.05,84.821 +50000,0.40032,0.40826,0.05,84.821 +50000,0.40032,0.40826,0.05,84.821 +50000,0.40032,0.40826,0.05,84.821 +50000,0.40825,0.41634,0.05,85.613 +50000,0.40825,0.41634,0.05,85.613 +50000,0.40825,0.41634,0.05,85.613 +50000,0.40825,0.41634,0.05,85.613 +50000,0.40825,0.41634,0.05,85.613 +50000,0.40825,0.41634,0.05,85.613 +50000,0.40825,0.41634,0.05,85.613 +50000,0.40825,0.41634,0.05,85.613 +50000,0.41633,0.42459,0.05,86.386 +50000,0.41633,0.42459,0.05,86.386 +50000,0.41633,0.42459,0.05,86.386 +50000,0.41633,0.42459,0.05,86.386 +50000,0.41633,0.42459,0.05,86.386 +50000,0.41633,0.42459,0.05,86.386 +50000,0.41633,0.42459,0.05,86.386 +50000,0.41633,0.42459,0.05,86.386 +50000,0.42458,0.433,0.05,87.139 +50000,0.42458,0.433,0.05,87.139 +50000,0.42458,0.433,0.05,87.139 +50000,0.42458,0.433,0.05,87.139 +50000,0.42458,0.433,0.05,87.139 +50000,0.42458,0.433,0.05,87.139 +50000,0.42458,0.433,0.05,87.139 +50000,0.42458,0.433,0.05,87.139 +50000,0.42458,0.433,0.05,87.139 +50000,0.43298,0.44157,0.05,87.872 +50000,0.43298,0.44157,0.05,87.872 +50000,0.43298,0.44157,0.05,87.872 +50000,0.43298,0.44157,0.05,87.872 +50000,0.43298,0.44157,0.05,87.872 +50000,0.43298,0.44157,0.05,87.872 +50000,0.43298,0.44157,0.05,87.872 +50000,0.43298,0.44157,0.05,87.872 +50000,0.44156,0.45031,0.05,88.586 +50000,0.44156,0.45031,0.05,88.586 +50000,0.44156,0.45031,0.05,88.586 +50000,0.44156,0.45031,0.05,88.586 +50000,0.44156,0.45031,0.05,88.586 +50000,0.44156,0.45031,0.05,88.586 +50000,0.44156,0.45031,0.05,88.586 +50000,0.44156,0.45031,0.05,88.586 +50000,0.44156,0.45031,0.05,88.586 +50000,0.4503,0.45923,0.05,89.278 +50000,0.4503,0.45923,0.05,89.278 +50000,0.4503,0.45923,0.05,89.278 +50000,0.4503,0.45923,0.05,89.278 +50000,0.4503,0.45923,0.05,89.278 +50000,0.4503,0.45923,0.05,89.278 +50000,0.4503,0.45923,0.05,89.278 +50000,0.4503,0.45923,0.05,89.278 +50000,0.4503,0.45923,0.05,89.278 +50000,0.45922,0.46833,0.05,89.951 +50000,0.45922,0.46833,0.05,89.951 +50000,0.45922,0.46833,0.05,89.951 +50000,0.45922,0.46833,0.05,89.951 +50000,0.45922,0.46833,0.05,89.951 +50000,0.45922,0.46833,0.05,89.951 +50000,0.45922,0.46833,0.05,89.951 +50000,0.45922,0.46833,0.05,89.951 +50000,0.45922,0.46833,0.05,89.951 +50000,0.46832,0.4776,0.05,90.602 +50000,0.46832,0.4776,0.05,90.602 +50000,0.46832,0.4776,0.05,90.602 +50000,0.46832,0.4776,0.05,90.602 +50000,0.46832,0.4776,0.05,90.602 +50000,0.46832,0.4776,0.05,90.602 +50000,0.46832,0.4776,0.05,90.602 +50000,0.46832,0.4776,0.05,90.602 +50000,0.46832,0.4776,0.05,90.602 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.47759,0.48706,0.05,91.234 +50000,0.48705,0.49671,0.05,91.844 +50000,0.48705,0.49671,0.05,91.844 +50000,0.48705,0.49671,0.05,91.844 +50000,0.48705,0.49671,0.05,91.844 +50000,0.48705,0.49671,0.05,91.844 +50000,0.48705,0.49671,0.05,91.844 +50000,0.48705,0.49671,0.05,91.844 +50000,0.48705,0.49671,0.05,91.844 +50000,0.48705,0.49671,0.05,91.844 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.4967,0.50655,0.05,92.434 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.50654,0.51658,0.05,93.004 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.51657,0.52681,0.05,93.553 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.5268,0.53725,0.05,94.083 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.53724,0.54789,0.05,94.593 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.54788,0.55874,0.05,95.084 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.55873,0.56981,0.05,95.557 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.5698,0.5811,0.05,96.012 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.58109,0.59261,0.05,96.45 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.5926,0.60435,0.05,96.872 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.60434,0.61632,0.05,97.279 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.61631,0.62853,0.05,97.673 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.62852,0.64098,0.05,98.054 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.64097,0.65368,0.05,98.424 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.65367,0.66663,0.05,98.785 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.66662,0.67984,0.05,99.138 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.67983,0.69331,0.05,99.486 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,0.6933,0.70704,0.05,99.83 +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/linearThermalDiffusion_plot.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/linearThermalDiffusion_plot.py new file mode 100644 index 00000000000..67e336576c2 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/linearThermalDiffusion_plot.py @@ -0,0 +1,147 @@ +import os +import sys +import os +import argparse + +import numpy as np +import matplotlib.pyplot as plt +import pandas as pd +import scipy.linalg +from scipy import special +from xml.etree import ElementTree + +# Analytical results +def steadyState(Tin, Tout, Rin, Rout, radialCoordinate): + return Tin + (Tout - Tin) * (np.log(radialCoordinate) - np.log(Rin)) / (np.log(Rout) - np.log(Rin)) + +def diffusionFunction(radialCoordinate, Rin, diffusionCoefficient, diffusionTime): + return special.erfc( (radialCoordinate - Rin) / 2.0 / np.sqrt( diffusionCoefficient * diffusionTime ) ) + +def computeTransientTemperature(Tin, Tout, Rin, radialCoordinate, thermalDiffusionCoefficient, diffusionTime): + # Ref. Wang and Papamichos (1994), https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/94WR01774 + return Tout + (Tin-Tout) * np.sqrt(Rin/radialCoordinate) * diffusionFunction(radialCoordinate, Rin, thermalDiffusionCoefficient, diffusionTime) + +def computeThermalDiffusionCoefficient(thermalConductivity, volumetricHeatCapacity): + return thermalConductivity / volumetricHeatCapacity + +def extractDataFromXMLList(paramList): + # Extract data from a list in XML such as "{ 1, 2, 3}" + return paramList.replace('{', '').replace('}', '').strip().split(',') + +def getWellboreGeometryFromXML(xmlFilePath): + tree = ElementTree.parse(xmlFilePath) + + meshParam = tree.find('Mesh/InternalWellbore') + radii = extractDataFromXMLList( meshParam.get("radius") ) + + Rin = float(radii[0]) + Rout = float(radii[-1]) + + return [Rin, Rout] + +def getLoadingFromXML(xmlFilePath): + tree = ElementTree.parse(xmlFilePath) + fsParams = tree.findall('FieldSpecifications/FieldSpecification') + + for fsParam in fsParams: + if ( (fsParam.get('fieldName') == "pressure") & (fsParam.get('initialCondition') != "1") ): + if fsParam.get('setNames') == "{ rneg }": + Pin = float(fsParam.get('scale')) + if fsParam.get('setNames') == "{ rpos }": + Pout = float(fsParam.get('scale')) + + for fsParam in fsParams: + if ( (fsParam.get('fieldName') == "temperature") & (fsParam.get('initialCondition') != "1") ): + if fsParam.get('setNames') == "{ rneg }": + Tin = float(fsParam.get('scale')) + if fsParam.get('setNames') == "{ rpos }": + Tout = float(fsParam.get('scale')) + + tree_SinglePhaseThermalConductivities = tree.findall('Constitutive/SinglePhaseThermalConductivity') + + for tree_SinglePhaseThermalConductivity in tree_SinglePhaseThermalConductivities: + if tree_SinglePhaseThermalConductivity.get('name') == "thermalCond_linear": + thermalConductivity = float( extractDataFromXMLList( tree_SinglePhaseThermalConductivity.get('defaultThermalConductivityComponents') )[0] ) + + tree_SolidInternalEnergies = tree.findall('Constitutive/SolidInternalEnergy') + + for tree_SolidInternalEnergy in tree_SolidInternalEnergies: + if tree_SolidInternalEnergy.get('name') == "rockInternalEnergy_linear": + volumetricHeatCapacity = float( tree_SolidInternalEnergy.get('referenceVolumetricHeatCapacity') ) + + permeability = float( extractDataFromXMLList( tree.find('Constitutive/ConstantPermeability').get('permeabilityComponents') )[0] ) + + porosity = float( tree.find('Constitutive/PressurePorosity').get('defaultReferencePorosity') ) + + fluidViscosity = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('defaultViscosity') ) + + fluidCompressibility = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('compressibility') ) + + fluidThermalExpansionCoefficient = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('thermalExpansionCoeff') ) + + return [Pin, Pout, Tin, Tout, thermalConductivity, volumetricHeatCapacity, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient] + + +def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + + # Parse the command-line arguments + args = parser.parse_args() + + geosDir = args.geosDir + + xmlFilePath = geosDir + "/inputFiles/singlePhaseFlow/thermalCompressible_2d" + + Rin, Rout = getWellboreGeometryFromXML(xmlFilePath+"_benchmark.xml") + + Pin, Pout, Tin, Tout, thermalConductivity, volumetricHeatCapacity, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient = getLoadingFromXML(xmlFilePath+"_base.xml") + + plt.figure(figsize=(10,7)) + font = {'size' : 16} + plt.rc('font', **font) + + for chart_idx, idx in enumerate([1, 2, 5, 10]): + # Numerical results + data = pd.read_csv(f'data_{idx}.csv') + radialCoordinate = (data['elementCenter:0']**2.0 + data['elementCenter:1']**2.0)**0.5 + temperature = data['temperature'] + diffusionTime = data['Time'][0] + + # Analytical results + thermalDiffusionCoefficient = computeThermalDiffusionCoefficient(thermalConductivity, volumetricHeatCapacity) + + T_transient = computeTransientTemperature(Tin, Tout, Rin, radialCoordinate, thermalDiffusionCoefficient, diffusionTime) + + # Analytical results of the steady state regime for comparison + T_steadyState = steadyState(Tin, Tout, Rin, Rout, radialCoordinate) + + # Visualization + # Temperature + plt.subplot(2,2,chart_idx+1) + plt.plot( radialCoordinate, temperature, 'k+' , label='GEOSX' ) + plt.plot( radialCoordinate, T_transient, 'r-' , label='Analytic, infinite domain' ) + plt.plot( radialCoordinate, T_steadyState, 'b-' , label='Steady State' ) + + if chart_idx==1: + plt.legend() + + if chart_idx in [2,3]: + plt.xlabel('Radial distance from well center') + + if chart_idx in [0,2]: + plt.ylabel('Temperature (°C)') + + plt.ylim(-30,110) + plt.xlim(0,1.0) + plt.title('t = '+str(diffusionTime)+'(s)') + plt.tight_layout() + + plt.show() + +if __name__ == "__main__": + main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/radialThermalDiffusionSketch.png b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/radialThermalDiffusionSketch.png similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/radialThermalDiffusionSketch.png rename to src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/linearThermalDiffusion/radialThermalDiffusionSketch.png diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/mccWellbore/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/mccWellbore/Example.rst index 83ad3e0e8ef..352a17cf1c4 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/mccWellbore/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/mccWellbore/Example.rst @@ -115,7 +115,7 @@ Here, Modified Cam-Clay ``ModifiedCamClay`` is used to simulate the elastoplasti The following material parameters should be defined properly to reproduce the analytical example: -.. include:: ../../../../../../../src/coreComponents/schema/docs/ModifiedCamClay.rst +.. include:: /docs/sphinx/datastructure/ModifiedCamClay.rst The constitutive parameters such as the density, the bulk modulus, and the shear modulus are specified in the International System of Units. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_1.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_1.csv deleted file mode 100644 index 9ccebfe447a..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_1.csv +++ /dev/null @@ -1,1002 +0,0 @@ -Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,nan,nan,nan,nan -10000,0.10099,0.0009915,0.05,95.827 -10000,0.10099,0.0009915,0.05,95.827 -10000,0.10099,0.0009915,0.05,95.827 -10000,0.10299,0.0010111,0.05,87.738 -10000,0.10299,0.0010111,0.05,87.738 -10000,0.10499,0.0010308,0.05,80.054 -10000,0.10499,0.0010308,0.05,80.054 -10000,0.10734,0.0010538,0.05,71.614 -10000,0.10734,0.0010538,0.05,71.614 -10000,0.11004,0.0010803,0.05,62.937 -10000,0.11004,0.0010803,0.05,62.937 -10000,0.11004,0.0010803,0.05,62.937 -10000,0.11274,0.0011068,0.05,55.295 -10000,0.11274,0.0011068,0.05,55.295 -10000,0.11274,0.0011068,0.05,55.295 -10000,0.11544,0.0011334,0.05,48.633 -10000,0.11544,0.0011334,0.05,48.633 -10000,0.11814,0.0011599,0.05,42.858 -10000,0.11814,0.0011599,0.05,42.858 -10000,0.11814,0.0011599,0.05,42.858 -10000,0.12084,0.0011864,0.05,37.866 -10000,0.12084,0.0011864,0.05,37.866 -10000,0.12084,0.0011864,0.05,37.866 -10000,0.12354,0.0012129,0.05,33.555 -10000,0.12354,0.0012129,0.05,33.555 -10000,0.12624,0.0012394,0.05,29.826 -10000,0.12624,0.0012394,0.05,29.826 -10000,0.12624,0.0012394,0.05,29.826 -10000,0.12894,0.0012659,0.05,26.597 -10000,0.12894,0.0012659,0.05,26.597 -10000,0.12894,0.0012659,0.05,26.597 -10000,0.13164,0.0012924,0.05,23.791 -10000,0.13164,0.0012924,0.05,23.791 -10000,0.13164,0.0012924,0.05,23.791 -10000,0.1343,0.0013185,0.05,21.382 -10000,0.1343,0.0013185,0.05,21.382 -10000,0.13695,0.0013445,0.05,19.278 -10000,0.13695,0.0013445,0.05,19.278 -10000,0.13695,0.0013445,0.05,19.278 -10000,0.13965,0.001371,0.05,17.394 -10000,0.13965,0.001371,0.05,17.394 -10000,0.13965,0.001371,0.05,17.394 -10000,0.1424,0.0013981,0.05,15.705 -10000,0.1424,0.0013981,0.05,15.705 -10000,0.14521,0.0014256,0.05,14.189 -10000,0.14521,0.0014256,0.05,14.189 -10000,0.14521,0.0014256,0.05,14.189 -10000,0.14807,0.0014538,0.05,12.828 -10000,0.14807,0.0014538,0.05,12.828 -10000,0.14807,0.0014538,0.05,12.828 -10000,0.151,0.0014824,0.05,11.603 -10000,0.151,0.0014824,0.05,11.603 -10000,0.151,0.0014824,0.05,11.603 -10000,0.15397,0.0015117,0.05,10.501 -10000,0.15397,0.0015117,0.05,10.501 -10000,0.15397,0.0015117,0.05,10.501 -10000,0.15701,0.0015415,0.05,9.5061 -10000,0.15701,0.0015415,0.05,9.5061 -10000,0.15701,0.0015415,0.05,9.5061 -10000,0.16011,0.0015719,0.05,8.6085 -10000,0.16011,0.0015719,0.05,8.6085 -10000,0.16011,0.0015719,0.05,8.6085 -10000,0.16327,0.001603,0.05,7.7972 -10000,0.16327,0.001603,0.05,7.7972 -10000,0.16327,0.001603,0.05,7.7972 -10000,0.16649,0.0016346,0.05,7.0632 -10000,0.16649,0.0016346,0.05,7.0632 -10000,0.16649,0.0016346,0.05,7.0632 -10000,0.16649,0.0016346,0.05,7.0632 -10000,0.16978,0.0016669,0.05,6.3983 -10000,0.16978,0.0016669,0.05,6.3983 -10000,0.16978,0.0016669,0.05,6.3983 -10000,0.17313,0.0016998,0.05,5.7955 -10000,0.17313,0.0016998,0.05,5.7955 -10000,0.17313,0.0016998,0.05,5.7955 -10000,0.17655,0.0017333,0.05,5.2484 -10000,0.17655,0.0017333,0.05,5.2484 -10000,0.17655,0.0017333,0.05,5.2484 -10000,0.17655,0.0017333,0.05,5.2484 -10000,0.18004,0.0017676,0.05,4.7516 -10000,0.18004,0.0017676,0.05,4.7516 -10000,0.18004,0.0017676,0.05,4.7516 -10000,0.18359,0.0018025,0.05,4.3001 -10000,0.18359,0.0018025,0.05,4.3001 -10000,0.18359,0.0018025,0.05,4.3001 -10000,0.18359,0.0018025,0.05,4.3001 -10000,0.18722,0.001838,0.05,3.8894 -10000,0.18722,0.001838,0.05,3.8894 -10000,0.18722,0.001838,0.05,3.8894 -10000,0.18722,0.001838,0.05,3.8894 -10000,0.19091,0.0018743,0.05,3.5157 -10000,0.19091,0.0018743,0.05,3.5157 -10000,0.19091,0.0018743,0.05,3.5157 -10000,0.19468,0.0019114,0.05,3.1756 -10000,0.19468,0.0019114,0.05,3.1756 -10000,0.19468,0.0019114,0.05,3.1756 -10000,0.19468,0.0019114,0.05,3.1756 -10000,0.19853,0.0019491,0.05,2.8658 -10000,0.19853,0.0019491,0.05,2.8658 -10000,0.19853,0.0019491,0.05,2.8658 -10000,0.19853,0.0019491,0.05,2.8658 -10000,0.20245,0.0019876,0.05,2.5837 -10000,0.20245,0.0019876,0.05,2.5837 -10000,0.20245,0.0019876,0.05,2.5837 -10000,0.20245,0.0019876,0.05,2.5837 -10000,0.20645,0.0020269,0.05,2.3268 -10000,0.20645,0.0020269,0.05,2.3268 -10000,0.20645,0.0020269,0.05,2.3268 -10000,0.20645,0.0020269,0.05,2.3268 -10000,0.21053,0.0020669,0.05,2.0928 -10000,0.21053,0.0020669,0.05,2.0928 -10000,0.21053,0.0020669,0.05,2.0928 -10000,0.21053,0.0020669,0.05,2.0928 -10000,0.21469,0.0021078,0.05,1.8798 -10000,0.21469,0.0021078,0.05,1.8798 -10000,0.21469,0.0021078,0.05,1.8798 -10000,0.21469,0.0021078,0.05,1.8798 -10000,0.21893,0.0021494,0.05,1.6859 -10000,0.21893,0.0021494,0.05,1.6859 -10000,0.21893,0.0021494,0.05,1.6859 -10000,0.21893,0.0021494,0.05,1.6859 -10000,0.21893,0.0021494,0.05,1.6859 -10000,0.22326,0.0021919,0.05,1.5095 -10000,0.22326,0.0021919,0.05,1.5095 -10000,0.22326,0.0021919,0.05,1.5095 -10000,0.22326,0.0021919,0.05,1.5095 -10000,0.22767,0.0022352,0.05,1.3492 -10000,0.22767,0.0022352,0.05,1.3492 -10000,0.22767,0.0022352,0.05,1.3492 -10000,0.22767,0.0022352,0.05,1.3492 -10000,0.23217,0.0022794,0.05,1.2036 -10000,0.23217,0.0022794,0.05,1.2036 -10000,0.23217,0.0022794,0.05,1.2036 -10000,0.23217,0.0022794,0.05,1.2036 -10000,0.23217,0.0022794,0.05,1.2036 -10000,0.23676,0.0023244,0.05,1.0714 -10000,0.23676,0.0023244,0.05,1.0714 -10000,0.23676,0.0023244,0.05,1.0714 -10000,0.23676,0.0023244,0.05,1.0714 -10000,0.23676,0.0023244,0.05,1.0714 -10000,0.24144,0.0023704,0.05,0.95166 -10000,0.24144,0.0023704,0.05,0.95166 -10000,0.24144,0.0023704,0.05,0.95166 -10000,0.24144,0.0023704,0.05,0.95166 -10000,0.24621,0.0024172,0.05,0.84329 -10000,0.24621,0.0024172,0.05,0.84329 -10000,0.24621,0.0024172,0.05,0.84329 -10000,0.24621,0.0024172,0.05,0.84329 -10000,0.24621,0.0024172,0.05,0.84329 -10000,0.25108,0.002465,0.05,0.74536 -10000,0.25108,0.002465,0.05,0.74536 -10000,0.25108,0.002465,0.05,0.74536 -10000,0.25108,0.002465,0.05,0.74536 -10000,0.25108,0.002465,0.05,0.74536 -10000,0.25604,0.0025137,0.05,0.65703 -10000,0.25604,0.0025137,0.05,0.65703 -10000,0.25604,0.0025137,0.05,0.65703 -10000,0.25604,0.0025137,0.05,0.65703 -10000,0.25604,0.0025137,0.05,0.65703 -10000,0.2611,0.0025634,0.05,0.57751 -10000,0.2611,0.0025634,0.05,0.57751 -10000,0.2611,0.0025634,0.05,0.57751 -10000,0.2611,0.0025634,0.05,0.57751 -10000,0.2611,0.0025634,0.05,0.57751 -10000,0.26626,0.0026141,0.05,0.50608 -10000,0.26626,0.0026141,0.05,0.50608 -10000,0.26626,0.0026141,0.05,0.50608 -10000,0.26626,0.0026141,0.05,0.50608 -10000,0.26626,0.0026141,0.05,0.50608 -10000,0.27153,0.0026658,0.05,0.44207 -10000,0.27153,0.0026658,0.05,0.44207 -10000,0.27153,0.0026658,0.05,0.44207 -10000,0.27153,0.0026658,0.05,0.44207 -10000,0.27153,0.0026658,0.05,0.44207 -10000,0.27153,0.0026658,0.05,0.44207 -10000,0.2769,0.0027185,0.05,0.38486 -10000,0.2769,0.0027185,0.05,0.38486 -10000,0.2769,0.0027185,0.05,0.38486 -10000,0.2769,0.0027185,0.05,0.38486 -10000,0.2769,0.0027185,0.05,0.38486 -10000,0.28237,0.0027723,0.05,0.33387 -10000,0.28237,0.0027723,0.05,0.33387 -10000,0.28237,0.0027723,0.05,0.33387 -10000,0.28237,0.0027723,0.05,0.33387 -10000,0.28237,0.0027723,0.05,0.33387 -10000,0.28237,0.0027723,0.05,0.33387 -10000,0.28796,0.0028271,0.05,0.28855 -10000,0.28796,0.0028271,0.05,0.28855 -10000,0.28796,0.0028271,0.05,0.28855 -10000,0.28796,0.0028271,0.05,0.28855 -10000,0.28796,0.0028271,0.05,0.28855 -10000,0.29365,0.002883,0.05,0.24842 -10000,0.29365,0.002883,0.05,0.24842 -10000,0.29365,0.002883,0.05,0.24842 -10000,0.29365,0.002883,0.05,0.24842 -10000,0.29365,0.002883,0.05,0.24842 -10000,0.29365,0.002883,0.05,0.24842 -10000,0.29946,0.00294,0.05,0.213 -10000,0.29946,0.00294,0.05,0.213 -10000,0.29946,0.00294,0.05,0.213 -10000,0.29946,0.00294,0.05,0.213 -10000,0.29946,0.00294,0.05,0.213 -10000,0.29946,0.00294,0.05,0.213 -10000,0.30538,0.0029982,0.05,0.18186 -10000,0.30538,0.0029982,0.05,0.18186 -10000,0.30538,0.0029982,0.05,0.18186 -10000,0.30538,0.0029982,0.05,0.18186 -10000,0.30538,0.0029982,0.05,0.18186 -10000,0.30538,0.0029982,0.05,0.18186 -10000,0.31142,0.0030575,0.05,0.15458 -10000,0.31142,0.0030575,0.05,0.15458 -10000,0.31142,0.0030575,0.05,0.15458 -10000,0.31142,0.0030575,0.05,0.15458 -10000,0.31142,0.0030575,0.05,0.15458 -10000,0.31142,0.0030575,0.05,0.15458 -10000,0.31758,0.003118,0.05,0.13079 -10000,0.31758,0.003118,0.05,0.13079 -10000,0.31758,0.003118,0.05,0.13079 -10000,0.31758,0.003118,0.05,0.13079 -10000,0.31758,0.003118,0.05,0.13079 -10000,0.31758,0.003118,0.05,0.13079 -10000,0.32386,0.0031796,0.05,0.11012 -10000,0.32386,0.0031796,0.05,0.11012 -10000,0.32386,0.0031796,0.05,0.11012 -10000,0.32386,0.0031796,0.05,0.11012 -10000,0.32386,0.0031796,0.05,0.11012 -10000,0.32386,0.0031796,0.05,0.11012 -10000,0.32386,0.0031796,0.05,0.11012 -10000,0.33027,0.0032425,0.05,0.092267 -10000,0.33027,0.0032425,0.05,0.092267 -10000,0.33027,0.0032425,0.05,0.092267 -10000,0.33027,0.0032425,0.05,0.092267 -10000,0.33027,0.0032425,0.05,0.092267 -10000,0.33027,0.0032425,0.05,0.092267 -10000,0.3368,0.0033067,0.05,0.076906 -10000,0.3368,0.0033067,0.05,0.076906 -10000,0.3368,0.0033067,0.05,0.076906 -10000,0.3368,0.0033067,0.05,0.076906 -10000,0.3368,0.0033067,0.05,0.076906 -10000,0.3368,0.0033067,0.05,0.076906 -10000,0.3368,0.0033067,0.05,0.076906 -10000,0.34347,0.0033721,0.05,0.06376 -10000,0.34347,0.0033721,0.05,0.06376 -10000,0.34347,0.0033721,0.05,0.06376 -10000,0.34347,0.0033721,0.05,0.06376 -10000,0.34347,0.0033721,0.05,0.06376 -10000,0.34347,0.0033721,0.05,0.06376 -10000,0.35026,0.0034388,0.05,0.05257 -10000,0.35026,0.0034388,0.05,0.05257 -10000,0.35026,0.0034388,0.05,0.05257 -10000,0.35026,0.0034388,0.05,0.05257 -10000,0.35026,0.0034388,0.05,0.05257 -10000,0.35026,0.0034388,0.05,0.05257 -10000,0.35026,0.0034388,0.05,0.05257 -10000,0.35719,0.0035069,0.05,0.043097 -10000,0.35719,0.0035069,0.05,0.043097 -10000,0.35719,0.0035069,0.05,0.043097 -10000,0.35719,0.0035069,0.05,0.043097 -10000,0.35719,0.0035069,0.05,0.043097 -10000,0.35719,0.0035069,0.05,0.043097 -10000,0.35719,0.0035069,0.05,0.043097 -10000,0.36426,0.0035762,0.05,0.035123 -10000,0.36426,0.0035762,0.05,0.035123 -10000,0.36426,0.0035762,0.05,0.035123 -10000,0.36426,0.0035762,0.05,0.035123 -10000,0.36426,0.0035762,0.05,0.035123 -10000,0.36426,0.0035762,0.05,0.035123 -10000,0.36426,0.0035762,0.05,0.035123 -10000,0.37147,0.003647,0.05,0.028451 -10000,0.37147,0.003647,0.05,0.028451 -10000,0.37147,0.003647,0.05,0.028451 -10000,0.37147,0.003647,0.05,0.028451 -10000,0.37147,0.003647,0.05,0.028451 -10000,0.37147,0.003647,0.05,0.028451 -10000,0.37147,0.003647,0.05,0.028451 -10000,0.37147,0.003647,0.05,0.028451 -10000,0.37882,0.0037192,0.05,0.022902 -10000,0.37882,0.0037192,0.05,0.022902 -10000,0.37882,0.0037192,0.05,0.022902 -10000,0.37882,0.0037192,0.05,0.022902 -10000,0.37882,0.0037192,0.05,0.022902 -10000,0.37882,0.0037192,0.05,0.022902 -10000,0.37882,0.0037192,0.05,0.022902 -10000,0.38632,0.0037928,0.05,0.018318 -10000,0.38632,0.0037928,0.05,0.018318 -10000,0.38632,0.0037928,0.05,0.018318 -10000,0.38632,0.0037928,0.05,0.018318 -10000,0.38632,0.0037928,0.05,0.018318 -10000,0.38632,0.0037928,0.05,0.018318 -10000,0.38632,0.0037928,0.05,0.018318 -10000,0.38632,0.0037928,0.05,0.018318 -10000,0.39396,0.0038678,0.05,0.014554 -10000,0.39396,0.0038678,0.05,0.014554 -10000,0.39396,0.0038678,0.05,0.014554 -10000,0.39396,0.0038678,0.05,0.014554 -10000,0.39396,0.0038678,0.05,0.014554 -10000,0.39396,0.0038678,0.05,0.014554 -10000,0.39396,0.0038678,0.05,0.014554 -10000,0.40176,0.0039444,0.05,0.011486 -10000,0.40176,0.0039444,0.05,0.011486 -10000,0.40176,0.0039444,0.05,0.011486 -10000,0.40176,0.0039444,0.05,0.011486 -10000,0.40176,0.0039444,0.05,0.011486 -10000,0.40176,0.0039444,0.05,0.011486 -10000,0.40176,0.0039444,0.05,0.011486 -10000,0.40176,0.0039444,0.05,0.011486 -10000,0.40971,0.0040224,0.05,0.009001 -10000,0.40971,0.0040224,0.05,0.009001 -10000,0.40971,0.0040224,0.05,0.009001 -10000,0.40971,0.0040224,0.05,0.009001 -10000,0.40971,0.0040224,0.05,0.009001 -10000,0.40971,0.0040224,0.05,0.009001 -10000,0.40971,0.0040224,0.05,0.009001 -10000,0.40971,0.0040224,0.05,0.009001 -10000,0.41782,0.004102,0.05,0.0070035 -10000,0.41782,0.004102,0.05,0.0070035 -10000,0.41782,0.004102,0.05,0.0070035 -10000,0.41782,0.004102,0.05,0.0070035 -10000,0.41782,0.004102,0.05,0.0070035 -10000,0.41782,0.004102,0.05,0.0070035 -10000,0.41782,0.004102,0.05,0.0070035 -10000,0.41782,0.004102,0.05,0.0070035 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.42609,0.0041832,0.05,0.0054095 -10000,0.43452,0.004266,0.05,0.004147 -10000,0.43452,0.004266,0.05,0.004147 -10000,0.43452,0.004266,0.05,0.004147 -10000,0.43452,0.004266,0.05,0.004147 -10000,0.43452,0.004266,0.05,0.004147 -10000,0.43452,0.004266,0.05,0.004147 -10000,0.43452,0.004266,0.05,0.004147 -10000,0.43452,0.004266,0.05,0.004147 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.44312,0.0043505,0.05,0.0031547 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.45189,0.0044366,0.05,0.0023811 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46084,0.0045244,0.05,0.0017827 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.46996,0.004614,0.05,0.0013237 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.47926,0.0047053,0.05,0.00097467 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.48875,0.0047985,0.05,0.00071149 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.49843,0.0048935,0.05,0.00051482 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.5083,0.0049903,0.05,0.00036917 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.51836,0.0050891,0.05,0.00026231 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.52862,0.0051899,0.05,0.00018463 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.53909,0.0052927,0.05,0.00012872 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.54976,0.0053975,0.05,8.8861e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.56065,0.0055043,0.05,6.0736e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.57175,0.0056133,0.05,4.1091e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.58307,0.0057245,0.05,2.7512e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.59462,0.0058378,0.05,1.8226e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.60639,0.0059535,0.05,1.1944e-05 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.6184,0.0060714,0.05,7.7407e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.63065,0.0061916,0.05,4.9605e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.64314,0.0063142,0.05,3.1424e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.65588,0.0064393,0.05,1.9674e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.66887,0.0065668,0.05,1.2171e-06 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.68211,0.0066969,0.05,7.4374e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.69562,0.0068295,0.05,4.4882e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.7094,0.0069648,0.05,2.6739e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.72345,0.0071027,0.05,1.5721e-07 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.73778,0.0072434,0.05,9.117e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7524,0.0073869,0.05,5.2122e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7673,0.0075332,0.05,2.935e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.7825,0.0076824,0.05,1.6256e-08 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.798,0.0078346,0.05,8.8364e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.81381,0.0079898,0.05,4.6971e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.82993,0.0081481,0.05,2.4256e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.84637,0.0083095,0.05,1.2022e-09 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.86314,0.0084741,0.05,5.5787e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.88024,0.008642,0.05,2.2863e-10 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.89767,0.0088132,0.05,6.8108e-11 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.91546,0.0089878,0.05,-3.5322e-12 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.93359,0.0091658,0.05,-2.9158e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.95209,0.0093474,0.05,-3.1439e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.97095,0.0095326,0.05,-2.2242e-11 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 -10000,0.99019,0.0097215,0.05,-7.8581e-12 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_10.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_10.csv deleted file mode 100644 index 6bd17f57f37..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_10.csv +++ /dev/null @@ -1,1002 +0,0 @@ -Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,nan,nan,nan,nan -1e+05,0.10099,0.0009915,0.05,98.477 -1e+05,0.10099,0.0009915,0.05,98.477 -1e+05,0.10099,0.0009915,0.05,98.477 -1e+05,0.10299,0.0010111,0.05,95.492 -1e+05,0.10299,0.0010111,0.05,95.492 -1e+05,0.10499,0.0010308,0.05,92.573 -1e+05,0.10499,0.0010308,0.05,92.573 -1e+05,0.10734,0.0010538,0.05,89.221 -1e+05,0.10734,0.0010538,0.05,89.221 -1e+05,0.11004,0.0010803,0.05,85.495 -1e+05,0.11004,0.0010803,0.05,85.495 -1e+05,0.11004,0.0010803,0.05,85.495 -1e+05,0.11274,0.0011068,0.05,81.898 -1e+05,0.11274,0.0011068,0.05,81.898 -1e+05,0.11274,0.0011068,0.05,81.898 -1e+05,0.11544,0.0011334,0.05,78.431 -1e+05,0.11544,0.0011334,0.05,78.431 -1e+05,0.11814,0.0011599,0.05,75.096 -1e+05,0.11814,0.0011599,0.05,75.096 -1e+05,0.11814,0.0011599,0.05,75.096 -1e+05,0.12084,0.0011864,0.05,71.891 -1e+05,0.12084,0.0011864,0.05,71.891 -1e+05,0.12084,0.0011864,0.05,71.891 -1e+05,0.12354,0.0012129,0.05,68.816 -1e+05,0.12354,0.0012129,0.05,68.816 -1e+05,0.12624,0.0012394,0.05,65.869 -1e+05,0.12624,0.0012394,0.05,65.869 -1e+05,0.12624,0.0012394,0.05,65.869 -1e+05,0.12894,0.0012659,0.05,63.049 -1e+05,0.12894,0.0012659,0.05,63.049 -1e+05,0.12894,0.0012659,0.05,63.049 -1e+05,0.13164,0.0012924,0.05,60.352 -1e+05,0.13164,0.0012924,0.05,60.352 -1e+05,0.13164,0.0012924,0.05,60.352 -1e+05,0.1343,0.0013185,0.05,57.811 -1e+05,0.1343,0.0013185,0.05,57.811 -1e+05,0.13695,0.0013445,0.05,55.394 -1e+05,0.13695,0.0013445,0.05,55.394 -1e+05,0.13695,0.0013445,0.05,55.394 -1e+05,0.13965,0.001371,0.05,53.041 -1e+05,0.13965,0.001371,0.05,53.041 -1e+05,0.13965,0.001371,0.05,53.041 -1e+05,0.1424,0.0013981,0.05,50.753 -1e+05,0.1424,0.0013981,0.05,50.753 -1e+05,0.14521,0.0014256,0.05,48.531 -1e+05,0.14521,0.0014256,0.05,48.531 -1e+05,0.14521,0.0014256,0.05,48.531 -1e+05,0.14807,0.0014538,0.05,46.377 -1e+05,0.14807,0.0014538,0.05,46.377 -1e+05,0.14807,0.0014538,0.05,46.377 -1e+05,0.151,0.0014824,0.05,44.292 -1e+05,0.151,0.0014824,0.05,44.292 -1e+05,0.151,0.0014824,0.05,44.292 -1e+05,0.15397,0.0015117,0.05,42.275 -1e+05,0.15397,0.0015117,0.05,42.275 -1e+05,0.15397,0.0015117,0.05,42.275 -1e+05,0.15701,0.0015415,0.05,40.326 -1e+05,0.15701,0.0015415,0.05,40.326 -1e+05,0.15701,0.0015415,0.05,40.326 -1e+05,0.16011,0.0015719,0.05,38.446 -1e+05,0.16011,0.0015719,0.05,38.446 -1e+05,0.16011,0.0015719,0.05,38.446 -1e+05,0.16327,0.001603,0.05,36.635 -1e+05,0.16327,0.001603,0.05,36.635 -1e+05,0.16327,0.001603,0.05,36.635 -1e+05,0.16649,0.0016346,0.05,34.89 -1e+05,0.16649,0.0016346,0.05,34.89 -1e+05,0.16649,0.0016346,0.05,34.89 -1e+05,0.16649,0.0016346,0.05,34.89 -1e+05,0.16978,0.0016669,0.05,33.212 -1e+05,0.16978,0.0016669,0.05,33.212 -1e+05,0.16978,0.0016669,0.05,33.212 -1e+05,0.17313,0.0016998,0.05,31.6 -1e+05,0.17313,0.0016998,0.05,31.6 -1e+05,0.17313,0.0016998,0.05,31.6 -1e+05,0.17655,0.0017333,0.05,30.052 -1e+05,0.17655,0.0017333,0.05,30.052 -1e+05,0.17655,0.0017333,0.05,30.052 -1e+05,0.17655,0.0017333,0.05,30.052 -1e+05,0.18004,0.0017676,0.05,28.568 -1e+05,0.18004,0.0017676,0.05,28.568 -1e+05,0.18004,0.0017676,0.05,28.568 -1e+05,0.18359,0.0018025,0.05,27.145 -1e+05,0.18359,0.0018025,0.05,27.145 -1e+05,0.18359,0.0018025,0.05,27.145 -1e+05,0.18359,0.0018025,0.05,27.145 -1e+05,0.18722,0.001838,0.05,25.782 -1e+05,0.18722,0.001838,0.05,25.782 -1e+05,0.18722,0.001838,0.05,25.782 -1e+05,0.18722,0.001838,0.05,25.782 -1e+05,0.19091,0.0018743,0.05,24.477 -1e+05,0.19091,0.0018743,0.05,24.477 -1e+05,0.19091,0.0018743,0.05,24.477 -1e+05,0.19468,0.0019114,0.05,23.23 -1e+05,0.19468,0.0019114,0.05,23.23 -1e+05,0.19468,0.0019114,0.05,23.23 -1e+05,0.19468,0.0019114,0.05,23.23 -1e+05,0.19853,0.0019491,0.05,22.037 -1e+05,0.19853,0.0019491,0.05,22.037 -1e+05,0.19853,0.0019491,0.05,22.037 -1e+05,0.19853,0.0019491,0.05,22.037 -1e+05,0.20245,0.0019876,0.05,20.898 -1e+05,0.20245,0.0019876,0.05,20.898 -1e+05,0.20245,0.0019876,0.05,20.898 -1e+05,0.20245,0.0019876,0.05,20.898 -1e+05,0.20645,0.0020269,0.05,19.811 -1e+05,0.20645,0.0020269,0.05,19.811 -1e+05,0.20645,0.0020269,0.05,19.811 -1e+05,0.20645,0.0020269,0.05,19.811 -1e+05,0.21053,0.0020669,0.05,18.773 -1e+05,0.21053,0.0020669,0.05,18.773 -1e+05,0.21053,0.0020669,0.05,18.773 -1e+05,0.21053,0.0020669,0.05,18.773 -1e+05,0.21469,0.0021078,0.05,17.784 -1e+05,0.21469,0.0021078,0.05,17.784 -1e+05,0.21469,0.0021078,0.05,17.784 -1e+05,0.21469,0.0021078,0.05,17.784 -1e+05,0.21893,0.0021494,0.05,16.84 -1e+05,0.21893,0.0021494,0.05,16.84 -1e+05,0.21893,0.0021494,0.05,16.84 -1e+05,0.21893,0.0021494,0.05,16.84 -1e+05,0.21893,0.0021494,0.05,16.84 -1e+05,0.22326,0.0021919,0.05,15.941 -1e+05,0.22326,0.0021919,0.05,15.941 -1e+05,0.22326,0.0021919,0.05,15.941 -1e+05,0.22326,0.0021919,0.05,15.941 -1e+05,0.22767,0.0022352,0.05,15.085 -1e+05,0.22767,0.0022352,0.05,15.085 -1e+05,0.22767,0.0022352,0.05,15.085 -1e+05,0.22767,0.0022352,0.05,15.085 -1e+05,0.23217,0.0022794,0.05,14.27 -1e+05,0.23217,0.0022794,0.05,14.27 -1e+05,0.23217,0.0022794,0.05,14.27 -1e+05,0.23217,0.0022794,0.05,14.27 -1e+05,0.23217,0.0022794,0.05,14.27 -1e+05,0.23676,0.0023244,0.05,13.494 -1e+05,0.23676,0.0023244,0.05,13.494 -1e+05,0.23676,0.0023244,0.05,13.494 -1e+05,0.23676,0.0023244,0.05,13.494 -1e+05,0.23676,0.0023244,0.05,13.494 -1e+05,0.24144,0.0023704,0.05,12.756 -1e+05,0.24144,0.0023704,0.05,12.756 -1e+05,0.24144,0.0023704,0.05,12.756 -1e+05,0.24144,0.0023704,0.05,12.756 -1e+05,0.24621,0.0024172,0.05,12.054 -1e+05,0.24621,0.0024172,0.05,12.054 -1e+05,0.24621,0.0024172,0.05,12.054 -1e+05,0.24621,0.0024172,0.05,12.054 -1e+05,0.24621,0.0024172,0.05,12.054 -1e+05,0.25108,0.002465,0.05,11.386 -1e+05,0.25108,0.002465,0.05,11.386 -1e+05,0.25108,0.002465,0.05,11.386 -1e+05,0.25108,0.002465,0.05,11.386 -1e+05,0.25108,0.002465,0.05,11.386 -1e+05,0.25604,0.0025137,0.05,10.752 -1e+05,0.25604,0.0025137,0.05,10.752 -1e+05,0.25604,0.0025137,0.05,10.752 -1e+05,0.25604,0.0025137,0.05,10.752 -1e+05,0.25604,0.0025137,0.05,10.752 -1e+05,0.2611,0.0025634,0.05,10.148 -1e+05,0.2611,0.0025634,0.05,10.148 -1e+05,0.2611,0.0025634,0.05,10.148 -1e+05,0.2611,0.0025634,0.05,10.148 -1e+05,0.2611,0.0025634,0.05,10.148 -1e+05,0.26626,0.0026141,0.05,9.5755 -1e+05,0.26626,0.0026141,0.05,9.5755 -1e+05,0.26626,0.0026141,0.05,9.5755 -1e+05,0.26626,0.0026141,0.05,9.5755 -1e+05,0.26626,0.0026141,0.05,9.5755 -1e+05,0.27153,0.0026658,0.05,9.0312 -1e+05,0.27153,0.0026658,0.05,9.0312 -1e+05,0.27153,0.0026658,0.05,9.0312 -1e+05,0.27153,0.0026658,0.05,9.0312 -1e+05,0.27153,0.0026658,0.05,9.0312 -1e+05,0.27153,0.0026658,0.05,9.0312 -1e+05,0.2769,0.0027185,0.05,8.5143 -1e+05,0.2769,0.0027185,0.05,8.5143 -1e+05,0.2769,0.0027185,0.05,8.5143 -1e+05,0.2769,0.0027185,0.05,8.5143 -1e+05,0.2769,0.0027185,0.05,8.5143 -1e+05,0.28237,0.0027723,0.05,8.0236 -1e+05,0.28237,0.0027723,0.05,8.0236 -1e+05,0.28237,0.0027723,0.05,8.0236 -1e+05,0.28237,0.0027723,0.05,8.0236 -1e+05,0.28237,0.0027723,0.05,8.0236 -1e+05,0.28237,0.0027723,0.05,8.0236 -1e+05,0.28796,0.0028271,0.05,7.5579 -1e+05,0.28796,0.0028271,0.05,7.5579 -1e+05,0.28796,0.0028271,0.05,7.5579 -1e+05,0.28796,0.0028271,0.05,7.5579 -1e+05,0.28796,0.0028271,0.05,7.5579 -1e+05,0.29365,0.002883,0.05,7.1159 -1e+05,0.29365,0.002883,0.05,7.1159 -1e+05,0.29365,0.002883,0.05,7.1159 -1e+05,0.29365,0.002883,0.05,7.1159 -1e+05,0.29365,0.002883,0.05,7.1159 -1e+05,0.29365,0.002883,0.05,7.1159 -1e+05,0.29946,0.00294,0.05,6.6965 -1e+05,0.29946,0.00294,0.05,6.6965 -1e+05,0.29946,0.00294,0.05,6.6965 -1e+05,0.29946,0.00294,0.05,6.6965 -1e+05,0.29946,0.00294,0.05,6.6965 -1e+05,0.29946,0.00294,0.05,6.6965 -1e+05,0.30538,0.0029982,0.05,6.2987 -1e+05,0.30538,0.0029982,0.05,6.2987 -1e+05,0.30538,0.0029982,0.05,6.2987 -1e+05,0.30538,0.0029982,0.05,6.2987 -1e+05,0.30538,0.0029982,0.05,6.2987 -1e+05,0.30538,0.0029982,0.05,6.2987 -1e+05,0.31142,0.0030575,0.05,5.9215 -1e+05,0.31142,0.0030575,0.05,5.9215 -1e+05,0.31142,0.0030575,0.05,5.9215 -1e+05,0.31142,0.0030575,0.05,5.9215 -1e+05,0.31142,0.0030575,0.05,5.9215 -1e+05,0.31142,0.0030575,0.05,5.9215 -1e+05,0.31758,0.003118,0.05,5.5639 -1e+05,0.31758,0.003118,0.05,5.5639 -1e+05,0.31758,0.003118,0.05,5.5639 -1e+05,0.31758,0.003118,0.05,5.5639 -1e+05,0.31758,0.003118,0.05,5.5639 -1e+05,0.31758,0.003118,0.05,5.5639 -1e+05,0.32386,0.0031796,0.05,5.2249 -1e+05,0.32386,0.0031796,0.05,5.2249 -1e+05,0.32386,0.0031796,0.05,5.2249 -1e+05,0.32386,0.0031796,0.05,5.2249 -1e+05,0.32386,0.0031796,0.05,5.2249 -1e+05,0.32386,0.0031796,0.05,5.2249 -1e+05,0.32386,0.0031796,0.05,5.2249 -1e+05,0.33027,0.0032425,0.05,4.9037 -1e+05,0.33027,0.0032425,0.05,4.9037 -1e+05,0.33027,0.0032425,0.05,4.9037 -1e+05,0.33027,0.0032425,0.05,4.9037 -1e+05,0.33027,0.0032425,0.05,4.9037 -1e+05,0.33027,0.0032425,0.05,4.9037 -1e+05,0.3368,0.0033067,0.05,4.5994 -1e+05,0.3368,0.0033067,0.05,4.5994 -1e+05,0.3368,0.0033067,0.05,4.5994 -1e+05,0.3368,0.0033067,0.05,4.5994 -1e+05,0.3368,0.0033067,0.05,4.5994 -1e+05,0.3368,0.0033067,0.05,4.5994 -1e+05,0.3368,0.0033067,0.05,4.5994 -1e+05,0.34347,0.0033721,0.05,4.3111 -1e+05,0.34347,0.0033721,0.05,4.3111 -1e+05,0.34347,0.0033721,0.05,4.3111 -1e+05,0.34347,0.0033721,0.05,4.3111 -1e+05,0.34347,0.0033721,0.05,4.3111 -1e+05,0.34347,0.0033721,0.05,4.3111 -1e+05,0.35026,0.0034388,0.05,4.0382 -1e+05,0.35026,0.0034388,0.05,4.0382 -1e+05,0.35026,0.0034388,0.05,4.0382 -1e+05,0.35026,0.0034388,0.05,4.0382 -1e+05,0.35026,0.0034388,0.05,4.0382 -1e+05,0.35026,0.0034388,0.05,4.0382 -1e+05,0.35026,0.0034388,0.05,4.0382 -1e+05,0.35719,0.0035069,0.05,3.7798 -1e+05,0.35719,0.0035069,0.05,3.7798 -1e+05,0.35719,0.0035069,0.05,3.7798 -1e+05,0.35719,0.0035069,0.05,3.7798 -1e+05,0.35719,0.0035069,0.05,3.7798 -1e+05,0.35719,0.0035069,0.05,3.7798 -1e+05,0.35719,0.0035069,0.05,3.7798 -1e+05,0.36426,0.0035762,0.05,3.5354 -1e+05,0.36426,0.0035762,0.05,3.5354 -1e+05,0.36426,0.0035762,0.05,3.5354 -1e+05,0.36426,0.0035762,0.05,3.5354 -1e+05,0.36426,0.0035762,0.05,3.5354 -1e+05,0.36426,0.0035762,0.05,3.5354 -1e+05,0.36426,0.0035762,0.05,3.5354 -1e+05,0.37147,0.003647,0.05,3.3041 -1e+05,0.37147,0.003647,0.05,3.3041 -1e+05,0.37147,0.003647,0.05,3.3041 -1e+05,0.37147,0.003647,0.05,3.3041 -1e+05,0.37147,0.003647,0.05,3.3041 -1e+05,0.37147,0.003647,0.05,3.3041 -1e+05,0.37147,0.003647,0.05,3.3041 -1e+05,0.37147,0.003647,0.05,3.3041 -1e+05,0.37882,0.0037192,0.05,3.0854 -1e+05,0.37882,0.0037192,0.05,3.0854 -1e+05,0.37882,0.0037192,0.05,3.0854 -1e+05,0.37882,0.0037192,0.05,3.0854 -1e+05,0.37882,0.0037192,0.05,3.0854 -1e+05,0.37882,0.0037192,0.05,3.0854 -1e+05,0.37882,0.0037192,0.05,3.0854 -1e+05,0.38632,0.0037928,0.05,2.8787 -1e+05,0.38632,0.0037928,0.05,2.8787 -1e+05,0.38632,0.0037928,0.05,2.8787 -1e+05,0.38632,0.0037928,0.05,2.8787 -1e+05,0.38632,0.0037928,0.05,2.8787 -1e+05,0.38632,0.0037928,0.05,2.8787 -1e+05,0.38632,0.0037928,0.05,2.8787 -1e+05,0.38632,0.0037928,0.05,2.8787 -1e+05,0.39396,0.0038678,0.05,2.6834 -1e+05,0.39396,0.0038678,0.05,2.6834 -1e+05,0.39396,0.0038678,0.05,2.6834 -1e+05,0.39396,0.0038678,0.05,2.6834 -1e+05,0.39396,0.0038678,0.05,2.6834 -1e+05,0.39396,0.0038678,0.05,2.6834 -1e+05,0.39396,0.0038678,0.05,2.6834 -1e+05,0.40176,0.0039444,0.05,2.499 -1e+05,0.40176,0.0039444,0.05,2.499 -1e+05,0.40176,0.0039444,0.05,2.499 -1e+05,0.40176,0.0039444,0.05,2.499 -1e+05,0.40176,0.0039444,0.05,2.499 -1e+05,0.40176,0.0039444,0.05,2.499 -1e+05,0.40176,0.0039444,0.05,2.499 -1e+05,0.40176,0.0039444,0.05,2.499 -1e+05,0.40971,0.0040224,0.05,2.3249 -1e+05,0.40971,0.0040224,0.05,2.3249 -1e+05,0.40971,0.0040224,0.05,2.3249 -1e+05,0.40971,0.0040224,0.05,2.3249 -1e+05,0.40971,0.0040224,0.05,2.3249 -1e+05,0.40971,0.0040224,0.05,2.3249 -1e+05,0.40971,0.0040224,0.05,2.3249 -1e+05,0.40971,0.0040224,0.05,2.3249 -1e+05,0.41782,0.004102,0.05,2.1607 -1e+05,0.41782,0.004102,0.05,2.1607 -1e+05,0.41782,0.004102,0.05,2.1607 -1e+05,0.41782,0.004102,0.05,2.1607 -1e+05,0.41782,0.004102,0.05,2.1607 -1e+05,0.41782,0.004102,0.05,2.1607 -1e+05,0.41782,0.004102,0.05,2.1607 -1e+05,0.41782,0.004102,0.05,2.1607 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.42609,0.0041832,0.05,2.0058 -1e+05,0.43452,0.004266,0.05,1.8599 -1e+05,0.43452,0.004266,0.05,1.8599 -1e+05,0.43452,0.004266,0.05,1.8599 -1e+05,0.43452,0.004266,0.05,1.8599 -1e+05,0.43452,0.004266,0.05,1.8599 -1e+05,0.43452,0.004266,0.05,1.8599 -1e+05,0.43452,0.004266,0.05,1.8599 -1e+05,0.43452,0.004266,0.05,1.8599 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.44312,0.0043505,0.05,1.7224 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.45189,0.0044366,0.05,1.5931 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46084,0.0045244,0.05,1.4715 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.46996,0.004614,0.05,1.3573 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.47926,0.0047053,0.05,1.25 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.48875,0.0047985,0.05,1.1495 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.49843,0.0048935,0.05,1.0552 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.5083,0.0049903,0.05,0.96708 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.51836,0.0050891,0.05,0.88468 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.52862,0.0051899,0.05,0.80776 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.53909,0.0052927,0.05,0.73605 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.54976,0.0053975,0.05,0.66931 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.56065,0.0055043,0.05,0.60728 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.57175,0.0056133,0.05,0.54972 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.58307,0.0057245,0.05,0.49642 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.59462,0.0058378,0.05,0.44715 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.60639,0.0059535,0.05,0.40169 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.6184,0.0060714,0.05,0.35985 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.63065,0.0061916,0.05,0.32142 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.64314,0.0063142,0.05,0.28621 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.65588,0.0064393,0.05,0.25404 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.66887,0.0065668,0.05,0.22472 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.68211,0.0066969,0.05,0.19808 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.69562,0.0068295,0.05,0.17395 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.7094,0.0069648,0.05,0.15216 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.72345,0.0071027,0.05,0.13255 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.73778,0.0072434,0.05,0.11496 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7524,0.0073869,0.05,0.099241 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7673,0.0075332,0.05,0.085248 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.7825,0.0076824,0.05,0.072837 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.798,0.0078346,0.05,0.06187 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.81381,0.0079898,0.05,0.052214 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.82993,0.0081481,0.05,0.043741 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.84637,0.0083095,0.05,0.036326 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.86314,0.0084741,0.05,0.029851 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.88024,0.008642,0.05,0.024199 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.89767,0.0088132,0.05,0.019259 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.91546,0.0089878,0.05,0.014921 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.93359,0.0091658,0.05,0.011078 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.95209,0.0093474,0.05,0.0076246 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.97095,0.0095326,0.05,0.0044533 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 -1e+05,0.99019,0.0097215,0.05,0.0014552 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_2.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_2.csv deleted file mode 100644 index 245f1b2f8cf..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_2.csv +++ /dev/null @@ -1,1002 +0,0 @@ -Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,nan,nan,nan,nan -20000,0.10099,0.0009915,0.05,96.996 -20000,0.10099,0.0009915,0.05,96.996 -20000,0.10099,0.0009915,0.05,96.996 -20000,0.10299,0.0010111,0.05,91.135 -20000,0.10299,0.0010111,0.05,91.135 -20000,0.10499,0.0010308,0.05,85.471 -20000,0.10499,0.0010308,0.05,85.471 -20000,0.10734,0.0010538,0.05,79.09 -20000,0.10734,0.0010538,0.05,79.09 -20000,0.11004,0.0010803,0.05,72.24 -20000,0.11004,0.0010803,0.05,72.24 -20000,0.11004,0.0010803,0.05,72.24 -20000,0.11274,0.0011068,0.05,65.904 -20000,0.11274,0.0011068,0.05,65.904 -20000,0.11274,0.0011068,0.05,65.904 -20000,0.11544,0.0011334,0.05,60.092 -20000,0.11544,0.0011334,0.05,60.092 -20000,0.11814,0.0011599,0.05,54.792 -20000,0.11814,0.0011599,0.05,54.792 -20000,0.11814,0.0011599,0.05,54.792 -20000,0.12084,0.0011864,0.05,49.98 -20000,0.12084,0.0011864,0.05,49.98 -20000,0.12084,0.0011864,0.05,49.98 -20000,0.12354,0.0012129,0.05,45.627 -20000,0.12354,0.0012129,0.05,45.627 -20000,0.12624,0.0012394,0.05,41.695 -20000,0.12624,0.0012394,0.05,41.695 -20000,0.12624,0.0012394,0.05,41.695 -20000,0.12894,0.0012659,0.05,38.149 -20000,0.12894,0.0012659,0.05,38.149 -20000,0.12894,0.0012659,0.05,38.149 -20000,0.13164,0.0012924,0.05,34.952 -20000,0.13164,0.0012924,0.05,34.952 -20000,0.13164,0.0012924,0.05,34.952 -20000,0.1343,0.0013185,0.05,32.111 -20000,0.1343,0.0013185,0.05,32.111 -20000,0.13695,0.0013445,0.05,29.553 -20000,0.13695,0.0013445,0.05,29.553 -20000,0.13695,0.0013445,0.05,29.553 -20000,0.13965,0.001371,0.05,27.195 -20000,0.13965,0.001371,0.05,27.195 -20000,0.13965,0.001371,0.05,27.195 -20000,0.1424,0.0013981,0.05,25.024 -20000,0.1424,0.0013981,0.05,25.024 -20000,0.14521,0.0014256,0.05,23.026 -20000,0.14521,0.0014256,0.05,23.026 -20000,0.14521,0.0014256,0.05,23.026 -20000,0.14807,0.0014538,0.05,21.188 -20000,0.14807,0.0014538,0.05,21.188 -20000,0.14807,0.0014538,0.05,21.188 -20000,0.151,0.0014824,0.05,19.498 -20000,0.151,0.0014824,0.05,19.498 -20000,0.151,0.0014824,0.05,19.498 -20000,0.15397,0.0015117,0.05,17.943 -20000,0.15397,0.0015117,0.05,17.943 -20000,0.15397,0.0015117,0.05,17.943 -20000,0.15701,0.0015415,0.05,16.514 -20000,0.15701,0.0015415,0.05,16.514 -20000,0.15701,0.0015415,0.05,16.514 -20000,0.16011,0.0015719,0.05,15.2 -20000,0.16011,0.0015719,0.05,15.2 -20000,0.16011,0.0015719,0.05,15.2 -20000,0.16327,0.001603,0.05,13.991 -20000,0.16327,0.001603,0.05,13.991 -20000,0.16327,0.001603,0.05,13.991 -20000,0.16649,0.0016346,0.05,12.878 -20000,0.16649,0.0016346,0.05,12.878 -20000,0.16649,0.0016346,0.05,12.878 -20000,0.16649,0.0016346,0.05,12.878 -20000,0.16978,0.0016669,0.05,11.855 -20000,0.16978,0.0016669,0.05,11.855 -20000,0.16978,0.0016669,0.05,11.855 -20000,0.17313,0.0016998,0.05,10.912 -20000,0.17313,0.0016998,0.05,10.912 -20000,0.17313,0.0016998,0.05,10.912 -20000,0.17655,0.0017333,0.05,10.044 -20000,0.17655,0.0017333,0.05,10.044 -20000,0.17655,0.0017333,0.05,10.044 -20000,0.17655,0.0017333,0.05,10.044 -20000,0.18004,0.0017676,0.05,9.2442 -20000,0.18004,0.0017676,0.05,9.2442 -20000,0.18004,0.0017676,0.05,9.2442 -20000,0.18359,0.0018025,0.05,8.507 -20000,0.18359,0.0018025,0.05,8.507 -20000,0.18359,0.0018025,0.05,8.507 -20000,0.18359,0.0018025,0.05,8.507 -20000,0.18722,0.001838,0.05,7.8273 -20000,0.18722,0.001838,0.05,7.8273 -20000,0.18722,0.001838,0.05,7.8273 -20000,0.18722,0.001838,0.05,7.8273 -20000,0.19091,0.0018743,0.05,7.2003 -20000,0.19091,0.0018743,0.05,7.2003 -20000,0.19091,0.0018743,0.05,7.2003 -20000,0.19468,0.0019114,0.05,6.6217 -20000,0.19468,0.0019114,0.05,6.6217 -20000,0.19468,0.0019114,0.05,6.6217 -20000,0.19468,0.0019114,0.05,6.6217 -20000,0.19853,0.0019491,0.05,6.0877 -20000,0.19853,0.0019491,0.05,6.0877 -20000,0.19853,0.0019491,0.05,6.0877 -20000,0.19853,0.0019491,0.05,6.0877 -20000,0.20245,0.0019876,0.05,5.5945 -20000,0.20245,0.0019876,0.05,5.5945 -20000,0.20245,0.0019876,0.05,5.5945 -20000,0.20245,0.0019876,0.05,5.5945 -20000,0.20645,0.0020269,0.05,5.139 -20000,0.20645,0.0020269,0.05,5.139 -20000,0.20645,0.0020269,0.05,5.139 -20000,0.20645,0.0020269,0.05,5.139 -20000,0.21053,0.0020669,0.05,4.7182 -20000,0.21053,0.0020669,0.05,4.7182 -20000,0.21053,0.0020669,0.05,4.7182 -20000,0.21053,0.0020669,0.05,4.7182 -20000,0.21469,0.0021078,0.05,4.3294 -20000,0.21469,0.0021078,0.05,4.3294 -20000,0.21469,0.0021078,0.05,4.3294 -20000,0.21469,0.0021078,0.05,4.3294 -20000,0.21893,0.0021494,0.05,3.97 -20000,0.21893,0.0021494,0.05,3.97 -20000,0.21893,0.0021494,0.05,3.97 -20000,0.21893,0.0021494,0.05,3.97 -20000,0.21893,0.0021494,0.05,3.97 -20000,0.22326,0.0021919,0.05,3.6379 -20000,0.22326,0.0021919,0.05,3.6379 -20000,0.22326,0.0021919,0.05,3.6379 -20000,0.22326,0.0021919,0.05,3.6379 -20000,0.22767,0.0022352,0.05,3.3309 -20000,0.22767,0.0022352,0.05,3.3309 -20000,0.22767,0.0022352,0.05,3.3309 -20000,0.22767,0.0022352,0.05,3.3309 -20000,0.23217,0.0022794,0.05,3.0471 -20000,0.23217,0.0022794,0.05,3.0471 -20000,0.23217,0.0022794,0.05,3.0471 -20000,0.23217,0.0022794,0.05,3.0471 -20000,0.23217,0.0022794,0.05,3.0471 -20000,0.23676,0.0023244,0.05,2.7849 -20000,0.23676,0.0023244,0.05,2.7849 -20000,0.23676,0.0023244,0.05,2.7849 -20000,0.23676,0.0023244,0.05,2.7849 -20000,0.23676,0.0023244,0.05,2.7849 -20000,0.24144,0.0023704,0.05,2.5425 -20000,0.24144,0.0023704,0.05,2.5425 -20000,0.24144,0.0023704,0.05,2.5425 -20000,0.24144,0.0023704,0.05,2.5425 -20000,0.24621,0.0024172,0.05,2.3187 -20000,0.24621,0.0024172,0.05,2.3187 -20000,0.24621,0.0024172,0.05,2.3187 -20000,0.24621,0.0024172,0.05,2.3187 -20000,0.24621,0.0024172,0.05,2.3187 -20000,0.25108,0.002465,0.05,2.112 -20000,0.25108,0.002465,0.05,2.112 -20000,0.25108,0.002465,0.05,2.112 -20000,0.25108,0.002465,0.05,2.112 -20000,0.25108,0.002465,0.05,2.112 -20000,0.25604,0.0025137,0.05,1.9211 -20000,0.25604,0.0025137,0.05,1.9211 -20000,0.25604,0.0025137,0.05,1.9211 -20000,0.25604,0.0025137,0.05,1.9211 -20000,0.25604,0.0025137,0.05,1.9211 -20000,0.2611,0.0025634,0.05,1.7451 -20000,0.2611,0.0025634,0.05,1.7451 -20000,0.2611,0.0025634,0.05,1.7451 -20000,0.2611,0.0025634,0.05,1.7451 -20000,0.2611,0.0025634,0.05,1.7451 -20000,0.26626,0.0026141,0.05,1.5827 -20000,0.26626,0.0026141,0.05,1.5827 -20000,0.26626,0.0026141,0.05,1.5827 -20000,0.26626,0.0026141,0.05,1.5827 -20000,0.26626,0.0026141,0.05,1.5827 -20000,0.27153,0.0026658,0.05,1.4332 -20000,0.27153,0.0026658,0.05,1.4332 -20000,0.27153,0.0026658,0.05,1.4332 -20000,0.27153,0.0026658,0.05,1.4332 -20000,0.27153,0.0026658,0.05,1.4332 -20000,0.27153,0.0026658,0.05,1.4332 -20000,0.2769,0.0027185,0.05,1.2955 -20000,0.2769,0.0027185,0.05,1.2955 -20000,0.2769,0.0027185,0.05,1.2955 -20000,0.2769,0.0027185,0.05,1.2955 -20000,0.2769,0.0027185,0.05,1.2955 -20000,0.28237,0.0027723,0.05,1.1688 -20000,0.28237,0.0027723,0.05,1.1688 -20000,0.28237,0.0027723,0.05,1.1688 -20000,0.28237,0.0027723,0.05,1.1688 -20000,0.28237,0.0027723,0.05,1.1688 -20000,0.28237,0.0027723,0.05,1.1688 -20000,0.28796,0.0028271,0.05,1.0525 -20000,0.28796,0.0028271,0.05,1.0525 -20000,0.28796,0.0028271,0.05,1.0525 -20000,0.28796,0.0028271,0.05,1.0525 -20000,0.28796,0.0028271,0.05,1.0525 -20000,0.29365,0.002883,0.05,0.94576 -20000,0.29365,0.002883,0.05,0.94576 -20000,0.29365,0.002883,0.05,0.94576 -20000,0.29365,0.002883,0.05,0.94576 -20000,0.29365,0.002883,0.05,0.94576 -20000,0.29365,0.002883,0.05,0.94576 -20000,0.29946,0.00294,0.05,0.84795 -20000,0.29946,0.00294,0.05,0.84795 -20000,0.29946,0.00294,0.05,0.84795 -20000,0.29946,0.00294,0.05,0.84795 -20000,0.29946,0.00294,0.05,0.84795 -20000,0.29946,0.00294,0.05,0.84795 -20000,0.30538,0.0029982,0.05,0.75847 -20000,0.30538,0.0029982,0.05,0.75847 -20000,0.30538,0.0029982,0.05,0.75847 -20000,0.30538,0.0029982,0.05,0.75847 -20000,0.30538,0.0029982,0.05,0.75847 -20000,0.30538,0.0029982,0.05,0.75847 -20000,0.31142,0.0030575,0.05,0.67673 -20000,0.31142,0.0030575,0.05,0.67673 -20000,0.31142,0.0030575,0.05,0.67673 -20000,0.31142,0.0030575,0.05,0.67673 -20000,0.31142,0.0030575,0.05,0.67673 -20000,0.31142,0.0030575,0.05,0.67673 -20000,0.31758,0.003118,0.05,0.60221 -20000,0.31758,0.003118,0.05,0.60221 -20000,0.31758,0.003118,0.05,0.60221 -20000,0.31758,0.003118,0.05,0.60221 -20000,0.31758,0.003118,0.05,0.60221 -20000,0.31758,0.003118,0.05,0.60221 -20000,0.32386,0.0031796,0.05,0.5344 -20000,0.32386,0.0031796,0.05,0.5344 -20000,0.32386,0.0031796,0.05,0.5344 -20000,0.32386,0.0031796,0.05,0.5344 -20000,0.32386,0.0031796,0.05,0.5344 -20000,0.32386,0.0031796,0.05,0.5344 -20000,0.32386,0.0031796,0.05,0.5344 -20000,0.33027,0.0032425,0.05,0.47284 -20000,0.33027,0.0032425,0.05,0.47284 -20000,0.33027,0.0032425,0.05,0.47284 -20000,0.33027,0.0032425,0.05,0.47284 -20000,0.33027,0.0032425,0.05,0.47284 -20000,0.33027,0.0032425,0.05,0.47284 -20000,0.3368,0.0033067,0.05,0.41707 -20000,0.3368,0.0033067,0.05,0.41707 -20000,0.3368,0.0033067,0.05,0.41707 -20000,0.3368,0.0033067,0.05,0.41707 -20000,0.3368,0.0033067,0.05,0.41707 -20000,0.3368,0.0033067,0.05,0.41707 -20000,0.3368,0.0033067,0.05,0.41707 -20000,0.34347,0.0033721,0.05,0.36668 -20000,0.34347,0.0033721,0.05,0.36668 -20000,0.34347,0.0033721,0.05,0.36668 -20000,0.34347,0.0033721,0.05,0.36668 -20000,0.34347,0.0033721,0.05,0.36668 -20000,0.34347,0.0033721,0.05,0.36668 -20000,0.35026,0.0034388,0.05,0.32128 -20000,0.35026,0.0034388,0.05,0.32128 -20000,0.35026,0.0034388,0.05,0.32128 -20000,0.35026,0.0034388,0.05,0.32128 -20000,0.35026,0.0034388,0.05,0.32128 -20000,0.35026,0.0034388,0.05,0.32128 -20000,0.35026,0.0034388,0.05,0.32128 -20000,0.35719,0.0035069,0.05,0.28049 -20000,0.35719,0.0035069,0.05,0.28049 -20000,0.35719,0.0035069,0.05,0.28049 -20000,0.35719,0.0035069,0.05,0.28049 -20000,0.35719,0.0035069,0.05,0.28049 -20000,0.35719,0.0035069,0.05,0.28049 -20000,0.35719,0.0035069,0.05,0.28049 -20000,0.36426,0.0035762,0.05,0.24395 -20000,0.36426,0.0035762,0.05,0.24395 -20000,0.36426,0.0035762,0.05,0.24395 -20000,0.36426,0.0035762,0.05,0.24395 -20000,0.36426,0.0035762,0.05,0.24395 -20000,0.36426,0.0035762,0.05,0.24395 -20000,0.36426,0.0035762,0.05,0.24395 -20000,0.37147,0.003647,0.05,0.21134 -20000,0.37147,0.003647,0.05,0.21134 -20000,0.37147,0.003647,0.05,0.21134 -20000,0.37147,0.003647,0.05,0.21134 -20000,0.37147,0.003647,0.05,0.21134 -20000,0.37147,0.003647,0.05,0.21134 -20000,0.37147,0.003647,0.05,0.21134 -20000,0.37147,0.003647,0.05,0.21134 -20000,0.37882,0.0037192,0.05,0.18234 -20000,0.37882,0.0037192,0.05,0.18234 -20000,0.37882,0.0037192,0.05,0.18234 -20000,0.37882,0.0037192,0.05,0.18234 -20000,0.37882,0.0037192,0.05,0.18234 -20000,0.37882,0.0037192,0.05,0.18234 -20000,0.37882,0.0037192,0.05,0.18234 -20000,0.38632,0.0037928,0.05,0.15663 -20000,0.38632,0.0037928,0.05,0.15663 -20000,0.38632,0.0037928,0.05,0.15663 -20000,0.38632,0.0037928,0.05,0.15663 -20000,0.38632,0.0037928,0.05,0.15663 -20000,0.38632,0.0037928,0.05,0.15663 -20000,0.38632,0.0037928,0.05,0.15663 -20000,0.38632,0.0037928,0.05,0.15663 -20000,0.39396,0.0038678,0.05,0.13395 -20000,0.39396,0.0038678,0.05,0.13395 -20000,0.39396,0.0038678,0.05,0.13395 -20000,0.39396,0.0038678,0.05,0.13395 -20000,0.39396,0.0038678,0.05,0.13395 -20000,0.39396,0.0038678,0.05,0.13395 -20000,0.39396,0.0038678,0.05,0.13395 -20000,0.40176,0.0039444,0.05,0.11401 -20000,0.40176,0.0039444,0.05,0.11401 -20000,0.40176,0.0039444,0.05,0.11401 -20000,0.40176,0.0039444,0.05,0.11401 -20000,0.40176,0.0039444,0.05,0.11401 -20000,0.40176,0.0039444,0.05,0.11401 -20000,0.40176,0.0039444,0.05,0.11401 -20000,0.40176,0.0039444,0.05,0.11401 -20000,0.40971,0.0040224,0.05,0.096567 -20000,0.40971,0.0040224,0.05,0.096567 -20000,0.40971,0.0040224,0.05,0.096567 -20000,0.40971,0.0040224,0.05,0.096567 -20000,0.40971,0.0040224,0.05,0.096567 -20000,0.40971,0.0040224,0.05,0.096567 -20000,0.40971,0.0040224,0.05,0.096567 -20000,0.40971,0.0040224,0.05,0.096567 -20000,0.41782,0.004102,0.05,0.081376 -20000,0.41782,0.004102,0.05,0.081376 -20000,0.41782,0.004102,0.05,0.081376 -20000,0.41782,0.004102,0.05,0.081376 -20000,0.41782,0.004102,0.05,0.081376 -20000,0.41782,0.004102,0.05,0.081376 -20000,0.41782,0.004102,0.05,0.081376 -20000,0.41782,0.004102,0.05,0.081376 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.42609,0.0041832,0.05,0.068212 -20000,0.43452,0.004266,0.05,0.056864 -20000,0.43452,0.004266,0.05,0.056864 -20000,0.43452,0.004266,0.05,0.056864 -20000,0.43452,0.004266,0.05,0.056864 -20000,0.43452,0.004266,0.05,0.056864 -20000,0.43452,0.004266,0.05,0.056864 -20000,0.43452,0.004266,0.05,0.056864 -20000,0.43452,0.004266,0.05,0.056864 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.44312,0.0043505,0.05,0.047133 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.45189,0.0044366,0.05,0.038837 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46084,0.0045244,0.05,0.031805 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.46996,0.004614,0.05,0.025882 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.47926,0.0047053,0.05,0.020924 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.48875,0.0047985,0.05,0.016801 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.49843,0.0048935,0.05,0.013396 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.5083,0.0049903,0.05,0.010605 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.51836,0.0050891,0.05,0.0083322 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.52862,0.0051899,0.05,0.0064967 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.53909,0.0052927,0.05,0.0050256 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.54976,0.0053975,0.05,0.0038561 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.56065,0.0055043,0.05,0.002934 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.57175,0.0056133,0.05,0.0022133 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.58307,0.0057245,0.05,0.0016549 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.59462,0.0058378,0.05,0.0012262 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.60639,0.0059535,0.05,0.00090008 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.6184,0.0060714,0.05,0.0006544 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.63065,0.0061916,0.05,0.00047112 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.64314,0.0063142,0.05,0.00033577 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.65588,0.0064393,0.05,0.00023684 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.66887,0.0065668,0.05,0.00016529 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.68211,0.0066969,0.05,0.00011412 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.69562,0.0068295,0.05,7.791e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.7094,0.0069648,0.05,5.2588e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.72345,0.0071027,0.05,3.5084e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.73778,0.0072434,0.05,2.3128e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7524,0.0073869,0.05,1.5061e-05 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7673,0.0075332,0.05,9.686e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.7825,0.0076824,0.05,6.1499e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.798,0.0078346,0.05,3.8539e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.81381,0.0079898,0.05,2.383e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.82993,0.0081481,0.05,1.4534e-06 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.84637,0.0083095,0.05,8.7409e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.86314,0.0084741,0.05,5.1819e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.88024,0.008642,0.05,3.0268e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.89767,0.0088132,0.05,1.7406e-07 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.91546,0.0089878,0.05,9.8385e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.93359,0.0091658,0.05,5.4389e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.95209,0.0093474,0.05,2.8923e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.97095,0.0095326,0.05,1.3863e-08 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 -20000,0.99019,0.0097215,0.05,4.0575e-09 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_5.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_5.csv deleted file mode 100644 index 29117bbb056..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/data_5.csv +++ /dev/null @@ -1,1002 +0,0 @@ -Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,nan,nan,nan,nan -50000,0.10099,0.0009915,0.05,97.986 -50000,0.10099,0.0009915,0.05,97.986 -50000,0.10099,0.0009915,0.05,97.986 -50000,0.10299,0.0010111,0.05,94.045 -50000,0.10299,0.0010111,0.05,94.045 -50000,0.10499,0.0010308,0.05,90.2 -50000,0.10499,0.0010308,0.05,90.2 -50000,0.10734,0.0010538,0.05,85.805 -50000,0.10734,0.0010538,0.05,85.805 -50000,0.11004,0.0010803,0.05,80.963 -50000,0.11004,0.0010803,0.05,80.963 -50000,0.11004,0.0010803,0.05,80.963 -50000,0.11274,0.0011068,0.05,76.339 -50000,0.11274,0.0011068,0.05,76.339 -50000,0.11274,0.0011068,0.05,76.339 -50000,0.11544,0.0011334,0.05,71.941 -50000,0.11544,0.0011334,0.05,71.941 -50000,0.11814,0.0011599,0.05,67.771 -50000,0.11814,0.0011599,0.05,67.771 -50000,0.11814,0.0011599,0.05,67.771 -50000,0.12084,0.0011864,0.05,63.829 -50000,0.12084,0.0011864,0.05,63.829 -50000,0.12084,0.0011864,0.05,63.829 -50000,0.12354,0.0012129,0.05,60.112 -50000,0.12354,0.0012129,0.05,60.112 -50000,0.12624,0.0012394,0.05,56.614 -50000,0.12624,0.0012394,0.05,56.614 -50000,0.12624,0.0012394,0.05,56.614 -50000,0.12894,0.0012659,0.05,53.328 -50000,0.12894,0.0012659,0.05,53.328 -50000,0.12894,0.0012659,0.05,53.328 -50000,0.13164,0.0012924,0.05,50.245 -50000,0.13164,0.0012924,0.05,50.245 -50000,0.13164,0.0012924,0.05,50.245 -50000,0.1343,0.0013185,0.05,47.397 -50000,0.1343,0.0013185,0.05,47.397 -50000,0.13695,0.0013445,0.05,44.739 -50000,0.13695,0.0013445,0.05,44.739 -50000,0.13695,0.0013445,0.05,44.739 -50000,0.13965,0.001371,0.05,42.199 -50000,0.13965,0.001371,0.05,42.199 -50000,0.13965,0.001371,0.05,42.199 -50000,0.1424,0.0013981,0.05,39.778 -50000,0.1424,0.0013981,0.05,39.778 -50000,0.14521,0.0014256,0.05,37.474 -50000,0.14521,0.0014256,0.05,37.474 -50000,0.14521,0.0014256,0.05,37.474 -50000,0.14807,0.0014538,0.05,35.284 -50000,0.14807,0.0014538,0.05,35.284 -50000,0.14807,0.0014538,0.05,35.284 -50000,0.151,0.0014824,0.05,33.205 -50000,0.151,0.0014824,0.05,33.205 -50000,0.151,0.0014824,0.05,33.205 -50000,0.15397,0.0015117,0.05,31.233 -50000,0.15397,0.0015117,0.05,31.233 -50000,0.15397,0.0015117,0.05,31.233 -50000,0.15701,0.0015415,0.05,29.366 -50000,0.15701,0.0015415,0.05,29.366 -50000,0.15701,0.0015415,0.05,29.366 -50000,0.16011,0.0015719,0.05,27.6 -50000,0.16011,0.0015719,0.05,27.6 -50000,0.16011,0.0015719,0.05,27.6 -50000,0.16327,0.001603,0.05,25.93 -50000,0.16327,0.001603,0.05,25.93 -50000,0.16327,0.001603,0.05,25.93 -50000,0.16649,0.0016346,0.05,24.352 -50000,0.16649,0.0016346,0.05,24.352 -50000,0.16649,0.0016346,0.05,24.352 -50000,0.16649,0.0016346,0.05,24.352 -50000,0.16978,0.0016669,0.05,22.863 -50000,0.16978,0.0016669,0.05,22.863 -50000,0.16978,0.0016669,0.05,22.863 -50000,0.17313,0.0016998,0.05,21.459 -50000,0.17313,0.0016998,0.05,21.459 -50000,0.17313,0.0016998,0.05,21.459 -50000,0.17655,0.0017333,0.05,20.135 -50000,0.17655,0.0017333,0.05,20.135 -50000,0.17655,0.0017333,0.05,20.135 -50000,0.17655,0.0017333,0.05,20.135 -50000,0.18004,0.0017676,0.05,18.887 -50000,0.18004,0.0017676,0.05,18.887 -50000,0.18004,0.0017676,0.05,18.887 -50000,0.18359,0.0018025,0.05,17.712 -50000,0.18359,0.0018025,0.05,17.712 -50000,0.18359,0.0018025,0.05,17.712 -50000,0.18359,0.0018025,0.05,17.712 -50000,0.18722,0.001838,0.05,16.605 -50000,0.18722,0.001838,0.05,16.605 -50000,0.18722,0.001838,0.05,16.605 -50000,0.18722,0.001838,0.05,16.605 -50000,0.19091,0.0018743,0.05,15.564 -50000,0.19091,0.0018743,0.05,15.564 -50000,0.19091,0.0018743,0.05,15.564 -50000,0.19468,0.0019114,0.05,14.584 -50000,0.19468,0.0019114,0.05,14.584 -50000,0.19468,0.0019114,0.05,14.584 -50000,0.19468,0.0019114,0.05,14.584 -50000,0.19853,0.0019491,0.05,13.662 -50000,0.19853,0.0019491,0.05,13.662 -50000,0.19853,0.0019491,0.05,13.662 -50000,0.19853,0.0019491,0.05,13.662 -50000,0.20245,0.0019876,0.05,12.795 -50000,0.20245,0.0019876,0.05,12.795 -50000,0.20245,0.0019876,0.05,12.795 -50000,0.20245,0.0019876,0.05,12.795 -50000,0.20645,0.0020269,0.05,11.979 -50000,0.20645,0.0020269,0.05,11.979 -50000,0.20645,0.0020269,0.05,11.979 -50000,0.20645,0.0020269,0.05,11.979 -50000,0.21053,0.0020669,0.05,11.212 -50000,0.21053,0.0020669,0.05,11.212 -50000,0.21053,0.0020669,0.05,11.212 -50000,0.21053,0.0020669,0.05,11.212 -50000,0.21469,0.0021078,0.05,10.492 -50000,0.21469,0.0021078,0.05,10.492 -50000,0.21469,0.0021078,0.05,10.492 -50000,0.21469,0.0021078,0.05,10.492 -50000,0.21893,0.0021494,0.05,9.8141 -50000,0.21893,0.0021494,0.05,9.8141 -50000,0.21893,0.0021494,0.05,9.8141 -50000,0.21893,0.0021494,0.05,9.8141 -50000,0.21893,0.0021494,0.05,9.8141 -50000,0.22326,0.0021919,0.05,9.1773 -50000,0.22326,0.0021919,0.05,9.1773 -50000,0.22326,0.0021919,0.05,9.1773 -50000,0.22326,0.0021919,0.05,9.1773 -50000,0.22767,0.0022352,0.05,8.5788 -50000,0.22767,0.0022352,0.05,8.5788 -50000,0.22767,0.0022352,0.05,8.5788 -50000,0.22767,0.0022352,0.05,8.5788 -50000,0.23217,0.0022794,0.05,8.0163 -50000,0.23217,0.0022794,0.05,8.0163 -50000,0.23217,0.0022794,0.05,8.0163 -50000,0.23217,0.0022794,0.05,8.0163 -50000,0.23217,0.0022794,0.05,8.0163 -50000,0.23676,0.0023244,0.05,7.4878 -50000,0.23676,0.0023244,0.05,7.4878 -50000,0.23676,0.0023244,0.05,7.4878 -50000,0.23676,0.0023244,0.05,7.4878 -50000,0.23676,0.0023244,0.05,7.4878 -50000,0.24144,0.0023704,0.05,6.9912 -50000,0.24144,0.0023704,0.05,6.9912 -50000,0.24144,0.0023704,0.05,6.9912 -50000,0.24144,0.0023704,0.05,6.9912 -50000,0.24621,0.0024172,0.05,6.5246 -50000,0.24621,0.0024172,0.05,6.5246 -50000,0.24621,0.0024172,0.05,6.5246 -50000,0.24621,0.0024172,0.05,6.5246 -50000,0.24621,0.0024172,0.05,6.5246 -50000,0.25108,0.002465,0.05,6.0863 -50000,0.25108,0.002465,0.05,6.0863 -50000,0.25108,0.002465,0.05,6.0863 -50000,0.25108,0.002465,0.05,6.0863 -50000,0.25108,0.002465,0.05,6.0863 -50000,0.25604,0.0025137,0.05,5.6745 -50000,0.25604,0.0025137,0.05,5.6745 -50000,0.25604,0.0025137,0.05,5.6745 -50000,0.25604,0.0025137,0.05,5.6745 -50000,0.25604,0.0025137,0.05,5.6745 -50000,0.2611,0.0025634,0.05,5.2877 -50000,0.2611,0.0025634,0.05,5.2877 -50000,0.2611,0.0025634,0.05,5.2877 -50000,0.2611,0.0025634,0.05,5.2877 -50000,0.2611,0.0025634,0.05,5.2877 -50000,0.26626,0.0026141,0.05,4.9244 -50000,0.26626,0.0026141,0.05,4.9244 -50000,0.26626,0.0026141,0.05,4.9244 -50000,0.26626,0.0026141,0.05,4.9244 -50000,0.26626,0.0026141,0.05,4.9244 -50000,0.27153,0.0026658,0.05,4.5833 -50000,0.27153,0.0026658,0.05,4.5833 -50000,0.27153,0.0026658,0.05,4.5833 -50000,0.27153,0.0026658,0.05,4.5833 -50000,0.27153,0.0026658,0.05,4.5833 -50000,0.27153,0.0026658,0.05,4.5833 -50000,0.2769,0.0027185,0.05,4.263 -50000,0.2769,0.0027185,0.05,4.263 -50000,0.2769,0.0027185,0.05,4.263 -50000,0.2769,0.0027185,0.05,4.263 -50000,0.2769,0.0027185,0.05,4.263 -50000,0.28237,0.0027723,0.05,3.9624 -50000,0.28237,0.0027723,0.05,3.9624 -50000,0.28237,0.0027723,0.05,3.9624 -50000,0.28237,0.0027723,0.05,3.9624 -50000,0.28237,0.0027723,0.05,3.9624 -50000,0.28237,0.0027723,0.05,3.9624 -50000,0.28796,0.0028271,0.05,3.6802 -50000,0.28796,0.0028271,0.05,3.6802 -50000,0.28796,0.0028271,0.05,3.6802 -50000,0.28796,0.0028271,0.05,3.6802 -50000,0.28796,0.0028271,0.05,3.6802 -50000,0.29365,0.002883,0.05,3.4154 -50000,0.29365,0.002883,0.05,3.4154 -50000,0.29365,0.002883,0.05,3.4154 -50000,0.29365,0.002883,0.05,3.4154 -50000,0.29365,0.002883,0.05,3.4154 -50000,0.29365,0.002883,0.05,3.4154 -50000,0.29946,0.00294,0.05,3.167 -50000,0.29946,0.00294,0.05,3.167 -50000,0.29946,0.00294,0.05,3.167 -50000,0.29946,0.00294,0.05,3.167 -50000,0.29946,0.00294,0.05,3.167 -50000,0.29946,0.00294,0.05,3.167 -50000,0.30538,0.0029982,0.05,2.934 -50000,0.30538,0.0029982,0.05,2.934 -50000,0.30538,0.0029982,0.05,2.934 -50000,0.30538,0.0029982,0.05,2.934 -50000,0.30538,0.0029982,0.05,2.934 -50000,0.30538,0.0029982,0.05,2.934 -50000,0.31142,0.0030575,0.05,2.7156 -50000,0.31142,0.0030575,0.05,2.7156 -50000,0.31142,0.0030575,0.05,2.7156 -50000,0.31142,0.0030575,0.05,2.7156 -50000,0.31142,0.0030575,0.05,2.7156 -50000,0.31142,0.0030575,0.05,2.7156 -50000,0.31758,0.003118,0.05,2.511 -50000,0.31758,0.003118,0.05,2.511 -50000,0.31758,0.003118,0.05,2.511 -50000,0.31758,0.003118,0.05,2.511 -50000,0.31758,0.003118,0.05,2.511 -50000,0.31758,0.003118,0.05,2.511 -50000,0.32386,0.0031796,0.05,2.3193 -50000,0.32386,0.0031796,0.05,2.3193 -50000,0.32386,0.0031796,0.05,2.3193 -50000,0.32386,0.0031796,0.05,2.3193 -50000,0.32386,0.0031796,0.05,2.3193 -50000,0.32386,0.0031796,0.05,2.3193 -50000,0.32386,0.0031796,0.05,2.3193 -50000,0.33027,0.0032425,0.05,2.1398 -50000,0.33027,0.0032425,0.05,2.1398 -50000,0.33027,0.0032425,0.05,2.1398 -50000,0.33027,0.0032425,0.05,2.1398 -50000,0.33027,0.0032425,0.05,2.1398 -50000,0.33027,0.0032425,0.05,2.1398 -50000,0.3368,0.0033067,0.05,1.9718 -50000,0.3368,0.0033067,0.05,1.9718 -50000,0.3368,0.0033067,0.05,1.9718 -50000,0.3368,0.0033067,0.05,1.9718 -50000,0.3368,0.0033067,0.05,1.9718 -50000,0.3368,0.0033067,0.05,1.9718 -50000,0.3368,0.0033067,0.05,1.9718 -50000,0.34347,0.0033721,0.05,1.8147 -50000,0.34347,0.0033721,0.05,1.8147 -50000,0.34347,0.0033721,0.05,1.8147 -50000,0.34347,0.0033721,0.05,1.8147 -50000,0.34347,0.0033721,0.05,1.8147 -50000,0.34347,0.0033721,0.05,1.8147 -50000,0.35026,0.0034388,0.05,1.6679 -50000,0.35026,0.0034388,0.05,1.6679 -50000,0.35026,0.0034388,0.05,1.6679 -50000,0.35026,0.0034388,0.05,1.6679 -50000,0.35026,0.0034388,0.05,1.6679 -50000,0.35026,0.0034388,0.05,1.6679 -50000,0.35026,0.0034388,0.05,1.6679 -50000,0.35719,0.0035069,0.05,1.5308 -50000,0.35719,0.0035069,0.05,1.5308 -50000,0.35719,0.0035069,0.05,1.5308 -50000,0.35719,0.0035069,0.05,1.5308 -50000,0.35719,0.0035069,0.05,1.5308 -50000,0.35719,0.0035069,0.05,1.5308 -50000,0.35719,0.0035069,0.05,1.5308 -50000,0.36426,0.0035762,0.05,1.4029 -50000,0.36426,0.0035762,0.05,1.4029 -50000,0.36426,0.0035762,0.05,1.4029 -50000,0.36426,0.0035762,0.05,1.4029 -50000,0.36426,0.0035762,0.05,1.4029 -50000,0.36426,0.0035762,0.05,1.4029 -50000,0.36426,0.0035762,0.05,1.4029 -50000,0.37147,0.003647,0.05,1.2836 -50000,0.37147,0.003647,0.05,1.2836 -50000,0.37147,0.003647,0.05,1.2836 -50000,0.37147,0.003647,0.05,1.2836 -50000,0.37147,0.003647,0.05,1.2836 -50000,0.37147,0.003647,0.05,1.2836 -50000,0.37147,0.003647,0.05,1.2836 -50000,0.37147,0.003647,0.05,1.2836 -50000,0.37882,0.0037192,0.05,1.1725 -50000,0.37882,0.0037192,0.05,1.1725 -50000,0.37882,0.0037192,0.05,1.1725 -50000,0.37882,0.0037192,0.05,1.1725 -50000,0.37882,0.0037192,0.05,1.1725 -50000,0.37882,0.0037192,0.05,1.1725 -50000,0.37882,0.0037192,0.05,1.1725 -50000,0.38632,0.0037928,0.05,1.0691 -50000,0.38632,0.0037928,0.05,1.0691 -50000,0.38632,0.0037928,0.05,1.0691 -50000,0.38632,0.0037928,0.05,1.0691 -50000,0.38632,0.0037928,0.05,1.0691 -50000,0.38632,0.0037928,0.05,1.0691 -50000,0.38632,0.0037928,0.05,1.0691 -50000,0.38632,0.0037928,0.05,1.0691 -50000,0.39396,0.0038678,0.05,0.97306 -50000,0.39396,0.0038678,0.05,0.97306 -50000,0.39396,0.0038678,0.05,0.97306 -50000,0.39396,0.0038678,0.05,0.97306 -50000,0.39396,0.0038678,0.05,0.97306 -50000,0.39396,0.0038678,0.05,0.97306 -50000,0.39396,0.0038678,0.05,0.97306 -50000,0.40176,0.0039444,0.05,0.88389 -50000,0.40176,0.0039444,0.05,0.88389 -50000,0.40176,0.0039444,0.05,0.88389 -50000,0.40176,0.0039444,0.05,0.88389 -50000,0.40176,0.0039444,0.05,0.88389 -50000,0.40176,0.0039444,0.05,0.88389 -50000,0.40176,0.0039444,0.05,0.88389 -50000,0.40176,0.0039444,0.05,0.88389 -50000,0.40971,0.0040224,0.05,0.80124 -50000,0.40971,0.0040224,0.05,0.80124 -50000,0.40971,0.0040224,0.05,0.80124 -50000,0.40971,0.0040224,0.05,0.80124 -50000,0.40971,0.0040224,0.05,0.80124 -50000,0.40971,0.0040224,0.05,0.80124 -50000,0.40971,0.0040224,0.05,0.80124 -50000,0.40971,0.0040224,0.05,0.80124 -50000,0.41782,0.004102,0.05,0.72474 -50000,0.41782,0.004102,0.05,0.72474 -50000,0.41782,0.004102,0.05,0.72474 -50000,0.41782,0.004102,0.05,0.72474 -50000,0.41782,0.004102,0.05,0.72474 -50000,0.41782,0.004102,0.05,0.72474 -50000,0.41782,0.004102,0.05,0.72474 -50000,0.41782,0.004102,0.05,0.72474 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.42609,0.0041832,0.05,0.65404 -50000,0.43452,0.004266,0.05,0.58881 -50000,0.43452,0.004266,0.05,0.58881 -50000,0.43452,0.004266,0.05,0.58881 -50000,0.43452,0.004266,0.05,0.58881 -50000,0.43452,0.004266,0.05,0.58881 -50000,0.43452,0.004266,0.05,0.58881 -50000,0.43452,0.004266,0.05,0.58881 -50000,0.43452,0.004266,0.05,0.58881 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.44312,0.0043505,0.05,0.52875 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.45189,0.0044366,0.05,0.47356 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46084,0.0045244,0.05,0.42294 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.46996,0.004614,0.05,0.37662 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.47926,0.0047053,0.05,0.33434 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.48875,0.0047985,0.05,0.29585 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.49843,0.0048935,0.05,0.2609 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.5083,0.0049903,0.05,0.22927 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.51836,0.0050891,0.05,0.20072 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.52862,0.0051899,0.05,0.17504 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.53909,0.0052927,0.05,0.15203 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.54976,0.0053975,0.05,0.13149 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.56065,0.0055043,0.05,0.11321 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.57175,0.0056133,0.05,0.097023 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.58307,0.0057245,0.05,0.082748 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.59462,0.0058378,0.05,0.070218 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.60639,0.0059535,0.05,0.059272 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.6184,0.0060714,0.05,0.049759 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.63065,0.0061916,0.05,0.041535 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.64314,0.0063142,0.05,0.034465 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.65588,0.0064393,0.05,0.028423 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.66887,0.0065668,0.05,0.02329 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.68211,0.0066969,0.05,0.018957 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.69562,0.0068295,0.05,0.015324 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.7094,0.0069648,0.05,0.012299 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.72345,0.0071027,0.05,0.009798 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.73778,0.0072434,0.05,0.0077457 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7524,0.0073869,0.05,0.0060746 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7673,0.0075332,0.05,0.0047249 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.7825,0.0076824,0.05,0.0036436 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.798,0.0078346,0.05,0.002785 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.81381,0.0079898,0.05,0.0021091 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.82993,0.0081481,0.05,0.0015818 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.84637,0.0083095,0.05,0.0011742 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.86314,0.0084741,0.05,0.00086204 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.88024,0.008642,0.05,0.00062499 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.89767,0.0088132,0.05,0.0004463 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.91546,0.0089878,0.05,0.00031223 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.93359,0.0091658,0.05,0.00021151 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.95209,0.0093474,0.05,0.00013486 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.97095,0.0095326,0.05,7.4494e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 -50000,0.99019,0.0097215,0.05,2.3623e-05 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/nonLinearThermalDiffusionAroundWellbore.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/nonLinearThermalDiffusionAroundWellbore.py deleted file mode 100644 index 39a4c1e8a00..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/nonLinearThermalDiffusionAroundWellbore.py +++ /dev/null @@ -1,190 +0,0 @@ -import os -import sys - -import numpy as np -import matplotlib.pyplot as plt -import pandas as pd -import scipy.linalg -from scipy import special - -from scipy.sparse import diags -from scipy.sparse.linalg import spsolve - -from xml.etree import ElementTree - -# Analytical results for linear thermal behavior -def steadyState(Tin, Tout, Rin, Rout, radialCoordinate): - return Tin + (Tout - Tin) * (np.log(radialCoordinate) - np.log(Rin)) / (np.log(Rout) - np.log(Rin)) - -def diffusionFunction(radialCoordinate, Rin, diffusionCoefficient, diffusionTime): - return special.erfc( (radialCoordinate - Rin) / 2.0 / np.sqrt( diffusionCoefficient * diffusionTime ) ) - -def computeTransientTemperature(Tin, Rin, radialCoordinate, thermalDiffusionCoefficient, diffusionTime): - # Ref. Wang and Papamichos (1994), https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/94WR01774 - return Tin * np.sqrt(Rin/radialCoordinate) * diffusionFunction(radialCoordinate, Rin, thermalDiffusionCoefficient, diffusionTime) - -def computeThermalDiffusionCoefficient(thermalConductivity, volumetricHeatCapacity): - return thermalConductivity / volumetricHeatCapacity - -# Finite difference results for non-linear thermal behavior -def temperatureDependentThermalConductivity(lambda0, lambda_gradient, T, Treference): - return lambda0 + lambda_gradient*(T-Treference) - -def temperatureDependentVolumetricHeat(c0, c_gradient, T, Treference): - return c0 + c_gradient*(T-Treference) - -def coefficientMatrix(thermalConductivity, volumetricHeatCapacity, r, dt, N): - # Coefficients for the matrix - A = np.zeros((N+1, N+1)) - - for i in range(1,N): - dr = r[i] - r[i-1] - r_i = r[i] - A[i, i-1] = - thermalConductivity[i]/volumetricHeatCapacity[i] * (dt/(dr**2) - dt/(2 * r_i * dr)) \ - + (thermalConductivity[i+1] - thermalConductivity[i-1])/volumetricHeatCapacity[i]*dt/4/(dr**2) - A[i, i] = 1 + 2 * thermalConductivity[i]/volumetricHeatCapacity[i] * dt / (dr**2) - A[i, i+1] = - thermalConductivity[i]/volumetricHeatCapacity[i] * (dt/(dr**2) + dt/(2 * r_i * dr)) \ - - (thermalConductivity[i+1] - thermalConductivity[i-1])/volumetricHeatCapacity[i]*dt/4/(dr**2) - - # Boundary conditions - # No-flux at r=0 approximated by setting the flux between the first two cells to zero - A[0, 0] = 1 - A[N, N] = 1 - return A - -def solve_radial_diffusion(r, tmax, dt, Tin, lambda0, lambda_gradient, c0, c_gradient, Treference): - N = len(r)-1 - # Time setup - n_steps = int(tmax / dt) - - # Time-stepping - T = np.zeros(N+1) # initial condition u(r, 0) - T[0] = Tin - for step in range(n_steps): - thermalConductivity = temperatureDependentThermalConductivity(lambda0, lambda_gradient, T, Treference) - volumetricHeatCapacity = temperatureDependentVolumetricHeat(c0, c_gradient, T, Treference) - A = coefficientMatrix(thermalConductivity, volumetricHeatCapacity, r, dt, N) - T = spsolve(A, T) - - return T - - -def extractDataFromXMLList(paramList): - # Extract data from a list in XML such as "{ 1, 2, 3}" - return paramList.replace('{', '').replace('}', '').strip().split(',') - -def getWellboreGeometryFromXML(xmlFilePath): - tree = ElementTree.parse(xmlFilePath) - - meshParam = tree.find('Mesh/InternalWellbore') - radii = extractDataFromXMLList( meshParam.get("radius") ) - - Rin = float(radii[0]) - Rout = float(radii[-1]) - - return [Rin, Rout] - -def getLoadingFromXML(xmlFilePath): - tree = ElementTree.parse(xmlFilePath) - fsParams = tree.findall('FieldSpecifications/FieldSpecification') - - for fsParam in fsParams: - if ( (fsParam.get('fieldName') == "pressure") & (fsParam.get('initialCondition') != "1") ): - if fsParam.get('setNames') == "{ rneg }": - Pin = float(fsParam.get('scale')) - if fsParam.get('setNames') == "{ rpos }": - Pout = float(fsParam.get('scale')) - - for fsParam in fsParams: - if ( (fsParam.get('fieldName') == "temperature") & (fsParam.get('initialCondition') != "1") ): - if fsParam.get('setNames') == "{ rneg }": - Tin = float(fsParam.get('scale')) - if fsParam.get('setNames') == "{ rpos }": - Tout = float(fsParam.get('scale')) - - thermalConductivity = float( extractDataFromXMLList( tree.find('Constitutive/SinglePhaseConstantThermalConductivity').get('thermalConductivityComponents') )[0] ) - - tree_SolidInternalEnergies = tree.findall('Constitutive/SolidInternalEnergy') - - for tree_SolidInternalEnergy in tree_SolidInternalEnergies: - if tree_SolidInternalEnergy.get('name') == "rockInternalEnergy_nonLinear": - referenceVolumetricHeatCapacity = float( tree_SolidInternalEnergy.get('referenceVolumetricHeatCapacity') ) - dVolumetricHeatCapacity_dTemperature = float( tree_SolidInternalEnergy.get('dVolumetricHeatCapacity_dTemperature') ) - referenceTemperature = float( tree_SolidInternalEnergy.get('referenceTemperature') ) - - permeability = float( extractDataFromXMLList( tree.find('Constitutive/ConstantPermeability').get('permeabilityComponents') )[0] ) - - porosity = float( tree.find('Constitutive/PressurePorosity').get('defaultReferencePorosity') ) - - fluidViscosity = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('defaultViscosity') ) - - fluidCompressibility = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('compressibility') ) - - fluidThermalExpansionCoefficient = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('thermalExpansionCoeff') ) - - return [Pin, Pout, Tin, Tout, thermalConductivity, referenceVolumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, referenceTemperature, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient] - - -def main(): - - xmlFilePath = "../../../../../../../inputFiles/singlePhaseFlow/" - - Rin, Rout = getWellboreGeometryFromXML(xmlFilePath+"thermalCompressible_nonLinear_2d_benchmark.xml") - - Pin, Pout, Tin, Tout, thermalConductivity, referenceVolumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, referenceTemperature, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient = getLoadingFromXML(xmlFilePath+"thermalCompressible_2d_base.xml") - - plt.figure(figsize=(10,7)) - font = {'size' : 16} - plt.rc('font', **font) - - for chart_idx, idx in enumerate([1, 2, 5, 10]): - # Numerical results - data = pd.read_csv(f'data_{idx}.csv') - data.dropna(inplace=True) - data.drop_duplicates(inplace=True) - data.reset_index(drop=True, inplace=True) - - radialCoordinate = data['elementCenter:0'] - temperature = data['temperature'] - #pressure = data['pressure'] - diffusionTime = data['Time'][0] - - # Analytical results for linear thermal behavior, for comparison - thermalDiffusionCoefficient = computeThermalDiffusionCoefficient(thermalConductivity, referenceVolumetricHeatCapacity) - - T_transient_linear = computeTransientTemperature(Tin, Rin, radialCoordinate, thermalDiffusionCoefficient, diffusionTime) - - # Analytical results of the steady state regime for comparison - T_steadyState = steadyState(Tin, Tout, Rin, Rout, radialCoordinate) - - # Finite different results for non-linear thermal behavior - T_transient_nonLinear = solve_radial_diffusion(radialCoordinate, diffusionTime, diffusionTime/100, Tin, thermalConductivity, 0, referenceVolumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, referenceTemperature) - - # Visualization - # Temperature - plt.subplot(2,2,chart_idx+1) - plt.plot( radialCoordinate, temperature, 'k+' , label='GEOS' ) - plt.plot( radialCoordinate, T_transient_nonLinear, 'g-' , label='FDM Non-Linear' ) - plt.plot( radialCoordinate, T_transient_linear, 'r-' , label='Analytic Linear' ) - plt.plot( radialCoordinate, T_steadyState, 'b-' , label='Steady State' ) - - if chart_idx==1: - plt.legend() - - if chart_idx in [2,3]: - plt.xlabel('Radial distance from well center') - - if chart_idx in [0,2]: - plt.ylabel('Temperature (°C)') - - plt.ylim(-10,100) - plt.xlim(0,1.0) - plt.title('t = '+str(diffusionTime)+'(s)') - plt.tight_layout() - - plt.show() - - -if __name__ == "__main__": - main() - diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/Example.rst new file mode 100644 index 00000000000..aa8fbb0677e --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/Example.rst @@ -0,0 +1,62 @@ +.. _AdvancedExampleWellboreNonLinearThermalDiffusionTemperatureDependentSinglePhaseThermalConductivity: + + +##################################################################################################################### +Non-Linear Thermal Diffusion Around a Wellbore: The Case with Temperature Dependent Single Phase Thermal Conductivity +##################################################################################################################### + +------------------------------------------------------------------ +Problem description +------------------------------------------------------------------ + +This example is an extension of the linear thermal diffusion problem presented in :ref:`AdvancedExamplePureThermalDiffusionWellbore` to model wellbore cooling upon CO2 injection. It uses the thermal single-phase flow solver to model a non-linear thermal diffusion problem around a wellbore where the single phase thermal conductivity of the porous rock depends linearly on the temperature. + + +**Input file** + +This benchmark example uses no external input file and everything required is +contained within two GEOS xml files that are located at: + +.. code-block:: console + + inputFiles/singlePhaseFlow/thermalCompressible_2d_base.xml + +and + +.. code-block:: console + + inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_benchmark.xml + + +In this example, we focus on the ``Constitutive`` tag. + +----------------------------------------------------------- +Constitutive +----------------------------------------------------------- + +The reference value of the single phase thermal conductivity of the porous medium around the wellbore and its derivative with respect to temperature are defined in the ``SinglePhaseThermalConductivity`` XML block: + +.. literalinclude:: ../../../../../../../inputFiles/singlePhaseFlow/thermalCompressible_2d_base.xml + :language: xml + :start-after: + :end-before: + + +--------------------------------- +Results and benchmark +--------------------------------- + +A good agreement between the results obtained using GEOS and the reference results that are obtained by the classical finite difference method is shown in the figure below: + + +.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/temperatureDependentSinglePhaseThermalConductivity_plot.py + + +------------------------------------------------------------------ +To go further +------------------------------------------------------------------ + +**Feedback on this example** + +This concludes the example of a non-linear thermal diffusion problem around a wellbore due to temperature dependent single phase thermal conductivity of porous rock. +For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_1.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_1.csv new file mode 100644 index 00000000000..8771183d7fa --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_1.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,0.07071,0.072112,0.05,-19.002 +10000,0.07071,0.072112,0.05,-19.002 +10000,0.07211,0.07354,0.05,-17.045 +10000,0.07351,0.074968,0.05,-15.122 +10000,0.075155,0.076646,0.05,-12.902 +10000,0.075155,0.076646,0.05,-12.902 +10000,0.077046,0.078574,0.05,-10.412 +10000,0.077046,0.078574,0.05,-10.412 +10000,0.078936,0.080501,0.05,-7.9783 +10000,0.078936,0.080501,0.05,-7.9783 +10000,0.080826,0.082429,0.05,-5.5998 +10000,0.080826,0.082429,0.05,-5.5998 +10000,0.082716,0.084357,0.05,-3.2741 +10000,0.082716,0.084357,0.05,-3.2741 +10000,0.084607,0.086285,0.05,-0.99929 +10000,0.084607,0.086285,0.05,-0.99929 +10000,0.086497,0.088212,0.05,1.2264 +10000,0.086497,0.088212,0.05,1.2264 +10000,0.088387,0.09014,0.05,3.4046 +10000,0.088387,0.09014,0.05,3.4046 +10000,0.090278,0.092068,0.05,5.537 +10000,0.090278,0.092068,0.05,5.537 +10000,0.092168,0.093995,0.05,7.6248 +10000,0.092168,0.093995,0.05,7.6248 +10000,0.094031,0.095896,0.05,9.6402 +10000,0.095885,0.097786,0.05,11.606 +10000,0.095885,0.097786,0.05,11.606 +10000,0.097776,0.099715,0.05,13.57 +10000,0.097776,0.099715,0.05,13.57 +10000,0.099704,0.10168,0.05,15.533 +10000,0.099704,0.10168,0.05,15.533 +10000,0.10167,0.10369,0.05,17.494 +10000,0.10167,0.10369,0.05,17.494 +10000,0.10368,0.10573,0.05,19.451 +10000,0.10368,0.10573,0.05,19.451 +10000,0.10572,0.10782,0.05,21.405 +10000,0.10572,0.10782,0.05,21.405 +10000,0.10781,0.10995,0.05,23.355 +10000,0.10781,0.10995,0.05,23.355 +10000,0.10993,0.11211,0.05,25.301 +10000,0.10993,0.11211,0.05,25.301 +10000,0.10993,0.11211,0.05,25.301 +10000,0.1121,0.11433,0.05,27.241 +10000,0.1121,0.11433,0.05,27.241 +10000,0.11432,0.11658,0.05,29.174 +10000,0.11432,0.11658,0.05,29.174 +10000,0.11657,0.11888,0.05,31.102 +10000,0.11657,0.11888,0.05,31.102 +10000,0.11887,0.12123,0.05,33.021 +10000,0.11887,0.12123,0.05,33.021 +10000,0.11887,0.12123,0.05,33.021 +10000,0.12122,0.12362,0.05,34.932 +10000,0.12122,0.12362,0.05,34.932 +10000,0.12361,0.12607,0.05,36.834 +10000,0.12361,0.12607,0.05,36.834 +10000,0.12361,0.12607,0.05,36.834 +10000,0.12605,0.12855,0.05,38.726 +10000,0.12605,0.12855,0.05,38.726 +10000,0.12854,0.13109,0.05,40.606 +10000,0.12854,0.13109,0.05,40.606 +10000,0.12854,0.13109,0.05,40.606 +10000,0.13108,0.13368,0.05,42.475 +10000,0.13108,0.13368,0.05,42.475 +10000,0.13367,0.13632,0.05,44.33 +10000,0.13367,0.13632,0.05,44.33 +10000,0.13367,0.13632,0.05,44.33 +10000,0.13631,0.13901,0.05,46.171 +10000,0.13631,0.13901,0.05,46.171 +10000,0.13631,0.13901,0.05,46.171 +10000,0.139,0.14176,0.05,47.997 +10000,0.139,0.14176,0.05,47.997 +10000,0.14175,0.14456,0.05,49.807 +10000,0.14175,0.14456,0.05,49.807 +10000,0.14175,0.14456,0.05,49.807 +10000,0.14455,0.14742,0.05,51.599 +10000,0.14455,0.14742,0.05,51.599 +10000,0.14455,0.14742,0.05,51.599 +10000,0.1474,0.15033,0.05,53.373 +10000,0.1474,0.15033,0.05,53.373 +10000,0.1474,0.15033,0.05,53.373 +10000,0.15032,0.1533,0.05,55.127 +10000,0.15032,0.1533,0.05,55.127 +10000,0.15032,0.1533,0.05,55.127 +10000,0.15329,0.15633,0.05,56.86 +10000,0.15329,0.15633,0.05,56.86 +10000,0.15329,0.15633,0.05,56.86 +10000,0.15632,0.15942,0.05,58.57 +10000,0.15632,0.15942,0.05,58.57 +10000,0.15632,0.15942,0.05,58.57 +10000,0.15941,0.16257,0.05,60.257 +10000,0.15941,0.16257,0.05,60.257 +10000,0.15941,0.16257,0.05,60.257 +10000,0.16256,0.16578,0.05,61.92 +10000,0.16256,0.16578,0.05,61.92 +10000,0.16256,0.16578,0.05,61.92 +10000,0.16577,0.16906,0.05,63.556 +10000,0.16577,0.16906,0.05,63.556 +10000,0.16577,0.16906,0.05,63.556 +10000,0.16577,0.16906,0.05,63.556 +10000,0.16905,0.1724,0.05,65.165 +10000,0.16905,0.1724,0.05,65.165 +10000,0.16905,0.1724,0.05,65.165 +10000,0.17239,0.1758,0.05,66.746 +10000,0.17239,0.1758,0.05,66.746 +10000,0.17239,0.1758,0.05,66.746 +10000,0.17579,0.17928,0.05,68.296 +10000,0.17579,0.17928,0.05,68.296 +10000,0.17579,0.17928,0.05,68.296 +10000,0.17579,0.17928,0.05,68.296 +10000,0.17927,0.18282,0.05,69.816 +10000,0.17927,0.18282,0.05,69.816 +10000,0.17927,0.18282,0.05,69.816 +10000,0.18281,0.18644,0.05,71.303 +10000,0.18281,0.18644,0.05,71.303 +10000,0.18281,0.18644,0.05,71.303 +10000,0.18281,0.18644,0.05,71.303 +10000,0.18643,0.19013,0.05,72.756 +10000,0.18643,0.19013,0.05,72.756 +10000,0.18643,0.19013,0.05,72.756 +10000,0.18643,0.19013,0.05,72.756 +10000,0.19011,0.19388,0.05,74.175 +10000,0.19011,0.19388,0.05,74.175 +10000,0.19011,0.19388,0.05,74.175 +10000,0.19387,0.19772,0.05,75.558 +10000,0.19387,0.19772,0.05,75.558 +10000,0.19387,0.19772,0.05,75.558 +10000,0.19387,0.19772,0.05,75.558 +10000,0.19771,0.20163,0.05,76.904 +10000,0.19771,0.20163,0.05,76.904 +10000,0.19771,0.20163,0.05,76.904 +10000,0.19771,0.20163,0.05,76.904 +10000,0.20162,0.20562,0.05,78.213 +10000,0.20162,0.20562,0.05,78.213 +10000,0.20162,0.20562,0.05,78.213 +10000,0.20162,0.20562,0.05,78.213 +10000,0.2056,0.20968,0.05,79.482 +10000,0.2056,0.20968,0.05,79.482 +10000,0.2056,0.20968,0.05,79.482 +10000,0.2056,0.20968,0.05,79.482 +10000,0.20967,0.21383,0.05,80.712 +10000,0.20967,0.21383,0.05,80.712 +10000,0.20967,0.21383,0.05,80.712 +10000,0.20967,0.21383,0.05,80.712 +10000,0.21382,0.21806,0.05,81.901 +10000,0.21382,0.21806,0.05,81.901 +10000,0.21382,0.21806,0.05,81.901 +10000,0.21382,0.21806,0.05,81.901 +10000,0.21382,0.21806,0.05,81.901 +10000,0.21805,0.22237,0.05,83.048 +10000,0.21805,0.22237,0.05,83.048 +10000,0.21805,0.22237,0.05,83.048 +10000,0.21805,0.22237,0.05,83.048 +10000,0.22236,0.22677,0.05,84.154 +10000,0.22236,0.22677,0.05,84.154 +10000,0.22236,0.22677,0.05,84.154 +10000,0.22236,0.22677,0.05,84.154 +10000,0.22676,0.23125,0.05,85.218 +10000,0.22676,0.23125,0.05,85.218 +10000,0.22676,0.23125,0.05,85.218 +10000,0.22676,0.23125,0.05,85.218 +10000,0.22676,0.23125,0.05,85.218 +10000,0.23124,0.23583,0.05,86.239 +10000,0.23124,0.23583,0.05,86.239 +10000,0.23124,0.23583,0.05,86.239 +10000,0.23124,0.23583,0.05,86.239 +10000,0.23582,0.2405,0.05,87.216 +10000,0.23582,0.2405,0.05,87.216 +10000,0.23582,0.2405,0.05,87.216 +10000,0.23582,0.2405,0.05,87.216 +10000,0.23582,0.2405,0.05,87.216 +10000,0.24048,0.24525,0.05,88.15 +10000,0.24048,0.24525,0.05,88.15 +10000,0.24048,0.24525,0.05,88.15 +10000,0.24048,0.24525,0.05,88.15 +10000,0.24048,0.24525,0.05,88.15 +10000,0.24524,0.25011,0.05,89.041 +10000,0.24524,0.25011,0.05,89.041 +10000,0.24524,0.25011,0.05,89.041 +10000,0.24524,0.25011,0.05,89.041 +10000,0.24524,0.25011,0.05,89.041 +10000,0.25009,0.25505,0.05,89.889 +10000,0.25009,0.25505,0.05,89.889 +10000,0.25009,0.25505,0.05,89.889 +10000,0.25009,0.25505,0.05,89.889 +10000,0.25009,0.25505,0.05,89.889 +10000,0.25504,0.2601,0.05,90.694 +10000,0.25504,0.2601,0.05,90.694 +10000,0.25504,0.2601,0.05,90.694 +10000,0.25504,0.2601,0.05,90.694 +10000,0.25504,0.2601,0.05,90.694 +10000,0.26009,0.26525,0.05,91.456 +10000,0.26009,0.26525,0.05,91.456 +10000,0.26009,0.26525,0.05,91.456 +10000,0.26009,0.26525,0.05,91.456 +10000,0.26009,0.26525,0.05,91.456 +10000,0.26524,0.2705,0.05,92.175 +10000,0.26524,0.2705,0.05,92.175 +10000,0.26524,0.2705,0.05,92.175 +10000,0.26524,0.2705,0.05,92.175 +10000,0.26524,0.2705,0.05,92.175 +10000,0.27048,0.27585,0.05,92.853 +10000,0.27048,0.27585,0.05,92.853 +10000,0.27048,0.27585,0.05,92.853 +10000,0.27048,0.27585,0.05,92.853 +10000,0.27048,0.27585,0.05,92.853 +10000,0.27584,0.28131,0.05,93.49 +10000,0.27584,0.28131,0.05,93.49 +10000,0.27584,0.28131,0.05,93.49 +10000,0.27584,0.28131,0.05,93.49 +10000,0.27584,0.28131,0.05,93.49 +10000,0.27584,0.28131,0.05,93.49 +10000,0.2813,0.28687,0.05,94.087 +10000,0.2813,0.28687,0.05,94.087 +10000,0.2813,0.28687,0.05,94.087 +10000,0.2813,0.28687,0.05,94.087 +10000,0.2813,0.28687,0.05,94.087 +10000,0.28686,0.29255,0.05,94.644 +10000,0.28686,0.29255,0.05,94.644 +10000,0.28686,0.29255,0.05,94.644 +10000,0.28686,0.29255,0.05,94.644 +10000,0.28686,0.29255,0.05,94.644 +10000,0.28686,0.29255,0.05,94.644 +10000,0.29254,0.29834,0.05,95.164 +10000,0.29254,0.29834,0.05,95.164 +10000,0.29254,0.29834,0.05,95.164 +10000,0.29254,0.29834,0.05,95.164 +10000,0.29254,0.29834,0.05,95.164 +10000,0.29254,0.29834,0.05,95.164 +10000,0.29833,0.30425,0.05,95.646 +10000,0.29833,0.30425,0.05,95.646 +10000,0.29833,0.30425,0.05,95.646 +10000,0.29833,0.30425,0.05,95.646 +10000,0.29833,0.30425,0.05,95.646 +10000,0.29833,0.30425,0.05,95.646 +10000,0.30424,0.31027,0.05,96.092 +10000,0.30424,0.31027,0.05,96.092 +10000,0.30424,0.31027,0.05,96.092 +10000,0.30424,0.31027,0.05,96.092 +10000,0.30424,0.31027,0.05,96.092 +10000,0.30424,0.31027,0.05,96.092 +10000,0.31026,0.31641,0.05,96.504 +10000,0.31026,0.31641,0.05,96.504 +10000,0.31026,0.31641,0.05,96.504 +10000,0.31026,0.31641,0.05,96.504 +10000,0.31026,0.31641,0.05,96.504 +10000,0.31026,0.31641,0.05,96.504 +10000,0.3164,0.32267,0.05,96.883 +10000,0.3164,0.32267,0.05,96.883 +10000,0.3164,0.32267,0.05,96.883 +10000,0.3164,0.32267,0.05,96.883 +10000,0.3164,0.32267,0.05,96.883 +10000,0.3164,0.32267,0.05,96.883 +10000,0.32266,0.32906,0.05,97.23 +10000,0.32266,0.32906,0.05,97.23 +10000,0.32266,0.32906,0.05,97.23 +10000,0.32266,0.32906,0.05,97.23 +10000,0.32266,0.32906,0.05,97.23 +10000,0.32266,0.32906,0.05,97.23 +10000,0.32266,0.32906,0.05,97.23 +10000,0.32905,0.33558,0.05,97.548 +10000,0.32905,0.33558,0.05,97.548 +10000,0.32905,0.33558,0.05,97.548 +10000,0.32905,0.33558,0.05,97.548 +10000,0.32905,0.33558,0.05,97.548 +10000,0.32905,0.33558,0.05,97.548 +10000,0.33556,0.34222,0.05,97.836 +10000,0.33556,0.34222,0.05,97.836 +10000,0.33556,0.34222,0.05,97.836 +10000,0.33556,0.34222,0.05,97.836 +10000,0.33556,0.34222,0.05,97.836 +10000,0.33556,0.34222,0.05,97.836 +10000,0.33556,0.34222,0.05,97.836 +10000,0.34221,0.34899,0.05,98.098 +10000,0.34221,0.34899,0.05,98.098 +10000,0.34221,0.34899,0.05,98.098 +10000,0.34221,0.34899,0.05,98.098 +10000,0.34221,0.34899,0.05,98.098 +10000,0.34221,0.34899,0.05,98.098 +10000,0.34221,0.34899,0.05,98.098 +10000,0.34898,0.3559,0.05,98.334 +10000,0.34898,0.3559,0.05,98.334 +10000,0.34898,0.3559,0.05,98.334 +10000,0.34898,0.3559,0.05,98.334 +10000,0.34898,0.3559,0.05,98.334 +10000,0.34898,0.3559,0.05,98.334 +10000,0.35589,0.36295,0.05,98.547 +10000,0.35589,0.36295,0.05,98.547 +10000,0.35589,0.36295,0.05,98.547 +10000,0.35589,0.36295,0.05,98.547 +10000,0.35589,0.36295,0.05,98.547 +10000,0.35589,0.36295,0.05,98.547 +10000,0.35589,0.36295,0.05,98.547 +10000,0.36294,0.37013,0.05,98.738 +10000,0.36294,0.37013,0.05,98.738 +10000,0.36294,0.37013,0.05,98.738 +10000,0.36294,0.37013,0.05,98.738 +10000,0.36294,0.37013,0.05,98.738 +10000,0.36294,0.37013,0.05,98.738 +10000,0.36294,0.37013,0.05,98.738 +10000,0.36294,0.37013,0.05,98.738 +10000,0.37012,0.37746,0.05,98.908 +10000,0.37012,0.37746,0.05,98.908 +10000,0.37012,0.37746,0.05,98.908 +10000,0.37012,0.37746,0.05,98.908 +10000,0.37012,0.37746,0.05,98.908 +10000,0.37012,0.37746,0.05,98.908 +10000,0.37012,0.37746,0.05,98.908 +10000,0.37745,0.38494,0.05,99.059 +10000,0.37745,0.38494,0.05,99.059 +10000,0.37745,0.38494,0.05,99.059 +10000,0.37745,0.38494,0.05,99.059 +10000,0.37745,0.38494,0.05,99.059 +10000,0.37745,0.38494,0.05,99.059 +10000,0.37745,0.38494,0.05,99.059 +10000,0.38493,0.39256,0.05,99.193 +10000,0.38493,0.39256,0.05,99.193 +10000,0.38493,0.39256,0.05,99.193 +10000,0.38493,0.39256,0.05,99.193 +10000,0.38493,0.39256,0.05,99.193 +10000,0.38493,0.39256,0.05,99.193 +10000,0.38493,0.39256,0.05,99.193 +10000,0.38493,0.39256,0.05,99.193 +10000,0.39255,0.40033,0.05,99.31 +10000,0.39255,0.40033,0.05,99.31 +10000,0.39255,0.40033,0.05,99.31 +10000,0.39255,0.40033,0.05,99.31 +10000,0.39255,0.40033,0.05,99.31 +10000,0.39255,0.40033,0.05,99.31 +10000,0.39255,0.40033,0.05,99.31 +10000,0.39255,0.40033,0.05,99.31 +10000,0.40032,0.40826,0.05,99.414 +10000,0.40032,0.40826,0.05,99.414 +10000,0.40032,0.40826,0.05,99.414 +10000,0.40032,0.40826,0.05,99.414 +10000,0.40032,0.40826,0.05,99.414 +10000,0.40032,0.40826,0.05,99.414 +10000,0.40032,0.40826,0.05,99.414 +10000,0.40032,0.40826,0.05,99.414 +10000,0.40825,0.41634,0.05,99.504 +10000,0.40825,0.41634,0.05,99.504 +10000,0.40825,0.41634,0.05,99.504 +10000,0.40825,0.41634,0.05,99.504 +10000,0.40825,0.41634,0.05,99.504 +10000,0.40825,0.41634,0.05,99.504 +10000,0.40825,0.41634,0.05,99.504 +10000,0.40825,0.41634,0.05,99.504 +10000,0.41633,0.42459,0.05,99.582 +10000,0.41633,0.42459,0.05,99.582 +10000,0.41633,0.42459,0.05,99.582 +10000,0.41633,0.42459,0.05,99.582 +10000,0.41633,0.42459,0.05,99.582 +10000,0.41633,0.42459,0.05,99.582 +10000,0.41633,0.42459,0.05,99.582 +10000,0.41633,0.42459,0.05,99.582 +10000,0.42458,0.433,0.05,99.65 +10000,0.42458,0.433,0.05,99.65 +10000,0.42458,0.433,0.05,99.65 +10000,0.42458,0.433,0.05,99.65 +10000,0.42458,0.433,0.05,99.65 +10000,0.42458,0.433,0.05,99.65 +10000,0.42458,0.433,0.05,99.65 +10000,0.42458,0.433,0.05,99.65 +10000,0.42458,0.433,0.05,99.65 +10000,0.43298,0.44157,0.05,99.708 +10000,0.43298,0.44157,0.05,99.708 +10000,0.43298,0.44157,0.05,99.708 +10000,0.43298,0.44157,0.05,99.708 +10000,0.43298,0.44157,0.05,99.708 +10000,0.43298,0.44157,0.05,99.708 +10000,0.43298,0.44157,0.05,99.708 +10000,0.43298,0.44157,0.05,99.708 +10000,0.44156,0.45031,0.05,99.758 +10000,0.44156,0.45031,0.05,99.758 +10000,0.44156,0.45031,0.05,99.758 +10000,0.44156,0.45031,0.05,99.758 +10000,0.44156,0.45031,0.05,99.758 +10000,0.44156,0.45031,0.05,99.758 +10000,0.44156,0.45031,0.05,99.758 +10000,0.44156,0.45031,0.05,99.758 +10000,0.44156,0.45031,0.05,99.758 +10000,0.4503,0.45923,0.05,99.8 +10000,0.4503,0.45923,0.05,99.8 +10000,0.4503,0.45923,0.05,99.8 +10000,0.4503,0.45923,0.05,99.8 +10000,0.4503,0.45923,0.05,99.8 +10000,0.4503,0.45923,0.05,99.8 +10000,0.4503,0.45923,0.05,99.8 +10000,0.4503,0.45923,0.05,99.8 +10000,0.4503,0.45923,0.05,99.8 +10000,0.45922,0.46833,0.05,99.836 +10000,0.45922,0.46833,0.05,99.836 +10000,0.45922,0.46833,0.05,99.836 +10000,0.45922,0.46833,0.05,99.836 +10000,0.45922,0.46833,0.05,99.836 +10000,0.45922,0.46833,0.05,99.836 +10000,0.45922,0.46833,0.05,99.836 +10000,0.45922,0.46833,0.05,99.836 +10000,0.45922,0.46833,0.05,99.836 +10000,0.46832,0.4776,0.05,99.866 +10000,0.46832,0.4776,0.05,99.866 +10000,0.46832,0.4776,0.05,99.866 +10000,0.46832,0.4776,0.05,99.866 +10000,0.46832,0.4776,0.05,99.866 +10000,0.46832,0.4776,0.05,99.866 +10000,0.46832,0.4776,0.05,99.866 +10000,0.46832,0.4776,0.05,99.866 +10000,0.46832,0.4776,0.05,99.866 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.47759,0.48706,0.05,99.891 +10000,0.48705,0.49671,0.05,99.912 +10000,0.48705,0.49671,0.05,99.912 +10000,0.48705,0.49671,0.05,99.912 +10000,0.48705,0.49671,0.05,99.912 +10000,0.48705,0.49671,0.05,99.912 +10000,0.48705,0.49671,0.05,99.912 +10000,0.48705,0.49671,0.05,99.912 +10000,0.48705,0.49671,0.05,99.912 +10000,0.48705,0.49671,0.05,99.912 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.4967,0.50655,0.05,99.93 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.50654,0.51658,0.05,99.944 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.51657,0.52681,0.05,99.955 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.5268,0.53725,0.05,99.965 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.53724,0.54789,0.05,99.973 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.54788,0.55874,0.05,99.979 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.55873,0.56981,0.05,99.984 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.5698,0.5811,0.05,99.987 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.58109,0.59261,0.05,99.99 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.5926,0.60435,0.05,99.993 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.60434,0.61632,0.05,99.995 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.61631,0.62853,0.05,99.996 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.62852,0.64098,0.05,99.997 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.64097,0.65368,0.05,99.998 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.65367,0.66663,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.66662,0.67984,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.67983,0.69331,0.05,99.999 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_10.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_10.csv new file mode 100644 index 00000000000..f84f6a0a181 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_10.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,0.07071,0.072112,0.05,-19.444 +1e+05,0.07071,0.072112,0.05,-19.444 +1e+05,0.07211,0.07354,0.05,-18.353 +1e+05,0.07351,0.074968,0.05,-17.283 +1e+05,0.075155,0.076646,0.05,-16.048 +1e+05,0.075155,0.076646,0.05,-16.048 +1e+05,0.077046,0.078574,0.05,-14.662 +1e+05,0.077046,0.078574,0.05,-14.662 +1e+05,0.078936,0.080501,0.05,-13.309 +1e+05,0.078936,0.080501,0.05,-13.309 +1e+05,0.080826,0.082429,0.05,-11.987 +1e+05,0.080826,0.082429,0.05,-11.987 +1e+05,0.082716,0.084357,0.05,-10.693 +1e+05,0.082716,0.084357,0.05,-10.693 +1e+05,0.084607,0.086285,0.05,-9.4284 +1e+05,0.084607,0.086285,0.05,-9.4284 +1e+05,0.086497,0.088212,0.05,-8.1901 +1e+05,0.086497,0.088212,0.05,-8.1901 +1e+05,0.088387,0.09014,0.05,-6.9775 +1e+05,0.088387,0.09014,0.05,-6.9775 +1e+05,0.090278,0.092068,0.05,-5.7896 +1e+05,0.090278,0.092068,0.05,-5.7896 +1e+05,0.092168,0.093995,0.05,-4.6253 +1e+05,0.092168,0.093995,0.05,-4.6253 +1e+05,0.094031,0.095896,0.05,-3.5002 +1e+05,0.095885,0.097786,0.05,-2.4013 +1e+05,0.095885,0.097786,0.05,-2.4013 +1e+05,0.097776,0.099715,0.05,-1.3015 +1e+05,0.097776,0.099715,0.05,-1.3015 +1e+05,0.099704,0.10168,0.05,-0.20076 +1e+05,0.099704,0.10168,0.05,-0.20076 +1e+05,0.10167,0.10369,0.05,0.90087 +1e+05,0.10167,0.10369,0.05,0.90087 +1e+05,0.10368,0.10573,0.05,2.0034 +1e+05,0.10368,0.10573,0.05,2.0034 +1e+05,0.10572,0.10782,0.05,3.1067 +1e+05,0.10572,0.10782,0.05,3.1067 +1e+05,0.10781,0.10995,0.05,4.2109 +1e+05,0.10781,0.10995,0.05,4.2109 +1e+05,0.10993,0.11211,0.05,5.316 +1e+05,0.10993,0.11211,0.05,5.316 +1e+05,0.10993,0.11211,0.05,5.316 +1e+05,0.1121,0.11433,0.05,6.4218 +1e+05,0.1121,0.11433,0.05,6.4218 +1e+05,0.11432,0.11658,0.05,7.5284 +1e+05,0.11432,0.11658,0.05,7.5284 +1e+05,0.11657,0.11888,0.05,8.6358 +1e+05,0.11657,0.11888,0.05,8.6358 +1e+05,0.11887,0.12123,0.05,9.7439 +1e+05,0.11887,0.12123,0.05,9.7439 +1e+05,0.11887,0.12123,0.05,9.7439 +1e+05,0.12122,0.12362,0.05,10.853 +1e+05,0.12122,0.12362,0.05,10.853 +1e+05,0.12361,0.12607,0.05,11.962 +1e+05,0.12361,0.12607,0.05,11.962 +1e+05,0.12361,0.12607,0.05,11.962 +1e+05,0.12605,0.12855,0.05,13.072 +1e+05,0.12605,0.12855,0.05,13.072 +1e+05,0.12854,0.13109,0.05,14.183 +1e+05,0.12854,0.13109,0.05,14.183 +1e+05,0.12854,0.13109,0.05,14.183 +1e+05,0.13108,0.13368,0.05,15.294 +1e+05,0.13108,0.13368,0.05,15.294 +1e+05,0.13367,0.13632,0.05,16.406 +1e+05,0.13367,0.13632,0.05,16.406 +1e+05,0.13367,0.13632,0.05,16.406 +1e+05,0.13631,0.13901,0.05,17.518 +1e+05,0.13631,0.13901,0.05,17.518 +1e+05,0.13631,0.13901,0.05,17.518 +1e+05,0.139,0.14176,0.05,18.631 +1e+05,0.139,0.14176,0.05,18.631 +1e+05,0.14175,0.14456,0.05,19.744 +1e+05,0.14175,0.14456,0.05,19.744 +1e+05,0.14175,0.14456,0.05,19.744 +1e+05,0.14455,0.14742,0.05,20.858 +1e+05,0.14455,0.14742,0.05,20.858 +1e+05,0.14455,0.14742,0.05,20.858 +1e+05,0.1474,0.15033,0.05,21.972 +1e+05,0.1474,0.15033,0.05,21.972 +1e+05,0.1474,0.15033,0.05,21.972 +1e+05,0.15032,0.1533,0.05,23.086 +1e+05,0.15032,0.1533,0.05,23.086 +1e+05,0.15032,0.1533,0.05,23.086 +1e+05,0.15329,0.15633,0.05,24.201 +1e+05,0.15329,0.15633,0.05,24.201 +1e+05,0.15329,0.15633,0.05,24.201 +1e+05,0.15632,0.15942,0.05,25.315 +1e+05,0.15632,0.15942,0.05,25.315 +1e+05,0.15632,0.15942,0.05,25.315 +1e+05,0.15941,0.16257,0.05,26.43 +1e+05,0.15941,0.16257,0.05,26.43 +1e+05,0.15941,0.16257,0.05,26.43 +1e+05,0.16256,0.16578,0.05,27.544 +1e+05,0.16256,0.16578,0.05,27.544 +1e+05,0.16256,0.16578,0.05,27.544 +1e+05,0.16577,0.16906,0.05,28.659 +1e+05,0.16577,0.16906,0.05,28.659 +1e+05,0.16577,0.16906,0.05,28.659 +1e+05,0.16577,0.16906,0.05,28.659 +1e+05,0.16905,0.1724,0.05,29.774 +1e+05,0.16905,0.1724,0.05,29.774 +1e+05,0.16905,0.1724,0.05,29.774 +1e+05,0.17239,0.1758,0.05,30.888 +1e+05,0.17239,0.1758,0.05,30.888 +1e+05,0.17239,0.1758,0.05,30.888 +1e+05,0.17579,0.17928,0.05,32.002 +1e+05,0.17579,0.17928,0.05,32.002 +1e+05,0.17579,0.17928,0.05,32.002 +1e+05,0.17579,0.17928,0.05,32.002 +1e+05,0.17927,0.18282,0.05,33.116 +1e+05,0.17927,0.18282,0.05,33.116 +1e+05,0.17927,0.18282,0.05,33.116 +1e+05,0.18281,0.18644,0.05,34.229 +1e+05,0.18281,0.18644,0.05,34.229 +1e+05,0.18281,0.18644,0.05,34.229 +1e+05,0.18281,0.18644,0.05,34.229 +1e+05,0.18643,0.19013,0.05,35.342 +1e+05,0.18643,0.19013,0.05,35.342 +1e+05,0.18643,0.19013,0.05,35.342 +1e+05,0.18643,0.19013,0.05,35.342 +1e+05,0.19011,0.19388,0.05,36.454 +1e+05,0.19011,0.19388,0.05,36.454 +1e+05,0.19011,0.19388,0.05,36.454 +1e+05,0.19387,0.19772,0.05,37.566 +1e+05,0.19387,0.19772,0.05,37.566 +1e+05,0.19387,0.19772,0.05,37.566 +1e+05,0.19387,0.19772,0.05,37.566 +1e+05,0.19771,0.20163,0.05,38.676 +1e+05,0.19771,0.20163,0.05,38.676 +1e+05,0.19771,0.20163,0.05,38.676 +1e+05,0.19771,0.20163,0.05,38.676 +1e+05,0.20162,0.20562,0.05,39.786 +1e+05,0.20162,0.20562,0.05,39.786 +1e+05,0.20162,0.20562,0.05,39.786 +1e+05,0.20162,0.20562,0.05,39.786 +1e+05,0.2056,0.20968,0.05,40.895 +1e+05,0.2056,0.20968,0.05,40.895 +1e+05,0.2056,0.20968,0.05,40.895 +1e+05,0.2056,0.20968,0.05,40.895 +1e+05,0.20967,0.21383,0.05,42.002 +1e+05,0.20967,0.21383,0.05,42.002 +1e+05,0.20967,0.21383,0.05,42.002 +1e+05,0.20967,0.21383,0.05,42.002 +1e+05,0.21382,0.21806,0.05,43.108 +1e+05,0.21382,0.21806,0.05,43.108 +1e+05,0.21382,0.21806,0.05,43.108 +1e+05,0.21382,0.21806,0.05,43.108 +1e+05,0.21382,0.21806,0.05,43.108 +1e+05,0.21805,0.22237,0.05,44.213 +1e+05,0.21805,0.22237,0.05,44.213 +1e+05,0.21805,0.22237,0.05,44.213 +1e+05,0.21805,0.22237,0.05,44.213 +1e+05,0.22236,0.22677,0.05,45.316 +1e+05,0.22236,0.22677,0.05,45.316 +1e+05,0.22236,0.22677,0.05,45.316 +1e+05,0.22236,0.22677,0.05,45.316 +1e+05,0.22676,0.23125,0.05,46.418 +1e+05,0.22676,0.23125,0.05,46.418 +1e+05,0.22676,0.23125,0.05,46.418 +1e+05,0.22676,0.23125,0.05,46.418 +1e+05,0.22676,0.23125,0.05,46.418 +1e+05,0.23124,0.23583,0.05,47.517 +1e+05,0.23124,0.23583,0.05,47.517 +1e+05,0.23124,0.23583,0.05,47.517 +1e+05,0.23124,0.23583,0.05,47.517 +1e+05,0.23582,0.2405,0.05,48.615 +1e+05,0.23582,0.2405,0.05,48.615 +1e+05,0.23582,0.2405,0.05,48.615 +1e+05,0.23582,0.2405,0.05,48.615 +1e+05,0.23582,0.2405,0.05,48.615 +1e+05,0.24048,0.24525,0.05,49.71 +1e+05,0.24048,0.24525,0.05,49.71 +1e+05,0.24048,0.24525,0.05,49.71 +1e+05,0.24048,0.24525,0.05,49.71 +1e+05,0.24048,0.24525,0.05,49.71 +1e+05,0.24524,0.25011,0.05,50.804 +1e+05,0.24524,0.25011,0.05,50.804 +1e+05,0.24524,0.25011,0.05,50.804 +1e+05,0.24524,0.25011,0.05,50.804 +1e+05,0.24524,0.25011,0.05,50.804 +1e+05,0.25009,0.25505,0.05,51.894 +1e+05,0.25009,0.25505,0.05,51.894 +1e+05,0.25009,0.25505,0.05,51.894 +1e+05,0.25009,0.25505,0.05,51.894 +1e+05,0.25009,0.25505,0.05,51.894 +1e+05,0.25504,0.2601,0.05,52.982 +1e+05,0.25504,0.2601,0.05,52.982 +1e+05,0.25504,0.2601,0.05,52.982 +1e+05,0.25504,0.2601,0.05,52.982 +1e+05,0.25504,0.2601,0.05,52.982 +1e+05,0.26009,0.26525,0.05,54.067 +1e+05,0.26009,0.26525,0.05,54.067 +1e+05,0.26009,0.26525,0.05,54.067 +1e+05,0.26009,0.26525,0.05,54.067 +1e+05,0.26009,0.26525,0.05,54.067 +1e+05,0.26524,0.2705,0.05,55.149 +1e+05,0.26524,0.2705,0.05,55.149 +1e+05,0.26524,0.2705,0.05,55.149 +1e+05,0.26524,0.2705,0.05,55.149 +1e+05,0.26524,0.2705,0.05,55.149 +1e+05,0.27048,0.27585,0.05,56.227 +1e+05,0.27048,0.27585,0.05,56.227 +1e+05,0.27048,0.27585,0.05,56.227 +1e+05,0.27048,0.27585,0.05,56.227 +1e+05,0.27048,0.27585,0.05,56.227 +1e+05,0.27584,0.28131,0.05,57.302 +1e+05,0.27584,0.28131,0.05,57.302 +1e+05,0.27584,0.28131,0.05,57.302 +1e+05,0.27584,0.28131,0.05,57.302 +1e+05,0.27584,0.28131,0.05,57.302 +1e+05,0.27584,0.28131,0.05,57.302 +1e+05,0.2813,0.28687,0.05,58.373 +1e+05,0.2813,0.28687,0.05,58.373 +1e+05,0.2813,0.28687,0.05,58.373 +1e+05,0.2813,0.28687,0.05,58.373 +1e+05,0.2813,0.28687,0.05,58.373 +1e+05,0.28686,0.29255,0.05,59.44 +1e+05,0.28686,0.29255,0.05,59.44 +1e+05,0.28686,0.29255,0.05,59.44 +1e+05,0.28686,0.29255,0.05,59.44 +1e+05,0.28686,0.29255,0.05,59.44 +1e+05,0.28686,0.29255,0.05,59.44 +1e+05,0.29254,0.29834,0.05,60.503 +1e+05,0.29254,0.29834,0.05,60.503 +1e+05,0.29254,0.29834,0.05,60.503 +1e+05,0.29254,0.29834,0.05,60.503 +1e+05,0.29254,0.29834,0.05,60.503 +1e+05,0.29254,0.29834,0.05,60.503 +1e+05,0.29833,0.30425,0.05,61.562 +1e+05,0.29833,0.30425,0.05,61.562 +1e+05,0.29833,0.30425,0.05,61.562 +1e+05,0.29833,0.30425,0.05,61.562 +1e+05,0.29833,0.30425,0.05,61.562 +1e+05,0.29833,0.30425,0.05,61.562 +1e+05,0.30424,0.31027,0.05,62.615 +1e+05,0.30424,0.31027,0.05,62.615 +1e+05,0.30424,0.31027,0.05,62.615 +1e+05,0.30424,0.31027,0.05,62.615 +1e+05,0.30424,0.31027,0.05,62.615 +1e+05,0.30424,0.31027,0.05,62.615 +1e+05,0.31026,0.31641,0.05,63.664 +1e+05,0.31026,0.31641,0.05,63.664 +1e+05,0.31026,0.31641,0.05,63.664 +1e+05,0.31026,0.31641,0.05,63.664 +1e+05,0.31026,0.31641,0.05,63.664 +1e+05,0.31026,0.31641,0.05,63.664 +1e+05,0.3164,0.32267,0.05,64.708 +1e+05,0.3164,0.32267,0.05,64.708 +1e+05,0.3164,0.32267,0.05,64.708 +1e+05,0.3164,0.32267,0.05,64.708 +1e+05,0.3164,0.32267,0.05,64.708 +1e+05,0.3164,0.32267,0.05,64.708 +1e+05,0.32266,0.32906,0.05,65.746 +1e+05,0.32266,0.32906,0.05,65.746 +1e+05,0.32266,0.32906,0.05,65.746 +1e+05,0.32266,0.32906,0.05,65.746 +1e+05,0.32266,0.32906,0.05,65.746 +1e+05,0.32266,0.32906,0.05,65.746 +1e+05,0.32266,0.32906,0.05,65.746 +1e+05,0.32905,0.33558,0.05,66.778 +1e+05,0.32905,0.33558,0.05,66.778 +1e+05,0.32905,0.33558,0.05,66.778 +1e+05,0.32905,0.33558,0.05,66.778 +1e+05,0.32905,0.33558,0.05,66.778 +1e+05,0.32905,0.33558,0.05,66.778 +1e+05,0.33556,0.34222,0.05,67.804 +1e+05,0.33556,0.34222,0.05,67.804 +1e+05,0.33556,0.34222,0.05,67.804 +1e+05,0.33556,0.34222,0.05,67.804 +1e+05,0.33556,0.34222,0.05,67.804 +1e+05,0.33556,0.34222,0.05,67.804 +1e+05,0.33556,0.34222,0.05,67.804 +1e+05,0.34221,0.34899,0.05,68.824 +1e+05,0.34221,0.34899,0.05,68.824 +1e+05,0.34221,0.34899,0.05,68.824 +1e+05,0.34221,0.34899,0.05,68.824 +1e+05,0.34221,0.34899,0.05,68.824 +1e+05,0.34221,0.34899,0.05,68.824 +1e+05,0.34221,0.34899,0.05,68.824 +1e+05,0.34898,0.3559,0.05,69.838 +1e+05,0.34898,0.3559,0.05,69.838 +1e+05,0.34898,0.3559,0.05,69.838 +1e+05,0.34898,0.3559,0.05,69.838 +1e+05,0.34898,0.3559,0.05,69.838 +1e+05,0.34898,0.3559,0.05,69.838 +1e+05,0.35589,0.36295,0.05,70.844 +1e+05,0.35589,0.36295,0.05,70.844 +1e+05,0.35589,0.36295,0.05,70.844 +1e+05,0.35589,0.36295,0.05,70.844 +1e+05,0.35589,0.36295,0.05,70.844 +1e+05,0.35589,0.36295,0.05,70.844 +1e+05,0.35589,0.36295,0.05,70.844 +1e+05,0.36294,0.37013,0.05,71.844 +1e+05,0.36294,0.37013,0.05,71.844 +1e+05,0.36294,0.37013,0.05,71.844 +1e+05,0.36294,0.37013,0.05,71.844 +1e+05,0.36294,0.37013,0.05,71.844 +1e+05,0.36294,0.37013,0.05,71.844 +1e+05,0.36294,0.37013,0.05,71.844 +1e+05,0.36294,0.37013,0.05,71.844 +1e+05,0.37012,0.37746,0.05,72.835 +1e+05,0.37012,0.37746,0.05,72.835 +1e+05,0.37012,0.37746,0.05,72.835 +1e+05,0.37012,0.37746,0.05,72.835 +1e+05,0.37012,0.37746,0.05,72.835 +1e+05,0.37012,0.37746,0.05,72.835 +1e+05,0.37012,0.37746,0.05,72.835 +1e+05,0.37745,0.38494,0.05,73.819 +1e+05,0.37745,0.38494,0.05,73.819 +1e+05,0.37745,0.38494,0.05,73.819 +1e+05,0.37745,0.38494,0.05,73.819 +1e+05,0.37745,0.38494,0.05,73.819 +1e+05,0.37745,0.38494,0.05,73.819 +1e+05,0.37745,0.38494,0.05,73.819 +1e+05,0.38493,0.39256,0.05,74.795 +1e+05,0.38493,0.39256,0.05,74.795 +1e+05,0.38493,0.39256,0.05,74.795 +1e+05,0.38493,0.39256,0.05,74.795 +1e+05,0.38493,0.39256,0.05,74.795 +1e+05,0.38493,0.39256,0.05,74.795 +1e+05,0.38493,0.39256,0.05,74.795 +1e+05,0.38493,0.39256,0.05,74.795 +1e+05,0.39255,0.40033,0.05,75.763 +1e+05,0.39255,0.40033,0.05,75.763 +1e+05,0.39255,0.40033,0.05,75.763 +1e+05,0.39255,0.40033,0.05,75.763 +1e+05,0.39255,0.40033,0.05,75.763 +1e+05,0.39255,0.40033,0.05,75.763 +1e+05,0.39255,0.40033,0.05,75.763 +1e+05,0.39255,0.40033,0.05,75.763 +1e+05,0.40032,0.40826,0.05,76.722 +1e+05,0.40032,0.40826,0.05,76.722 +1e+05,0.40032,0.40826,0.05,76.722 +1e+05,0.40032,0.40826,0.05,76.722 +1e+05,0.40032,0.40826,0.05,76.722 +1e+05,0.40032,0.40826,0.05,76.722 +1e+05,0.40032,0.40826,0.05,76.722 +1e+05,0.40032,0.40826,0.05,76.722 +1e+05,0.40825,0.41634,0.05,77.672 +1e+05,0.40825,0.41634,0.05,77.672 +1e+05,0.40825,0.41634,0.05,77.672 +1e+05,0.40825,0.41634,0.05,77.672 +1e+05,0.40825,0.41634,0.05,77.672 +1e+05,0.40825,0.41634,0.05,77.672 +1e+05,0.40825,0.41634,0.05,77.672 +1e+05,0.40825,0.41634,0.05,77.672 +1e+05,0.41633,0.42459,0.05,78.614 +1e+05,0.41633,0.42459,0.05,78.614 +1e+05,0.41633,0.42459,0.05,78.614 +1e+05,0.41633,0.42459,0.05,78.614 +1e+05,0.41633,0.42459,0.05,78.614 +1e+05,0.41633,0.42459,0.05,78.614 +1e+05,0.41633,0.42459,0.05,78.614 +1e+05,0.41633,0.42459,0.05,78.614 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.42458,0.433,0.05,79.545 +1e+05,0.43298,0.44157,0.05,80.467 +1e+05,0.43298,0.44157,0.05,80.467 +1e+05,0.43298,0.44157,0.05,80.467 +1e+05,0.43298,0.44157,0.05,80.467 +1e+05,0.43298,0.44157,0.05,80.467 +1e+05,0.43298,0.44157,0.05,80.467 +1e+05,0.43298,0.44157,0.05,80.467 +1e+05,0.43298,0.44157,0.05,80.467 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.44156,0.45031,0.05,81.379 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.4503,0.45923,0.05,82.282 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.45922,0.46833,0.05,83.173 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.46832,0.4776,0.05,84.055 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.47759,0.48706,0.05,84.926 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.48705,0.49671,0.05,85.786 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.4967,0.50655,0.05,86.636 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.50654,0.51658,0.05,87.475 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.51657,0.52681,0.05,88.303 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.5268,0.53725,0.05,89.121 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.53724,0.54789,0.05,89.928 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.54788,0.55874,0.05,90.724 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.55873,0.56981,0.05,91.511 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.5698,0.5811,0.05,92.288 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.58109,0.59261,0.05,93.055 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.5926,0.60435,0.05,93.814 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.60434,0.61632,0.05,94.564 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.61631,0.62853,0.05,95.306 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.62852,0.64098,0.05,96.042 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.64097,0.65368,0.05,96.771 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.65367,0.66663,0.05,97.495 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.66662,0.67984,0.05,98.214 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.67983,0.69331,0.05,98.931 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,0.6933,0.70704,0.05,99.646 +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_2.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_2.csv new file mode 100644 index 00000000000..7645d62f469 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_2.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,0.07071,0.072112,0.05,-19.187 +20000,0.07071,0.072112,0.05,-19.187 +20000,0.07211,0.07354,0.05,-17.591 +20000,0.07351,0.074968,0.05,-16.025 +20000,0.075155,0.076646,0.05,-14.216 +20000,0.075155,0.076646,0.05,-14.216 +20000,0.077046,0.078574,0.05,-12.188 +20000,0.077046,0.078574,0.05,-12.188 +20000,0.078936,0.080501,0.05,-10.206 +20000,0.078936,0.080501,0.05,-10.206 +20000,0.080826,0.082429,0.05,-8.2679 +20000,0.080826,0.082429,0.05,-8.2679 +20000,0.082716,0.084357,0.05,-6.373 +20000,0.082716,0.084357,0.05,-6.373 +20000,0.084607,0.086285,0.05,-4.519 +20000,0.084607,0.086285,0.05,-4.519 +20000,0.086497,0.088212,0.05,-2.7043 +20000,0.086497,0.088212,0.05,-2.7043 +20000,0.088387,0.09014,0.05,-0.92736 +20000,0.088387,0.09014,0.05,-0.92736 +20000,0.090278,0.092068,0.05,0.81323 +20000,0.090278,0.092068,0.05,0.81323 +20000,0.092168,0.093995,0.05,2.5188 +20000,0.092168,0.093995,0.05,2.5188 +20000,0.094031,0.095896,0.05,4.1665 +20000,0.095885,0.097786,0.05,5.7753 +20000,0.095885,0.097786,0.05,5.7753 +20000,0.097776,0.099715,0.05,7.3847 +20000,0.097776,0.099715,0.05,7.3847 +20000,0.099704,0.10168,0.05,8.9946 +20000,0.099704,0.10168,0.05,8.9946 +20000,0.10167,0.10369,0.05,10.605 +20000,0.10167,0.10369,0.05,10.605 +20000,0.10368,0.10573,0.05,12.215 +20000,0.10368,0.10573,0.05,12.215 +20000,0.10572,0.10782,0.05,13.825 +20000,0.10572,0.10782,0.05,13.825 +20000,0.10781,0.10995,0.05,15.435 +20000,0.10781,0.10995,0.05,15.435 +20000,0.10993,0.11211,0.05,17.045 +20000,0.10993,0.11211,0.05,17.045 +20000,0.10993,0.11211,0.05,17.045 +20000,0.1121,0.11433,0.05,18.654 +20000,0.1121,0.11433,0.05,18.654 +20000,0.11432,0.11658,0.05,20.261 +20000,0.11432,0.11658,0.05,20.261 +20000,0.11657,0.11888,0.05,21.868 +20000,0.11657,0.11888,0.05,21.868 +20000,0.11887,0.12123,0.05,23.473 +20000,0.11887,0.12123,0.05,23.473 +20000,0.11887,0.12123,0.05,23.473 +20000,0.12122,0.12362,0.05,25.076 +20000,0.12122,0.12362,0.05,25.076 +20000,0.12361,0.12607,0.05,26.677 +20000,0.12361,0.12607,0.05,26.677 +20000,0.12361,0.12607,0.05,26.677 +20000,0.12605,0.12855,0.05,28.275 +20000,0.12605,0.12855,0.05,28.275 +20000,0.12854,0.13109,0.05,29.871 +20000,0.12854,0.13109,0.05,29.871 +20000,0.12854,0.13109,0.05,29.871 +20000,0.13108,0.13368,0.05,31.463 +20000,0.13108,0.13368,0.05,31.463 +20000,0.13367,0.13632,0.05,33.052 +20000,0.13367,0.13632,0.05,33.052 +20000,0.13367,0.13632,0.05,33.052 +20000,0.13631,0.13901,0.05,34.637 +20000,0.13631,0.13901,0.05,34.637 +20000,0.13631,0.13901,0.05,34.637 +20000,0.139,0.14176,0.05,36.217 +20000,0.139,0.14176,0.05,36.217 +20000,0.14175,0.14456,0.05,37.793 +20000,0.14175,0.14456,0.05,37.793 +20000,0.14175,0.14456,0.05,37.793 +20000,0.14455,0.14742,0.05,39.363 +20000,0.14455,0.14742,0.05,39.363 +20000,0.14455,0.14742,0.05,39.363 +20000,0.1474,0.15033,0.05,40.927 +20000,0.1474,0.15033,0.05,40.927 +20000,0.1474,0.15033,0.05,40.927 +20000,0.15032,0.1533,0.05,42.484 +20000,0.15032,0.1533,0.05,42.484 +20000,0.15032,0.1533,0.05,42.484 +20000,0.15329,0.15633,0.05,44.035 +20000,0.15329,0.15633,0.05,44.035 +20000,0.15329,0.15633,0.05,44.035 +20000,0.15632,0.15942,0.05,45.578 +20000,0.15632,0.15942,0.05,45.578 +20000,0.15632,0.15942,0.05,45.578 +20000,0.15941,0.16257,0.05,47.113 +20000,0.15941,0.16257,0.05,47.113 +20000,0.15941,0.16257,0.05,47.113 +20000,0.16256,0.16578,0.05,48.64 +20000,0.16256,0.16578,0.05,48.64 +20000,0.16256,0.16578,0.05,48.64 +20000,0.16577,0.16906,0.05,50.157 +20000,0.16577,0.16906,0.05,50.157 +20000,0.16577,0.16906,0.05,50.157 +20000,0.16577,0.16906,0.05,50.157 +20000,0.16905,0.1724,0.05,51.664 +20000,0.16905,0.1724,0.05,51.664 +20000,0.16905,0.1724,0.05,51.664 +20000,0.17239,0.1758,0.05,53.16 +20000,0.17239,0.1758,0.05,53.16 +20000,0.17239,0.1758,0.05,53.16 +20000,0.17579,0.17928,0.05,54.645 +20000,0.17579,0.17928,0.05,54.645 +20000,0.17579,0.17928,0.05,54.645 +20000,0.17579,0.17928,0.05,54.645 +20000,0.17927,0.18282,0.05,56.118 +20000,0.17927,0.18282,0.05,56.118 +20000,0.17927,0.18282,0.05,56.118 +20000,0.18281,0.18644,0.05,57.578 +20000,0.18281,0.18644,0.05,57.578 +20000,0.18281,0.18644,0.05,57.578 +20000,0.18281,0.18644,0.05,57.578 +20000,0.18643,0.19013,0.05,59.024 +20000,0.18643,0.19013,0.05,59.024 +20000,0.18643,0.19013,0.05,59.024 +20000,0.18643,0.19013,0.05,59.024 +20000,0.19011,0.19388,0.05,60.456 +20000,0.19011,0.19388,0.05,60.456 +20000,0.19011,0.19388,0.05,60.456 +20000,0.19387,0.19772,0.05,61.873 +20000,0.19387,0.19772,0.05,61.873 +20000,0.19387,0.19772,0.05,61.873 +20000,0.19387,0.19772,0.05,61.873 +20000,0.19771,0.20163,0.05,63.273 +20000,0.19771,0.20163,0.05,63.273 +20000,0.19771,0.20163,0.05,63.273 +20000,0.19771,0.20163,0.05,63.273 +20000,0.20162,0.20562,0.05,64.657 +20000,0.20162,0.20562,0.05,64.657 +20000,0.20162,0.20562,0.05,64.657 +20000,0.20162,0.20562,0.05,64.657 +20000,0.2056,0.20968,0.05,66.023 +20000,0.2056,0.20968,0.05,66.023 +20000,0.2056,0.20968,0.05,66.023 +20000,0.2056,0.20968,0.05,66.023 +20000,0.20967,0.21383,0.05,67.37 +20000,0.20967,0.21383,0.05,67.37 +20000,0.20967,0.21383,0.05,67.37 +20000,0.20967,0.21383,0.05,67.37 +20000,0.21382,0.21806,0.05,68.698 +20000,0.21382,0.21806,0.05,68.698 +20000,0.21382,0.21806,0.05,68.698 +20000,0.21382,0.21806,0.05,68.698 +20000,0.21382,0.21806,0.05,68.698 +20000,0.21805,0.22237,0.05,70.005 +20000,0.21805,0.22237,0.05,70.005 +20000,0.21805,0.22237,0.05,70.005 +20000,0.21805,0.22237,0.05,70.005 +20000,0.22236,0.22677,0.05,71.291 +20000,0.22236,0.22677,0.05,71.291 +20000,0.22236,0.22677,0.05,71.291 +20000,0.22236,0.22677,0.05,71.291 +20000,0.22676,0.23125,0.05,72.555 +20000,0.22676,0.23125,0.05,72.555 +20000,0.22676,0.23125,0.05,72.555 +20000,0.22676,0.23125,0.05,72.555 +20000,0.22676,0.23125,0.05,72.555 +20000,0.23124,0.23583,0.05,73.796 +20000,0.23124,0.23583,0.05,73.796 +20000,0.23124,0.23583,0.05,73.796 +20000,0.23124,0.23583,0.05,73.796 +20000,0.23582,0.2405,0.05,75.013 +20000,0.23582,0.2405,0.05,75.013 +20000,0.23582,0.2405,0.05,75.013 +20000,0.23582,0.2405,0.05,75.013 +20000,0.23582,0.2405,0.05,75.013 +20000,0.24048,0.24525,0.05,76.205 +20000,0.24048,0.24525,0.05,76.205 +20000,0.24048,0.24525,0.05,76.205 +20000,0.24048,0.24525,0.05,76.205 +20000,0.24048,0.24525,0.05,76.205 +20000,0.24524,0.25011,0.05,77.371 +20000,0.24524,0.25011,0.05,77.371 +20000,0.24524,0.25011,0.05,77.371 +20000,0.24524,0.25011,0.05,77.371 +20000,0.24524,0.25011,0.05,77.371 +20000,0.25009,0.25505,0.05,78.511 +20000,0.25009,0.25505,0.05,78.511 +20000,0.25009,0.25505,0.05,78.511 +20000,0.25009,0.25505,0.05,78.511 +20000,0.25009,0.25505,0.05,78.511 +20000,0.25504,0.2601,0.05,79.624 +20000,0.25504,0.2601,0.05,79.624 +20000,0.25504,0.2601,0.05,79.624 +20000,0.25504,0.2601,0.05,79.624 +20000,0.25504,0.2601,0.05,79.624 +20000,0.26009,0.26525,0.05,80.708 +20000,0.26009,0.26525,0.05,80.708 +20000,0.26009,0.26525,0.05,80.708 +20000,0.26009,0.26525,0.05,80.708 +20000,0.26009,0.26525,0.05,80.708 +20000,0.26524,0.2705,0.05,81.764 +20000,0.26524,0.2705,0.05,81.764 +20000,0.26524,0.2705,0.05,81.764 +20000,0.26524,0.2705,0.05,81.764 +20000,0.26524,0.2705,0.05,81.764 +20000,0.27048,0.27585,0.05,82.79 +20000,0.27048,0.27585,0.05,82.79 +20000,0.27048,0.27585,0.05,82.79 +20000,0.27048,0.27585,0.05,82.79 +20000,0.27048,0.27585,0.05,82.79 +20000,0.27584,0.28131,0.05,83.785 +20000,0.27584,0.28131,0.05,83.785 +20000,0.27584,0.28131,0.05,83.785 +20000,0.27584,0.28131,0.05,83.785 +20000,0.27584,0.28131,0.05,83.785 +20000,0.27584,0.28131,0.05,83.785 +20000,0.2813,0.28687,0.05,84.75 +20000,0.2813,0.28687,0.05,84.75 +20000,0.2813,0.28687,0.05,84.75 +20000,0.2813,0.28687,0.05,84.75 +20000,0.2813,0.28687,0.05,84.75 +20000,0.28686,0.29255,0.05,85.684 +20000,0.28686,0.29255,0.05,85.684 +20000,0.28686,0.29255,0.05,85.684 +20000,0.28686,0.29255,0.05,85.684 +20000,0.28686,0.29255,0.05,85.684 +20000,0.28686,0.29255,0.05,85.684 +20000,0.29254,0.29834,0.05,86.585 +20000,0.29254,0.29834,0.05,86.585 +20000,0.29254,0.29834,0.05,86.585 +20000,0.29254,0.29834,0.05,86.585 +20000,0.29254,0.29834,0.05,86.585 +20000,0.29254,0.29834,0.05,86.585 +20000,0.29833,0.30425,0.05,87.454 +20000,0.29833,0.30425,0.05,87.454 +20000,0.29833,0.30425,0.05,87.454 +20000,0.29833,0.30425,0.05,87.454 +20000,0.29833,0.30425,0.05,87.454 +20000,0.29833,0.30425,0.05,87.454 +20000,0.30424,0.31027,0.05,88.291 +20000,0.30424,0.31027,0.05,88.291 +20000,0.30424,0.31027,0.05,88.291 +20000,0.30424,0.31027,0.05,88.291 +20000,0.30424,0.31027,0.05,88.291 +20000,0.30424,0.31027,0.05,88.291 +20000,0.31026,0.31641,0.05,89.094 +20000,0.31026,0.31641,0.05,89.094 +20000,0.31026,0.31641,0.05,89.094 +20000,0.31026,0.31641,0.05,89.094 +20000,0.31026,0.31641,0.05,89.094 +20000,0.31026,0.31641,0.05,89.094 +20000,0.3164,0.32267,0.05,89.864 +20000,0.3164,0.32267,0.05,89.864 +20000,0.3164,0.32267,0.05,89.864 +20000,0.3164,0.32267,0.05,89.864 +20000,0.3164,0.32267,0.05,89.864 +20000,0.3164,0.32267,0.05,89.864 +20000,0.32266,0.32906,0.05,90.6 +20000,0.32266,0.32906,0.05,90.6 +20000,0.32266,0.32906,0.05,90.6 +20000,0.32266,0.32906,0.05,90.6 +20000,0.32266,0.32906,0.05,90.6 +20000,0.32266,0.32906,0.05,90.6 +20000,0.32266,0.32906,0.05,90.6 +20000,0.32905,0.33558,0.05,91.303 +20000,0.32905,0.33558,0.05,91.303 +20000,0.32905,0.33558,0.05,91.303 +20000,0.32905,0.33558,0.05,91.303 +20000,0.32905,0.33558,0.05,91.303 +20000,0.32905,0.33558,0.05,91.303 +20000,0.33556,0.34222,0.05,91.973 +20000,0.33556,0.34222,0.05,91.973 +20000,0.33556,0.34222,0.05,91.973 +20000,0.33556,0.34222,0.05,91.973 +20000,0.33556,0.34222,0.05,91.973 +20000,0.33556,0.34222,0.05,91.973 +20000,0.33556,0.34222,0.05,91.973 +20000,0.34221,0.34899,0.05,92.609 +20000,0.34221,0.34899,0.05,92.609 +20000,0.34221,0.34899,0.05,92.609 +20000,0.34221,0.34899,0.05,92.609 +20000,0.34221,0.34899,0.05,92.609 +20000,0.34221,0.34899,0.05,92.609 +20000,0.34221,0.34899,0.05,92.609 +20000,0.34898,0.3559,0.05,93.212 +20000,0.34898,0.3559,0.05,93.212 +20000,0.34898,0.3559,0.05,93.212 +20000,0.34898,0.3559,0.05,93.212 +20000,0.34898,0.3559,0.05,93.212 +20000,0.34898,0.3559,0.05,93.212 +20000,0.35589,0.36295,0.05,93.782 +20000,0.35589,0.36295,0.05,93.782 +20000,0.35589,0.36295,0.05,93.782 +20000,0.35589,0.36295,0.05,93.782 +20000,0.35589,0.36295,0.05,93.782 +20000,0.35589,0.36295,0.05,93.782 +20000,0.35589,0.36295,0.05,93.782 +20000,0.36294,0.37013,0.05,94.32 +20000,0.36294,0.37013,0.05,94.32 +20000,0.36294,0.37013,0.05,94.32 +20000,0.36294,0.37013,0.05,94.32 +20000,0.36294,0.37013,0.05,94.32 +20000,0.36294,0.37013,0.05,94.32 +20000,0.36294,0.37013,0.05,94.32 +20000,0.36294,0.37013,0.05,94.32 +20000,0.37012,0.37746,0.05,94.825 +20000,0.37012,0.37746,0.05,94.825 +20000,0.37012,0.37746,0.05,94.825 +20000,0.37012,0.37746,0.05,94.825 +20000,0.37012,0.37746,0.05,94.825 +20000,0.37012,0.37746,0.05,94.825 +20000,0.37012,0.37746,0.05,94.825 +20000,0.37745,0.38494,0.05,95.3 +20000,0.37745,0.38494,0.05,95.3 +20000,0.37745,0.38494,0.05,95.3 +20000,0.37745,0.38494,0.05,95.3 +20000,0.37745,0.38494,0.05,95.3 +20000,0.37745,0.38494,0.05,95.3 +20000,0.37745,0.38494,0.05,95.3 +20000,0.38493,0.39256,0.05,95.743 +20000,0.38493,0.39256,0.05,95.743 +20000,0.38493,0.39256,0.05,95.743 +20000,0.38493,0.39256,0.05,95.743 +20000,0.38493,0.39256,0.05,95.743 +20000,0.38493,0.39256,0.05,95.743 +20000,0.38493,0.39256,0.05,95.743 +20000,0.38493,0.39256,0.05,95.743 +20000,0.39255,0.40033,0.05,96.157 +20000,0.39255,0.40033,0.05,96.157 +20000,0.39255,0.40033,0.05,96.157 +20000,0.39255,0.40033,0.05,96.157 +20000,0.39255,0.40033,0.05,96.157 +20000,0.39255,0.40033,0.05,96.157 +20000,0.39255,0.40033,0.05,96.157 +20000,0.39255,0.40033,0.05,96.157 +20000,0.40032,0.40826,0.05,96.541 +20000,0.40032,0.40826,0.05,96.541 +20000,0.40032,0.40826,0.05,96.541 +20000,0.40032,0.40826,0.05,96.541 +20000,0.40032,0.40826,0.05,96.541 +20000,0.40032,0.40826,0.05,96.541 +20000,0.40032,0.40826,0.05,96.541 +20000,0.40032,0.40826,0.05,96.541 +20000,0.40825,0.41634,0.05,96.898 +20000,0.40825,0.41634,0.05,96.898 +20000,0.40825,0.41634,0.05,96.898 +20000,0.40825,0.41634,0.05,96.898 +20000,0.40825,0.41634,0.05,96.898 +20000,0.40825,0.41634,0.05,96.898 +20000,0.40825,0.41634,0.05,96.898 +20000,0.40825,0.41634,0.05,96.898 +20000,0.41633,0.42459,0.05,97.227 +20000,0.41633,0.42459,0.05,97.227 +20000,0.41633,0.42459,0.05,97.227 +20000,0.41633,0.42459,0.05,97.227 +20000,0.41633,0.42459,0.05,97.227 +20000,0.41633,0.42459,0.05,97.227 +20000,0.41633,0.42459,0.05,97.227 +20000,0.41633,0.42459,0.05,97.227 +20000,0.42458,0.433,0.05,97.53 +20000,0.42458,0.433,0.05,97.53 +20000,0.42458,0.433,0.05,97.53 +20000,0.42458,0.433,0.05,97.53 +20000,0.42458,0.433,0.05,97.53 +20000,0.42458,0.433,0.05,97.53 +20000,0.42458,0.433,0.05,97.53 +20000,0.42458,0.433,0.05,97.53 +20000,0.42458,0.433,0.05,97.53 +20000,0.43298,0.44157,0.05,97.807 +20000,0.43298,0.44157,0.05,97.807 +20000,0.43298,0.44157,0.05,97.807 +20000,0.43298,0.44157,0.05,97.807 +20000,0.43298,0.44157,0.05,97.807 +20000,0.43298,0.44157,0.05,97.807 +20000,0.43298,0.44157,0.05,97.807 +20000,0.43298,0.44157,0.05,97.807 +20000,0.44156,0.45031,0.05,98.061 +20000,0.44156,0.45031,0.05,98.061 +20000,0.44156,0.45031,0.05,98.061 +20000,0.44156,0.45031,0.05,98.061 +20000,0.44156,0.45031,0.05,98.061 +20000,0.44156,0.45031,0.05,98.061 +20000,0.44156,0.45031,0.05,98.061 +20000,0.44156,0.45031,0.05,98.061 +20000,0.44156,0.45031,0.05,98.061 +20000,0.4503,0.45923,0.05,98.292 +20000,0.4503,0.45923,0.05,98.292 +20000,0.4503,0.45923,0.05,98.292 +20000,0.4503,0.45923,0.05,98.292 +20000,0.4503,0.45923,0.05,98.292 +20000,0.4503,0.45923,0.05,98.292 +20000,0.4503,0.45923,0.05,98.292 +20000,0.4503,0.45923,0.05,98.292 +20000,0.4503,0.45923,0.05,98.292 +20000,0.45922,0.46833,0.05,98.502 +20000,0.45922,0.46833,0.05,98.502 +20000,0.45922,0.46833,0.05,98.502 +20000,0.45922,0.46833,0.05,98.502 +20000,0.45922,0.46833,0.05,98.502 +20000,0.45922,0.46833,0.05,98.502 +20000,0.45922,0.46833,0.05,98.502 +20000,0.45922,0.46833,0.05,98.502 +20000,0.45922,0.46833,0.05,98.502 +20000,0.46832,0.4776,0.05,98.691 +20000,0.46832,0.4776,0.05,98.691 +20000,0.46832,0.4776,0.05,98.691 +20000,0.46832,0.4776,0.05,98.691 +20000,0.46832,0.4776,0.05,98.691 +20000,0.46832,0.4776,0.05,98.691 +20000,0.46832,0.4776,0.05,98.691 +20000,0.46832,0.4776,0.05,98.691 +20000,0.46832,0.4776,0.05,98.691 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.47759,0.48706,0.05,98.861 +20000,0.48705,0.49671,0.05,99.013 +20000,0.48705,0.49671,0.05,99.013 +20000,0.48705,0.49671,0.05,99.013 +20000,0.48705,0.49671,0.05,99.013 +20000,0.48705,0.49671,0.05,99.013 +20000,0.48705,0.49671,0.05,99.013 +20000,0.48705,0.49671,0.05,99.013 +20000,0.48705,0.49671,0.05,99.013 +20000,0.48705,0.49671,0.05,99.013 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.4967,0.50655,0.05,99.149 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.50654,0.51658,0.05,99.27 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.51657,0.52681,0.05,99.377 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.5268,0.53725,0.05,99.47 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.53724,0.54789,0.05,99.552 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.54788,0.55874,0.05,99.624 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.55873,0.56981,0.05,99.686 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.5698,0.5811,0.05,99.739 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.58109,0.59261,0.05,99.785 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.5926,0.60435,0.05,99.825 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.60434,0.61632,0.05,99.858 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.61631,0.62853,0.05,99.887 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.62852,0.64098,0.05,99.911 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.64097,0.65368,0.05,99.932 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.65367,0.66663,0.05,99.95 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.66662,0.67984,0.05,99.966 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.67983,0.69331,0.05,99.98 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,0.6933,0.70704,0.05,99.994 +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_5.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_5.csv new file mode 100644 index 00000000000..03f9eb13744 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/data_5.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,0.07071,0.072112,0.05,-19.355 +50000,0.07071,0.072112,0.05,-19.355 +50000,0.07211,0.07354,0.05,-18.09 +50000,0.07351,0.074968,0.05,-16.848 +50000,0.075155,0.076646,0.05,-15.415 +50000,0.075155,0.076646,0.05,-15.415 +50000,0.077046,0.078574,0.05,-13.807 +50000,0.077046,0.078574,0.05,-13.807 +50000,0.078936,0.080501,0.05,-12.236 +50000,0.078936,0.080501,0.05,-12.236 +50000,0.080826,0.082429,0.05,-10.701 +50000,0.080826,0.082429,0.05,-10.701 +50000,0.082716,0.084357,0.05,-9.2003 +50000,0.082716,0.084357,0.05,-9.2003 +50000,0.084607,0.086285,0.05,-7.7316 +50000,0.084607,0.086285,0.05,-7.7316 +50000,0.086497,0.088212,0.05,-6.294 +50000,0.086497,0.088212,0.05,-6.294 +50000,0.088387,0.09014,0.05,-4.8861 +50000,0.088387,0.09014,0.05,-4.8861 +50000,0.090278,0.092068,0.05,-3.5069 +50000,0.090278,0.092068,0.05,-3.5069 +50000,0.092168,0.093995,0.05,-2.1551 +50000,0.092168,0.093995,0.05,-2.1551 +50000,0.094031,0.095896,0.05,-0.84874 +50000,0.095885,0.097786,0.05,0.42708 +50000,0.095885,0.097786,0.05,0.42708 +50000,0.097776,0.099715,0.05,1.7039 +50000,0.097776,0.099715,0.05,1.7039 +50000,0.099704,0.10168,0.05,2.9817 +50000,0.099704,0.10168,0.05,2.9817 +50000,0.10167,0.10369,0.05,4.2604 +50000,0.10167,0.10369,0.05,4.2604 +50000,0.10368,0.10573,0.05,5.54 +50000,0.10368,0.10573,0.05,5.54 +50000,0.10572,0.10782,0.05,6.8204 +50000,0.10572,0.10782,0.05,6.8204 +50000,0.10781,0.10995,0.05,8.1016 +50000,0.10781,0.10995,0.05,8.1016 +50000,0.10993,0.11211,0.05,9.3835 +50000,0.10993,0.11211,0.05,9.3835 +50000,0.10993,0.11211,0.05,9.3835 +50000,0.1121,0.11433,0.05,10.666 +50000,0.1121,0.11433,0.05,10.666 +50000,0.11432,0.11658,0.05,11.949 +50000,0.11432,0.11658,0.05,11.949 +50000,0.11657,0.11888,0.05,13.233 +50000,0.11657,0.11888,0.05,13.233 +50000,0.11887,0.12123,0.05,14.517 +50000,0.11887,0.12123,0.05,14.517 +50000,0.11887,0.12123,0.05,14.517 +50000,0.12122,0.12362,0.05,15.801 +50000,0.12122,0.12362,0.05,15.801 +50000,0.12361,0.12607,0.05,17.086 +50000,0.12361,0.12607,0.05,17.086 +50000,0.12361,0.12607,0.05,17.086 +50000,0.12605,0.12855,0.05,18.371 +50000,0.12605,0.12855,0.05,18.371 +50000,0.12854,0.13109,0.05,19.655 +50000,0.12854,0.13109,0.05,19.655 +50000,0.12854,0.13109,0.05,19.655 +50000,0.13108,0.13368,0.05,20.94 +50000,0.13108,0.13368,0.05,20.94 +50000,0.13367,0.13632,0.05,22.225 +50000,0.13367,0.13632,0.05,22.225 +50000,0.13367,0.13632,0.05,22.225 +50000,0.13631,0.13901,0.05,23.51 +50000,0.13631,0.13901,0.05,23.51 +50000,0.13631,0.13901,0.05,23.51 +50000,0.139,0.14176,0.05,24.794 +50000,0.139,0.14176,0.05,24.794 +50000,0.14175,0.14456,0.05,26.077 +50000,0.14175,0.14456,0.05,26.077 +50000,0.14175,0.14456,0.05,26.077 +50000,0.14455,0.14742,0.05,27.36 +50000,0.14455,0.14742,0.05,27.36 +50000,0.14455,0.14742,0.05,27.36 +50000,0.1474,0.15033,0.05,28.642 +50000,0.1474,0.15033,0.05,28.642 +50000,0.1474,0.15033,0.05,28.642 +50000,0.15032,0.1533,0.05,29.924 +50000,0.15032,0.1533,0.05,29.924 +50000,0.15032,0.1533,0.05,29.924 +50000,0.15329,0.15633,0.05,31.204 +50000,0.15329,0.15633,0.05,31.204 +50000,0.15329,0.15633,0.05,31.204 +50000,0.15632,0.15942,0.05,32.483 +50000,0.15632,0.15942,0.05,32.483 +50000,0.15632,0.15942,0.05,32.483 +50000,0.15941,0.16257,0.05,33.761 +50000,0.15941,0.16257,0.05,33.761 +50000,0.15941,0.16257,0.05,33.761 +50000,0.16256,0.16578,0.05,35.037 +50000,0.16256,0.16578,0.05,35.037 +50000,0.16256,0.16578,0.05,35.037 +50000,0.16577,0.16906,0.05,36.311 +50000,0.16577,0.16906,0.05,36.311 +50000,0.16577,0.16906,0.05,36.311 +50000,0.16577,0.16906,0.05,36.311 +50000,0.16905,0.1724,0.05,37.583 +50000,0.16905,0.1724,0.05,37.583 +50000,0.16905,0.1724,0.05,37.583 +50000,0.17239,0.1758,0.05,38.853 +50000,0.17239,0.1758,0.05,38.853 +50000,0.17239,0.1758,0.05,38.853 +50000,0.17579,0.17928,0.05,40.12 +50000,0.17579,0.17928,0.05,40.12 +50000,0.17579,0.17928,0.05,40.12 +50000,0.17579,0.17928,0.05,40.12 +50000,0.17927,0.18282,0.05,41.385 +50000,0.17927,0.18282,0.05,41.385 +50000,0.17927,0.18282,0.05,41.385 +50000,0.18281,0.18644,0.05,42.647 +50000,0.18281,0.18644,0.05,42.647 +50000,0.18281,0.18644,0.05,42.647 +50000,0.18281,0.18644,0.05,42.647 +50000,0.18643,0.19013,0.05,43.906 +50000,0.18643,0.19013,0.05,43.906 +50000,0.18643,0.19013,0.05,43.906 +50000,0.18643,0.19013,0.05,43.906 +50000,0.19011,0.19388,0.05,45.161 +50000,0.19011,0.19388,0.05,45.161 +50000,0.19011,0.19388,0.05,45.161 +50000,0.19387,0.19772,0.05,46.413 +50000,0.19387,0.19772,0.05,46.413 +50000,0.19387,0.19772,0.05,46.413 +50000,0.19387,0.19772,0.05,46.413 +50000,0.19771,0.20163,0.05,47.66 +50000,0.19771,0.20163,0.05,47.66 +50000,0.19771,0.20163,0.05,47.66 +50000,0.19771,0.20163,0.05,47.66 +50000,0.20162,0.20562,0.05,48.904 +50000,0.20162,0.20562,0.05,48.904 +50000,0.20162,0.20562,0.05,48.904 +50000,0.20162,0.20562,0.05,48.904 +50000,0.2056,0.20968,0.05,50.142 +50000,0.2056,0.20968,0.05,50.142 +50000,0.2056,0.20968,0.05,50.142 +50000,0.2056,0.20968,0.05,50.142 +50000,0.20967,0.21383,0.05,51.376 +50000,0.20967,0.21383,0.05,51.376 +50000,0.20967,0.21383,0.05,51.376 +50000,0.20967,0.21383,0.05,51.376 +50000,0.21382,0.21806,0.05,52.604 +50000,0.21382,0.21806,0.05,52.604 +50000,0.21382,0.21806,0.05,52.604 +50000,0.21382,0.21806,0.05,52.604 +50000,0.21382,0.21806,0.05,52.604 +50000,0.21805,0.22237,0.05,53.826 +50000,0.21805,0.22237,0.05,53.826 +50000,0.21805,0.22237,0.05,53.826 +50000,0.21805,0.22237,0.05,53.826 +50000,0.22236,0.22677,0.05,55.043 +50000,0.22236,0.22677,0.05,55.043 +50000,0.22236,0.22677,0.05,55.043 +50000,0.22236,0.22677,0.05,55.043 +50000,0.22676,0.23125,0.05,56.253 +50000,0.22676,0.23125,0.05,56.253 +50000,0.22676,0.23125,0.05,56.253 +50000,0.22676,0.23125,0.05,56.253 +50000,0.22676,0.23125,0.05,56.253 +50000,0.23124,0.23583,0.05,57.456 +50000,0.23124,0.23583,0.05,57.456 +50000,0.23124,0.23583,0.05,57.456 +50000,0.23124,0.23583,0.05,57.456 +50000,0.23582,0.2405,0.05,58.652 +50000,0.23582,0.2405,0.05,58.652 +50000,0.23582,0.2405,0.05,58.652 +50000,0.23582,0.2405,0.05,58.652 +50000,0.23582,0.2405,0.05,58.652 +50000,0.24048,0.24525,0.05,59.84 +50000,0.24048,0.24525,0.05,59.84 +50000,0.24048,0.24525,0.05,59.84 +50000,0.24048,0.24525,0.05,59.84 +50000,0.24048,0.24525,0.05,59.84 +50000,0.24524,0.25011,0.05,61.019 +50000,0.24524,0.25011,0.05,61.019 +50000,0.24524,0.25011,0.05,61.019 +50000,0.24524,0.25011,0.05,61.019 +50000,0.24524,0.25011,0.05,61.019 +50000,0.25009,0.25505,0.05,62.191 +50000,0.25009,0.25505,0.05,62.191 +50000,0.25009,0.25505,0.05,62.191 +50000,0.25009,0.25505,0.05,62.191 +50000,0.25009,0.25505,0.05,62.191 +50000,0.25504,0.2601,0.05,63.353 +50000,0.25504,0.2601,0.05,63.353 +50000,0.25504,0.2601,0.05,63.353 +50000,0.25504,0.2601,0.05,63.353 +50000,0.25504,0.2601,0.05,63.353 +50000,0.26009,0.26525,0.05,64.505 +50000,0.26009,0.26525,0.05,64.505 +50000,0.26009,0.26525,0.05,64.505 +50000,0.26009,0.26525,0.05,64.505 +50000,0.26009,0.26525,0.05,64.505 +50000,0.26524,0.2705,0.05,65.647 +50000,0.26524,0.2705,0.05,65.647 +50000,0.26524,0.2705,0.05,65.647 +50000,0.26524,0.2705,0.05,65.647 +50000,0.26524,0.2705,0.05,65.647 +50000,0.27048,0.27585,0.05,66.779 +50000,0.27048,0.27585,0.05,66.779 +50000,0.27048,0.27585,0.05,66.779 +50000,0.27048,0.27585,0.05,66.779 +50000,0.27048,0.27585,0.05,66.779 +50000,0.27584,0.28131,0.05,67.9 +50000,0.27584,0.28131,0.05,67.9 +50000,0.27584,0.28131,0.05,67.9 +50000,0.27584,0.28131,0.05,67.9 +50000,0.27584,0.28131,0.05,67.9 +50000,0.27584,0.28131,0.05,67.9 +50000,0.2813,0.28687,0.05,69.008 +50000,0.2813,0.28687,0.05,69.008 +50000,0.2813,0.28687,0.05,69.008 +50000,0.2813,0.28687,0.05,69.008 +50000,0.2813,0.28687,0.05,69.008 +50000,0.28686,0.29255,0.05,70.105 +50000,0.28686,0.29255,0.05,70.105 +50000,0.28686,0.29255,0.05,70.105 +50000,0.28686,0.29255,0.05,70.105 +50000,0.28686,0.29255,0.05,70.105 +50000,0.28686,0.29255,0.05,70.105 +50000,0.29254,0.29834,0.05,71.189 +50000,0.29254,0.29834,0.05,71.189 +50000,0.29254,0.29834,0.05,71.189 +50000,0.29254,0.29834,0.05,71.189 +50000,0.29254,0.29834,0.05,71.189 +50000,0.29254,0.29834,0.05,71.189 +50000,0.29833,0.30425,0.05,72.259 +50000,0.29833,0.30425,0.05,72.259 +50000,0.29833,0.30425,0.05,72.259 +50000,0.29833,0.30425,0.05,72.259 +50000,0.29833,0.30425,0.05,72.259 +50000,0.29833,0.30425,0.05,72.259 +50000,0.30424,0.31027,0.05,73.315 +50000,0.30424,0.31027,0.05,73.315 +50000,0.30424,0.31027,0.05,73.315 +50000,0.30424,0.31027,0.05,73.315 +50000,0.30424,0.31027,0.05,73.315 +50000,0.30424,0.31027,0.05,73.315 +50000,0.31026,0.31641,0.05,74.357 +50000,0.31026,0.31641,0.05,74.357 +50000,0.31026,0.31641,0.05,74.357 +50000,0.31026,0.31641,0.05,74.357 +50000,0.31026,0.31641,0.05,74.357 +50000,0.31026,0.31641,0.05,74.357 +50000,0.3164,0.32267,0.05,75.384 +50000,0.3164,0.32267,0.05,75.384 +50000,0.3164,0.32267,0.05,75.384 +50000,0.3164,0.32267,0.05,75.384 +50000,0.3164,0.32267,0.05,75.384 +50000,0.3164,0.32267,0.05,75.384 +50000,0.32266,0.32906,0.05,76.395 +50000,0.32266,0.32906,0.05,76.395 +50000,0.32266,0.32906,0.05,76.395 +50000,0.32266,0.32906,0.05,76.395 +50000,0.32266,0.32906,0.05,76.395 +50000,0.32266,0.32906,0.05,76.395 +50000,0.32266,0.32906,0.05,76.395 +50000,0.32905,0.33558,0.05,77.389 +50000,0.32905,0.33558,0.05,77.389 +50000,0.32905,0.33558,0.05,77.389 +50000,0.32905,0.33558,0.05,77.389 +50000,0.32905,0.33558,0.05,77.389 +50000,0.32905,0.33558,0.05,77.389 +50000,0.33556,0.34222,0.05,78.367 +50000,0.33556,0.34222,0.05,78.367 +50000,0.33556,0.34222,0.05,78.367 +50000,0.33556,0.34222,0.05,78.367 +50000,0.33556,0.34222,0.05,78.367 +50000,0.33556,0.34222,0.05,78.367 +50000,0.33556,0.34222,0.05,78.367 +50000,0.34221,0.34899,0.05,79.327 +50000,0.34221,0.34899,0.05,79.327 +50000,0.34221,0.34899,0.05,79.327 +50000,0.34221,0.34899,0.05,79.327 +50000,0.34221,0.34899,0.05,79.327 +50000,0.34221,0.34899,0.05,79.327 +50000,0.34221,0.34899,0.05,79.327 +50000,0.34898,0.3559,0.05,80.269 +50000,0.34898,0.3559,0.05,80.269 +50000,0.34898,0.3559,0.05,80.269 +50000,0.34898,0.3559,0.05,80.269 +50000,0.34898,0.3559,0.05,80.269 +50000,0.34898,0.3559,0.05,80.269 +50000,0.35589,0.36295,0.05,81.192 +50000,0.35589,0.36295,0.05,81.192 +50000,0.35589,0.36295,0.05,81.192 +50000,0.35589,0.36295,0.05,81.192 +50000,0.35589,0.36295,0.05,81.192 +50000,0.35589,0.36295,0.05,81.192 +50000,0.35589,0.36295,0.05,81.192 +50000,0.36294,0.37013,0.05,82.097 +50000,0.36294,0.37013,0.05,82.097 +50000,0.36294,0.37013,0.05,82.097 +50000,0.36294,0.37013,0.05,82.097 +50000,0.36294,0.37013,0.05,82.097 +50000,0.36294,0.37013,0.05,82.097 +50000,0.36294,0.37013,0.05,82.097 +50000,0.36294,0.37013,0.05,82.097 +50000,0.37012,0.37746,0.05,82.981 +50000,0.37012,0.37746,0.05,82.981 +50000,0.37012,0.37746,0.05,82.981 +50000,0.37012,0.37746,0.05,82.981 +50000,0.37012,0.37746,0.05,82.981 +50000,0.37012,0.37746,0.05,82.981 +50000,0.37012,0.37746,0.05,82.981 +50000,0.37745,0.38494,0.05,83.845 +50000,0.37745,0.38494,0.05,83.845 +50000,0.37745,0.38494,0.05,83.845 +50000,0.37745,0.38494,0.05,83.845 +50000,0.37745,0.38494,0.05,83.845 +50000,0.37745,0.38494,0.05,83.845 +50000,0.37745,0.38494,0.05,83.845 +50000,0.38493,0.39256,0.05,84.688 +50000,0.38493,0.39256,0.05,84.688 +50000,0.38493,0.39256,0.05,84.688 +50000,0.38493,0.39256,0.05,84.688 +50000,0.38493,0.39256,0.05,84.688 +50000,0.38493,0.39256,0.05,84.688 +50000,0.38493,0.39256,0.05,84.688 +50000,0.38493,0.39256,0.05,84.688 +50000,0.39255,0.40033,0.05,85.51 +50000,0.39255,0.40033,0.05,85.51 +50000,0.39255,0.40033,0.05,85.51 +50000,0.39255,0.40033,0.05,85.51 +50000,0.39255,0.40033,0.05,85.51 +50000,0.39255,0.40033,0.05,85.51 +50000,0.39255,0.40033,0.05,85.51 +50000,0.39255,0.40033,0.05,85.51 +50000,0.40032,0.40826,0.05,86.311 +50000,0.40032,0.40826,0.05,86.311 +50000,0.40032,0.40826,0.05,86.311 +50000,0.40032,0.40826,0.05,86.311 +50000,0.40032,0.40826,0.05,86.311 +50000,0.40032,0.40826,0.05,86.311 +50000,0.40032,0.40826,0.05,86.311 +50000,0.40032,0.40826,0.05,86.311 +50000,0.40825,0.41634,0.05,87.089 +50000,0.40825,0.41634,0.05,87.089 +50000,0.40825,0.41634,0.05,87.089 +50000,0.40825,0.41634,0.05,87.089 +50000,0.40825,0.41634,0.05,87.089 +50000,0.40825,0.41634,0.05,87.089 +50000,0.40825,0.41634,0.05,87.089 +50000,0.40825,0.41634,0.05,87.089 +50000,0.41633,0.42459,0.05,87.845 +50000,0.41633,0.42459,0.05,87.845 +50000,0.41633,0.42459,0.05,87.845 +50000,0.41633,0.42459,0.05,87.845 +50000,0.41633,0.42459,0.05,87.845 +50000,0.41633,0.42459,0.05,87.845 +50000,0.41633,0.42459,0.05,87.845 +50000,0.41633,0.42459,0.05,87.845 +50000,0.42458,0.433,0.05,88.577 +50000,0.42458,0.433,0.05,88.577 +50000,0.42458,0.433,0.05,88.577 +50000,0.42458,0.433,0.05,88.577 +50000,0.42458,0.433,0.05,88.577 +50000,0.42458,0.433,0.05,88.577 +50000,0.42458,0.433,0.05,88.577 +50000,0.42458,0.433,0.05,88.577 +50000,0.42458,0.433,0.05,88.577 +50000,0.43298,0.44157,0.05,89.287 +50000,0.43298,0.44157,0.05,89.287 +50000,0.43298,0.44157,0.05,89.287 +50000,0.43298,0.44157,0.05,89.287 +50000,0.43298,0.44157,0.05,89.287 +50000,0.43298,0.44157,0.05,89.287 +50000,0.43298,0.44157,0.05,89.287 +50000,0.43298,0.44157,0.05,89.287 +50000,0.44156,0.45031,0.05,89.973 +50000,0.44156,0.45031,0.05,89.973 +50000,0.44156,0.45031,0.05,89.973 +50000,0.44156,0.45031,0.05,89.973 +50000,0.44156,0.45031,0.05,89.973 +50000,0.44156,0.45031,0.05,89.973 +50000,0.44156,0.45031,0.05,89.973 +50000,0.44156,0.45031,0.05,89.973 +50000,0.44156,0.45031,0.05,89.973 +50000,0.4503,0.45923,0.05,90.636 +50000,0.4503,0.45923,0.05,90.636 +50000,0.4503,0.45923,0.05,90.636 +50000,0.4503,0.45923,0.05,90.636 +50000,0.4503,0.45923,0.05,90.636 +50000,0.4503,0.45923,0.05,90.636 +50000,0.4503,0.45923,0.05,90.636 +50000,0.4503,0.45923,0.05,90.636 +50000,0.4503,0.45923,0.05,90.636 +50000,0.45922,0.46833,0.05,91.275 +50000,0.45922,0.46833,0.05,91.275 +50000,0.45922,0.46833,0.05,91.275 +50000,0.45922,0.46833,0.05,91.275 +50000,0.45922,0.46833,0.05,91.275 +50000,0.45922,0.46833,0.05,91.275 +50000,0.45922,0.46833,0.05,91.275 +50000,0.45922,0.46833,0.05,91.275 +50000,0.45922,0.46833,0.05,91.275 +50000,0.46832,0.4776,0.05,91.89 +50000,0.46832,0.4776,0.05,91.89 +50000,0.46832,0.4776,0.05,91.89 +50000,0.46832,0.4776,0.05,91.89 +50000,0.46832,0.4776,0.05,91.89 +50000,0.46832,0.4776,0.05,91.89 +50000,0.46832,0.4776,0.05,91.89 +50000,0.46832,0.4776,0.05,91.89 +50000,0.46832,0.4776,0.05,91.89 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.47759,0.48706,0.05,92.481 +50000,0.48705,0.49671,0.05,93.049 +50000,0.48705,0.49671,0.05,93.049 +50000,0.48705,0.49671,0.05,93.049 +50000,0.48705,0.49671,0.05,93.049 +50000,0.48705,0.49671,0.05,93.049 +50000,0.48705,0.49671,0.05,93.049 +50000,0.48705,0.49671,0.05,93.049 +50000,0.48705,0.49671,0.05,93.049 +50000,0.48705,0.49671,0.05,93.049 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.4967,0.50655,0.05,93.593 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.50654,0.51658,0.05,94.113 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.51657,0.52681,0.05,94.611 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.5268,0.53725,0.05,95.086 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.53724,0.54789,0.05,95.539 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.54788,0.55874,0.05,95.971 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.55873,0.56981,0.05,96.382 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.5698,0.5811,0.05,96.773 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.58109,0.59261,0.05,97.145 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.5926,0.60435,0.05,97.499 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.60434,0.61632,0.05,97.837 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.61631,0.62853,0.05,98.159 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.62852,0.64098,0.05,98.468 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.64097,0.65368,0.05,98.764 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.65367,0.66663,0.05,99.05 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.66662,0.67984,0.05,99.328 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.67983,0.69331,0.05,99.6 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,0.6933,0.70704,0.05,99.868 +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/temperatureDependentSinglePhaseThermalConductivity_plot.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/temperatureDependentSinglePhaseThermalConductivity_plot.py new file mode 100644 index 00000000000..74dc2483e90 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentSinglePhaseThermalConductivity/temperatureDependentSinglePhaseThermalConductivity_plot.py @@ -0,0 +1,218 @@ +import os +import sys +import os +import argparse + +import numpy as np +import matplotlib.pyplot as plt +import pandas as pd +import scipy.linalg +from scipy import special + +from scipy.sparse import diags +from scipy.sparse.linalg import spsolve + +from xml.etree import ElementTree + +# Analytical results for linear thermal behavior +def steadyState(Tin, Tout, Rin, Rout, radialCoordinate): + return Tin + (Tout - Tin) * (np.log(radialCoordinate) - np.log(Rin)) / (np.log(Rout) - np.log(Rin)) + +def diffusionFunction(radialCoordinate, Rin, diffusionCoefficient, diffusionTime): + return special.erfc( (radialCoordinate - Rin) / 2.0 / np.sqrt( diffusionCoefficient * diffusionTime ) ) + +def computeTransientTemperature(Tin, Tout, Rin, radialCoordinate, thermalDiffusionCoefficient, diffusionTime): + # Ref. Wang and Papamichos (1994), https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/94WR01774 + return Tout + (Tin-Tout) * np.sqrt(Rin/radialCoordinate) * diffusionFunction(radialCoordinate, Rin, thermalDiffusionCoefficient, diffusionTime) + +def computeThermalDiffusionCoefficient(thermalConductivity, volumetricHeatCapacity): + return thermalConductivity / volumetricHeatCapacity + +# Finite difference results for non-linear thermal behavior +def temperatureDependentThermalConductivity(lambda0, lambda_gradient, T, Treference): + return lambda0 + lambda_gradient*(T-Treference) + +def temperatureDependentVolumetricHeat(c0, c_gradient, T, Treference): + return c0 + c_gradient*(T-Treference) + +def coefficientMatrix(thermalConductivity, volumetricHeatCapacity, r, dt, N): + # Coefficients for the matrix + A = np.zeros((N+1, N+1)) + + for i in range(1,N): + dr = r[i] - r[i-1] + r_i = r[i] + + diffusivity_i = thermalConductivity[i]/volumetricHeatCapacity[i] + A[i, i-1] = - diffusivity_i * (dt/(dr**2) - dt/(2 * r_i * dr)) \ + + (thermalConductivity[i+1] - thermalConductivity[i-1])/volumetricHeatCapacity[i]*dt/4/(dr**2) + A[i, i] = 1.0 + 2.0 * diffusivity_i * dt / (dr**2) + A[i, i+1] = - diffusivity_i * (dt/(dr**2) + dt/(2 * r_i * dr)) \ + - (thermalConductivity[i+1] - thermalConductivity[i-1])/volumetricHeatCapacity[i]*dt/4/(dr**2) + + # Boundary conditions + # No-flux at r=0 approximated by setting the flux between the first two cells to zero + A[0, 0] = 1.0 + A[N, N] = 1.0 + return A + +def solve_radial_diffusion(r, tmax, dt, Tin, Tout, lambda0, lambda_gradient, c0, c_gradient, Treference): + N = len(r)-1 + # Time setup + n_steps = int(tmax / dt) + + # Time-stepping + T = np.zeros(N+1) + Tout # initial condition u(r, 0) + T[0] = Tin + for step in range(n_steps): + thermalConductivity = temperatureDependentThermalConductivity(lambda0, lambda_gradient, T, Treference) + + volumetricHeatCapacity = temperatureDependentVolumetricHeat(c0, c_gradient, T, Treference) + + A = coefficientMatrix(thermalConductivity, volumetricHeatCapacity, r, dt, N) + T = spsolve(A, T) + + return T + + +def extractDataFromXMLList(paramList): + # Extract data from a list in XML such as "{ 1, 2, 3}" + return paramList.replace('{', '').replace('}', '').strip().split(',') + +def getWellboreGeometryFromXML(xmlFilePath): + tree = ElementTree.parse(xmlFilePath) + + meshParam = tree.find('Mesh/InternalWellbore') + radii = extractDataFromXMLList( meshParam.get("radius") ) + + Rin = float(radii[0]) + Rout = float(radii[-1]) + + return [Rin, Rout] + +def getLoadingFromXML(xmlFilePath): + tree = ElementTree.parse(xmlFilePath) + fsParams = tree.findall('FieldSpecifications/FieldSpecification') + + for fsParam in fsParams: + if ( (fsParam.get('fieldName') == "pressure") & (fsParam.get('initialCondition') != "1") ): + if fsParam.get('setNames') == "{ rneg }": + Pin = float(fsParam.get('scale')) + if fsParam.get('setNames') == "{ rpos }": + Pout = float(fsParam.get('scale')) + + for fsParam in fsParams: + if ( (fsParam.get('fieldName') == "temperature") & (fsParam.get('initialCondition') != "1") ): + if fsParam.get('setNames') == "{ rneg }": + Tin = float(fsParam.get('scale')) + if fsParam.get('setNames') == "{ rpos }": + Tout = float(fsParam.get('scale')) + + + tree_SinglePhaseThermalConductivities = tree.findall('Constitutive/SinglePhaseThermalConductivity') + + for tree_SinglePhaseThermalConductivity in tree_SinglePhaseThermalConductivities: + if tree_SinglePhaseThermalConductivity.get('name') == "thermalCond_nonLinear": + defaultThermalConductivity = float( extractDataFromXMLList( tree_SinglePhaseThermalConductivity.get('defaultThermalConductivityComponents') )[0] ) + + thermalConductivityGradient = float( extractDataFromXMLList( tree_SinglePhaseThermalConductivity.get('thermalConductivityGradientComponents') )[0] ) + referenceTemperature = float( tree_SinglePhaseThermalConductivity.get('referenceTemperature') ) + + + tree_SolidInternalEnergies = tree.findall('Constitutive/SolidInternalEnergy') + + for tree_SolidInternalEnergy in tree_SolidInternalEnergies: + if tree_SolidInternalEnergy.get('name') == "rockInternalEnergy_linear": + volumetricHeatCapacity = float( tree_SolidInternalEnergy.get('referenceVolumetricHeatCapacity') ) + dVolumetricHeatCapacity_dTemperature = 0.0 + + + permeability = float( extractDataFromXMLList( tree.find('Constitutive/ConstantPermeability').get('permeabilityComponents') )[0] ) + + porosity = float( tree.find('Constitutive/PressurePorosity').get('defaultReferencePorosity') ) + + fluidViscosity = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('defaultViscosity') ) + + fluidCompressibility = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('compressibility') ) + + fluidThermalExpansionCoefficient = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('thermalExpansionCoeff') ) + + return [Pin, Pout, Tin, Tout, defaultThermalConductivity, thermalConductivityGradient, referenceTemperature, volumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient] + + +def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + + # Parse the command-line arguments + args = parser.parse_args() + + geosDir = args.geosDir + + xmlFilePath = geosDir + "/inputFiles/singlePhaseFlow/" + + Rin, Rout = getWellboreGeometryFromXML(xmlFilePath+"thermalCompressible_temperatureDependentSinglePhaseThermalConductivity_benchmark.xml") + + Pin, Pout, Tin, Tout, defaultThermalConductivity, thermalConductivityGradient, referenceTemperature, volumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient = getLoadingFromXML(xmlFilePath+"thermalCompressible_2d_base.xml") + + plt.figure(figsize=(10,7)) + font = {'size' : 16} + plt.rc('font', **font) + + for chart_idx, idx in enumerate([1, 2, 5, 10]): + # Numerical results + data = pd.read_csv(f'data_{idx}.csv') + data.dropna(inplace=True) + data.drop_duplicates(inplace=True) + data.reset_index(drop=True, inplace=True) + + radialCoordinate = (data['elementCenter:0']**2.0 + data['elementCenter:1']**2.0)**0.5 + temperature = data['temperature'] + #pressure = data['pressure'] + diffusionTime = data['Time'][0] + + # Analytical results for linear thermal behavior, for comparison + radialCoordinate_anal = np.arange(Rin, Rout, (Rout-Rin)/100) + + thermalDiffusionCoefficient = computeThermalDiffusionCoefficient(defaultThermalConductivity, volumetricHeatCapacity) + + T_transient_linear = computeTransientTemperature(Tin, Tout, Rin, radialCoordinate_anal, thermalDiffusionCoefficient, diffusionTime) + + # Analytical results of the steady state regime for comparison + T_steadyState = steadyState(Tin, Tout, Rin, Rout, radialCoordinate_anal) + + # Finite different results for non-linear thermal behavior + + T_transient_nonLinear = solve_radial_diffusion(radialCoordinate_anal, diffusionTime, diffusionTime/1000, Tin, Tout, defaultThermalConductivity, thermalConductivityGradient, volumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, referenceTemperature) + + # Visualization + # Temperature + plt.subplot(2,2,chart_idx+1) + plt.plot( radialCoordinate, temperature, 'k+' , label='GEOS' ) + plt.plot( radialCoordinate_anal, T_transient_nonLinear, 'g.' , label='FDM Non-Linear' ) + plt.plot( radialCoordinate_anal, T_transient_linear, 'r-' , label='Analytic Linear' ) + plt.plot( radialCoordinate_anal, T_steadyState, 'b-' , label='Steady State' ) + + if chart_idx==1: + plt.legend() + + if chart_idx in [2,3]: + plt.xlabel('Radial distance from well center') + + if chart_idx in [0,2]: + plt.ylabel('Temperature (°C)') + + plt.ylim(Tin-10,Tout+10) + plt.xlim(0.1,0.3) + plt.title('t = '+str(diffusionTime)+'(s)') + plt.tight_layout() + + plt.show() + +if __name__ == "__main__": + main() + diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/Example.rst similarity index 70% rename from src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/Example.rst rename to src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/Example.rst index 9c728e39f33..959302bd7a2 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/Example.rst @@ -1,9 +1,9 @@ -.. _AdvancedExampleNonLinearThermalDiffusionWellbore: +.. _AdvancedWellboreExampleNonLinearThermalDiffusionTemperatureDependentVolumetricHeatCapacity: -#################################################### -Non-Linear Thermal Diffusion Around a Wellbore -#################################################### +############################################################################################################ +Non-Linear Thermal Diffusion Around a Wellbore: The Case with Temperature Dependent Volumetric Heat Capacity +############################################################################################################ ------------------------------------------------------------------ Problem description @@ -25,7 +25,7 @@ and .. code-block:: console - inputFiles/singlePhaseFlow/thermalCompressible_nonLinear_2d_benchmark.xml + inputFiles/singlePhaseFlow/thermalCompressible_temperatureDependentVolumetricHeatCapacity_benchmark.xml In this example, we focus on the ``Constitutive`` tag. @@ -46,10 +46,10 @@ The reference value of the volumetric heat capacity of the medium around the wel Results and benchmark --------------------------------- -A good agreement between the results obtained using GEOS and the analytical results is shown in the figure below: +A good agreement between the results obtained using GEOS and the reference results that are obtained by the classical finite difference method is shown in the figure below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion/nonLinearThermalDiffusionAroundWellbore.py +.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/temperatureDependentVolumetricHeatCapacity_plot.py ------------------------------------------------------------------ @@ -58,5 +58,5 @@ To go further **Feedback on this example** -This concludes the example of a non-linear thermal diffusion problem around a wellbore. +This concludes the example of a non-linear thermal diffusion problem around a wellbore due to temperature dependent volumetric heat capacity of rock. For any feedback on this example, please submit a `GitHub issue on the project's GitHub page `_. diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_1.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_1.csv new file mode 100644 index 00000000000..92fbae1a86a --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_1.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,0.07071,0.072112,0.05,-13.76 +10000,0.07071,0.072112,0.05,-13.76 +10000,0.07211,0.07354,0.05,-1.5083 +10000,0.07351,0.074968,0.05,10.502 +10000,0.075155,0.076646,0.05,24.239 +10000,0.075155,0.076646,0.05,24.239 +10000,0.077046,0.078574,0.05,39.135 +10000,0.077046,0.078574,0.05,39.135 +10000,0.078936,0.080501,0.05,52.698 +10000,0.078936,0.080501,0.05,52.698 +10000,0.080826,0.082429,0.05,64.497 +10000,0.080826,0.082429,0.05,64.497 +10000,0.082716,0.084357,0.05,74.262 +10000,0.082716,0.084357,0.05,74.262 +10000,0.084607,0.086285,0.05,81.944 +10000,0.084607,0.086285,0.05,81.944 +10000,0.086497,0.088212,0.05,87.71 +10000,0.086497,0.088212,0.05,87.71 +10000,0.088387,0.09014,0.05,91.858 +10000,0.088387,0.09014,0.05,91.858 +10000,0.090278,0.092068,0.05,94.735 +10000,0.090278,0.092068,0.05,94.735 +10000,0.092168,0.093995,0.05,96.667 +10000,0.092168,0.093995,0.05,96.667 +10000,0.094031,0.095896,0.05,97.913 +10000,0.095885,0.097786,0.05,98.714 +10000,0.095885,0.097786,0.05,98.714 +10000,0.097776,0.099715,0.05,99.227 +10000,0.097776,0.099715,0.05,99.227 +10000,0.099704,0.10168,0.05,99.547 +10000,0.099704,0.10168,0.05,99.547 +10000,0.10167,0.10369,0.05,99.741 +10000,0.10167,0.10369,0.05,99.741 +10000,0.10368,0.10573,0.05,99.855 +10000,0.10368,0.10573,0.05,99.855 +10000,0.10572,0.10782,0.05,99.921 +10000,0.10572,0.10782,0.05,99.921 +10000,0.10781,0.10995,0.05,99.958 +10000,0.10781,0.10995,0.05,99.958 +10000,0.10993,0.11211,0.05,99.978 +10000,0.10993,0.11211,0.05,99.978 +10000,0.10993,0.11211,0.05,99.978 +10000,0.1121,0.11433,0.05,99.989 +10000,0.1121,0.11433,0.05,99.989 +10000,0.11432,0.11658,0.05,99.995 +10000,0.11432,0.11658,0.05,99.995 +10000,0.11657,0.11888,0.05,99.997 +10000,0.11657,0.11888,0.05,99.997 +10000,0.11887,0.12123,0.05,99.999 +10000,0.11887,0.12123,0.05,99.999 +10000,0.11887,0.12123,0.05,99.999 +10000,0.12122,0.12362,0.05,99.999 +10000,0.12122,0.12362,0.05,99.999 +10000,0.12361,0.12607,0.05,100 +10000,0.12361,0.12607,0.05,100 +10000,0.12361,0.12607,0.05,100 +10000,0.12605,0.12855,0.05,100 +10000,0.12605,0.12855,0.05,100 +10000,0.12854,0.13109,0.05,100 +10000,0.12854,0.13109,0.05,100 +10000,0.12854,0.13109,0.05,100 +10000,0.13108,0.13368,0.05,100 +10000,0.13108,0.13368,0.05,100 +10000,0.13367,0.13632,0.05,100 +10000,0.13367,0.13632,0.05,100 +10000,0.13367,0.13632,0.05,100 +10000,0.13631,0.13901,0.05,100 +10000,0.13631,0.13901,0.05,100 +10000,0.13631,0.13901,0.05,100 +10000,0.139,0.14176,0.05,100 +10000,0.139,0.14176,0.05,100 +10000,0.14175,0.14456,0.05,100 +10000,0.14175,0.14456,0.05,100 +10000,0.14175,0.14456,0.05,100 +10000,0.14455,0.14742,0.05,100 +10000,0.14455,0.14742,0.05,100 +10000,0.14455,0.14742,0.05,100 +10000,0.1474,0.15033,0.05,100 +10000,0.1474,0.15033,0.05,100 +10000,0.1474,0.15033,0.05,100 +10000,0.15032,0.1533,0.05,100 +10000,0.15032,0.1533,0.05,100 +10000,0.15032,0.1533,0.05,100 +10000,0.15329,0.15633,0.05,100 +10000,0.15329,0.15633,0.05,100 +10000,0.15329,0.15633,0.05,100 +10000,0.15632,0.15942,0.05,100 +10000,0.15632,0.15942,0.05,100 +10000,0.15632,0.15942,0.05,100 +10000,0.15941,0.16257,0.05,100 +10000,0.15941,0.16257,0.05,100 +10000,0.15941,0.16257,0.05,100 +10000,0.16256,0.16578,0.05,100 +10000,0.16256,0.16578,0.05,100 +10000,0.16256,0.16578,0.05,100 +10000,0.16577,0.16906,0.05,100 +10000,0.16577,0.16906,0.05,100 +10000,0.16577,0.16906,0.05,100 +10000,0.16577,0.16906,0.05,100 +10000,0.16905,0.1724,0.05,100 +10000,0.16905,0.1724,0.05,100 +10000,0.16905,0.1724,0.05,100 +10000,0.17239,0.1758,0.05,100 +10000,0.17239,0.1758,0.05,100 +10000,0.17239,0.1758,0.05,100 +10000,0.17579,0.17928,0.05,100 +10000,0.17579,0.17928,0.05,100 +10000,0.17579,0.17928,0.05,100 +10000,0.17579,0.17928,0.05,100 +10000,0.17927,0.18282,0.05,100 +10000,0.17927,0.18282,0.05,100 +10000,0.17927,0.18282,0.05,100 +10000,0.18281,0.18644,0.05,100 +10000,0.18281,0.18644,0.05,100 +10000,0.18281,0.18644,0.05,100 +10000,0.18281,0.18644,0.05,100 +10000,0.18643,0.19013,0.05,100 +10000,0.18643,0.19013,0.05,100 +10000,0.18643,0.19013,0.05,100 +10000,0.18643,0.19013,0.05,100 +10000,0.19011,0.19388,0.05,100 +10000,0.19011,0.19388,0.05,100 +10000,0.19011,0.19388,0.05,100 +10000,0.19387,0.19772,0.05,100 +10000,0.19387,0.19772,0.05,100 +10000,0.19387,0.19772,0.05,100 +10000,0.19387,0.19772,0.05,100 +10000,0.19771,0.20163,0.05,100 +10000,0.19771,0.20163,0.05,100 +10000,0.19771,0.20163,0.05,100 +10000,0.19771,0.20163,0.05,100 +10000,0.20162,0.20562,0.05,100 +10000,0.20162,0.20562,0.05,100 +10000,0.20162,0.20562,0.05,100 +10000,0.20162,0.20562,0.05,100 +10000,0.2056,0.20968,0.05,100 +10000,0.2056,0.20968,0.05,100 +10000,0.2056,0.20968,0.05,100 +10000,0.2056,0.20968,0.05,100 +10000,0.20967,0.21383,0.05,100 +10000,0.20967,0.21383,0.05,100 +10000,0.20967,0.21383,0.05,100 +10000,0.20967,0.21383,0.05,100 +10000,0.21382,0.21806,0.05,100 +10000,0.21382,0.21806,0.05,100 +10000,0.21382,0.21806,0.05,100 +10000,0.21382,0.21806,0.05,100 +10000,0.21382,0.21806,0.05,100 +10000,0.21805,0.22237,0.05,100 +10000,0.21805,0.22237,0.05,100 +10000,0.21805,0.22237,0.05,100 +10000,0.21805,0.22237,0.05,100 +10000,0.22236,0.22677,0.05,100 +10000,0.22236,0.22677,0.05,100 +10000,0.22236,0.22677,0.05,100 +10000,0.22236,0.22677,0.05,100 +10000,0.22676,0.23125,0.05,100 +10000,0.22676,0.23125,0.05,100 +10000,0.22676,0.23125,0.05,100 +10000,0.22676,0.23125,0.05,100 +10000,0.22676,0.23125,0.05,100 +10000,0.23124,0.23583,0.05,100 +10000,0.23124,0.23583,0.05,100 +10000,0.23124,0.23583,0.05,100 +10000,0.23124,0.23583,0.05,100 +10000,0.23582,0.2405,0.05,100 +10000,0.23582,0.2405,0.05,100 +10000,0.23582,0.2405,0.05,100 +10000,0.23582,0.2405,0.05,100 +10000,0.23582,0.2405,0.05,100 +10000,0.24048,0.24525,0.05,100 +10000,0.24048,0.24525,0.05,100 +10000,0.24048,0.24525,0.05,100 +10000,0.24048,0.24525,0.05,100 +10000,0.24048,0.24525,0.05,100 +10000,0.24524,0.25011,0.05,100 +10000,0.24524,0.25011,0.05,100 +10000,0.24524,0.25011,0.05,100 +10000,0.24524,0.25011,0.05,100 +10000,0.24524,0.25011,0.05,100 +10000,0.25009,0.25505,0.05,100 +10000,0.25009,0.25505,0.05,100 +10000,0.25009,0.25505,0.05,100 +10000,0.25009,0.25505,0.05,100 +10000,0.25009,0.25505,0.05,100 +10000,0.25504,0.2601,0.05,100 +10000,0.25504,0.2601,0.05,100 +10000,0.25504,0.2601,0.05,100 +10000,0.25504,0.2601,0.05,100 +10000,0.25504,0.2601,0.05,100 +10000,0.26009,0.26525,0.05,100 +10000,0.26009,0.26525,0.05,100 +10000,0.26009,0.26525,0.05,100 +10000,0.26009,0.26525,0.05,100 +10000,0.26009,0.26525,0.05,100 +10000,0.26524,0.2705,0.05,100 +10000,0.26524,0.2705,0.05,100 +10000,0.26524,0.2705,0.05,100 +10000,0.26524,0.2705,0.05,100 +10000,0.26524,0.2705,0.05,100 +10000,0.27048,0.27585,0.05,100 +10000,0.27048,0.27585,0.05,100 +10000,0.27048,0.27585,0.05,100 +10000,0.27048,0.27585,0.05,100 +10000,0.27048,0.27585,0.05,100 +10000,0.27584,0.28131,0.05,100 +10000,0.27584,0.28131,0.05,100 +10000,0.27584,0.28131,0.05,100 +10000,0.27584,0.28131,0.05,100 +10000,0.27584,0.28131,0.05,100 +10000,0.27584,0.28131,0.05,100 +10000,0.2813,0.28687,0.05,100 +10000,0.2813,0.28687,0.05,100 +10000,0.2813,0.28687,0.05,100 +10000,0.2813,0.28687,0.05,100 +10000,0.2813,0.28687,0.05,100 +10000,0.28686,0.29255,0.05,100 +10000,0.28686,0.29255,0.05,100 +10000,0.28686,0.29255,0.05,100 +10000,0.28686,0.29255,0.05,100 +10000,0.28686,0.29255,0.05,100 +10000,0.28686,0.29255,0.05,100 +10000,0.29254,0.29834,0.05,100 +10000,0.29254,0.29834,0.05,100 +10000,0.29254,0.29834,0.05,100 +10000,0.29254,0.29834,0.05,100 +10000,0.29254,0.29834,0.05,100 +10000,0.29254,0.29834,0.05,100 +10000,0.29833,0.30425,0.05,100 +10000,0.29833,0.30425,0.05,100 +10000,0.29833,0.30425,0.05,100 +10000,0.29833,0.30425,0.05,100 +10000,0.29833,0.30425,0.05,100 +10000,0.29833,0.30425,0.05,100 +10000,0.30424,0.31027,0.05,100 +10000,0.30424,0.31027,0.05,100 +10000,0.30424,0.31027,0.05,100 +10000,0.30424,0.31027,0.05,100 +10000,0.30424,0.31027,0.05,100 +10000,0.30424,0.31027,0.05,100 +10000,0.31026,0.31641,0.05,100 +10000,0.31026,0.31641,0.05,100 +10000,0.31026,0.31641,0.05,100 +10000,0.31026,0.31641,0.05,100 +10000,0.31026,0.31641,0.05,100 +10000,0.31026,0.31641,0.05,100 +10000,0.3164,0.32267,0.05,100 +10000,0.3164,0.32267,0.05,100 +10000,0.3164,0.32267,0.05,100 +10000,0.3164,0.32267,0.05,100 +10000,0.3164,0.32267,0.05,100 +10000,0.3164,0.32267,0.05,100 +10000,0.32266,0.32906,0.05,100 +10000,0.32266,0.32906,0.05,100 +10000,0.32266,0.32906,0.05,100 +10000,0.32266,0.32906,0.05,100 +10000,0.32266,0.32906,0.05,100 +10000,0.32266,0.32906,0.05,100 +10000,0.32266,0.32906,0.05,100 +10000,0.32905,0.33558,0.05,100 +10000,0.32905,0.33558,0.05,100 +10000,0.32905,0.33558,0.05,100 +10000,0.32905,0.33558,0.05,100 +10000,0.32905,0.33558,0.05,100 +10000,0.32905,0.33558,0.05,100 +10000,0.33556,0.34222,0.05,100 +10000,0.33556,0.34222,0.05,100 +10000,0.33556,0.34222,0.05,100 +10000,0.33556,0.34222,0.05,100 +10000,0.33556,0.34222,0.05,100 +10000,0.33556,0.34222,0.05,100 +10000,0.33556,0.34222,0.05,100 +10000,0.34221,0.34899,0.05,100 +10000,0.34221,0.34899,0.05,100 +10000,0.34221,0.34899,0.05,100 +10000,0.34221,0.34899,0.05,100 +10000,0.34221,0.34899,0.05,100 +10000,0.34221,0.34899,0.05,100 +10000,0.34221,0.34899,0.05,100 +10000,0.34898,0.3559,0.05,100 +10000,0.34898,0.3559,0.05,100 +10000,0.34898,0.3559,0.05,100 +10000,0.34898,0.3559,0.05,100 +10000,0.34898,0.3559,0.05,100 +10000,0.34898,0.3559,0.05,100 +10000,0.35589,0.36295,0.05,100 +10000,0.35589,0.36295,0.05,100 +10000,0.35589,0.36295,0.05,100 +10000,0.35589,0.36295,0.05,100 +10000,0.35589,0.36295,0.05,100 +10000,0.35589,0.36295,0.05,100 +10000,0.35589,0.36295,0.05,100 +10000,0.36294,0.37013,0.05,100 +10000,0.36294,0.37013,0.05,100 +10000,0.36294,0.37013,0.05,100 +10000,0.36294,0.37013,0.05,100 +10000,0.36294,0.37013,0.05,100 +10000,0.36294,0.37013,0.05,100 +10000,0.36294,0.37013,0.05,100 +10000,0.36294,0.37013,0.05,100 +10000,0.37012,0.37746,0.05,100 +10000,0.37012,0.37746,0.05,100 +10000,0.37012,0.37746,0.05,100 +10000,0.37012,0.37746,0.05,100 +10000,0.37012,0.37746,0.05,100 +10000,0.37012,0.37746,0.05,100 +10000,0.37012,0.37746,0.05,100 +10000,0.37745,0.38494,0.05,100 +10000,0.37745,0.38494,0.05,100 +10000,0.37745,0.38494,0.05,100 +10000,0.37745,0.38494,0.05,100 +10000,0.37745,0.38494,0.05,100 +10000,0.37745,0.38494,0.05,100 +10000,0.37745,0.38494,0.05,100 +10000,0.38493,0.39256,0.05,100 +10000,0.38493,0.39256,0.05,100 +10000,0.38493,0.39256,0.05,100 +10000,0.38493,0.39256,0.05,100 +10000,0.38493,0.39256,0.05,100 +10000,0.38493,0.39256,0.05,100 +10000,0.38493,0.39256,0.05,100 +10000,0.38493,0.39256,0.05,100 +10000,0.39255,0.40033,0.05,100 +10000,0.39255,0.40033,0.05,100 +10000,0.39255,0.40033,0.05,100 +10000,0.39255,0.40033,0.05,100 +10000,0.39255,0.40033,0.05,100 +10000,0.39255,0.40033,0.05,100 +10000,0.39255,0.40033,0.05,100 +10000,0.39255,0.40033,0.05,100 +10000,0.40032,0.40826,0.05,100 +10000,0.40032,0.40826,0.05,100 +10000,0.40032,0.40826,0.05,100 +10000,0.40032,0.40826,0.05,100 +10000,0.40032,0.40826,0.05,100 +10000,0.40032,0.40826,0.05,100 +10000,0.40032,0.40826,0.05,100 +10000,0.40032,0.40826,0.05,100 +10000,0.40825,0.41634,0.05,100 +10000,0.40825,0.41634,0.05,100 +10000,0.40825,0.41634,0.05,100 +10000,0.40825,0.41634,0.05,100 +10000,0.40825,0.41634,0.05,100 +10000,0.40825,0.41634,0.05,100 +10000,0.40825,0.41634,0.05,100 +10000,0.40825,0.41634,0.05,100 +10000,0.41633,0.42459,0.05,100 +10000,0.41633,0.42459,0.05,100 +10000,0.41633,0.42459,0.05,100 +10000,0.41633,0.42459,0.05,100 +10000,0.41633,0.42459,0.05,100 +10000,0.41633,0.42459,0.05,100 +10000,0.41633,0.42459,0.05,100 +10000,0.41633,0.42459,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.42458,0.433,0.05,100 +10000,0.43298,0.44157,0.05,100 +10000,0.43298,0.44157,0.05,100 +10000,0.43298,0.44157,0.05,100 +10000,0.43298,0.44157,0.05,100 +10000,0.43298,0.44157,0.05,100 +10000,0.43298,0.44157,0.05,100 +10000,0.43298,0.44157,0.05,100 +10000,0.43298,0.44157,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.44156,0.45031,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.4503,0.45923,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.45922,0.46833,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.46832,0.4776,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.47759,0.48706,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.48705,0.49671,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.4967,0.50655,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.50654,0.51658,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.51657,0.52681,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.5268,0.53725,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.53724,0.54789,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.54788,0.55874,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.55873,0.56981,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.5698,0.5811,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.58109,0.59261,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.5926,0.60435,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.60434,0.61632,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.61631,0.62853,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.62852,0.64098,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.64097,0.65368,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.65367,0.66663,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.66662,0.67984,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.67983,0.69331,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,0.6933,0.70704,0.05,100 +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan +10000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_10.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_10.csv new file mode 100644 index 00000000000..f8bba333145 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_10.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,0.07071,0.072112,0.05,-17.679 +1e+05,0.07071,0.072112,0.05,-17.679 +1e+05,0.07211,0.07354,0.05,-13.128 +1e+05,0.07351,0.074968,0.05,-8.6631 +1e+05,0.075155,0.076646,0.05,-3.5144 +1e+05,0.075155,0.076646,0.05,-3.5144 +1e+05,0.077046,0.078574,0.05,2.2548 +1e+05,0.077046,0.078574,0.05,2.2548 +1e+05,0.078936,0.080501,0.05,7.8811 +1e+05,0.078936,0.080501,0.05,7.8811 +1e+05,0.080826,0.082429,0.05,13.366 +1e+05,0.080826,0.082429,0.05,13.366 +1e+05,0.082716,0.084357,0.05,18.708 +1e+05,0.082716,0.084357,0.05,18.708 +1e+05,0.084607,0.086285,0.05,23.905 +1e+05,0.084607,0.086285,0.05,23.905 +1e+05,0.086497,0.088212,0.05,28.953 +1e+05,0.086497,0.088212,0.05,28.953 +1e+05,0.088387,0.09014,0.05,33.846 +1e+05,0.088387,0.09014,0.05,33.846 +1e+05,0.090278,0.092068,0.05,38.579 +1e+05,0.090278,0.092068,0.05,38.579 +1e+05,0.092168,0.093995,0.05,43.144 +1e+05,0.092168,0.093995,0.05,43.144 +1e+05,0.094031,0.095896,0.05,47.472 +1e+05,0.095885,0.097786,0.05,51.606 +1e+05,0.095885,0.097786,0.05,51.606 +1e+05,0.097776,0.099715,0.05,55.636 +1e+05,0.097776,0.099715,0.05,55.636 +1e+05,0.099704,0.10168,0.05,59.545 +1e+05,0.099704,0.10168,0.05,59.545 +1e+05,0.10167,0.10369,0.05,63.317 +1e+05,0.10167,0.10369,0.05,63.317 +1e+05,0.10368,0.10573,0.05,66.937 +1e+05,0.10368,0.10573,0.05,66.937 +1e+05,0.10572,0.10782,0.05,70.39 +1e+05,0.10572,0.10782,0.05,70.39 +1e+05,0.10781,0.10995,0.05,73.659 +1e+05,0.10781,0.10995,0.05,73.659 +1e+05,0.10993,0.11211,0.05,76.734 +1e+05,0.10993,0.11211,0.05,76.734 +1e+05,0.10993,0.11211,0.05,76.734 +1e+05,0.1121,0.11433,0.05,79.604 +1e+05,0.1121,0.11433,0.05,79.604 +1e+05,0.11432,0.11658,0.05,82.259 +1e+05,0.11432,0.11658,0.05,82.259 +1e+05,0.11657,0.11888,0.05,84.696 +1e+05,0.11657,0.11888,0.05,84.696 +1e+05,0.11887,0.12123,0.05,86.911 +1e+05,0.11887,0.12123,0.05,86.911 +1e+05,0.11887,0.12123,0.05,86.911 +1e+05,0.12122,0.12362,0.05,88.906 +1e+05,0.12122,0.12362,0.05,88.906 +1e+05,0.12361,0.12607,0.05,90.684 +1e+05,0.12361,0.12607,0.05,90.684 +1e+05,0.12361,0.12607,0.05,90.684 +1e+05,0.12605,0.12855,0.05,92.253 +1e+05,0.12605,0.12855,0.05,92.253 +1e+05,0.12854,0.13109,0.05,93.623 +1e+05,0.12854,0.13109,0.05,93.623 +1e+05,0.12854,0.13109,0.05,93.623 +1e+05,0.13108,0.13368,0.05,94.805 +1e+05,0.13108,0.13368,0.05,94.805 +1e+05,0.13367,0.13632,0.05,95.814 +1e+05,0.13367,0.13632,0.05,95.814 +1e+05,0.13367,0.13632,0.05,95.814 +1e+05,0.13631,0.13901,0.05,96.664 +1e+05,0.13631,0.13901,0.05,96.664 +1e+05,0.13631,0.13901,0.05,96.664 +1e+05,0.139,0.14176,0.05,97.373 +1e+05,0.139,0.14176,0.05,97.373 +1e+05,0.14175,0.14456,0.05,97.956 +1e+05,0.14175,0.14456,0.05,97.956 +1e+05,0.14175,0.14456,0.05,97.956 +1e+05,0.14455,0.14742,0.05,98.429 +1e+05,0.14455,0.14742,0.05,98.429 +1e+05,0.14455,0.14742,0.05,98.429 +1e+05,0.1474,0.15033,0.05,98.808 +1e+05,0.1474,0.15033,0.05,98.808 +1e+05,0.1474,0.15033,0.05,98.808 +1e+05,0.15032,0.1533,0.05,99.108 +1e+05,0.15032,0.1533,0.05,99.108 +1e+05,0.15032,0.1533,0.05,99.108 +1e+05,0.15329,0.15633,0.05,99.341 +1e+05,0.15329,0.15633,0.05,99.341 +1e+05,0.15329,0.15633,0.05,99.341 +1e+05,0.15632,0.15942,0.05,99.521 +1e+05,0.15632,0.15942,0.05,99.521 +1e+05,0.15632,0.15942,0.05,99.521 +1e+05,0.15941,0.16257,0.05,99.656 +1e+05,0.15941,0.16257,0.05,99.656 +1e+05,0.15941,0.16257,0.05,99.656 +1e+05,0.16256,0.16578,0.05,99.757 +1e+05,0.16256,0.16578,0.05,99.757 +1e+05,0.16256,0.16578,0.05,99.757 +1e+05,0.16577,0.16906,0.05,99.831 +1e+05,0.16577,0.16906,0.05,99.831 +1e+05,0.16577,0.16906,0.05,99.831 +1e+05,0.16577,0.16906,0.05,99.831 +1e+05,0.16905,0.1724,0.05,99.885 +1e+05,0.16905,0.1724,0.05,99.885 +1e+05,0.16905,0.1724,0.05,99.885 +1e+05,0.17239,0.1758,0.05,99.922 +1e+05,0.17239,0.1758,0.05,99.922 +1e+05,0.17239,0.1758,0.05,99.922 +1e+05,0.17579,0.17928,0.05,99.949 +1e+05,0.17579,0.17928,0.05,99.949 +1e+05,0.17579,0.17928,0.05,99.949 +1e+05,0.17579,0.17928,0.05,99.949 +1e+05,0.17927,0.18282,0.05,99.967 +1e+05,0.17927,0.18282,0.05,99.967 +1e+05,0.17927,0.18282,0.05,99.967 +1e+05,0.18281,0.18644,0.05,99.979 +1e+05,0.18281,0.18644,0.05,99.979 +1e+05,0.18281,0.18644,0.05,99.979 +1e+05,0.18281,0.18644,0.05,99.979 +1e+05,0.18643,0.19013,0.05,99.987 +1e+05,0.18643,0.19013,0.05,99.987 +1e+05,0.18643,0.19013,0.05,99.987 +1e+05,0.18643,0.19013,0.05,99.987 +1e+05,0.19011,0.19388,0.05,99.992 +1e+05,0.19011,0.19388,0.05,99.992 +1e+05,0.19011,0.19388,0.05,99.992 +1e+05,0.19387,0.19772,0.05,99.995 +1e+05,0.19387,0.19772,0.05,99.995 +1e+05,0.19387,0.19772,0.05,99.995 +1e+05,0.19387,0.19772,0.05,99.995 +1e+05,0.19771,0.20163,0.05,99.997 +1e+05,0.19771,0.20163,0.05,99.997 +1e+05,0.19771,0.20163,0.05,99.997 +1e+05,0.19771,0.20163,0.05,99.997 +1e+05,0.20162,0.20562,0.05,99.998 +1e+05,0.20162,0.20562,0.05,99.998 +1e+05,0.20162,0.20562,0.05,99.998 +1e+05,0.20162,0.20562,0.05,99.998 +1e+05,0.2056,0.20968,0.05,99.999 +1e+05,0.2056,0.20968,0.05,99.999 +1e+05,0.2056,0.20968,0.05,99.999 +1e+05,0.2056,0.20968,0.05,99.999 +1e+05,0.20967,0.21383,0.05,99.999 +1e+05,0.20967,0.21383,0.05,99.999 +1e+05,0.20967,0.21383,0.05,99.999 +1e+05,0.20967,0.21383,0.05,99.999 +1e+05,0.21382,0.21806,0.05,100 +1e+05,0.21382,0.21806,0.05,100 +1e+05,0.21382,0.21806,0.05,100 +1e+05,0.21382,0.21806,0.05,100 +1e+05,0.21382,0.21806,0.05,100 +1e+05,0.21805,0.22237,0.05,100 +1e+05,0.21805,0.22237,0.05,100 +1e+05,0.21805,0.22237,0.05,100 +1e+05,0.21805,0.22237,0.05,100 +1e+05,0.22236,0.22677,0.05,100 +1e+05,0.22236,0.22677,0.05,100 +1e+05,0.22236,0.22677,0.05,100 +1e+05,0.22236,0.22677,0.05,100 +1e+05,0.22676,0.23125,0.05,100 +1e+05,0.22676,0.23125,0.05,100 +1e+05,0.22676,0.23125,0.05,100 +1e+05,0.22676,0.23125,0.05,100 +1e+05,0.22676,0.23125,0.05,100 +1e+05,0.23124,0.23583,0.05,100 +1e+05,0.23124,0.23583,0.05,100 +1e+05,0.23124,0.23583,0.05,100 +1e+05,0.23124,0.23583,0.05,100 +1e+05,0.23582,0.2405,0.05,100 +1e+05,0.23582,0.2405,0.05,100 +1e+05,0.23582,0.2405,0.05,100 +1e+05,0.23582,0.2405,0.05,100 +1e+05,0.23582,0.2405,0.05,100 +1e+05,0.24048,0.24525,0.05,100 +1e+05,0.24048,0.24525,0.05,100 +1e+05,0.24048,0.24525,0.05,100 +1e+05,0.24048,0.24525,0.05,100 +1e+05,0.24048,0.24525,0.05,100 +1e+05,0.24524,0.25011,0.05,100 +1e+05,0.24524,0.25011,0.05,100 +1e+05,0.24524,0.25011,0.05,100 +1e+05,0.24524,0.25011,0.05,100 +1e+05,0.24524,0.25011,0.05,100 +1e+05,0.25009,0.25505,0.05,100 +1e+05,0.25009,0.25505,0.05,100 +1e+05,0.25009,0.25505,0.05,100 +1e+05,0.25009,0.25505,0.05,100 +1e+05,0.25009,0.25505,0.05,100 +1e+05,0.25504,0.2601,0.05,100 +1e+05,0.25504,0.2601,0.05,100 +1e+05,0.25504,0.2601,0.05,100 +1e+05,0.25504,0.2601,0.05,100 +1e+05,0.25504,0.2601,0.05,100 +1e+05,0.26009,0.26525,0.05,100 +1e+05,0.26009,0.26525,0.05,100 +1e+05,0.26009,0.26525,0.05,100 +1e+05,0.26009,0.26525,0.05,100 +1e+05,0.26009,0.26525,0.05,100 +1e+05,0.26524,0.2705,0.05,100 +1e+05,0.26524,0.2705,0.05,100 +1e+05,0.26524,0.2705,0.05,100 +1e+05,0.26524,0.2705,0.05,100 +1e+05,0.26524,0.2705,0.05,100 +1e+05,0.27048,0.27585,0.05,100 +1e+05,0.27048,0.27585,0.05,100 +1e+05,0.27048,0.27585,0.05,100 +1e+05,0.27048,0.27585,0.05,100 +1e+05,0.27048,0.27585,0.05,100 +1e+05,0.27584,0.28131,0.05,100 +1e+05,0.27584,0.28131,0.05,100 +1e+05,0.27584,0.28131,0.05,100 +1e+05,0.27584,0.28131,0.05,100 +1e+05,0.27584,0.28131,0.05,100 +1e+05,0.27584,0.28131,0.05,100 +1e+05,0.2813,0.28687,0.05,100 +1e+05,0.2813,0.28687,0.05,100 +1e+05,0.2813,0.28687,0.05,100 +1e+05,0.2813,0.28687,0.05,100 +1e+05,0.2813,0.28687,0.05,100 +1e+05,0.28686,0.29255,0.05,100 +1e+05,0.28686,0.29255,0.05,100 +1e+05,0.28686,0.29255,0.05,100 +1e+05,0.28686,0.29255,0.05,100 +1e+05,0.28686,0.29255,0.05,100 +1e+05,0.28686,0.29255,0.05,100 +1e+05,0.29254,0.29834,0.05,100 +1e+05,0.29254,0.29834,0.05,100 +1e+05,0.29254,0.29834,0.05,100 +1e+05,0.29254,0.29834,0.05,100 +1e+05,0.29254,0.29834,0.05,100 +1e+05,0.29254,0.29834,0.05,100 +1e+05,0.29833,0.30425,0.05,100 +1e+05,0.29833,0.30425,0.05,100 +1e+05,0.29833,0.30425,0.05,100 +1e+05,0.29833,0.30425,0.05,100 +1e+05,0.29833,0.30425,0.05,100 +1e+05,0.29833,0.30425,0.05,100 +1e+05,0.30424,0.31027,0.05,100 +1e+05,0.30424,0.31027,0.05,100 +1e+05,0.30424,0.31027,0.05,100 +1e+05,0.30424,0.31027,0.05,100 +1e+05,0.30424,0.31027,0.05,100 +1e+05,0.30424,0.31027,0.05,100 +1e+05,0.31026,0.31641,0.05,100 +1e+05,0.31026,0.31641,0.05,100 +1e+05,0.31026,0.31641,0.05,100 +1e+05,0.31026,0.31641,0.05,100 +1e+05,0.31026,0.31641,0.05,100 +1e+05,0.31026,0.31641,0.05,100 +1e+05,0.3164,0.32267,0.05,100 +1e+05,0.3164,0.32267,0.05,100 +1e+05,0.3164,0.32267,0.05,100 +1e+05,0.3164,0.32267,0.05,100 +1e+05,0.3164,0.32267,0.05,100 +1e+05,0.3164,0.32267,0.05,100 +1e+05,0.32266,0.32906,0.05,100 +1e+05,0.32266,0.32906,0.05,100 +1e+05,0.32266,0.32906,0.05,100 +1e+05,0.32266,0.32906,0.05,100 +1e+05,0.32266,0.32906,0.05,100 +1e+05,0.32266,0.32906,0.05,100 +1e+05,0.32266,0.32906,0.05,100 +1e+05,0.32905,0.33558,0.05,100 +1e+05,0.32905,0.33558,0.05,100 +1e+05,0.32905,0.33558,0.05,100 +1e+05,0.32905,0.33558,0.05,100 +1e+05,0.32905,0.33558,0.05,100 +1e+05,0.32905,0.33558,0.05,100 +1e+05,0.33556,0.34222,0.05,100 +1e+05,0.33556,0.34222,0.05,100 +1e+05,0.33556,0.34222,0.05,100 +1e+05,0.33556,0.34222,0.05,100 +1e+05,0.33556,0.34222,0.05,100 +1e+05,0.33556,0.34222,0.05,100 +1e+05,0.33556,0.34222,0.05,100 +1e+05,0.34221,0.34899,0.05,100 +1e+05,0.34221,0.34899,0.05,100 +1e+05,0.34221,0.34899,0.05,100 +1e+05,0.34221,0.34899,0.05,100 +1e+05,0.34221,0.34899,0.05,100 +1e+05,0.34221,0.34899,0.05,100 +1e+05,0.34221,0.34899,0.05,100 +1e+05,0.34898,0.3559,0.05,100 +1e+05,0.34898,0.3559,0.05,100 +1e+05,0.34898,0.3559,0.05,100 +1e+05,0.34898,0.3559,0.05,100 +1e+05,0.34898,0.3559,0.05,100 +1e+05,0.34898,0.3559,0.05,100 +1e+05,0.35589,0.36295,0.05,100 +1e+05,0.35589,0.36295,0.05,100 +1e+05,0.35589,0.36295,0.05,100 +1e+05,0.35589,0.36295,0.05,100 +1e+05,0.35589,0.36295,0.05,100 +1e+05,0.35589,0.36295,0.05,100 +1e+05,0.35589,0.36295,0.05,100 +1e+05,0.36294,0.37013,0.05,100 +1e+05,0.36294,0.37013,0.05,100 +1e+05,0.36294,0.37013,0.05,100 +1e+05,0.36294,0.37013,0.05,100 +1e+05,0.36294,0.37013,0.05,100 +1e+05,0.36294,0.37013,0.05,100 +1e+05,0.36294,0.37013,0.05,100 +1e+05,0.36294,0.37013,0.05,100 +1e+05,0.37012,0.37746,0.05,100 +1e+05,0.37012,0.37746,0.05,100 +1e+05,0.37012,0.37746,0.05,100 +1e+05,0.37012,0.37746,0.05,100 +1e+05,0.37012,0.37746,0.05,100 +1e+05,0.37012,0.37746,0.05,100 +1e+05,0.37012,0.37746,0.05,100 +1e+05,0.37745,0.38494,0.05,100 +1e+05,0.37745,0.38494,0.05,100 +1e+05,0.37745,0.38494,0.05,100 +1e+05,0.37745,0.38494,0.05,100 +1e+05,0.37745,0.38494,0.05,100 +1e+05,0.37745,0.38494,0.05,100 +1e+05,0.37745,0.38494,0.05,100 +1e+05,0.38493,0.39256,0.05,100 +1e+05,0.38493,0.39256,0.05,100 +1e+05,0.38493,0.39256,0.05,100 +1e+05,0.38493,0.39256,0.05,100 +1e+05,0.38493,0.39256,0.05,100 +1e+05,0.38493,0.39256,0.05,100 +1e+05,0.38493,0.39256,0.05,100 +1e+05,0.38493,0.39256,0.05,100 +1e+05,0.39255,0.40033,0.05,100 +1e+05,0.39255,0.40033,0.05,100 +1e+05,0.39255,0.40033,0.05,100 +1e+05,0.39255,0.40033,0.05,100 +1e+05,0.39255,0.40033,0.05,100 +1e+05,0.39255,0.40033,0.05,100 +1e+05,0.39255,0.40033,0.05,100 +1e+05,0.39255,0.40033,0.05,100 +1e+05,0.40032,0.40826,0.05,100 +1e+05,0.40032,0.40826,0.05,100 +1e+05,0.40032,0.40826,0.05,100 +1e+05,0.40032,0.40826,0.05,100 +1e+05,0.40032,0.40826,0.05,100 +1e+05,0.40032,0.40826,0.05,100 +1e+05,0.40032,0.40826,0.05,100 +1e+05,0.40032,0.40826,0.05,100 +1e+05,0.40825,0.41634,0.05,100 +1e+05,0.40825,0.41634,0.05,100 +1e+05,0.40825,0.41634,0.05,100 +1e+05,0.40825,0.41634,0.05,100 +1e+05,0.40825,0.41634,0.05,100 +1e+05,0.40825,0.41634,0.05,100 +1e+05,0.40825,0.41634,0.05,100 +1e+05,0.40825,0.41634,0.05,100 +1e+05,0.41633,0.42459,0.05,100 +1e+05,0.41633,0.42459,0.05,100 +1e+05,0.41633,0.42459,0.05,100 +1e+05,0.41633,0.42459,0.05,100 +1e+05,0.41633,0.42459,0.05,100 +1e+05,0.41633,0.42459,0.05,100 +1e+05,0.41633,0.42459,0.05,100 +1e+05,0.41633,0.42459,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.42458,0.433,0.05,100 +1e+05,0.43298,0.44157,0.05,100 +1e+05,0.43298,0.44157,0.05,100 +1e+05,0.43298,0.44157,0.05,100 +1e+05,0.43298,0.44157,0.05,100 +1e+05,0.43298,0.44157,0.05,100 +1e+05,0.43298,0.44157,0.05,100 +1e+05,0.43298,0.44157,0.05,100 +1e+05,0.43298,0.44157,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.44156,0.45031,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.4503,0.45923,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.45922,0.46833,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.46832,0.4776,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.47759,0.48706,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.48705,0.49671,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.4967,0.50655,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.50654,0.51658,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.51657,0.52681,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.5268,0.53725,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.53724,0.54789,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.54788,0.55874,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.55873,0.56981,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.5698,0.5811,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.58109,0.59261,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.5926,0.60435,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.60434,0.61632,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.61631,0.62853,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.62852,0.64098,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.64097,0.65368,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.65367,0.66663,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.66662,0.67984,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.67983,0.69331,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,0.6933,0.70704,0.05,100 +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan +1e+05,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_2.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_2.csv new file mode 100644 index 00000000000..52362b795f0 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_2.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,0.07071,0.072112,0.05,-15.478 +20000,0.07071,0.072112,0.05,-15.478 +20000,0.07211,0.07354,0.05,-6.6062 +20000,0.07351,0.074968,0.05,2.1009 +20000,0.075155,0.076646,0.05,12.127 +20000,0.075155,0.076646,0.05,12.127 +20000,0.077046,0.078574,0.05,23.273 +20000,0.077046,0.078574,0.05,23.273 +20000,0.078936,0.080501,0.05,33.948 +20000,0.078936,0.080501,0.05,33.948 +20000,0.080826,0.082429,0.05,44.021 +20000,0.080826,0.082429,0.05,44.021 +20000,0.082716,0.084357,0.05,53.356 +20000,0.082716,0.084357,0.05,53.356 +20000,0.084607,0.086285,0.05,61.822 +20000,0.084607,0.086285,0.05,61.822 +20000,0.086497,0.088212,0.05,69.322 +20000,0.086497,0.088212,0.05,69.322 +20000,0.088387,0.09014,0.05,75.802 +20000,0.088387,0.09014,0.05,75.802 +20000,0.090278,0.092068,0.05,81.26 +20000,0.090278,0.092068,0.05,81.26 +20000,0.092168,0.093995,0.05,85.744 +20000,0.092168,0.093995,0.05,85.744 +20000,0.094031,0.095896,0.05,89.288 +20000,0.095885,0.097786,0.05,92.071 +20000,0.095885,0.097786,0.05,92.071 +20000,0.097776,0.099715,0.05,94.256 +20000,0.097776,0.099715,0.05,94.256 +20000,0.099704,0.10168,0.05,95.926 +20000,0.099704,0.10168,0.05,95.926 +20000,0.10167,0.10369,0.05,97.173 +20000,0.10167,0.10369,0.05,97.173 +20000,0.10368,0.10573,0.05,98.08 +20000,0.10368,0.10573,0.05,98.08 +20000,0.10572,0.10782,0.05,98.724 +20000,0.10572,0.10782,0.05,98.724 +20000,0.10781,0.10995,0.05,99.171 +20000,0.10781,0.10995,0.05,99.171 +20000,0.10993,0.11211,0.05,99.473 +20000,0.10993,0.11211,0.05,99.473 +20000,0.10993,0.11211,0.05,99.473 +20000,0.1121,0.11433,0.05,99.672 +20000,0.1121,0.11433,0.05,99.672 +20000,0.11432,0.11658,0.05,99.801 +20000,0.11432,0.11658,0.05,99.801 +20000,0.11657,0.11888,0.05,99.882 +20000,0.11657,0.11888,0.05,99.882 +20000,0.11887,0.12123,0.05,99.931 +20000,0.11887,0.12123,0.05,99.931 +20000,0.11887,0.12123,0.05,99.931 +20000,0.12122,0.12362,0.05,99.961 +20000,0.12122,0.12362,0.05,99.961 +20000,0.12361,0.12607,0.05,99.978 +20000,0.12361,0.12607,0.05,99.978 +20000,0.12361,0.12607,0.05,99.978 +20000,0.12605,0.12855,0.05,99.988 +20000,0.12605,0.12855,0.05,99.988 +20000,0.12854,0.13109,0.05,99.994 +20000,0.12854,0.13109,0.05,99.994 +20000,0.12854,0.13109,0.05,99.994 +20000,0.13108,0.13368,0.05,99.997 +20000,0.13108,0.13368,0.05,99.997 +20000,0.13367,0.13632,0.05,99.998 +20000,0.13367,0.13632,0.05,99.998 +20000,0.13367,0.13632,0.05,99.998 +20000,0.13631,0.13901,0.05,99.999 +20000,0.13631,0.13901,0.05,99.999 +20000,0.13631,0.13901,0.05,99.999 +20000,0.139,0.14176,0.05,100 +20000,0.139,0.14176,0.05,100 +20000,0.14175,0.14456,0.05,100 +20000,0.14175,0.14456,0.05,100 +20000,0.14175,0.14456,0.05,100 +20000,0.14455,0.14742,0.05,100 +20000,0.14455,0.14742,0.05,100 +20000,0.14455,0.14742,0.05,100 +20000,0.1474,0.15033,0.05,100 +20000,0.1474,0.15033,0.05,100 +20000,0.1474,0.15033,0.05,100 +20000,0.15032,0.1533,0.05,100 +20000,0.15032,0.1533,0.05,100 +20000,0.15032,0.1533,0.05,100 +20000,0.15329,0.15633,0.05,100 +20000,0.15329,0.15633,0.05,100 +20000,0.15329,0.15633,0.05,100 +20000,0.15632,0.15942,0.05,100 +20000,0.15632,0.15942,0.05,100 +20000,0.15632,0.15942,0.05,100 +20000,0.15941,0.16257,0.05,100 +20000,0.15941,0.16257,0.05,100 +20000,0.15941,0.16257,0.05,100 +20000,0.16256,0.16578,0.05,100 +20000,0.16256,0.16578,0.05,100 +20000,0.16256,0.16578,0.05,100 +20000,0.16577,0.16906,0.05,100 +20000,0.16577,0.16906,0.05,100 +20000,0.16577,0.16906,0.05,100 +20000,0.16577,0.16906,0.05,100 +20000,0.16905,0.1724,0.05,100 +20000,0.16905,0.1724,0.05,100 +20000,0.16905,0.1724,0.05,100 +20000,0.17239,0.1758,0.05,100 +20000,0.17239,0.1758,0.05,100 +20000,0.17239,0.1758,0.05,100 +20000,0.17579,0.17928,0.05,100 +20000,0.17579,0.17928,0.05,100 +20000,0.17579,0.17928,0.05,100 +20000,0.17579,0.17928,0.05,100 +20000,0.17927,0.18282,0.05,100 +20000,0.17927,0.18282,0.05,100 +20000,0.17927,0.18282,0.05,100 +20000,0.18281,0.18644,0.05,100 +20000,0.18281,0.18644,0.05,100 +20000,0.18281,0.18644,0.05,100 +20000,0.18281,0.18644,0.05,100 +20000,0.18643,0.19013,0.05,100 +20000,0.18643,0.19013,0.05,100 +20000,0.18643,0.19013,0.05,100 +20000,0.18643,0.19013,0.05,100 +20000,0.19011,0.19388,0.05,100 +20000,0.19011,0.19388,0.05,100 +20000,0.19011,0.19388,0.05,100 +20000,0.19387,0.19772,0.05,100 +20000,0.19387,0.19772,0.05,100 +20000,0.19387,0.19772,0.05,100 +20000,0.19387,0.19772,0.05,100 +20000,0.19771,0.20163,0.05,100 +20000,0.19771,0.20163,0.05,100 +20000,0.19771,0.20163,0.05,100 +20000,0.19771,0.20163,0.05,100 +20000,0.20162,0.20562,0.05,100 +20000,0.20162,0.20562,0.05,100 +20000,0.20162,0.20562,0.05,100 +20000,0.20162,0.20562,0.05,100 +20000,0.2056,0.20968,0.05,100 +20000,0.2056,0.20968,0.05,100 +20000,0.2056,0.20968,0.05,100 +20000,0.2056,0.20968,0.05,100 +20000,0.20967,0.21383,0.05,100 +20000,0.20967,0.21383,0.05,100 +20000,0.20967,0.21383,0.05,100 +20000,0.20967,0.21383,0.05,100 +20000,0.21382,0.21806,0.05,100 +20000,0.21382,0.21806,0.05,100 +20000,0.21382,0.21806,0.05,100 +20000,0.21382,0.21806,0.05,100 +20000,0.21382,0.21806,0.05,100 +20000,0.21805,0.22237,0.05,100 +20000,0.21805,0.22237,0.05,100 +20000,0.21805,0.22237,0.05,100 +20000,0.21805,0.22237,0.05,100 +20000,0.22236,0.22677,0.05,100 +20000,0.22236,0.22677,0.05,100 +20000,0.22236,0.22677,0.05,100 +20000,0.22236,0.22677,0.05,100 +20000,0.22676,0.23125,0.05,100 +20000,0.22676,0.23125,0.05,100 +20000,0.22676,0.23125,0.05,100 +20000,0.22676,0.23125,0.05,100 +20000,0.22676,0.23125,0.05,100 +20000,0.23124,0.23583,0.05,100 +20000,0.23124,0.23583,0.05,100 +20000,0.23124,0.23583,0.05,100 +20000,0.23124,0.23583,0.05,100 +20000,0.23582,0.2405,0.05,100 +20000,0.23582,0.2405,0.05,100 +20000,0.23582,0.2405,0.05,100 +20000,0.23582,0.2405,0.05,100 +20000,0.23582,0.2405,0.05,100 +20000,0.24048,0.24525,0.05,100 +20000,0.24048,0.24525,0.05,100 +20000,0.24048,0.24525,0.05,100 +20000,0.24048,0.24525,0.05,100 +20000,0.24048,0.24525,0.05,100 +20000,0.24524,0.25011,0.05,100 +20000,0.24524,0.25011,0.05,100 +20000,0.24524,0.25011,0.05,100 +20000,0.24524,0.25011,0.05,100 +20000,0.24524,0.25011,0.05,100 +20000,0.25009,0.25505,0.05,100 +20000,0.25009,0.25505,0.05,100 +20000,0.25009,0.25505,0.05,100 +20000,0.25009,0.25505,0.05,100 +20000,0.25009,0.25505,0.05,100 +20000,0.25504,0.2601,0.05,100 +20000,0.25504,0.2601,0.05,100 +20000,0.25504,0.2601,0.05,100 +20000,0.25504,0.2601,0.05,100 +20000,0.25504,0.2601,0.05,100 +20000,0.26009,0.26525,0.05,100 +20000,0.26009,0.26525,0.05,100 +20000,0.26009,0.26525,0.05,100 +20000,0.26009,0.26525,0.05,100 +20000,0.26009,0.26525,0.05,100 +20000,0.26524,0.2705,0.05,100 +20000,0.26524,0.2705,0.05,100 +20000,0.26524,0.2705,0.05,100 +20000,0.26524,0.2705,0.05,100 +20000,0.26524,0.2705,0.05,100 +20000,0.27048,0.27585,0.05,100 +20000,0.27048,0.27585,0.05,100 +20000,0.27048,0.27585,0.05,100 +20000,0.27048,0.27585,0.05,100 +20000,0.27048,0.27585,0.05,100 +20000,0.27584,0.28131,0.05,100 +20000,0.27584,0.28131,0.05,100 +20000,0.27584,0.28131,0.05,100 +20000,0.27584,0.28131,0.05,100 +20000,0.27584,0.28131,0.05,100 +20000,0.27584,0.28131,0.05,100 +20000,0.2813,0.28687,0.05,100 +20000,0.2813,0.28687,0.05,100 +20000,0.2813,0.28687,0.05,100 +20000,0.2813,0.28687,0.05,100 +20000,0.2813,0.28687,0.05,100 +20000,0.28686,0.29255,0.05,100 +20000,0.28686,0.29255,0.05,100 +20000,0.28686,0.29255,0.05,100 +20000,0.28686,0.29255,0.05,100 +20000,0.28686,0.29255,0.05,100 +20000,0.28686,0.29255,0.05,100 +20000,0.29254,0.29834,0.05,100 +20000,0.29254,0.29834,0.05,100 +20000,0.29254,0.29834,0.05,100 +20000,0.29254,0.29834,0.05,100 +20000,0.29254,0.29834,0.05,100 +20000,0.29254,0.29834,0.05,100 +20000,0.29833,0.30425,0.05,100 +20000,0.29833,0.30425,0.05,100 +20000,0.29833,0.30425,0.05,100 +20000,0.29833,0.30425,0.05,100 +20000,0.29833,0.30425,0.05,100 +20000,0.29833,0.30425,0.05,100 +20000,0.30424,0.31027,0.05,100 +20000,0.30424,0.31027,0.05,100 +20000,0.30424,0.31027,0.05,100 +20000,0.30424,0.31027,0.05,100 +20000,0.30424,0.31027,0.05,100 +20000,0.30424,0.31027,0.05,100 +20000,0.31026,0.31641,0.05,100 +20000,0.31026,0.31641,0.05,100 +20000,0.31026,0.31641,0.05,100 +20000,0.31026,0.31641,0.05,100 +20000,0.31026,0.31641,0.05,100 +20000,0.31026,0.31641,0.05,100 +20000,0.3164,0.32267,0.05,100 +20000,0.3164,0.32267,0.05,100 +20000,0.3164,0.32267,0.05,100 +20000,0.3164,0.32267,0.05,100 +20000,0.3164,0.32267,0.05,100 +20000,0.3164,0.32267,0.05,100 +20000,0.32266,0.32906,0.05,100 +20000,0.32266,0.32906,0.05,100 +20000,0.32266,0.32906,0.05,100 +20000,0.32266,0.32906,0.05,100 +20000,0.32266,0.32906,0.05,100 +20000,0.32266,0.32906,0.05,100 +20000,0.32266,0.32906,0.05,100 +20000,0.32905,0.33558,0.05,100 +20000,0.32905,0.33558,0.05,100 +20000,0.32905,0.33558,0.05,100 +20000,0.32905,0.33558,0.05,100 +20000,0.32905,0.33558,0.05,100 +20000,0.32905,0.33558,0.05,100 +20000,0.33556,0.34222,0.05,100 +20000,0.33556,0.34222,0.05,100 +20000,0.33556,0.34222,0.05,100 +20000,0.33556,0.34222,0.05,100 +20000,0.33556,0.34222,0.05,100 +20000,0.33556,0.34222,0.05,100 +20000,0.33556,0.34222,0.05,100 +20000,0.34221,0.34899,0.05,100 +20000,0.34221,0.34899,0.05,100 +20000,0.34221,0.34899,0.05,100 +20000,0.34221,0.34899,0.05,100 +20000,0.34221,0.34899,0.05,100 +20000,0.34221,0.34899,0.05,100 +20000,0.34221,0.34899,0.05,100 +20000,0.34898,0.3559,0.05,100 +20000,0.34898,0.3559,0.05,100 +20000,0.34898,0.3559,0.05,100 +20000,0.34898,0.3559,0.05,100 +20000,0.34898,0.3559,0.05,100 +20000,0.34898,0.3559,0.05,100 +20000,0.35589,0.36295,0.05,100 +20000,0.35589,0.36295,0.05,100 +20000,0.35589,0.36295,0.05,100 +20000,0.35589,0.36295,0.05,100 +20000,0.35589,0.36295,0.05,100 +20000,0.35589,0.36295,0.05,100 +20000,0.35589,0.36295,0.05,100 +20000,0.36294,0.37013,0.05,100 +20000,0.36294,0.37013,0.05,100 +20000,0.36294,0.37013,0.05,100 +20000,0.36294,0.37013,0.05,100 +20000,0.36294,0.37013,0.05,100 +20000,0.36294,0.37013,0.05,100 +20000,0.36294,0.37013,0.05,100 +20000,0.36294,0.37013,0.05,100 +20000,0.37012,0.37746,0.05,100 +20000,0.37012,0.37746,0.05,100 +20000,0.37012,0.37746,0.05,100 +20000,0.37012,0.37746,0.05,100 +20000,0.37012,0.37746,0.05,100 +20000,0.37012,0.37746,0.05,100 +20000,0.37012,0.37746,0.05,100 +20000,0.37745,0.38494,0.05,100 +20000,0.37745,0.38494,0.05,100 +20000,0.37745,0.38494,0.05,100 +20000,0.37745,0.38494,0.05,100 +20000,0.37745,0.38494,0.05,100 +20000,0.37745,0.38494,0.05,100 +20000,0.37745,0.38494,0.05,100 +20000,0.38493,0.39256,0.05,100 +20000,0.38493,0.39256,0.05,100 +20000,0.38493,0.39256,0.05,100 +20000,0.38493,0.39256,0.05,100 +20000,0.38493,0.39256,0.05,100 +20000,0.38493,0.39256,0.05,100 +20000,0.38493,0.39256,0.05,100 +20000,0.38493,0.39256,0.05,100 +20000,0.39255,0.40033,0.05,100 +20000,0.39255,0.40033,0.05,100 +20000,0.39255,0.40033,0.05,100 +20000,0.39255,0.40033,0.05,100 +20000,0.39255,0.40033,0.05,100 +20000,0.39255,0.40033,0.05,100 +20000,0.39255,0.40033,0.05,100 +20000,0.39255,0.40033,0.05,100 +20000,0.40032,0.40826,0.05,100 +20000,0.40032,0.40826,0.05,100 +20000,0.40032,0.40826,0.05,100 +20000,0.40032,0.40826,0.05,100 +20000,0.40032,0.40826,0.05,100 +20000,0.40032,0.40826,0.05,100 +20000,0.40032,0.40826,0.05,100 +20000,0.40032,0.40826,0.05,100 +20000,0.40825,0.41634,0.05,100 +20000,0.40825,0.41634,0.05,100 +20000,0.40825,0.41634,0.05,100 +20000,0.40825,0.41634,0.05,100 +20000,0.40825,0.41634,0.05,100 +20000,0.40825,0.41634,0.05,100 +20000,0.40825,0.41634,0.05,100 +20000,0.40825,0.41634,0.05,100 +20000,0.41633,0.42459,0.05,100 +20000,0.41633,0.42459,0.05,100 +20000,0.41633,0.42459,0.05,100 +20000,0.41633,0.42459,0.05,100 +20000,0.41633,0.42459,0.05,100 +20000,0.41633,0.42459,0.05,100 +20000,0.41633,0.42459,0.05,100 +20000,0.41633,0.42459,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.42458,0.433,0.05,100 +20000,0.43298,0.44157,0.05,100 +20000,0.43298,0.44157,0.05,100 +20000,0.43298,0.44157,0.05,100 +20000,0.43298,0.44157,0.05,100 +20000,0.43298,0.44157,0.05,100 +20000,0.43298,0.44157,0.05,100 +20000,0.43298,0.44157,0.05,100 +20000,0.43298,0.44157,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.44156,0.45031,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.4503,0.45923,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.45922,0.46833,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.46832,0.4776,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.47759,0.48706,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.48705,0.49671,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.4967,0.50655,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.50654,0.51658,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.51657,0.52681,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.5268,0.53725,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.53724,0.54789,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.54788,0.55874,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.55873,0.56981,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.5698,0.5811,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.58109,0.59261,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.5926,0.60435,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.60434,0.61632,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.61631,0.62853,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.62852,0.64098,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.64097,0.65368,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.65367,0.66663,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.66662,0.67984,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.67983,0.69331,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,0.6933,0.70704,0.05,100 +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan +20000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_5.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_5.csv new file mode 100644 index 00000000000..c4a1fbb52a2 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/data_5.csv @@ -0,0 +1,1002 @@ +Time,"elementCenter:0","elementCenter:1","elementCenter:2","temperature" +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,0.07071,0.072112,0.05,-16.946 +50000,0.07071,0.072112,0.05,-16.946 +50000,0.07211,0.07354,0.05,-10.957 +50000,0.07351,0.074968,0.05,-5.0805 +50000,0.075155,0.076646,0.05,1.6961 +50000,0.075155,0.076646,0.05,1.6961 +50000,0.077046,0.078574,0.05,9.2828 +50000,0.077046,0.078574,0.05,9.2828 +50000,0.078936,0.080501,0.05,16.663 +50000,0.078936,0.080501,0.05,16.663 +50000,0.080826,0.082429,0.05,23.824 +50000,0.080826,0.082429,0.05,23.824 +50000,0.082716,0.084357,0.05,30.745 +50000,0.082716,0.084357,0.05,30.745 +50000,0.084607,0.086285,0.05,37.403 +50000,0.084607,0.086285,0.05,37.403 +50000,0.086497,0.088212,0.05,43.771 +50000,0.086497,0.088212,0.05,43.771 +50000,0.088387,0.09014,0.05,49.822 +50000,0.088387,0.09014,0.05,49.822 +50000,0.090278,0.092068,0.05,55.527 +50000,0.090278,0.092068,0.05,55.527 +50000,0.092168,0.093995,0.05,60.865 +50000,0.092168,0.093995,0.05,60.865 +50000,0.094031,0.095896,0.05,65.743 +50000,0.095885,0.097786,0.05,70.214 +50000,0.095885,0.097786,0.05,70.214 +50000,0.097776,0.099715,0.05,74.369 +50000,0.097776,0.099715,0.05,74.369 +50000,0.099704,0.10168,0.05,78.184 +50000,0.099704,0.10168,0.05,78.184 +50000,0.10167,0.10369,0.05,81.643 +50000,0.10167,0.10369,0.05,81.643 +50000,0.10368,0.10573,0.05,84.738 +50000,0.10368,0.10573,0.05,84.738 +50000,0.10572,0.10782,0.05,87.469 +50000,0.10572,0.10782,0.05,87.469 +50000,0.10781,0.10995,0.05,89.844 +50000,0.10781,0.10995,0.05,89.844 +50000,0.10993,0.11211,0.05,91.879 +50000,0.10993,0.11211,0.05,91.879 +50000,0.10993,0.11211,0.05,91.879 +50000,0.1121,0.11433,0.05,93.596 +50000,0.1121,0.11433,0.05,93.596 +50000,0.11432,0.11658,0.05,95.022 +50000,0.11432,0.11658,0.05,95.022 +50000,0.11657,0.11888,0.05,96.186 +50000,0.11657,0.11888,0.05,96.186 +50000,0.11887,0.12123,0.05,97.123 +50000,0.11887,0.12123,0.05,97.123 +50000,0.11887,0.12123,0.05,97.123 +50000,0.12122,0.12362,0.05,97.862 +50000,0.12122,0.12362,0.05,97.862 +50000,0.12361,0.12607,0.05,98.437 +50000,0.12361,0.12607,0.05,98.437 +50000,0.12361,0.12607,0.05,98.437 +50000,0.12605,0.12855,0.05,98.876 +50000,0.12605,0.12855,0.05,98.876 +50000,0.12854,0.13109,0.05,99.205 +50000,0.12854,0.13109,0.05,99.205 +50000,0.12854,0.13109,0.05,99.205 +50000,0.13108,0.13368,0.05,99.448 +50000,0.13108,0.13368,0.05,99.448 +50000,0.13367,0.13632,0.05,99.623 +50000,0.13367,0.13632,0.05,99.623 +50000,0.13367,0.13632,0.05,99.623 +50000,0.13631,0.13901,0.05,99.747 +50000,0.13631,0.13901,0.05,99.747 +50000,0.13631,0.13901,0.05,99.747 +50000,0.139,0.14176,0.05,99.834 +50000,0.139,0.14176,0.05,99.834 +50000,0.14175,0.14456,0.05,99.893 +50000,0.14175,0.14456,0.05,99.893 +50000,0.14175,0.14456,0.05,99.893 +50000,0.14455,0.14742,0.05,99.932 +50000,0.14455,0.14742,0.05,99.932 +50000,0.14455,0.14742,0.05,99.932 +50000,0.1474,0.15033,0.05,99.958 +50000,0.1474,0.15033,0.05,99.958 +50000,0.1474,0.15033,0.05,99.958 +50000,0.15032,0.1533,0.05,99.975 +50000,0.15032,0.1533,0.05,99.975 +50000,0.15032,0.1533,0.05,99.975 +50000,0.15329,0.15633,0.05,99.985 +50000,0.15329,0.15633,0.05,99.985 +50000,0.15329,0.15633,0.05,99.985 +50000,0.15632,0.15942,0.05,99.991 +50000,0.15632,0.15942,0.05,99.991 +50000,0.15632,0.15942,0.05,99.991 +50000,0.15941,0.16257,0.05,99.995 +50000,0.15941,0.16257,0.05,99.995 +50000,0.15941,0.16257,0.05,99.995 +50000,0.16256,0.16578,0.05,99.997 +50000,0.16256,0.16578,0.05,99.997 +50000,0.16256,0.16578,0.05,99.997 +50000,0.16577,0.16906,0.05,99.999 +50000,0.16577,0.16906,0.05,99.999 +50000,0.16577,0.16906,0.05,99.999 +50000,0.16577,0.16906,0.05,99.999 +50000,0.16905,0.1724,0.05,99.999 +50000,0.16905,0.1724,0.05,99.999 +50000,0.16905,0.1724,0.05,99.999 +50000,0.17239,0.1758,0.05,100 +50000,0.17239,0.1758,0.05,100 +50000,0.17239,0.1758,0.05,100 +50000,0.17579,0.17928,0.05,100 +50000,0.17579,0.17928,0.05,100 +50000,0.17579,0.17928,0.05,100 +50000,0.17579,0.17928,0.05,100 +50000,0.17927,0.18282,0.05,100 +50000,0.17927,0.18282,0.05,100 +50000,0.17927,0.18282,0.05,100 +50000,0.18281,0.18644,0.05,100 +50000,0.18281,0.18644,0.05,100 +50000,0.18281,0.18644,0.05,100 +50000,0.18281,0.18644,0.05,100 +50000,0.18643,0.19013,0.05,100 +50000,0.18643,0.19013,0.05,100 +50000,0.18643,0.19013,0.05,100 +50000,0.18643,0.19013,0.05,100 +50000,0.19011,0.19388,0.05,100 +50000,0.19011,0.19388,0.05,100 +50000,0.19011,0.19388,0.05,100 +50000,0.19387,0.19772,0.05,100 +50000,0.19387,0.19772,0.05,100 +50000,0.19387,0.19772,0.05,100 +50000,0.19387,0.19772,0.05,100 +50000,0.19771,0.20163,0.05,100 +50000,0.19771,0.20163,0.05,100 +50000,0.19771,0.20163,0.05,100 +50000,0.19771,0.20163,0.05,100 +50000,0.20162,0.20562,0.05,100 +50000,0.20162,0.20562,0.05,100 +50000,0.20162,0.20562,0.05,100 +50000,0.20162,0.20562,0.05,100 +50000,0.2056,0.20968,0.05,100 +50000,0.2056,0.20968,0.05,100 +50000,0.2056,0.20968,0.05,100 +50000,0.2056,0.20968,0.05,100 +50000,0.20967,0.21383,0.05,100 +50000,0.20967,0.21383,0.05,100 +50000,0.20967,0.21383,0.05,100 +50000,0.20967,0.21383,0.05,100 +50000,0.21382,0.21806,0.05,100 +50000,0.21382,0.21806,0.05,100 +50000,0.21382,0.21806,0.05,100 +50000,0.21382,0.21806,0.05,100 +50000,0.21382,0.21806,0.05,100 +50000,0.21805,0.22237,0.05,100 +50000,0.21805,0.22237,0.05,100 +50000,0.21805,0.22237,0.05,100 +50000,0.21805,0.22237,0.05,100 +50000,0.22236,0.22677,0.05,100 +50000,0.22236,0.22677,0.05,100 +50000,0.22236,0.22677,0.05,100 +50000,0.22236,0.22677,0.05,100 +50000,0.22676,0.23125,0.05,100 +50000,0.22676,0.23125,0.05,100 +50000,0.22676,0.23125,0.05,100 +50000,0.22676,0.23125,0.05,100 +50000,0.22676,0.23125,0.05,100 +50000,0.23124,0.23583,0.05,100 +50000,0.23124,0.23583,0.05,100 +50000,0.23124,0.23583,0.05,100 +50000,0.23124,0.23583,0.05,100 +50000,0.23582,0.2405,0.05,100 +50000,0.23582,0.2405,0.05,100 +50000,0.23582,0.2405,0.05,100 +50000,0.23582,0.2405,0.05,100 +50000,0.23582,0.2405,0.05,100 +50000,0.24048,0.24525,0.05,100 +50000,0.24048,0.24525,0.05,100 +50000,0.24048,0.24525,0.05,100 +50000,0.24048,0.24525,0.05,100 +50000,0.24048,0.24525,0.05,100 +50000,0.24524,0.25011,0.05,100 +50000,0.24524,0.25011,0.05,100 +50000,0.24524,0.25011,0.05,100 +50000,0.24524,0.25011,0.05,100 +50000,0.24524,0.25011,0.05,100 +50000,0.25009,0.25505,0.05,100 +50000,0.25009,0.25505,0.05,100 +50000,0.25009,0.25505,0.05,100 +50000,0.25009,0.25505,0.05,100 +50000,0.25009,0.25505,0.05,100 +50000,0.25504,0.2601,0.05,100 +50000,0.25504,0.2601,0.05,100 +50000,0.25504,0.2601,0.05,100 +50000,0.25504,0.2601,0.05,100 +50000,0.25504,0.2601,0.05,100 +50000,0.26009,0.26525,0.05,100 +50000,0.26009,0.26525,0.05,100 +50000,0.26009,0.26525,0.05,100 +50000,0.26009,0.26525,0.05,100 +50000,0.26009,0.26525,0.05,100 +50000,0.26524,0.2705,0.05,100 +50000,0.26524,0.2705,0.05,100 +50000,0.26524,0.2705,0.05,100 +50000,0.26524,0.2705,0.05,100 +50000,0.26524,0.2705,0.05,100 +50000,0.27048,0.27585,0.05,100 +50000,0.27048,0.27585,0.05,100 +50000,0.27048,0.27585,0.05,100 +50000,0.27048,0.27585,0.05,100 +50000,0.27048,0.27585,0.05,100 +50000,0.27584,0.28131,0.05,100 +50000,0.27584,0.28131,0.05,100 +50000,0.27584,0.28131,0.05,100 +50000,0.27584,0.28131,0.05,100 +50000,0.27584,0.28131,0.05,100 +50000,0.27584,0.28131,0.05,100 +50000,0.2813,0.28687,0.05,100 +50000,0.2813,0.28687,0.05,100 +50000,0.2813,0.28687,0.05,100 +50000,0.2813,0.28687,0.05,100 +50000,0.2813,0.28687,0.05,100 +50000,0.28686,0.29255,0.05,100 +50000,0.28686,0.29255,0.05,100 +50000,0.28686,0.29255,0.05,100 +50000,0.28686,0.29255,0.05,100 +50000,0.28686,0.29255,0.05,100 +50000,0.28686,0.29255,0.05,100 +50000,0.29254,0.29834,0.05,100 +50000,0.29254,0.29834,0.05,100 +50000,0.29254,0.29834,0.05,100 +50000,0.29254,0.29834,0.05,100 +50000,0.29254,0.29834,0.05,100 +50000,0.29254,0.29834,0.05,100 +50000,0.29833,0.30425,0.05,100 +50000,0.29833,0.30425,0.05,100 +50000,0.29833,0.30425,0.05,100 +50000,0.29833,0.30425,0.05,100 +50000,0.29833,0.30425,0.05,100 +50000,0.29833,0.30425,0.05,100 +50000,0.30424,0.31027,0.05,100 +50000,0.30424,0.31027,0.05,100 +50000,0.30424,0.31027,0.05,100 +50000,0.30424,0.31027,0.05,100 +50000,0.30424,0.31027,0.05,100 +50000,0.30424,0.31027,0.05,100 +50000,0.31026,0.31641,0.05,100 +50000,0.31026,0.31641,0.05,100 +50000,0.31026,0.31641,0.05,100 +50000,0.31026,0.31641,0.05,100 +50000,0.31026,0.31641,0.05,100 +50000,0.31026,0.31641,0.05,100 +50000,0.3164,0.32267,0.05,100 +50000,0.3164,0.32267,0.05,100 +50000,0.3164,0.32267,0.05,100 +50000,0.3164,0.32267,0.05,100 +50000,0.3164,0.32267,0.05,100 +50000,0.3164,0.32267,0.05,100 +50000,0.32266,0.32906,0.05,100 +50000,0.32266,0.32906,0.05,100 +50000,0.32266,0.32906,0.05,100 +50000,0.32266,0.32906,0.05,100 +50000,0.32266,0.32906,0.05,100 +50000,0.32266,0.32906,0.05,100 +50000,0.32266,0.32906,0.05,100 +50000,0.32905,0.33558,0.05,100 +50000,0.32905,0.33558,0.05,100 +50000,0.32905,0.33558,0.05,100 +50000,0.32905,0.33558,0.05,100 +50000,0.32905,0.33558,0.05,100 +50000,0.32905,0.33558,0.05,100 +50000,0.33556,0.34222,0.05,100 +50000,0.33556,0.34222,0.05,100 +50000,0.33556,0.34222,0.05,100 +50000,0.33556,0.34222,0.05,100 +50000,0.33556,0.34222,0.05,100 +50000,0.33556,0.34222,0.05,100 +50000,0.33556,0.34222,0.05,100 +50000,0.34221,0.34899,0.05,100 +50000,0.34221,0.34899,0.05,100 +50000,0.34221,0.34899,0.05,100 +50000,0.34221,0.34899,0.05,100 +50000,0.34221,0.34899,0.05,100 +50000,0.34221,0.34899,0.05,100 +50000,0.34221,0.34899,0.05,100 +50000,0.34898,0.3559,0.05,100 +50000,0.34898,0.3559,0.05,100 +50000,0.34898,0.3559,0.05,100 +50000,0.34898,0.3559,0.05,100 +50000,0.34898,0.3559,0.05,100 +50000,0.34898,0.3559,0.05,100 +50000,0.35589,0.36295,0.05,100 +50000,0.35589,0.36295,0.05,100 +50000,0.35589,0.36295,0.05,100 +50000,0.35589,0.36295,0.05,100 +50000,0.35589,0.36295,0.05,100 +50000,0.35589,0.36295,0.05,100 +50000,0.35589,0.36295,0.05,100 +50000,0.36294,0.37013,0.05,100 +50000,0.36294,0.37013,0.05,100 +50000,0.36294,0.37013,0.05,100 +50000,0.36294,0.37013,0.05,100 +50000,0.36294,0.37013,0.05,100 +50000,0.36294,0.37013,0.05,100 +50000,0.36294,0.37013,0.05,100 +50000,0.36294,0.37013,0.05,100 +50000,0.37012,0.37746,0.05,100 +50000,0.37012,0.37746,0.05,100 +50000,0.37012,0.37746,0.05,100 +50000,0.37012,0.37746,0.05,100 +50000,0.37012,0.37746,0.05,100 +50000,0.37012,0.37746,0.05,100 +50000,0.37012,0.37746,0.05,100 +50000,0.37745,0.38494,0.05,100 +50000,0.37745,0.38494,0.05,100 +50000,0.37745,0.38494,0.05,100 +50000,0.37745,0.38494,0.05,100 +50000,0.37745,0.38494,0.05,100 +50000,0.37745,0.38494,0.05,100 +50000,0.37745,0.38494,0.05,100 +50000,0.38493,0.39256,0.05,100 +50000,0.38493,0.39256,0.05,100 +50000,0.38493,0.39256,0.05,100 +50000,0.38493,0.39256,0.05,100 +50000,0.38493,0.39256,0.05,100 +50000,0.38493,0.39256,0.05,100 +50000,0.38493,0.39256,0.05,100 +50000,0.38493,0.39256,0.05,100 +50000,0.39255,0.40033,0.05,100 +50000,0.39255,0.40033,0.05,100 +50000,0.39255,0.40033,0.05,100 +50000,0.39255,0.40033,0.05,100 +50000,0.39255,0.40033,0.05,100 +50000,0.39255,0.40033,0.05,100 +50000,0.39255,0.40033,0.05,100 +50000,0.39255,0.40033,0.05,100 +50000,0.40032,0.40826,0.05,100 +50000,0.40032,0.40826,0.05,100 +50000,0.40032,0.40826,0.05,100 +50000,0.40032,0.40826,0.05,100 +50000,0.40032,0.40826,0.05,100 +50000,0.40032,0.40826,0.05,100 +50000,0.40032,0.40826,0.05,100 +50000,0.40032,0.40826,0.05,100 +50000,0.40825,0.41634,0.05,100 +50000,0.40825,0.41634,0.05,100 +50000,0.40825,0.41634,0.05,100 +50000,0.40825,0.41634,0.05,100 +50000,0.40825,0.41634,0.05,100 +50000,0.40825,0.41634,0.05,100 +50000,0.40825,0.41634,0.05,100 +50000,0.40825,0.41634,0.05,100 +50000,0.41633,0.42459,0.05,100 +50000,0.41633,0.42459,0.05,100 +50000,0.41633,0.42459,0.05,100 +50000,0.41633,0.42459,0.05,100 +50000,0.41633,0.42459,0.05,100 +50000,0.41633,0.42459,0.05,100 +50000,0.41633,0.42459,0.05,100 +50000,0.41633,0.42459,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.42458,0.433,0.05,100 +50000,0.43298,0.44157,0.05,100 +50000,0.43298,0.44157,0.05,100 +50000,0.43298,0.44157,0.05,100 +50000,0.43298,0.44157,0.05,100 +50000,0.43298,0.44157,0.05,100 +50000,0.43298,0.44157,0.05,100 +50000,0.43298,0.44157,0.05,100 +50000,0.43298,0.44157,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.44156,0.45031,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.4503,0.45923,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.45922,0.46833,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.46832,0.4776,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.47759,0.48706,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.48705,0.49671,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.4967,0.50655,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.50654,0.51658,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.51657,0.52681,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.5268,0.53725,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.53724,0.54789,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.54788,0.55874,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.55873,0.56981,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.5698,0.5811,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.58109,0.59261,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.5926,0.60435,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.60434,0.61632,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.61631,0.62853,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.62852,0.64098,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.64097,0.65368,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.65367,0.66663,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.66662,0.67984,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.67983,0.69331,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,0.6933,0.70704,0.05,100 +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan +50000,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/temperatureDependentVolumetricHeatCapacity_plot.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/temperatureDependentVolumetricHeatCapacity_plot.py new file mode 100644 index 00000000000..20d7eed6613 --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/nonLinearThermalDiffusion_TemperatureDependentVolumetricHeatCapacity/temperatureDependentVolumetricHeatCapacity_plot.py @@ -0,0 +1,216 @@ +import os +import sys +import os +import argparse + +import numpy as np +import matplotlib.pyplot as plt +import pandas as pd +import scipy.linalg +from scipy import special + +from scipy.sparse import diags +from scipy.sparse.linalg import spsolve + +from xml.etree import ElementTree + +# Analytical results for linear thermal behavior +def steadyState(Tin, Tout, Rin, Rout, radialCoordinate): + return Tin + (Tout - Tin) * (np.log(radialCoordinate) - np.log(Rin)) / (np.log(Rout) - np.log(Rin)) + +def diffusionFunction(radialCoordinate, Rin, diffusionCoefficient, diffusionTime): + return special.erfc( (radialCoordinate - Rin) / 2.0 / np.sqrt( diffusionCoefficient * diffusionTime ) ) + +def computeTransientTemperature(Tin, Tout, Rin, radialCoordinate, thermalDiffusionCoefficient, diffusionTime): + # Ref. Wang and Papamichos (1994), https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/94WR01774 + return Tout + (Tin-Tout) * np.sqrt(Rin/radialCoordinate) * diffusionFunction(radialCoordinate, Rin, thermalDiffusionCoefficient, diffusionTime) + +def computeThermalDiffusionCoefficient(thermalConductivity, volumetricHeatCapacity): + return thermalConductivity / volumetricHeatCapacity + +# Finite difference results for non-linear thermal behavior +def temperatureDependentThermalConductivity(lambda0, lambda_gradient, T, Treference): + return lambda0 + lambda_gradient*(T-Treference) + +def temperatureDependentVolumetricHeat(c0, c_gradient, T, Treference): + return c0 + c_gradient*(T-Treference) + +def coefficientMatrix(thermalConductivity, volumetricHeatCapacity, r, dt, N): + # Coefficients for the matrix + A = np.zeros((N+1, N+1)) + + for i in range(1,N): + dr = r[i] - r[i-1] + r_i = r[i] + + diffusivity_i = thermalConductivity[i]/volumetricHeatCapacity[i] + A[i, i-1] = - diffusivity_i * (dt/(dr**2) - dt/(2 * r_i * dr)) \ + + (thermalConductivity[i+1] - thermalConductivity[i-1])/volumetricHeatCapacity[i]*dt/4/(dr**2) + A[i, i] = 1.0 + 2.0 * diffusivity_i * dt / (dr**2) + A[i, i+1] = - diffusivity_i * (dt/(dr**2) + dt/(2 * r_i * dr)) \ + - (thermalConductivity[i+1] - thermalConductivity[i-1])/volumetricHeatCapacity[i]*dt/4/(dr**2) + + # Boundary conditions + # No-flux at r=0 approximated by setting the flux between the first two cells to zero + A[0, 0] = 1.0 + A[N, N] = 1.0 + return A + +def solve_radial_diffusion(r, tmax, dt, Tin, Tout, lambda0, lambda_gradient, c0, c_gradient, Treference): + N = len(r)-1 + # Time setup + n_steps = int(tmax / dt) + + # Time-stepping + T = np.zeros(N+1) + Tout # initial condition u(r, 0) + T[0] = Tin + for step in range(n_steps): + thermalConductivity = temperatureDependentThermalConductivity(lambda0, lambda_gradient, T, Treference) + + volumetricHeatCapacity = temperatureDependentVolumetricHeat(c0, c_gradient, T, Treference) + + A = coefficientMatrix(thermalConductivity, volumetricHeatCapacity, r, dt, N) + T = spsolve(A, T) + + return T + + +def extractDataFromXMLList(paramList): + # Extract data from a list in XML such as "{ 1, 2, 3}" + return paramList.replace('{', '').replace('}', '').strip().split(',') + +def getWellboreGeometryFromXML(xmlFilePath): + tree = ElementTree.parse(xmlFilePath) + + meshParam = tree.find('Mesh/InternalWellbore') + radii = extractDataFromXMLList( meshParam.get("radius") ) + + Rin = float(radii[0]) + Rout = float(radii[-1]) + + return [Rin, Rout] + +def getLoadingFromXML(xmlFilePath): + tree = ElementTree.parse(xmlFilePath) + fsParams = tree.findall('FieldSpecifications/FieldSpecification') + + for fsParam in fsParams: + if ( (fsParam.get('fieldName') == "pressure") & (fsParam.get('initialCondition') != "1") ): + if fsParam.get('setNames') == "{ rneg }": + Pin = float(fsParam.get('scale')) + if fsParam.get('setNames') == "{ rpos }": + Pout = float(fsParam.get('scale')) + + for fsParam in fsParams: + if ( (fsParam.get('fieldName') == "temperature") & (fsParam.get('initialCondition') != "1") ): + if fsParam.get('setNames') == "{ rneg }": + Tin = float(fsParam.get('scale')) + if fsParam.get('setNames') == "{ rpos }": + Tout = float(fsParam.get('scale')) + + + tree_SinglePhaseThermalConductivities = tree.findall('Constitutive/SinglePhaseThermalConductivity') + + for tree_SinglePhaseThermalConductivity in tree_SinglePhaseThermalConductivities: + if tree_SinglePhaseThermalConductivity.get('name') == "thermalCond_linear": + defaultThermalConductivity = float( extractDataFromXMLList( tree_SinglePhaseThermalConductivity.get('defaultThermalConductivityComponents') )[0] ) + thermalConductivityGradient = 0.0 + + tree_SolidInternalEnergies = tree.findall('Constitutive/SolidInternalEnergy') + + for tree_SolidInternalEnergy in tree_SolidInternalEnergies: + if tree_SolidInternalEnergy.get('name') == "rockInternalEnergy_nonLinear": + referenceVolumetricHeatCapacity = float( tree_SolidInternalEnergy.get('referenceVolumetricHeatCapacity') ) + dVolumetricHeatCapacity_dTemperature = float( tree_SolidInternalEnergy.get('dVolumetricHeatCapacity_dTemperature') ) + referenceTemperature = float( tree_SolidInternalEnergy.get('referenceTemperature') ) + + + permeability = float( extractDataFromXMLList( tree.find('Constitutive/ConstantPermeability').get('permeabilityComponents') )[0] ) + + porosity = float( tree.find('Constitutive/PressurePorosity').get('defaultReferencePorosity') ) + + fluidViscosity = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('defaultViscosity') ) + + fluidCompressibility = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('compressibility') ) + + fluidThermalExpansionCoefficient = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('thermalExpansionCoeff') ) + + return [Pin, Pout, Tin, Tout, defaultThermalConductivity, thermalConductivityGradient, referenceTemperature, referenceVolumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient] + + +def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + + # Parse the command-line arguments + args = parser.parse_args() + + geosDir = args.geosDir + + xmlFilePath = geosDir + "/inputFiles/singlePhaseFlow/" + + Rin, Rout = getWellboreGeometryFromXML(xmlFilePath+"thermalCompressible_temperatureDependentVolumetricHeatCapacity_benchmark.xml") + + Pin, Pout, Tin, Tout, defaultThermalConductivity, thermalConductivityGradient, referenceTemperature, volumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient = getLoadingFromXML(xmlFilePath+"thermalCompressible_2d_base.xml") + + plt.figure(figsize=(10,7)) + font = {'size' : 16} + plt.rc('font', **font) + + for chart_idx, idx in enumerate([1, 2, 5, 10]): + # Numerical results + data = pd.read_csv(f'data_{idx}.csv') + data.dropna(inplace=True) + data.drop_duplicates(inplace=True) + data.reset_index(drop=True, inplace=True) + + radialCoordinate = (data['elementCenter:0']**2.0 + data['elementCenter:1']**2.0)**0.5 + temperature = data['temperature'] + #pressure = data['pressure'] + diffusionTime = data['Time'][0] + + # Analytical results for linear thermal behavior, for comparison + radialCoordinate_anal = radialCoordinate# np.arange(Rin, Rout, (Rout-Rin)/100) + + thermalDiffusionCoefficient = computeThermalDiffusionCoefficient(defaultThermalConductivity, volumetricHeatCapacity) + + T_transient_linear = computeTransientTemperature(Tin, Tout, Rin, radialCoordinate_anal, thermalDiffusionCoefficient, diffusionTime) + + # Analytical results of the steady state regime for comparison + T_steadyState = steadyState(Tin, Tout, Rin, Rout, radialCoordinate_anal) + + # Finite different results for non-linear thermal behavior + + T_transient_nonLinear = solve_radial_diffusion(radialCoordinate_anal, diffusionTime, diffusionTime/100, Tin, Tout, defaultThermalConductivity, thermalConductivityGradient, volumetricHeatCapacity, dVolumetricHeatCapacity_dTemperature, referenceTemperature) + + # Visualization + # Temperature + plt.subplot(2,2,chart_idx+1) + plt.plot( radialCoordinate, temperature, 'k+' , label='GEOS' ) + plt.plot( radialCoordinate_anal, T_transient_nonLinear, 'g-' , label='FDM Non-Linear' ) + plt.plot( radialCoordinate_anal, T_transient_linear, 'r-' , label='Analytic Linear' ) + plt.plot( radialCoordinate_anal, T_steadyState, 'b-' , label='Steady State' ) + + if chart_idx==1: + plt.legend() + + if chart_idx in [2,3]: + plt.xlabel('Radial distance from well center') + + if chart_idx in [0,2]: + plt.ylabel('Temperature (°C)') + + plt.ylim(-30,110) + plt.xlim(0.,0.5) + plt.title('t = '+str(diffusionTime)+'(s)') + plt.tight_layout() + + plt.show() + +if __name__ == "__main__": + main() + diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_1.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_1.csv deleted file mode 100644 index 4e2e56defb8..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_1.csv +++ /dev/null @@ -1,1002 +0,0 @@ -Time,"elementCenter:0","elementCenter:1","elementCenter:2","pressure","temperature" -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,nan,nan,nan,nan,nan -10000,0.10099,0.0009915,0.05,11157,98.637 -10000,0.10099,0.0009915,0.05,11157,98.637 -10000,0.10299,0.0010111,0.05,33009,95.965 -10000,0.10299,0.0010111,0.05,33009,95.965 -10000,0.10499,0.0010308,0.05,54404,93.345 -10000,0.10499,0.0010308,0.05,54404,93.345 -10000,0.10734,0.0010538,0.05,79006,90.329 -10000,0.10734,0.0010538,0.05,79006,90.329 -10000,0.10734,0.0010538,0.05,79006,90.329 -10000,0.11004,0.0010803,0.05,1.0645e+05,86.957 -10000,0.11004,0.0010803,0.05,1.0645e+05,86.957 -10000,0.11004,0.0010803,0.05,1.0645e+05,86.957 -10000,0.11274,0.0011068,0.05,1.3309e+05,83.676 -10000,0.11274,0.0011068,0.05,1.3309e+05,83.676 -10000,0.11274,0.0011068,0.05,1.3309e+05,83.676 -10000,0.11544,0.0011334,0.05,1.5893e+05,80.484 -10000,0.11544,0.0011334,0.05,1.5893e+05,80.484 -10000,0.11814,0.0011599,0.05,1.8397e+05,77.381 -10000,0.11814,0.0011599,0.05,1.8397e+05,77.381 -10000,0.11814,0.0011599,0.05,1.8397e+05,77.381 -10000,0.12084,0.0011864,0.05,2.0822e+05,74.363 -10000,0.12084,0.0011864,0.05,2.0822e+05,74.363 -10000,0.12084,0.0011864,0.05,2.0822e+05,74.363 -10000,0.12354,0.0012129,0.05,2.3168e+05,71.432 -10000,0.12354,0.0012129,0.05,2.3168e+05,71.432 -10000,0.12624,0.0012394,0.05,2.5437e+05,68.583 -10000,0.12624,0.0012394,0.05,2.5437e+05,68.583 -10000,0.12624,0.0012394,0.05,2.5437e+05,68.583 -10000,0.12894,0.0012659,0.05,2.7628e+05,65.818 -10000,0.12894,0.0012659,0.05,2.7628e+05,65.818 -10000,0.12894,0.0012659,0.05,2.7628e+05,65.818 -10000,0.13164,0.0012924,0.05,2.9743e+05,63.133 -10000,0.13164,0.0012924,0.05,2.9743e+05,63.133 -10000,0.1343,0.0013185,0.05,3.1752e+05,60.566 -10000,0.1343,0.0013185,0.05,3.1752e+05,60.566 -10000,0.1343,0.0013185,0.05,3.1752e+05,60.566 -10000,0.13695,0.0013445,0.05,3.3679e+05,58.087 -10000,0.13695,0.0013445,0.05,3.3679e+05,58.087 -10000,0.13695,0.0013445,0.05,3.3679e+05,58.087 -10000,0.13965,0.001371,0.05,3.5571e+05,55.635 -10000,0.13965,0.001371,0.05,3.5571e+05,55.635 -10000,0.13965,0.001371,0.05,3.5571e+05,55.635 -10000,0.1424,0.0013981,0.05,3.7423e+05,53.214 -10000,0.1424,0.0013981,0.05,3.7423e+05,53.214 -10000,0.14521,0.0014256,0.05,3.9234e+05,50.826 -10000,0.14521,0.0014256,0.05,3.9234e+05,50.826 -10000,0.14521,0.0014256,0.05,3.9234e+05,50.826 -10000,0.14807,0.0014538,0.05,4.0999e+05,48.473 -10000,0.14807,0.0014538,0.05,4.0999e+05,48.473 -10000,0.14807,0.0014538,0.05,4.0999e+05,48.473 -10000,0.151,0.0014824,0.05,4.2717e+05,46.158 -10000,0.151,0.0014824,0.05,4.2717e+05,46.158 -10000,0.151,0.0014824,0.05,4.2717e+05,46.158 -10000,0.15397,0.0015117,0.05,4.4383e+05,43.883 -10000,0.15397,0.0015117,0.05,4.4383e+05,43.883 -10000,0.15397,0.0015117,0.05,4.4383e+05,43.883 -10000,0.15701,0.0015415,0.05,4.5994e+05,41.652 -10000,0.15701,0.0015415,0.05,4.5994e+05,41.652 -10000,0.15701,0.0015415,0.05,4.5994e+05,41.652 -10000,0.16011,0.0015719,0.05,4.7548e+05,39.466 -10000,0.16011,0.0015719,0.05,4.7548e+05,39.466 -10000,0.16011,0.0015719,0.05,4.7548e+05,39.466 -10000,0.16327,0.001603,0.05,4.9042e+05,37.329 -10000,0.16327,0.001603,0.05,4.9042e+05,37.329 -10000,0.16327,0.001603,0.05,4.9042e+05,37.329 -10000,0.16649,0.0016346,0.05,5.0472e+05,35.242 -10000,0.16649,0.0016346,0.05,5.0472e+05,35.242 -10000,0.16649,0.0016346,0.05,5.0472e+05,35.242 -10000,0.16649,0.0016346,0.05,5.0472e+05,35.242 -10000,0.16978,0.0016669,0.05,5.1835e+05,33.208 -10000,0.16978,0.0016669,0.05,5.1835e+05,33.208 -10000,0.16978,0.0016669,0.05,5.1835e+05,33.208 -10000,0.17313,0.0016998,0.05,5.313e+05,31.23 -10000,0.17313,0.0016998,0.05,5.313e+05,31.23 -10000,0.17313,0.0016998,0.05,5.313e+05,31.23 -10000,0.17655,0.0017333,0.05,5.4352e+05,29.309 -10000,0.17655,0.0017333,0.05,5.4352e+05,29.309 -10000,0.17655,0.0017333,0.05,5.4352e+05,29.309 -10000,0.17655,0.0017333,0.05,5.4352e+05,29.309 -10000,0.18004,0.0017676,0.05,5.55e+05,27.447 -10000,0.18004,0.0017676,0.05,5.55e+05,27.447 -10000,0.18004,0.0017676,0.05,5.55e+05,27.447 -10000,0.18359,0.0018025,0.05,5.6572e+05,25.648 -10000,0.18359,0.0018025,0.05,5.6572e+05,25.648 -10000,0.18359,0.0018025,0.05,5.6572e+05,25.648 -10000,0.18359,0.0018025,0.05,5.6572e+05,25.648 -10000,0.18722,0.001838,0.05,5.7565e+05,23.912 -10000,0.18722,0.001838,0.05,5.7565e+05,23.912 -10000,0.18722,0.001838,0.05,5.7565e+05,23.912 -10000,0.18722,0.001838,0.05,5.7565e+05,23.912 -10000,0.19091,0.0018743,0.05,5.8477e+05,22.24 -10000,0.19091,0.0018743,0.05,5.8477e+05,22.24 -10000,0.19091,0.0018743,0.05,5.8477e+05,22.24 -10000,0.19468,0.0019114,0.05,5.9307e+05,20.635 -10000,0.19468,0.0019114,0.05,5.9307e+05,20.635 -10000,0.19468,0.0019114,0.05,5.9307e+05,20.635 -10000,0.19468,0.0019114,0.05,5.9307e+05,20.635 -10000,0.19853,0.0019491,0.05,6.0054e+05,19.098 -10000,0.19853,0.0019491,0.05,6.0054e+05,19.098 -10000,0.19853,0.0019491,0.05,6.0054e+05,19.098 -10000,0.19853,0.0019491,0.05,6.0054e+05,19.098 -10000,0.20245,0.0019876,0.05,6.0715e+05,17.629 -10000,0.20245,0.0019876,0.05,6.0715e+05,17.629 -10000,0.20245,0.0019876,0.05,6.0715e+05,17.629 -10000,0.20245,0.0019876,0.05,6.0715e+05,17.629 -10000,0.20645,0.0020269,0.05,6.1292e+05,16.229 -10000,0.20645,0.0020269,0.05,6.1292e+05,16.229 -10000,0.20645,0.0020269,0.05,6.1292e+05,16.229 -10000,0.20645,0.0020269,0.05,6.1292e+05,16.229 -10000,0.21053,0.0020669,0.05,6.1782e+05,14.899 -10000,0.21053,0.0020669,0.05,6.1782e+05,14.899 -10000,0.21053,0.0020669,0.05,6.1782e+05,14.899 -10000,0.21053,0.0020669,0.05,6.1782e+05,14.899 -10000,0.21469,0.0021078,0.05,6.2187e+05,13.638 -10000,0.21469,0.0021078,0.05,6.2187e+05,13.638 -10000,0.21469,0.0021078,0.05,6.2187e+05,13.638 -10000,0.21469,0.0021078,0.05,6.2187e+05,13.638 -10000,0.21893,0.0021494,0.05,6.2506e+05,12.447 -10000,0.21893,0.0021494,0.05,6.2506e+05,12.447 -10000,0.21893,0.0021494,0.05,6.2506e+05,12.447 -10000,0.21893,0.0021494,0.05,6.2506e+05,12.447 -10000,0.21893,0.0021494,0.05,6.2506e+05,12.447 -10000,0.22326,0.0021919,0.05,6.274e+05,11.325 -10000,0.22326,0.0021919,0.05,6.274e+05,11.325 -10000,0.22326,0.0021919,0.05,6.274e+05,11.325 -10000,0.22326,0.0021919,0.05,6.274e+05,11.325 -10000,0.22767,0.0022352,0.05,6.289e+05,10.272 -10000,0.22767,0.0022352,0.05,6.289e+05,10.272 -10000,0.22767,0.0022352,0.05,6.289e+05,10.272 -10000,0.22767,0.0022352,0.05,6.289e+05,10.272 -10000,0.23217,0.0022794,0.05,6.2957e+05,9.2858 -10000,0.23217,0.0022794,0.05,6.2957e+05,9.2858 -10000,0.23217,0.0022794,0.05,6.2957e+05,9.2858 -10000,0.23217,0.0022794,0.05,6.2957e+05,9.2858 -10000,0.23217,0.0022794,0.05,6.2957e+05,9.2858 -10000,0.23676,0.0023244,0.05,6.2942e+05,8.3664 -10000,0.23676,0.0023244,0.05,6.2942e+05,8.3664 -10000,0.23676,0.0023244,0.05,6.2942e+05,8.3664 -10000,0.23676,0.0023244,0.05,6.2942e+05,8.3664 -10000,0.23676,0.0023244,0.05,6.2942e+05,8.3664 -10000,0.24144,0.0023704,0.05,6.2848e+05,7.5119 -10000,0.24144,0.0023704,0.05,6.2848e+05,7.5119 -10000,0.24144,0.0023704,0.05,6.2848e+05,7.5119 -10000,0.24144,0.0023704,0.05,6.2848e+05,7.5119 -10000,0.24621,0.0024172,0.05,6.2677e+05,6.7205 -10000,0.24621,0.0024172,0.05,6.2677e+05,6.7205 -10000,0.24621,0.0024172,0.05,6.2677e+05,6.7205 -10000,0.24621,0.0024172,0.05,6.2677e+05,6.7205 -10000,0.24621,0.0024172,0.05,6.2677e+05,6.7205 -10000,0.25108,0.002465,0.05,6.2432e+05,5.9904 -10000,0.25108,0.002465,0.05,6.2432e+05,5.9904 -10000,0.25108,0.002465,0.05,6.2432e+05,5.9904 -10000,0.25108,0.002465,0.05,6.2432e+05,5.9904 -10000,0.25108,0.002465,0.05,6.2432e+05,5.9904 -10000,0.25604,0.0025137,0.05,6.2114e+05,5.3193 -10000,0.25604,0.0025137,0.05,6.2114e+05,5.3193 -10000,0.25604,0.0025137,0.05,6.2114e+05,5.3193 -10000,0.25604,0.0025137,0.05,6.2114e+05,5.3193 -10000,0.25604,0.0025137,0.05,6.2114e+05,5.3193 -10000,0.2611,0.0025634,0.05,6.1727e+05,4.705 -10000,0.2611,0.0025634,0.05,6.1727e+05,4.705 -10000,0.2611,0.0025634,0.05,6.1727e+05,4.705 -10000,0.2611,0.0025634,0.05,6.1727e+05,4.705 -10000,0.2611,0.0025634,0.05,6.1727e+05,4.705 -10000,0.26626,0.0026141,0.05,6.1275e+05,4.145 -10000,0.26626,0.0026141,0.05,6.1275e+05,4.145 -10000,0.26626,0.0026141,0.05,6.1275e+05,4.145 -10000,0.26626,0.0026141,0.05,6.1275e+05,4.145 -10000,0.26626,0.0026141,0.05,6.1275e+05,4.145 -10000,0.27153,0.0026658,0.05,6.076e+05,3.6365 -10000,0.27153,0.0026658,0.05,6.076e+05,3.6365 -10000,0.27153,0.0026658,0.05,6.076e+05,3.6365 -10000,0.27153,0.0026658,0.05,6.076e+05,3.6365 -10000,0.27153,0.0026658,0.05,6.076e+05,3.6365 -10000,0.27153,0.0026658,0.05,6.076e+05,3.6365 -10000,0.2769,0.0027185,0.05,6.0186e+05,3.1768 -10000,0.2769,0.0027185,0.05,6.0186e+05,3.1768 -10000,0.2769,0.0027185,0.05,6.0186e+05,3.1768 -10000,0.2769,0.0027185,0.05,6.0186e+05,3.1768 -10000,0.2769,0.0027185,0.05,6.0186e+05,3.1768 -10000,0.28237,0.0027723,0.05,5.9557e+05,2.7631 -10000,0.28237,0.0027723,0.05,5.9557e+05,2.7631 -10000,0.28237,0.0027723,0.05,5.9557e+05,2.7631 -10000,0.28237,0.0027723,0.05,5.9557e+05,2.7631 -10000,0.28237,0.0027723,0.05,5.9557e+05,2.7631 -10000,0.28237,0.0027723,0.05,5.9557e+05,2.7631 -10000,0.28796,0.0028271,0.05,5.8877e+05,2.3925 -10000,0.28796,0.0028271,0.05,5.8877e+05,2.3925 -10000,0.28796,0.0028271,0.05,5.8877e+05,2.3925 -10000,0.28796,0.0028271,0.05,5.8877e+05,2.3925 -10000,0.28796,0.0028271,0.05,5.8877e+05,2.3925 -10000,0.29365,0.002883,0.05,5.8149e+05,2.062 -10000,0.29365,0.002883,0.05,5.8149e+05,2.062 -10000,0.29365,0.002883,0.05,5.8149e+05,2.062 -10000,0.29365,0.002883,0.05,5.8149e+05,2.062 -10000,0.29365,0.002883,0.05,5.8149e+05,2.062 -10000,0.29365,0.002883,0.05,5.8149e+05,2.062 -10000,0.29946,0.00294,0.05,5.7377e+05,1.7688 -10000,0.29946,0.00294,0.05,5.7377e+05,1.7688 -10000,0.29946,0.00294,0.05,5.7377e+05,1.7688 -10000,0.29946,0.00294,0.05,5.7377e+05,1.7688 -10000,0.29946,0.00294,0.05,5.7377e+05,1.7688 -10000,0.29946,0.00294,0.05,5.7377e+05,1.7688 -10000,0.30538,0.0029982,0.05,5.6564e+05,1.5099 -10000,0.30538,0.0029982,0.05,5.6564e+05,1.5099 -10000,0.30538,0.0029982,0.05,5.6564e+05,1.5099 -10000,0.30538,0.0029982,0.05,5.6564e+05,1.5099 -10000,0.30538,0.0029982,0.05,5.6564e+05,1.5099 -10000,0.30538,0.0029982,0.05,5.6564e+05,1.5099 -10000,0.31142,0.0030575,0.05,5.5715e+05,1.2824 -10000,0.31142,0.0030575,0.05,5.5715e+05,1.2824 -10000,0.31142,0.0030575,0.05,5.5715e+05,1.2824 -10000,0.31142,0.0030575,0.05,5.5715e+05,1.2824 -10000,0.31142,0.0030575,0.05,5.5715e+05,1.2824 -10000,0.31142,0.0030575,0.05,5.5715e+05,1.2824 -10000,0.31758,0.003118,0.05,5.4832e+05,1.0837 -10000,0.31758,0.003118,0.05,5.4832e+05,1.0837 -10000,0.31758,0.003118,0.05,5.4832e+05,1.0837 -10000,0.31758,0.003118,0.05,5.4832e+05,1.0837 -10000,0.31758,0.003118,0.05,5.4832e+05,1.0837 -10000,0.31758,0.003118,0.05,5.4832e+05,1.0837 -10000,0.32386,0.0031796,0.05,5.392e+05,0.91088 -10000,0.32386,0.0031796,0.05,5.392e+05,0.91088 -10000,0.32386,0.0031796,0.05,5.392e+05,0.91088 -10000,0.32386,0.0031796,0.05,5.392e+05,0.91088 -10000,0.32386,0.0031796,0.05,5.392e+05,0.91088 -10000,0.32386,0.0031796,0.05,5.392e+05,0.91088 -10000,0.32386,0.0031796,0.05,5.392e+05,0.91088 -10000,0.33027,0.0032425,0.05,5.2982e+05,0.76151 -10000,0.33027,0.0032425,0.05,5.2982e+05,0.76151 -10000,0.33027,0.0032425,0.05,5.2982e+05,0.76151 -10000,0.33027,0.0032425,0.05,5.2982e+05,0.76151 -10000,0.33027,0.0032425,0.05,5.2982e+05,0.76151 -10000,0.33027,0.0032425,0.05,5.2982e+05,0.76151 -10000,0.3368,0.0033067,0.05,5.202e+05,0.63311 -10000,0.3368,0.0033067,0.05,5.202e+05,0.63311 -10000,0.3368,0.0033067,0.05,5.202e+05,0.63311 -10000,0.3368,0.0033067,0.05,5.202e+05,0.63311 -10000,0.3368,0.0033067,0.05,5.202e+05,0.63311 -10000,0.3368,0.0033067,0.05,5.202e+05,0.63311 -10000,0.3368,0.0033067,0.05,5.202e+05,0.63311 -10000,0.34347,0.0033721,0.05,5.1038e+05,0.52338 -10000,0.34347,0.0033721,0.05,5.1038e+05,0.52338 -10000,0.34347,0.0033721,0.05,5.1038e+05,0.52338 -10000,0.34347,0.0033721,0.05,5.1038e+05,0.52338 -10000,0.34347,0.0033721,0.05,5.1038e+05,0.52338 -10000,0.34347,0.0033721,0.05,5.1038e+05,0.52338 -10000,0.35026,0.0034388,0.05,5.0039e+05,0.43015 -10000,0.35026,0.0034388,0.05,5.0039e+05,0.43015 -10000,0.35026,0.0034388,0.05,5.0039e+05,0.43015 -10000,0.35026,0.0034388,0.05,5.0039e+05,0.43015 -10000,0.35026,0.0034388,0.05,5.0039e+05,0.43015 -10000,0.35026,0.0034388,0.05,5.0039e+05,0.43015 -10000,0.35026,0.0034388,0.05,5.0039e+05,0.43015 -10000,0.35719,0.0035069,0.05,4.9025e+05,0.35142 -10000,0.35719,0.0035069,0.05,4.9025e+05,0.35142 -10000,0.35719,0.0035069,0.05,4.9025e+05,0.35142 -10000,0.35719,0.0035069,0.05,4.9025e+05,0.35142 -10000,0.35719,0.0035069,0.05,4.9025e+05,0.35142 -10000,0.35719,0.0035069,0.05,4.9025e+05,0.35142 -10000,0.35719,0.0035069,0.05,4.9025e+05,0.35142 -10000,0.36426,0.0035762,0.05,4.7999e+05,0.28535 -10000,0.36426,0.0035762,0.05,4.7999e+05,0.28535 -10000,0.36426,0.0035762,0.05,4.7999e+05,0.28535 -10000,0.36426,0.0035762,0.05,4.7999e+05,0.28535 -10000,0.36426,0.0035762,0.05,4.7999e+05,0.28535 -10000,0.36426,0.0035762,0.05,4.7999e+05,0.28535 -10000,0.36426,0.0035762,0.05,4.7999e+05,0.28535 -10000,0.37147,0.003647,0.05,4.6962e+05,0.23025 -10000,0.37147,0.003647,0.05,4.6962e+05,0.23025 -10000,0.37147,0.003647,0.05,4.6962e+05,0.23025 -10000,0.37147,0.003647,0.05,4.6962e+05,0.23025 -10000,0.37147,0.003647,0.05,4.6962e+05,0.23025 -10000,0.37147,0.003647,0.05,4.6962e+05,0.23025 -10000,0.37147,0.003647,0.05,4.6962e+05,0.23025 -10000,0.37147,0.003647,0.05,4.6962e+05,0.23025 -10000,0.37882,0.0037192,0.05,4.5918e+05,0.1846 -10000,0.37882,0.0037192,0.05,4.5918e+05,0.1846 -10000,0.37882,0.0037192,0.05,4.5918e+05,0.1846 -10000,0.37882,0.0037192,0.05,4.5918e+05,0.1846 -10000,0.37882,0.0037192,0.05,4.5918e+05,0.1846 -10000,0.37882,0.0037192,0.05,4.5918e+05,0.1846 -10000,0.37882,0.0037192,0.05,4.5918e+05,0.1846 -10000,0.38632,0.0037928,0.05,4.4867e+05,0.14703 -10000,0.38632,0.0037928,0.05,4.4867e+05,0.14703 -10000,0.38632,0.0037928,0.05,4.4867e+05,0.14703 -10000,0.38632,0.0037928,0.05,4.4867e+05,0.14703 -10000,0.38632,0.0037928,0.05,4.4867e+05,0.14703 -10000,0.38632,0.0037928,0.05,4.4867e+05,0.14703 -10000,0.38632,0.0037928,0.05,4.4867e+05,0.14703 -10000,0.38632,0.0037928,0.05,4.4867e+05,0.14703 -10000,0.39396,0.0038678,0.05,4.3813e+05,0.11632 -10000,0.39396,0.0038678,0.05,4.3813e+05,0.11632 -10000,0.39396,0.0038678,0.05,4.3813e+05,0.11632 -10000,0.39396,0.0038678,0.05,4.3813e+05,0.11632 -10000,0.39396,0.0038678,0.05,4.3813e+05,0.11632 -10000,0.39396,0.0038678,0.05,4.3813e+05,0.11632 -10000,0.39396,0.0038678,0.05,4.3813e+05,0.11632 -10000,0.40176,0.0039444,0.05,4.2755e+05,0.091393 -10000,0.40176,0.0039444,0.05,4.2755e+05,0.091393 -10000,0.40176,0.0039444,0.05,4.2755e+05,0.091393 -10000,0.40176,0.0039444,0.05,4.2755e+05,0.091393 -10000,0.40176,0.0039444,0.05,4.2755e+05,0.091393 -10000,0.40176,0.0039444,0.05,4.2755e+05,0.091393 -10000,0.40176,0.0039444,0.05,4.2755e+05,0.091393 -10000,0.40176,0.0039444,0.05,4.2755e+05,0.091393 -10000,0.40971,0.0040224,0.05,4.1695e+05,0.071303 -10000,0.40971,0.0040224,0.05,4.1695e+05,0.071303 -10000,0.40971,0.0040224,0.05,4.1695e+05,0.071303 -10000,0.40971,0.0040224,0.05,4.1695e+05,0.071303 -10000,0.40971,0.0040224,0.05,4.1695e+05,0.071303 -10000,0.40971,0.0040224,0.05,4.1695e+05,0.071303 -10000,0.40971,0.0040224,0.05,4.1695e+05,0.071303 -10000,0.40971,0.0040224,0.05,4.1695e+05,0.071303 -10000,0.41782,0.004102,0.05,4.0636e+05,0.055229 -10000,0.41782,0.004102,0.05,4.0636e+05,0.055229 -10000,0.41782,0.004102,0.05,4.0636e+05,0.055229 -10000,0.41782,0.004102,0.05,4.0636e+05,0.055229 -10000,0.41782,0.004102,0.05,4.0636e+05,0.055229 -10000,0.41782,0.004102,0.05,4.0636e+05,0.055229 -10000,0.41782,0.004102,0.05,4.0636e+05,0.055229 -10000,0.41782,0.004102,0.05,4.0636e+05,0.055229 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.42609,0.0041832,0.05,3.9577e+05,0.042464 -10000,0.43452,0.004266,0.05,3.8519e+05,0.032404 -10000,0.43452,0.004266,0.05,3.8519e+05,0.032404 -10000,0.43452,0.004266,0.05,3.8519e+05,0.032404 -10000,0.43452,0.004266,0.05,3.8519e+05,0.032404 -10000,0.43452,0.004266,0.05,3.8519e+05,0.032404 -10000,0.43452,0.004266,0.05,3.8519e+05,0.032404 -10000,0.43452,0.004266,0.05,3.8519e+05,0.032404 -10000,0.43452,0.004266,0.05,3.8519e+05,0.032404 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.44312,0.0043505,0.05,3.7464e+05,0.024537 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.45189,0.0044366,0.05,3.6413e+05,0.018434 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46084,0.0045244,0.05,3.5365e+05,0.013738 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.46996,0.004614,0.05,3.4322e+05,0.010154 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.47926,0.0047053,0.05,3.3284e+05,0.0074422 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.48875,0.0047985,0.05,3.2251e+05,0.0054079 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.49843,0.0048935,0.05,3.1224e+05,0.0038952 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.5083,0.0049903,0.05,3.0204e+05,0.0027806 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.51836,0.0050891,0.05,2.919e+05,0.0019668 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.52862,0.0051899,0.05,2.8183e+05,0.0013782 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.53909,0.0052927,0.05,2.7183e+05,0.00095658 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.54976,0.0053975,0.05,2.6191e+05,0.00065749 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.56065,0.0055043,0.05,2.5206e+05,0.00044744 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.57175,0.0056133,0.05,2.423e+05,0.00030141 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.58307,0.0057245,0.05,2.3261e+05,0.00020095 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.59462,0.0058378,0.05,2.2301e+05,0.00013256 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.60639,0.0059535,0.05,2.135e+05,8.6508e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.6184,0.0060714,0.05,2.0407e+05,5.5836e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.63065,0.0061916,0.05,1.9473e+05,3.5636e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.64314,0.0063142,0.05,1.8548e+05,2.2485e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.65588,0.0064393,0.05,1.7633e+05,1.4022e-05 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.66887,0.0065668,0.05,1.6727e+05,8.6404e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.68211,0.0066969,0.05,1.583e+05,5.2599e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.69562,0.0068295,0.05,1.4942e+05,3.1624e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.7094,0.0069648,0.05,1.4064e+05,1.8772e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.72345,0.0071027,0.05,1.3195e+05,1.0998e-06 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.73778,0.0072434,0.05,1.2336e+05,6.3578e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7524,0.0073869,0.05,1.1486e+05,3.6242e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7673,0.0075332,0.05,1.0645e+05,2.0359e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.7825,0.0076824,0.05,98125,1.1259e-07 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.798,0.0078346,0.05,89890,6.1195e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.81381,0.0079898,0.05,81740,3.2607e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.82993,0.0081481,0.05,73670,1.6956e-08 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.84637,0.0083095,0.05,65677,8.5358e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.86314,0.0084741,0.05,57756,4.096e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.88024,0.008642,0.05,49901,1.8143e-09 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.89767,0.0088132,0.05,42106,6.8413e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.91546,0.0089878,0.05,34365,1.585e-10 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.93359,0.0091658,0.05,26670,-5.514e-11 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.95209,0.0093474,0.05,19011,-1.1096e-10 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.97095,0.0095326,0.05,11380,-8.9385e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,0.99019,0.0097215,0.05,3766.6,-3.2912e-11 -10000,nan,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_10.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_10.csv deleted file mode 100644 index 9de70bbb19f..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_10.csv +++ /dev/null @@ -1,1002 +0,0 @@ -Time,"elementCenter:0","elementCenter:1","elementCenter:2","pressure","temperature" -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,nan,nan,nan,nan,nan -1e+05,0.10099,0.0009915,0.05,2886.1,99.336 -1e+05,0.10099,0.0009915,0.05,2886.1,99.336 -1e+05,0.10299,0.0010111,0.05,8542.7,98.035 -1e+05,0.10299,0.0010111,0.05,8542.7,98.035 -1e+05,0.10499,0.0010308,0.05,14088,96.759 -1e+05,0.10499,0.0010308,0.05,14088,96.759 -1e+05,0.10734,0.0010538,0.05,20476,95.288 -1e+05,0.10734,0.0010538,0.05,20476,95.288 -1e+05,0.10734,0.0010538,0.05,20476,95.288 -1e+05,0.11004,0.0010803,0.05,27628,93.64 -1e+05,0.11004,0.0010803,0.05,27628,93.64 -1e+05,0.11004,0.0010803,0.05,27628,93.64 -1e+05,0.11274,0.0011068,0.05,34599,92.032 -1e+05,0.11274,0.0011068,0.05,34599,92.032 -1e+05,0.11274,0.0011068,0.05,34599,92.032 -1e+05,0.11544,0.0011334,0.05,41397,90.463 -1e+05,0.11544,0.0011334,0.05,41397,90.463 -1e+05,0.11814,0.0011599,0.05,48030,88.93 -1e+05,0.11814,0.0011599,0.05,48030,88.93 -1e+05,0.11814,0.0011599,0.05,48030,88.93 -1e+05,0.12084,0.0011864,0.05,54503,87.433 -1e+05,0.12084,0.0011864,0.05,54503,87.433 -1e+05,0.12084,0.0011864,0.05,54503,87.433 -1e+05,0.12354,0.0012129,0.05,60824,85.969 -1e+05,0.12354,0.0012129,0.05,60824,85.969 -1e+05,0.12624,0.0012394,0.05,66997,84.537 -1e+05,0.12624,0.0012394,0.05,66997,84.537 -1e+05,0.12624,0.0012394,0.05,66997,84.537 -1e+05,0.12894,0.0012659,0.05,73028,83.137 -1e+05,0.12894,0.0012659,0.05,73028,83.137 -1e+05,0.12894,0.0012659,0.05,73028,83.137 -1e+05,0.13164,0.0012924,0.05,78922,81.766 -1e+05,0.13164,0.0012924,0.05,78922,81.766 -1e+05,0.1343,0.0013185,0.05,84601,80.443 -1e+05,0.1343,0.0013185,0.05,84601,80.443 -1e+05,0.1343,0.0013185,0.05,84601,80.443 -1e+05,0.13695,0.0013445,0.05,90131,79.153 -1e+05,0.13695,0.0013445,0.05,90131,79.153 -1e+05,0.13695,0.0013445,0.05,90131,79.153 -1e+05,0.13965,0.001371,0.05,95647,77.864 -1e+05,0.13965,0.001371,0.05,95647,77.864 -1e+05,0.13965,0.001371,0.05,95647,77.864 -1e+05,0.1424,0.0013981,0.05,1.0115e+05,76.576 -1e+05,0.1424,0.0013981,0.05,1.0115e+05,76.576 -1e+05,0.14521,0.0014256,0.05,1.0663e+05,75.288 -1e+05,0.14521,0.0014256,0.05,1.0663e+05,75.288 -1e+05,0.14521,0.0014256,0.05,1.0663e+05,75.288 -1e+05,0.14807,0.0014538,0.05,1.121e+05,74.002 -1e+05,0.14807,0.0014538,0.05,1.121e+05,74.002 -1e+05,0.14807,0.0014538,0.05,1.121e+05,74.002 -1e+05,0.151,0.0014824,0.05,1.1755e+05,72.717 -1e+05,0.151,0.0014824,0.05,1.1755e+05,72.717 -1e+05,0.151,0.0014824,0.05,1.1755e+05,72.717 -1e+05,0.15397,0.0015117,0.05,1.2298e+05,71.434 -1e+05,0.15397,0.0015117,0.05,1.2298e+05,71.434 -1e+05,0.15397,0.0015117,0.05,1.2298e+05,71.434 -1e+05,0.15701,0.0015415,0.05,1.2839e+05,70.152 -1e+05,0.15701,0.0015415,0.05,1.2839e+05,70.152 -1e+05,0.15701,0.0015415,0.05,1.2839e+05,70.152 -1e+05,0.16011,0.0015719,0.05,1.3377e+05,68.871 -1e+05,0.16011,0.0015719,0.05,1.3377e+05,68.871 -1e+05,0.16011,0.0015719,0.05,1.3377e+05,68.871 -1e+05,0.16327,0.001603,0.05,1.3913e+05,67.592 -1e+05,0.16327,0.001603,0.05,1.3913e+05,67.592 -1e+05,0.16327,0.001603,0.05,1.3913e+05,67.592 -1e+05,0.16649,0.0016346,0.05,1.4447e+05,66.316 -1e+05,0.16649,0.0016346,0.05,1.4447e+05,66.316 -1e+05,0.16649,0.0016346,0.05,1.4447e+05,66.316 -1e+05,0.16649,0.0016346,0.05,1.4447e+05,66.316 -1e+05,0.16978,0.0016669,0.05,1.4977e+05,65.041 -1e+05,0.16978,0.0016669,0.05,1.4977e+05,65.041 -1e+05,0.16978,0.0016669,0.05,1.4977e+05,65.041 -1e+05,0.17313,0.0016998,0.05,1.5504e+05,63.769 -1e+05,0.17313,0.0016998,0.05,1.5504e+05,63.769 -1e+05,0.17313,0.0016998,0.05,1.5504e+05,63.769 -1e+05,0.17655,0.0017333,0.05,1.6028e+05,62.499 -1e+05,0.17655,0.0017333,0.05,1.6028e+05,62.499 -1e+05,0.17655,0.0017333,0.05,1.6028e+05,62.499 -1e+05,0.17655,0.0017333,0.05,1.6028e+05,62.499 -1e+05,0.18004,0.0017676,0.05,1.6548e+05,61.232 -1e+05,0.18004,0.0017676,0.05,1.6548e+05,61.232 -1e+05,0.18004,0.0017676,0.05,1.6548e+05,61.232 -1e+05,0.18359,0.0018025,0.05,1.7064e+05,59.968 -1e+05,0.18359,0.0018025,0.05,1.7064e+05,59.968 -1e+05,0.18359,0.0018025,0.05,1.7064e+05,59.968 -1e+05,0.18359,0.0018025,0.05,1.7064e+05,59.968 -1e+05,0.18722,0.001838,0.05,1.7576e+05,58.707 -1e+05,0.18722,0.001838,0.05,1.7576e+05,58.707 -1e+05,0.18722,0.001838,0.05,1.7576e+05,58.707 -1e+05,0.18722,0.001838,0.05,1.7576e+05,58.707 -1e+05,0.19091,0.0018743,0.05,1.8084e+05,57.449 -1e+05,0.19091,0.0018743,0.05,1.8084e+05,57.449 -1e+05,0.19091,0.0018743,0.05,1.8084e+05,57.449 -1e+05,0.19468,0.0019114,0.05,1.8587e+05,56.195 -1e+05,0.19468,0.0019114,0.05,1.8587e+05,56.195 -1e+05,0.19468,0.0019114,0.05,1.8587e+05,56.195 -1e+05,0.19468,0.0019114,0.05,1.8587e+05,56.195 -1e+05,0.19853,0.0019491,0.05,1.9085e+05,54.944 -1e+05,0.19853,0.0019491,0.05,1.9085e+05,54.944 -1e+05,0.19853,0.0019491,0.05,1.9085e+05,54.944 -1e+05,0.19853,0.0019491,0.05,1.9085e+05,54.944 -1e+05,0.20245,0.0019876,0.05,1.9578e+05,53.698 -1e+05,0.20245,0.0019876,0.05,1.9578e+05,53.698 -1e+05,0.20245,0.0019876,0.05,1.9578e+05,53.698 -1e+05,0.20245,0.0019876,0.05,1.9578e+05,53.698 -1e+05,0.20645,0.0020269,0.05,2.0065e+05,52.456 -1e+05,0.20645,0.0020269,0.05,2.0065e+05,52.456 -1e+05,0.20645,0.0020269,0.05,2.0065e+05,52.456 -1e+05,0.20645,0.0020269,0.05,2.0065e+05,52.456 -1e+05,0.21053,0.0020669,0.05,2.0546e+05,51.219 -1e+05,0.21053,0.0020669,0.05,2.0546e+05,51.219 -1e+05,0.21053,0.0020669,0.05,2.0546e+05,51.219 -1e+05,0.21053,0.0020669,0.05,2.0546e+05,51.219 -1e+05,0.21469,0.0021078,0.05,2.1021e+05,49.986 -1e+05,0.21469,0.0021078,0.05,2.1021e+05,49.986 -1e+05,0.21469,0.0021078,0.05,2.1021e+05,49.986 -1e+05,0.21469,0.0021078,0.05,2.1021e+05,49.986 -1e+05,0.21893,0.0021494,0.05,2.149e+05,48.759 -1e+05,0.21893,0.0021494,0.05,2.149e+05,48.759 -1e+05,0.21893,0.0021494,0.05,2.149e+05,48.759 -1e+05,0.21893,0.0021494,0.05,2.149e+05,48.759 -1e+05,0.21893,0.0021494,0.05,2.149e+05,48.759 -1e+05,0.22326,0.0021919,0.05,2.1951e+05,47.537 -1e+05,0.22326,0.0021919,0.05,2.1951e+05,47.537 -1e+05,0.22326,0.0021919,0.05,2.1951e+05,47.537 -1e+05,0.22326,0.0021919,0.05,2.1951e+05,47.537 -1e+05,0.22767,0.0022352,0.05,2.2404e+05,46.321 -1e+05,0.22767,0.0022352,0.05,2.2404e+05,46.321 -1e+05,0.22767,0.0022352,0.05,2.2404e+05,46.321 -1e+05,0.22767,0.0022352,0.05,2.2404e+05,46.321 -1e+05,0.23217,0.0022794,0.05,2.285e+05,45.111 -1e+05,0.23217,0.0022794,0.05,2.285e+05,45.111 -1e+05,0.23217,0.0022794,0.05,2.285e+05,45.111 -1e+05,0.23217,0.0022794,0.05,2.285e+05,45.111 -1e+05,0.23217,0.0022794,0.05,2.285e+05,45.111 -1e+05,0.23676,0.0023244,0.05,2.3287e+05,43.908 -1e+05,0.23676,0.0023244,0.05,2.3287e+05,43.908 -1e+05,0.23676,0.0023244,0.05,2.3287e+05,43.908 -1e+05,0.23676,0.0023244,0.05,2.3287e+05,43.908 -1e+05,0.23676,0.0023244,0.05,2.3287e+05,43.908 -1e+05,0.24144,0.0023704,0.05,2.3715e+05,42.712 -1e+05,0.24144,0.0023704,0.05,2.3715e+05,42.712 -1e+05,0.24144,0.0023704,0.05,2.3715e+05,42.712 -1e+05,0.24144,0.0023704,0.05,2.3715e+05,42.712 -1e+05,0.24621,0.0024172,0.05,2.4134e+05,41.523 -1e+05,0.24621,0.0024172,0.05,2.4134e+05,41.523 -1e+05,0.24621,0.0024172,0.05,2.4134e+05,41.523 -1e+05,0.24621,0.0024172,0.05,2.4134e+05,41.523 -1e+05,0.24621,0.0024172,0.05,2.4134e+05,41.523 -1e+05,0.25108,0.002465,0.05,2.4544e+05,40.342 -1e+05,0.25108,0.002465,0.05,2.4544e+05,40.342 -1e+05,0.25108,0.002465,0.05,2.4544e+05,40.342 -1e+05,0.25108,0.002465,0.05,2.4544e+05,40.342 -1e+05,0.25108,0.002465,0.05,2.4544e+05,40.342 -1e+05,0.25604,0.0025137,0.05,2.4943e+05,39.169 -1e+05,0.25604,0.0025137,0.05,2.4943e+05,39.169 -1e+05,0.25604,0.0025137,0.05,2.4943e+05,39.169 -1e+05,0.25604,0.0025137,0.05,2.4943e+05,39.169 -1e+05,0.25604,0.0025137,0.05,2.4943e+05,39.169 -1e+05,0.2611,0.0025634,0.05,2.5331e+05,38.005 -1e+05,0.2611,0.0025634,0.05,2.5331e+05,38.005 -1e+05,0.2611,0.0025634,0.05,2.5331e+05,38.005 -1e+05,0.2611,0.0025634,0.05,2.5331e+05,38.005 -1e+05,0.2611,0.0025634,0.05,2.5331e+05,38.005 -1e+05,0.26626,0.0026141,0.05,2.5707e+05,36.85 -1e+05,0.26626,0.0026141,0.05,2.5707e+05,36.85 -1e+05,0.26626,0.0026141,0.05,2.5707e+05,36.85 -1e+05,0.26626,0.0026141,0.05,2.5707e+05,36.85 -1e+05,0.26626,0.0026141,0.05,2.5707e+05,36.85 -1e+05,0.27153,0.0026658,0.05,2.6072e+05,35.704 -1e+05,0.27153,0.0026658,0.05,2.6072e+05,35.704 -1e+05,0.27153,0.0026658,0.05,2.6072e+05,35.704 -1e+05,0.27153,0.0026658,0.05,2.6072e+05,35.704 -1e+05,0.27153,0.0026658,0.05,2.6072e+05,35.704 -1e+05,0.27153,0.0026658,0.05,2.6072e+05,35.704 -1e+05,0.2769,0.0027185,0.05,2.6424e+05,34.568 -1e+05,0.2769,0.0027185,0.05,2.6424e+05,34.568 -1e+05,0.2769,0.0027185,0.05,2.6424e+05,34.568 -1e+05,0.2769,0.0027185,0.05,2.6424e+05,34.568 -1e+05,0.2769,0.0027185,0.05,2.6424e+05,34.568 -1e+05,0.28237,0.0027723,0.05,2.6763e+05,33.443 -1e+05,0.28237,0.0027723,0.05,2.6763e+05,33.443 -1e+05,0.28237,0.0027723,0.05,2.6763e+05,33.443 -1e+05,0.28237,0.0027723,0.05,2.6763e+05,33.443 -1e+05,0.28237,0.0027723,0.05,2.6763e+05,33.443 -1e+05,0.28237,0.0027723,0.05,2.6763e+05,33.443 -1e+05,0.28796,0.0028271,0.05,2.7088e+05,32.329 -1e+05,0.28796,0.0028271,0.05,2.7088e+05,32.329 -1e+05,0.28796,0.0028271,0.05,2.7088e+05,32.329 -1e+05,0.28796,0.0028271,0.05,2.7088e+05,32.329 -1e+05,0.28796,0.0028271,0.05,2.7088e+05,32.329 -1e+05,0.29365,0.002883,0.05,2.7399e+05,31.226 -1e+05,0.29365,0.002883,0.05,2.7399e+05,31.226 -1e+05,0.29365,0.002883,0.05,2.7399e+05,31.226 -1e+05,0.29365,0.002883,0.05,2.7399e+05,31.226 -1e+05,0.29365,0.002883,0.05,2.7399e+05,31.226 -1e+05,0.29365,0.002883,0.05,2.7399e+05,31.226 -1e+05,0.29946,0.00294,0.05,2.7694e+05,30.135 -1e+05,0.29946,0.00294,0.05,2.7694e+05,30.135 -1e+05,0.29946,0.00294,0.05,2.7694e+05,30.135 -1e+05,0.29946,0.00294,0.05,2.7694e+05,30.135 -1e+05,0.29946,0.00294,0.05,2.7694e+05,30.135 -1e+05,0.29946,0.00294,0.05,2.7694e+05,30.135 -1e+05,0.30538,0.0029982,0.05,2.7974e+05,29.057 -1e+05,0.30538,0.0029982,0.05,2.7974e+05,29.057 -1e+05,0.30538,0.0029982,0.05,2.7974e+05,29.057 -1e+05,0.30538,0.0029982,0.05,2.7974e+05,29.057 -1e+05,0.30538,0.0029982,0.05,2.7974e+05,29.057 -1e+05,0.30538,0.0029982,0.05,2.7974e+05,29.057 -1e+05,0.31142,0.0030575,0.05,2.8238e+05,27.992 -1e+05,0.31142,0.0030575,0.05,2.8238e+05,27.992 -1e+05,0.31142,0.0030575,0.05,2.8238e+05,27.992 -1e+05,0.31142,0.0030575,0.05,2.8238e+05,27.992 -1e+05,0.31142,0.0030575,0.05,2.8238e+05,27.992 -1e+05,0.31142,0.0030575,0.05,2.8238e+05,27.992 -1e+05,0.31758,0.003118,0.05,2.8484e+05,26.941 -1e+05,0.31758,0.003118,0.05,2.8484e+05,26.941 -1e+05,0.31758,0.003118,0.05,2.8484e+05,26.941 -1e+05,0.31758,0.003118,0.05,2.8484e+05,26.941 -1e+05,0.31758,0.003118,0.05,2.8484e+05,26.941 -1e+05,0.31758,0.003118,0.05,2.8484e+05,26.941 -1e+05,0.32386,0.0031796,0.05,2.8713e+05,25.903 -1e+05,0.32386,0.0031796,0.05,2.8713e+05,25.903 -1e+05,0.32386,0.0031796,0.05,2.8713e+05,25.903 -1e+05,0.32386,0.0031796,0.05,2.8713e+05,25.903 -1e+05,0.32386,0.0031796,0.05,2.8713e+05,25.903 -1e+05,0.32386,0.0031796,0.05,2.8713e+05,25.903 -1e+05,0.32386,0.0031796,0.05,2.8713e+05,25.903 -1e+05,0.33027,0.0032425,0.05,2.8923e+05,24.881 -1e+05,0.33027,0.0032425,0.05,2.8923e+05,24.881 -1e+05,0.33027,0.0032425,0.05,2.8923e+05,24.881 -1e+05,0.33027,0.0032425,0.05,2.8923e+05,24.881 -1e+05,0.33027,0.0032425,0.05,2.8923e+05,24.881 -1e+05,0.33027,0.0032425,0.05,2.8923e+05,24.881 -1e+05,0.3368,0.0033067,0.05,2.9114e+05,23.874 -1e+05,0.3368,0.0033067,0.05,2.9114e+05,23.874 -1e+05,0.3368,0.0033067,0.05,2.9114e+05,23.874 -1e+05,0.3368,0.0033067,0.05,2.9114e+05,23.874 -1e+05,0.3368,0.0033067,0.05,2.9114e+05,23.874 -1e+05,0.3368,0.0033067,0.05,2.9114e+05,23.874 -1e+05,0.3368,0.0033067,0.05,2.9114e+05,23.874 -1e+05,0.34347,0.0033721,0.05,2.9285e+05,22.883 -1e+05,0.34347,0.0033721,0.05,2.9285e+05,22.883 -1e+05,0.34347,0.0033721,0.05,2.9285e+05,22.883 -1e+05,0.34347,0.0033721,0.05,2.9285e+05,22.883 -1e+05,0.34347,0.0033721,0.05,2.9285e+05,22.883 -1e+05,0.34347,0.0033721,0.05,2.9285e+05,22.883 -1e+05,0.35026,0.0034388,0.05,2.9435e+05,21.909 -1e+05,0.35026,0.0034388,0.05,2.9435e+05,21.909 -1e+05,0.35026,0.0034388,0.05,2.9435e+05,21.909 -1e+05,0.35026,0.0034388,0.05,2.9435e+05,21.909 -1e+05,0.35026,0.0034388,0.05,2.9435e+05,21.909 -1e+05,0.35026,0.0034388,0.05,2.9435e+05,21.909 -1e+05,0.35026,0.0034388,0.05,2.9435e+05,21.909 -1e+05,0.35719,0.0035069,0.05,2.9564e+05,20.951 -1e+05,0.35719,0.0035069,0.05,2.9564e+05,20.951 -1e+05,0.35719,0.0035069,0.05,2.9564e+05,20.951 -1e+05,0.35719,0.0035069,0.05,2.9564e+05,20.951 -1e+05,0.35719,0.0035069,0.05,2.9564e+05,20.951 -1e+05,0.35719,0.0035069,0.05,2.9564e+05,20.951 -1e+05,0.35719,0.0035069,0.05,2.9564e+05,20.951 -1e+05,0.36426,0.0035762,0.05,2.9671e+05,20.012 -1e+05,0.36426,0.0035762,0.05,2.9671e+05,20.012 -1e+05,0.36426,0.0035762,0.05,2.9671e+05,20.012 -1e+05,0.36426,0.0035762,0.05,2.9671e+05,20.012 -1e+05,0.36426,0.0035762,0.05,2.9671e+05,20.012 -1e+05,0.36426,0.0035762,0.05,2.9671e+05,20.012 -1e+05,0.36426,0.0035762,0.05,2.9671e+05,20.012 -1e+05,0.37147,0.003647,0.05,2.9755e+05,19.091 -1e+05,0.37147,0.003647,0.05,2.9755e+05,19.091 -1e+05,0.37147,0.003647,0.05,2.9755e+05,19.091 -1e+05,0.37147,0.003647,0.05,2.9755e+05,19.091 -1e+05,0.37147,0.003647,0.05,2.9755e+05,19.091 -1e+05,0.37147,0.003647,0.05,2.9755e+05,19.091 -1e+05,0.37147,0.003647,0.05,2.9755e+05,19.091 -1e+05,0.37147,0.003647,0.05,2.9755e+05,19.091 -1e+05,0.37882,0.0037192,0.05,2.9816e+05,18.188 -1e+05,0.37882,0.0037192,0.05,2.9816e+05,18.188 -1e+05,0.37882,0.0037192,0.05,2.9816e+05,18.188 -1e+05,0.37882,0.0037192,0.05,2.9816e+05,18.188 -1e+05,0.37882,0.0037192,0.05,2.9816e+05,18.188 -1e+05,0.37882,0.0037192,0.05,2.9816e+05,18.188 -1e+05,0.37882,0.0037192,0.05,2.9816e+05,18.188 -1e+05,0.38632,0.0037928,0.05,2.9853e+05,17.305 -1e+05,0.38632,0.0037928,0.05,2.9853e+05,17.305 -1e+05,0.38632,0.0037928,0.05,2.9853e+05,17.305 -1e+05,0.38632,0.0037928,0.05,2.9853e+05,17.305 -1e+05,0.38632,0.0037928,0.05,2.9853e+05,17.305 -1e+05,0.38632,0.0037928,0.05,2.9853e+05,17.305 -1e+05,0.38632,0.0037928,0.05,2.9853e+05,17.305 -1e+05,0.38632,0.0037928,0.05,2.9853e+05,17.305 -1e+05,0.39396,0.0038678,0.05,2.9864e+05,16.443 -1e+05,0.39396,0.0038678,0.05,2.9864e+05,16.443 -1e+05,0.39396,0.0038678,0.05,2.9864e+05,16.443 -1e+05,0.39396,0.0038678,0.05,2.9864e+05,16.443 -1e+05,0.39396,0.0038678,0.05,2.9864e+05,16.443 -1e+05,0.39396,0.0038678,0.05,2.9864e+05,16.443 -1e+05,0.39396,0.0038678,0.05,2.9864e+05,16.443 -1e+05,0.40176,0.0039444,0.05,2.9851e+05,15.6 -1e+05,0.40176,0.0039444,0.05,2.9851e+05,15.6 -1e+05,0.40176,0.0039444,0.05,2.9851e+05,15.6 -1e+05,0.40176,0.0039444,0.05,2.9851e+05,15.6 -1e+05,0.40176,0.0039444,0.05,2.9851e+05,15.6 -1e+05,0.40176,0.0039444,0.05,2.9851e+05,15.6 -1e+05,0.40176,0.0039444,0.05,2.9851e+05,15.6 -1e+05,0.40176,0.0039444,0.05,2.9851e+05,15.6 -1e+05,0.40971,0.0040224,0.05,2.9811e+05,14.779 -1e+05,0.40971,0.0040224,0.05,2.9811e+05,14.779 -1e+05,0.40971,0.0040224,0.05,2.9811e+05,14.779 -1e+05,0.40971,0.0040224,0.05,2.9811e+05,14.779 -1e+05,0.40971,0.0040224,0.05,2.9811e+05,14.779 -1e+05,0.40971,0.0040224,0.05,2.9811e+05,14.779 -1e+05,0.40971,0.0040224,0.05,2.9811e+05,14.779 -1e+05,0.40971,0.0040224,0.05,2.9811e+05,14.779 -1e+05,0.41782,0.004102,0.05,2.9744e+05,13.979 -1e+05,0.41782,0.004102,0.05,2.9744e+05,13.979 -1e+05,0.41782,0.004102,0.05,2.9744e+05,13.979 -1e+05,0.41782,0.004102,0.05,2.9744e+05,13.979 -1e+05,0.41782,0.004102,0.05,2.9744e+05,13.979 -1e+05,0.41782,0.004102,0.05,2.9744e+05,13.979 -1e+05,0.41782,0.004102,0.05,2.9744e+05,13.979 -1e+05,0.41782,0.004102,0.05,2.9744e+05,13.979 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.42609,0.0041832,0.05,2.965e+05,13.202 -1e+05,0.43452,0.004266,0.05,2.9528e+05,12.447 -1e+05,0.43452,0.004266,0.05,2.9528e+05,12.447 -1e+05,0.43452,0.004266,0.05,2.9528e+05,12.447 -1e+05,0.43452,0.004266,0.05,2.9528e+05,12.447 -1e+05,0.43452,0.004266,0.05,2.9528e+05,12.447 -1e+05,0.43452,0.004266,0.05,2.9528e+05,12.447 -1e+05,0.43452,0.004266,0.05,2.9528e+05,12.447 -1e+05,0.43452,0.004266,0.05,2.9528e+05,12.447 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.44312,0.0043505,0.05,2.9377e+05,11.715 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.45189,0.0044366,0.05,2.9198e+05,11.006 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46084,0.0045244,0.05,2.8989e+05,10.321 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.46996,0.004614,0.05,2.875e+05,9.6595 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.47926,0.0047053,0.05,2.8481e+05,9.0227 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.48875,0.0047985,0.05,2.8182e+05,8.4104 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.49843,0.0048935,0.05,2.7852e+05,7.8227 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.5083,0.0049903,0.05,2.7492e+05,7.2599 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.51836,0.0050891,0.05,2.7101e+05,6.722 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.52862,0.0051899,0.05,2.6678e+05,6.209 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.53909,0.0052927,0.05,2.6226e+05,5.7208 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.54976,0.0053975,0.05,2.5742e+05,5.2574 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.56065,0.0055043,0.05,2.5228e+05,4.8185 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.57175,0.0056133,0.05,2.4684e+05,4.4039 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.58307,0.0057245,0.05,2.411e+05,4.0133 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.59462,0.0058378,0.05,2.3507e+05,3.6464 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.60639,0.0059535,0.05,2.2875e+05,3.3027 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.6184,0.0060714,0.05,2.2215e+05,2.9816 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.63065,0.0061916,0.05,2.1528e+05,2.6827 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.64314,0.0063142,0.05,2.0814e+05,2.4053 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.65588,0.0064393,0.05,2.0074e+05,2.1488 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.66887,0.0065668,0.05,1.9309e+05,1.9123 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.68211,0.0066969,0.05,1.8521e+05,1.6952 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.69562,0.0068295,0.05,1.7709e+05,1.4965 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.7094,0.0069648,0.05,1.6876e+05,1.3154 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.72345,0.0071027,0.05,1.6022e+05,1.1511 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.73778,0.0072434,0.05,1.5148e+05,1.0025 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7524,0.0073869,0.05,1.4256e+05,0.86883 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7673,0.0075332,0.05,1.3347e+05,0.74899 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.7825,0.0076824,0.05,1.2422e+05,0.64203 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.798,0.0078346,0.05,1.1482e+05,0.54698 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.81381,0.0079898,0.05,1.0528e+05,0.46286 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.82993,0.0081481,0.05,95624,0.38869 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.84637,0.0083095,0.05,85855,0.3235 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.86314,0.0084741,0.05,75985,0.26634 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.88024,0.008642,0.05,66028,0.21628 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.89767,0.0088132,0.05,55994,0.17237 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.91546,0.0089878,0.05,45895,0.1337 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.93359,0.0091658,0.05,35742,0.099362 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.95209,0.0093474,0.05,25547,0.068435 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.97095,0.0095326,0.05,15321,0.03999 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,0.99019,0.0097215,0.05,5075.6,0.01307 -1e+05,nan,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_2.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_2.csv deleted file mode 100644 index 440878fbef7..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_2.csv +++ /dev/null @@ -1,1002 +0,0 @@ -Time,"elementCenter:0","elementCenter:1","elementCenter:2","pressure","temperature" -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,nan,nan,nan,nan,nan -20000,0.10099,0.0009915,0.05,7867.1,98.936 -20000,0.10099,0.0009915,0.05,7867.1,98.936 -20000,0.10299,0.0010111,0.05,23281,96.849 -20000,0.10299,0.0010111,0.05,23281,96.849 -20000,0.10499,0.0010308,0.05,38382,94.802 -20000,0.10499,0.0010308,0.05,38382,94.802 -20000,0.10734,0.0010538,0.05,55766,92.444 -20000,0.10734,0.0010538,0.05,55766,92.444 -20000,0.10734,0.0010538,0.05,55766,92.444 -20000,0.11004,0.0010803,0.05,75199,89.805 -20000,0.11004,0.0010803,0.05,75199,89.805 -20000,0.11004,0.0010803,0.05,75199,89.805 -20000,0.11274,0.0011068,0.05,94107,87.232 -20000,0.11274,0.0011068,0.05,94107,87.232 -20000,0.11274,0.0011068,0.05,94107,87.232 -20000,0.11544,0.0011334,0.05,1.125e+05,84.724 -20000,0.11544,0.0011334,0.05,1.125e+05,84.724 -20000,0.11814,0.0011599,0.05,1.304e+05,82.279 -20000,0.11814,0.0011599,0.05,1.304e+05,82.279 -20000,0.11814,0.0011599,0.05,1.304e+05,82.279 -20000,0.12084,0.0011864,0.05,1.4782e+05,79.895 -20000,0.12084,0.0011864,0.05,1.4782e+05,79.895 -20000,0.12084,0.0011864,0.05,1.4782e+05,79.895 -20000,0.12354,0.0012129,0.05,1.6476e+05,77.57 -20000,0.12354,0.0012129,0.05,1.6476e+05,77.57 -20000,0.12624,0.0012394,0.05,1.8125e+05,75.301 -20000,0.12624,0.0012394,0.05,1.8125e+05,75.301 -20000,0.12624,0.0012394,0.05,1.8125e+05,75.301 -20000,0.12894,0.0012659,0.05,1.9727e+05,73.088 -20000,0.12894,0.0012659,0.05,1.9727e+05,73.088 -20000,0.12894,0.0012659,0.05,1.9727e+05,73.088 -20000,0.13164,0.0012924,0.05,2.1286e+05,70.93 -20000,0.13164,0.0012924,0.05,2.1286e+05,70.93 -20000,0.1343,0.0013185,0.05,2.2779e+05,68.854 -20000,0.1343,0.0013185,0.05,2.2779e+05,68.854 -20000,0.1343,0.0013185,0.05,2.2779e+05,68.854 -20000,0.13695,0.0013445,0.05,2.4224e+05,66.837 -20000,0.13695,0.0013445,0.05,2.4224e+05,66.837 -20000,0.13695,0.0013445,0.05,2.4224e+05,66.837 -20000,0.13965,0.001371,0.05,2.5657e+05,64.829 -20000,0.13965,0.001371,0.05,2.5657e+05,64.829 -20000,0.13965,0.001371,0.05,2.5657e+05,64.829 -20000,0.1424,0.0013981,0.05,2.7075e+05,62.832 -20000,0.1424,0.0013981,0.05,2.7075e+05,62.832 -20000,0.14521,0.0014256,0.05,2.8478e+05,60.847 -20000,0.14521,0.0014256,0.05,2.8478e+05,60.847 -20000,0.14521,0.0014256,0.05,2.8478e+05,60.847 -20000,0.14807,0.0014538,0.05,2.9865e+05,58.874 -20000,0.14807,0.0014538,0.05,2.9865e+05,58.874 -20000,0.14807,0.0014538,0.05,2.9865e+05,58.874 -20000,0.151,0.0014824,0.05,3.1233e+05,56.915 -20000,0.151,0.0014824,0.05,3.1233e+05,56.915 -20000,0.151,0.0014824,0.05,3.1233e+05,56.915 -20000,0.15397,0.0015117,0.05,3.2583e+05,54.971 -20000,0.15397,0.0015117,0.05,3.2583e+05,54.971 -20000,0.15397,0.0015117,0.05,3.2583e+05,54.971 -20000,0.15701,0.0015415,0.05,3.3912e+05,53.043 -20000,0.15701,0.0015415,0.05,3.3912e+05,53.043 -20000,0.15701,0.0015415,0.05,3.3912e+05,53.043 -20000,0.16011,0.0015719,0.05,3.5218e+05,51.132 -20000,0.16011,0.0015719,0.05,3.5218e+05,51.132 -20000,0.16011,0.0015719,0.05,3.5218e+05,51.132 -20000,0.16327,0.001603,0.05,3.6501e+05,49.24 -20000,0.16327,0.001603,0.05,3.6501e+05,49.24 -20000,0.16327,0.001603,0.05,3.6501e+05,49.24 -20000,0.16649,0.0016346,0.05,3.7758e+05,47.367 -20000,0.16649,0.0016346,0.05,3.7758e+05,47.367 -20000,0.16649,0.0016346,0.05,3.7758e+05,47.367 -20000,0.16649,0.0016346,0.05,3.7758e+05,47.367 -20000,0.16978,0.0016669,0.05,3.8989e+05,45.516 -20000,0.16978,0.0016669,0.05,3.8989e+05,45.516 -20000,0.16978,0.0016669,0.05,3.8989e+05,45.516 -20000,0.17313,0.0016998,0.05,4.0191e+05,43.687 -20000,0.17313,0.0016998,0.05,4.0191e+05,43.687 -20000,0.17313,0.0016998,0.05,4.0191e+05,43.687 -20000,0.17655,0.0017333,0.05,4.1363e+05,41.881 -20000,0.17655,0.0017333,0.05,4.1363e+05,41.881 -20000,0.17655,0.0017333,0.05,4.1363e+05,41.881 -20000,0.17655,0.0017333,0.05,4.1363e+05,41.881 -20000,0.18004,0.0017676,0.05,4.2502e+05,40.101 -20000,0.18004,0.0017676,0.05,4.2502e+05,40.101 -20000,0.18004,0.0017676,0.05,4.2502e+05,40.101 -20000,0.18359,0.0018025,0.05,4.3609e+05,38.348 -20000,0.18359,0.0018025,0.05,4.3609e+05,38.348 -20000,0.18359,0.0018025,0.05,4.3609e+05,38.348 -20000,0.18359,0.0018025,0.05,4.3609e+05,38.348 -20000,0.18722,0.001838,0.05,4.4679e+05,36.623 -20000,0.18722,0.001838,0.05,4.4679e+05,36.623 -20000,0.18722,0.001838,0.05,4.4679e+05,36.623 -20000,0.18722,0.001838,0.05,4.4679e+05,36.623 -20000,0.19091,0.0018743,0.05,4.5713e+05,34.927 -20000,0.19091,0.0018743,0.05,4.5713e+05,34.927 -20000,0.19091,0.0018743,0.05,4.5713e+05,34.927 -20000,0.19468,0.0019114,0.05,4.6707e+05,33.263 -20000,0.19468,0.0019114,0.05,4.6707e+05,33.263 -20000,0.19468,0.0019114,0.05,4.6707e+05,33.263 -20000,0.19468,0.0019114,0.05,4.6707e+05,33.263 -20000,0.19853,0.0019491,0.05,4.7661e+05,31.631 -20000,0.19853,0.0019491,0.05,4.7661e+05,31.631 -20000,0.19853,0.0019491,0.05,4.7661e+05,31.631 -20000,0.19853,0.0019491,0.05,4.7661e+05,31.631 -20000,0.20245,0.0019876,0.05,4.8572e+05,30.032 -20000,0.20245,0.0019876,0.05,4.8572e+05,30.032 -20000,0.20245,0.0019876,0.05,4.8572e+05,30.032 -20000,0.20245,0.0019876,0.05,4.8572e+05,30.032 -20000,0.20645,0.0020269,0.05,4.9439e+05,28.469 -20000,0.20645,0.0020269,0.05,4.9439e+05,28.469 -20000,0.20645,0.0020269,0.05,4.9439e+05,28.469 -20000,0.20645,0.0020269,0.05,4.9439e+05,28.469 -20000,0.21053,0.0020669,0.05,5.026e+05,26.943 -20000,0.21053,0.0020669,0.05,5.026e+05,26.943 -20000,0.21053,0.0020669,0.05,5.026e+05,26.943 -20000,0.21053,0.0020669,0.05,5.026e+05,26.943 -20000,0.21469,0.0021078,0.05,5.1034e+05,25.455 -20000,0.21469,0.0021078,0.05,5.1034e+05,25.455 -20000,0.21469,0.0021078,0.05,5.1034e+05,25.455 -20000,0.21469,0.0021078,0.05,5.1034e+05,25.455 -20000,0.21893,0.0021494,0.05,5.1758e+05,24.006 -20000,0.21893,0.0021494,0.05,5.1758e+05,24.006 -20000,0.21893,0.0021494,0.05,5.1758e+05,24.006 -20000,0.21893,0.0021494,0.05,5.1758e+05,24.006 -20000,0.21893,0.0021494,0.05,5.1758e+05,24.006 -20000,0.22326,0.0021919,0.05,5.2432e+05,22.598 -20000,0.22326,0.0021919,0.05,5.2432e+05,22.598 -20000,0.22326,0.0021919,0.05,5.2432e+05,22.598 -20000,0.22326,0.0021919,0.05,5.2432e+05,22.598 -20000,0.22767,0.0022352,0.05,5.3053e+05,21.232 -20000,0.22767,0.0022352,0.05,5.3053e+05,21.232 -20000,0.22767,0.0022352,0.05,5.3053e+05,21.232 -20000,0.22767,0.0022352,0.05,5.3053e+05,21.232 -20000,0.23217,0.0022794,0.05,5.3622e+05,19.909 -20000,0.23217,0.0022794,0.05,5.3622e+05,19.909 -20000,0.23217,0.0022794,0.05,5.3622e+05,19.909 -20000,0.23217,0.0022794,0.05,5.3622e+05,19.909 -20000,0.23217,0.0022794,0.05,5.3622e+05,19.909 -20000,0.23676,0.0023244,0.05,5.4135e+05,18.63 -20000,0.23676,0.0023244,0.05,5.4135e+05,18.63 -20000,0.23676,0.0023244,0.05,5.4135e+05,18.63 -20000,0.23676,0.0023244,0.05,5.4135e+05,18.63 -20000,0.23676,0.0023244,0.05,5.4135e+05,18.63 -20000,0.24144,0.0023704,0.05,5.4593e+05,17.395 -20000,0.24144,0.0023704,0.05,5.4593e+05,17.395 -20000,0.24144,0.0023704,0.05,5.4593e+05,17.395 -20000,0.24144,0.0023704,0.05,5.4593e+05,17.395 -20000,0.24621,0.0024172,0.05,5.4994e+05,16.207 -20000,0.24621,0.0024172,0.05,5.4994e+05,16.207 -20000,0.24621,0.0024172,0.05,5.4994e+05,16.207 -20000,0.24621,0.0024172,0.05,5.4994e+05,16.207 -20000,0.24621,0.0024172,0.05,5.4994e+05,16.207 -20000,0.25108,0.002465,0.05,5.5337e+05,15.065 -20000,0.25108,0.002465,0.05,5.5337e+05,15.065 -20000,0.25108,0.002465,0.05,5.5337e+05,15.065 -20000,0.25108,0.002465,0.05,5.5337e+05,15.065 -20000,0.25108,0.002465,0.05,5.5337e+05,15.065 -20000,0.25604,0.0025137,0.05,5.5621e+05,13.97 -20000,0.25604,0.0025137,0.05,5.5621e+05,13.97 -20000,0.25604,0.0025137,0.05,5.5621e+05,13.97 -20000,0.25604,0.0025137,0.05,5.5621e+05,13.97 -20000,0.25604,0.0025137,0.05,5.5621e+05,13.97 -20000,0.2611,0.0025634,0.05,5.5847e+05,12.923 -20000,0.2611,0.0025634,0.05,5.5847e+05,12.923 -20000,0.2611,0.0025634,0.05,5.5847e+05,12.923 -20000,0.2611,0.0025634,0.05,5.5847e+05,12.923 -20000,0.2611,0.0025634,0.05,5.5847e+05,12.923 -20000,0.26626,0.0026141,0.05,5.6014e+05,11.924 -20000,0.26626,0.0026141,0.05,5.6014e+05,11.924 -20000,0.26626,0.0026141,0.05,5.6014e+05,11.924 -20000,0.26626,0.0026141,0.05,5.6014e+05,11.924 -20000,0.26626,0.0026141,0.05,5.6014e+05,11.924 -20000,0.27153,0.0026658,0.05,5.6121e+05,10.972 -20000,0.27153,0.0026658,0.05,5.6121e+05,10.972 -20000,0.27153,0.0026658,0.05,5.6121e+05,10.972 -20000,0.27153,0.0026658,0.05,5.6121e+05,10.972 -20000,0.27153,0.0026658,0.05,5.6121e+05,10.972 -20000,0.27153,0.0026658,0.05,5.6121e+05,10.972 -20000,0.2769,0.0027185,0.05,5.6168e+05,10.069 -20000,0.2769,0.0027185,0.05,5.6168e+05,10.069 -20000,0.2769,0.0027185,0.05,5.6168e+05,10.069 -20000,0.2769,0.0027185,0.05,5.6168e+05,10.069 -20000,0.2769,0.0027185,0.05,5.6168e+05,10.069 -20000,0.28237,0.0027723,0.05,5.6156e+05,9.2141 -20000,0.28237,0.0027723,0.05,5.6156e+05,9.2141 -20000,0.28237,0.0027723,0.05,5.6156e+05,9.2141 -20000,0.28237,0.0027723,0.05,5.6156e+05,9.2141 -20000,0.28237,0.0027723,0.05,5.6156e+05,9.2141 -20000,0.28237,0.0027723,0.05,5.6156e+05,9.2141 -20000,0.28796,0.0028271,0.05,5.6085e+05,8.4069 -20000,0.28796,0.0028271,0.05,5.6085e+05,8.4069 -20000,0.28796,0.0028271,0.05,5.6085e+05,8.4069 -20000,0.28796,0.0028271,0.05,5.6085e+05,8.4069 -20000,0.28796,0.0028271,0.05,5.6085e+05,8.4069 -20000,0.29365,0.002883,0.05,5.5955e+05,7.6469 -20000,0.29365,0.002883,0.05,5.5955e+05,7.6469 -20000,0.29365,0.002883,0.05,5.5955e+05,7.6469 -20000,0.29365,0.002883,0.05,5.5955e+05,7.6469 -20000,0.29365,0.002883,0.05,5.5955e+05,7.6469 -20000,0.29365,0.002883,0.05,5.5955e+05,7.6469 -20000,0.29946,0.00294,0.05,5.5768e+05,6.9336 -20000,0.29946,0.00294,0.05,5.5768e+05,6.9336 -20000,0.29946,0.00294,0.05,5.5768e+05,6.9336 -20000,0.29946,0.00294,0.05,5.5768e+05,6.9336 -20000,0.29946,0.00294,0.05,5.5768e+05,6.9336 -20000,0.29946,0.00294,0.05,5.5768e+05,6.9336 -20000,0.30538,0.0029982,0.05,5.5524e+05,6.2663 -20000,0.30538,0.0029982,0.05,5.5524e+05,6.2663 -20000,0.30538,0.0029982,0.05,5.5524e+05,6.2663 -20000,0.30538,0.0029982,0.05,5.5524e+05,6.2663 -20000,0.30538,0.0029982,0.05,5.5524e+05,6.2663 -20000,0.30538,0.0029982,0.05,5.5524e+05,6.2663 -20000,0.31142,0.0030575,0.05,5.5225e+05,5.6441 -20000,0.31142,0.0030575,0.05,5.5225e+05,5.6441 -20000,0.31142,0.0030575,0.05,5.5225e+05,5.6441 -20000,0.31142,0.0030575,0.05,5.5225e+05,5.6441 -20000,0.31142,0.0030575,0.05,5.5225e+05,5.6441 -20000,0.31142,0.0030575,0.05,5.5225e+05,5.6441 -20000,0.31758,0.003118,0.05,5.4871e+05,5.0659 -20000,0.31758,0.003118,0.05,5.4871e+05,5.0659 -20000,0.31758,0.003118,0.05,5.4871e+05,5.0659 -20000,0.31758,0.003118,0.05,5.4871e+05,5.0659 -20000,0.31758,0.003118,0.05,5.4871e+05,5.0659 -20000,0.31758,0.003118,0.05,5.4871e+05,5.0659 -20000,0.32386,0.0031796,0.05,5.4465e+05,4.5304 -20000,0.32386,0.0031796,0.05,5.4465e+05,4.5304 -20000,0.32386,0.0031796,0.05,5.4465e+05,4.5304 -20000,0.32386,0.0031796,0.05,5.4465e+05,4.5304 -20000,0.32386,0.0031796,0.05,5.4465e+05,4.5304 -20000,0.32386,0.0031796,0.05,5.4465e+05,4.5304 -20000,0.32386,0.0031796,0.05,5.4465e+05,4.5304 -20000,0.33027,0.0032425,0.05,5.4008e+05,4.0363 -20000,0.33027,0.0032425,0.05,5.4008e+05,4.0363 -20000,0.33027,0.0032425,0.05,5.4008e+05,4.0363 -20000,0.33027,0.0032425,0.05,5.4008e+05,4.0363 -20000,0.33027,0.0032425,0.05,5.4008e+05,4.0363 -20000,0.33027,0.0032425,0.05,5.4008e+05,4.0363 -20000,0.3368,0.0033067,0.05,5.3502e+05,3.5822 -20000,0.3368,0.0033067,0.05,5.3502e+05,3.5822 -20000,0.3368,0.0033067,0.05,5.3502e+05,3.5822 -20000,0.3368,0.0033067,0.05,5.3502e+05,3.5822 -20000,0.3368,0.0033067,0.05,5.3502e+05,3.5822 -20000,0.3368,0.0033067,0.05,5.3502e+05,3.5822 -20000,0.3368,0.0033067,0.05,5.3502e+05,3.5822 -20000,0.34347,0.0033721,0.05,5.2948e+05,3.1664 -20000,0.34347,0.0033721,0.05,5.2948e+05,3.1664 -20000,0.34347,0.0033721,0.05,5.2948e+05,3.1664 -20000,0.34347,0.0033721,0.05,5.2948e+05,3.1664 -20000,0.34347,0.0033721,0.05,5.2948e+05,3.1664 -20000,0.34347,0.0033721,0.05,5.2948e+05,3.1664 -20000,0.35026,0.0034388,0.05,5.235e+05,2.7873 -20000,0.35026,0.0034388,0.05,5.235e+05,2.7873 -20000,0.35026,0.0034388,0.05,5.235e+05,2.7873 -20000,0.35026,0.0034388,0.05,5.235e+05,2.7873 -20000,0.35026,0.0034388,0.05,5.235e+05,2.7873 -20000,0.35026,0.0034388,0.05,5.235e+05,2.7873 -20000,0.35026,0.0034388,0.05,5.235e+05,2.7873 -20000,0.35719,0.0035069,0.05,5.1709e+05,2.4431 -20000,0.35719,0.0035069,0.05,5.1709e+05,2.4431 -20000,0.35719,0.0035069,0.05,5.1709e+05,2.4431 -20000,0.35719,0.0035069,0.05,5.1709e+05,2.4431 -20000,0.35719,0.0035069,0.05,5.1709e+05,2.4431 -20000,0.35719,0.0035069,0.05,5.1709e+05,2.4431 -20000,0.35719,0.0035069,0.05,5.1709e+05,2.4431 -20000,0.36426,0.0035762,0.05,5.1027e+05,2.132 -20000,0.36426,0.0035762,0.05,5.1027e+05,2.132 -20000,0.36426,0.0035762,0.05,5.1027e+05,2.132 -20000,0.36426,0.0035762,0.05,5.1027e+05,2.132 -20000,0.36426,0.0035762,0.05,5.1027e+05,2.132 -20000,0.36426,0.0035762,0.05,5.1027e+05,2.132 -20000,0.36426,0.0035762,0.05,5.1027e+05,2.132 -20000,0.37147,0.003647,0.05,5.0307e+05,1.8519 -20000,0.37147,0.003647,0.05,5.0307e+05,1.8519 -20000,0.37147,0.003647,0.05,5.0307e+05,1.8519 -20000,0.37147,0.003647,0.05,5.0307e+05,1.8519 -20000,0.37147,0.003647,0.05,5.0307e+05,1.8519 -20000,0.37147,0.003647,0.05,5.0307e+05,1.8519 -20000,0.37147,0.003647,0.05,5.0307e+05,1.8519 -20000,0.37147,0.003647,0.05,5.0307e+05,1.8519 -20000,0.37882,0.0037192,0.05,4.9552e+05,1.6011 -20000,0.37882,0.0037192,0.05,4.9552e+05,1.6011 -20000,0.37882,0.0037192,0.05,4.9552e+05,1.6011 -20000,0.37882,0.0037192,0.05,4.9552e+05,1.6011 -20000,0.37882,0.0037192,0.05,4.9552e+05,1.6011 -20000,0.37882,0.0037192,0.05,4.9552e+05,1.6011 -20000,0.37882,0.0037192,0.05,4.9552e+05,1.6011 -20000,0.38632,0.0037928,0.05,4.8763e+05,1.3775 -20000,0.38632,0.0037928,0.05,4.8763e+05,1.3775 -20000,0.38632,0.0037928,0.05,4.8763e+05,1.3775 -20000,0.38632,0.0037928,0.05,4.8763e+05,1.3775 -20000,0.38632,0.0037928,0.05,4.8763e+05,1.3775 -20000,0.38632,0.0037928,0.05,4.8763e+05,1.3775 -20000,0.38632,0.0037928,0.05,4.8763e+05,1.3775 -20000,0.38632,0.0037928,0.05,4.8763e+05,1.3775 -20000,0.39396,0.0038678,0.05,4.7944e+05,1.1792 -20000,0.39396,0.0038678,0.05,4.7944e+05,1.1792 -20000,0.39396,0.0038678,0.05,4.7944e+05,1.1792 -20000,0.39396,0.0038678,0.05,4.7944e+05,1.1792 -20000,0.39396,0.0038678,0.05,4.7944e+05,1.1792 -20000,0.39396,0.0038678,0.05,4.7944e+05,1.1792 -20000,0.39396,0.0038678,0.05,4.7944e+05,1.1792 -20000,0.40176,0.0039444,0.05,4.7097e+05,1.0042 -20000,0.40176,0.0039444,0.05,4.7097e+05,1.0042 -20000,0.40176,0.0039444,0.05,4.7097e+05,1.0042 -20000,0.40176,0.0039444,0.05,4.7097e+05,1.0042 -20000,0.40176,0.0039444,0.05,4.7097e+05,1.0042 -20000,0.40176,0.0039444,0.05,4.7097e+05,1.0042 -20000,0.40176,0.0039444,0.05,4.7097e+05,1.0042 -20000,0.40176,0.0039444,0.05,4.7097e+05,1.0042 -20000,0.40971,0.0040224,0.05,4.6223e+05,0.85065 -20000,0.40971,0.0040224,0.05,4.6223e+05,0.85065 -20000,0.40971,0.0040224,0.05,4.6223e+05,0.85065 -20000,0.40971,0.0040224,0.05,4.6223e+05,0.85065 -20000,0.40971,0.0040224,0.05,4.6223e+05,0.85065 -20000,0.40971,0.0040224,0.05,4.6223e+05,0.85065 -20000,0.40971,0.0040224,0.05,4.6223e+05,0.85065 -20000,0.40971,0.0040224,0.05,4.6223e+05,0.85065 -20000,0.41782,0.004102,0.05,4.5326e+05,0.71658 -20000,0.41782,0.004102,0.05,4.5326e+05,0.71658 -20000,0.41782,0.004102,0.05,4.5326e+05,0.71658 -20000,0.41782,0.004102,0.05,4.5326e+05,0.71658 -20000,0.41782,0.004102,0.05,4.5326e+05,0.71658 -20000,0.41782,0.004102,0.05,4.5326e+05,0.71658 -20000,0.41782,0.004102,0.05,4.5326e+05,0.71658 -20000,0.41782,0.004102,0.05,4.5326e+05,0.71658 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.42609,0.0041832,0.05,4.4408e+05,0.60022 -20000,0.43452,0.004266,0.05,4.3471e+05,0.49981 -20000,0.43452,0.004266,0.05,4.3471e+05,0.49981 -20000,0.43452,0.004266,0.05,4.3471e+05,0.49981 -20000,0.43452,0.004266,0.05,4.3471e+05,0.49981 -20000,0.43452,0.004266,0.05,4.3471e+05,0.49981 -20000,0.43452,0.004266,0.05,4.3471e+05,0.49981 -20000,0.43452,0.004266,0.05,4.3471e+05,0.49981 -20000,0.43452,0.004266,0.05,4.3471e+05,0.49981 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.44312,0.0043505,0.05,4.2517e+05,0.41369 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.45189,0.0044366,0.05,4.1547e+05,0.34028 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46084,0.0045244,0.05,4.0565e+05,0.27811 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.46996,0.004614,0.05,3.9572e+05,0.2258 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.47926,0.0047053,0.05,3.8568e+05,0.18209 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.48875,0.0047985,0.05,3.7556e+05,0.14582 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.49843,0.0048935,0.05,3.6538e+05,0.11594 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.5083,0.0049903,0.05,3.5513e+05,0.091499 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.51836,0.0050891,0.05,3.4484e+05,0.071665 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.52862,0.0051899,0.05,3.3451e+05,0.055694 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.53909,0.0052927,0.05,3.2416e+05,0.042935 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.54976,0.0053975,0.05,3.1378e+05,0.032828 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.56065,0.0055043,0.05,3.0338e+05,0.024888 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.57175,0.0056133,0.05,2.9298e+05,0.018705 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.58307,0.0057245,0.05,2.8257e+05,0.013933 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.59462,0.0058378,0.05,2.7216e+05,0.010284 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.60639,0.0059535,0.05,2.6175e+05,0.0075198 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.6184,0.0060714,0.05,2.5134e+05,0.0054458 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.63065,0.0061916,0.05,2.4094e+05,0.003905 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.64314,0.0063142,0.05,2.3055e+05,0.0027719 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.65588,0.0064393,0.05,2.2018e+05,0.0019473 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.66887,0.0065668,0.05,2.0981e+05,0.0013535 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.68211,0.0066969,0.05,1.9945e+05,0.00093059 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.69562,0.0068295,0.05,1.8911e+05,0.00063272 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.7094,0.0069648,0.05,1.7878e+05,0.00042531 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.72345,0.0071027,0.05,1.6846e+05,0.00028257 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.73778,0.0072434,0.05,1.5816e+05,0.0001855 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7524,0.0073869,0.05,1.4787e+05,0.0001203 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7673,0.0075332,0.05,1.3759e+05,7.704e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.7825,0.0076824,0.05,1.2733e+05,4.871e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.798,0.0078346,0.05,1.1708e+05,3.0398e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.81381,0.0079898,0.05,1.0684e+05,1.8717e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.82993,0.0081481,0.05,96621,1.1369e-05 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.84637,0.0083095,0.05,86409,6.809e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.86314,0.0084741,0.05,76208,4.02e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.88024,0.008642,0.05,66018,2.3386e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.89767,0.0088132,0.05,55836,1.3395e-06 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.91546,0.0089878,0.05,45663,7.542e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.93359,0.0091658,0.05,35497,4.1541e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.95209,0.0093474,0.05,25337,2.2017e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.97095,0.0095326,0.05,15180,1.0526e-07 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,0.99019,0.0097215,0.05,5026.7,3.0759e-08 -20000,nan,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_5.csv b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_5.csv deleted file mode 100644 index 00f866b98e9..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/data_5.csv +++ /dev/null @@ -1,1002 +0,0 @@ -Time,"elementCenter:0","elementCenter:1","elementCenter:2","pressure","temperature" -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,nan,nan,nan,nan,nan -50000,0.10099,0.0009915,0.05,4623.8,99.199 -50000,0.10099,0.0009915,0.05,4623.8,99.199 -50000,0.10299,0.0010111,0.05,13685,97.628 -50000,0.10299,0.0010111,0.05,13685,97.628 -50000,0.10499,0.0010308,0.05,22567,96.087 -50000,0.10499,0.0010308,0.05,22567,96.087 -50000,0.10734,0.0010538,0.05,32796,94.311 -50000,0.10734,0.0010538,0.05,32796,94.311 -50000,0.10734,0.0010538,0.05,32796,94.311 -50000,0.11004,0.0010803,0.05,44244,92.322 -50000,0.11004,0.0010803,0.05,44244,92.322 -50000,0.11004,0.0010803,0.05,44244,92.322 -50000,0.11274,0.0011068,0.05,55397,90.382 -50000,0.11274,0.0011068,0.05,55397,90.382 -50000,0.11274,0.0011068,0.05,55397,90.382 -50000,0.11544,0.0011334,0.05,66268,88.489 -50000,0.11544,0.0011334,0.05,66268,88.489 -50000,0.11814,0.0011599,0.05,76867,86.641 -50000,0.11814,0.0011599,0.05,76867,86.641 -50000,0.11814,0.0011599,0.05,76867,86.641 -50000,0.12084,0.0011864,0.05,87204,84.836 -50000,0.12084,0.0011864,0.05,87204,84.836 -50000,0.12084,0.0011864,0.05,87204,84.836 -50000,0.12354,0.0012129,0.05,97287,83.072 -50000,0.12354,0.0012129,0.05,97287,83.072 -50000,0.12624,0.0012394,0.05,1.0713e+05,81.348 -50000,0.12624,0.0012394,0.05,1.0713e+05,81.348 -50000,0.12624,0.0012394,0.05,1.0713e+05,81.348 -50000,0.12894,0.0012659,0.05,1.1673e+05,79.663 -50000,0.12894,0.0012659,0.05,1.1673e+05,79.663 -50000,0.12894,0.0012659,0.05,1.1673e+05,79.663 -50000,0.13164,0.0012924,0.05,1.261e+05,78.015 -50000,0.13164,0.0012924,0.05,1.261e+05,78.015 -50000,0.1343,0.0013185,0.05,1.3512e+05,76.425 -50000,0.1343,0.0013185,0.05,1.3512e+05,76.425 -50000,0.1343,0.0013185,0.05,1.3512e+05,76.425 -50000,0.13695,0.0013445,0.05,1.4388e+05,74.877 -50000,0.13695,0.0013445,0.05,1.4388e+05,74.877 -50000,0.13695,0.0013445,0.05,1.4388e+05,74.877 -50000,0.13965,0.001371,0.05,1.5262e+05,73.33 -50000,0.13965,0.001371,0.05,1.5262e+05,73.33 -50000,0.13965,0.001371,0.05,1.5262e+05,73.33 -50000,0.1424,0.0013981,0.05,1.6131e+05,71.786 -50000,0.1424,0.0013981,0.05,1.6131e+05,71.786 -50000,0.14521,0.0014256,0.05,1.6997e+05,70.246 -50000,0.14521,0.0014256,0.05,1.6997e+05,70.246 -50000,0.14521,0.0014256,0.05,1.6997e+05,70.246 -50000,0.14807,0.0014538,0.05,1.7857e+05,68.708 -50000,0.14807,0.0014538,0.05,1.7857e+05,68.708 -50000,0.14807,0.0014538,0.05,1.7857e+05,68.708 -50000,0.151,0.0014824,0.05,1.8713e+05,67.174 -50000,0.151,0.0014824,0.05,1.8713e+05,67.174 -50000,0.151,0.0014824,0.05,1.8713e+05,67.174 -50000,0.15397,0.0015117,0.05,1.9564e+05,65.644 -50000,0.15397,0.0015117,0.05,1.9564e+05,65.644 -50000,0.15397,0.0015117,0.05,1.9564e+05,65.644 -50000,0.15701,0.0015415,0.05,2.0409e+05,64.118 -50000,0.15701,0.0015415,0.05,2.0409e+05,64.118 -50000,0.15701,0.0015415,0.05,2.0409e+05,64.118 -50000,0.16011,0.0015719,0.05,2.1248e+05,62.596 -50000,0.16011,0.0015719,0.05,2.1248e+05,62.596 -50000,0.16011,0.0015719,0.05,2.1248e+05,62.596 -50000,0.16327,0.001603,0.05,2.208e+05,61.08 -50000,0.16327,0.001603,0.05,2.208e+05,61.08 -50000,0.16327,0.001603,0.05,2.208e+05,61.08 -50000,0.16649,0.0016346,0.05,2.2905e+05,59.568 -50000,0.16649,0.0016346,0.05,2.2905e+05,59.568 -50000,0.16649,0.0016346,0.05,2.2905e+05,59.568 -50000,0.16649,0.0016346,0.05,2.2905e+05,59.568 -50000,0.16978,0.0016669,0.05,2.3723e+05,58.063 -50000,0.16978,0.0016669,0.05,2.3723e+05,58.063 -50000,0.16978,0.0016669,0.05,2.3723e+05,58.063 -50000,0.17313,0.0016998,0.05,2.4532e+05,56.564 -50000,0.17313,0.0016998,0.05,2.4532e+05,56.564 -50000,0.17313,0.0016998,0.05,2.4532e+05,56.564 -50000,0.17655,0.0017333,0.05,2.5332e+05,55.071 -50000,0.17655,0.0017333,0.05,2.5332e+05,55.071 -50000,0.17655,0.0017333,0.05,2.5332e+05,55.071 -50000,0.17655,0.0017333,0.05,2.5332e+05,55.071 -50000,0.18004,0.0017676,0.05,2.6124e+05,53.586 -50000,0.18004,0.0017676,0.05,2.6124e+05,53.586 -50000,0.18004,0.0017676,0.05,2.6124e+05,53.586 -50000,0.18359,0.0018025,0.05,2.6905e+05,52.108 -50000,0.18359,0.0018025,0.05,2.6905e+05,52.108 -50000,0.18359,0.0018025,0.05,2.6905e+05,52.108 -50000,0.18359,0.0018025,0.05,2.6905e+05,52.108 -50000,0.18722,0.001838,0.05,2.7676e+05,50.639 -50000,0.18722,0.001838,0.05,2.7676e+05,50.639 -50000,0.18722,0.001838,0.05,2.7676e+05,50.639 -50000,0.18722,0.001838,0.05,2.7676e+05,50.639 -50000,0.19091,0.0018743,0.05,2.8435e+05,49.178 -50000,0.19091,0.0018743,0.05,2.8435e+05,49.178 -50000,0.19091,0.0018743,0.05,2.8435e+05,49.178 -50000,0.19468,0.0019114,0.05,2.9183e+05,47.727 -50000,0.19468,0.0019114,0.05,2.9183e+05,47.727 -50000,0.19468,0.0019114,0.05,2.9183e+05,47.727 -50000,0.19468,0.0019114,0.05,2.9183e+05,47.727 -50000,0.19853,0.0019491,0.05,2.9918e+05,46.285 -50000,0.19853,0.0019491,0.05,2.9918e+05,46.285 -50000,0.19853,0.0019491,0.05,2.9918e+05,46.285 -50000,0.19853,0.0019491,0.05,2.9918e+05,46.285 -50000,0.20245,0.0019876,0.05,3.0639e+05,44.854 -50000,0.20245,0.0019876,0.05,3.0639e+05,44.854 -50000,0.20245,0.0019876,0.05,3.0639e+05,44.854 -50000,0.20245,0.0019876,0.05,3.0639e+05,44.854 -50000,0.20645,0.0020269,0.05,3.1347e+05,43.434 -50000,0.20645,0.0020269,0.05,3.1347e+05,43.434 -50000,0.20645,0.0020269,0.05,3.1347e+05,43.434 -50000,0.20645,0.0020269,0.05,3.1347e+05,43.434 -50000,0.21053,0.0020669,0.05,3.2039e+05,42.025 -50000,0.21053,0.0020669,0.05,3.2039e+05,42.025 -50000,0.21053,0.0020669,0.05,3.2039e+05,42.025 -50000,0.21053,0.0020669,0.05,3.2039e+05,42.025 -50000,0.21469,0.0021078,0.05,3.2716e+05,40.63 -50000,0.21469,0.0021078,0.05,3.2716e+05,40.63 -50000,0.21469,0.0021078,0.05,3.2716e+05,40.63 -50000,0.21469,0.0021078,0.05,3.2716e+05,40.63 -50000,0.21893,0.0021494,0.05,3.3376e+05,39.247 -50000,0.21893,0.0021494,0.05,3.3376e+05,39.247 -50000,0.21893,0.0021494,0.05,3.3376e+05,39.247 -50000,0.21893,0.0021494,0.05,3.3376e+05,39.247 -50000,0.21893,0.0021494,0.05,3.3376e+05,39.247 -50000,0.22326,0.0021919,0.05,3.4019e+05,37.878 -50000,0.22326,0.0021919,0.05,3.4019e+05,37.878 -50000,0.22326,0.0021919,0.05,3.4019e+05,37.878 -50000,0.22326,0.0021919,0.05,3.4019e+05,37.878 -50000,0.22767,0.0022352,0.05,3.4643e+05,36.524 -50000,0.22767,0.0022352,0.05,3.4643e+05,36.524 -50000,0.22767,0.0022352,0.05,3.4643e+05,36.524 -50000,0.22767,0.0022352,0.05,3.4643e+05,36.524 -50000,0.23217,0.0022794,0.05,3.5248e+05,35.185 -50000,0.23217,0.0022794,0.05,3.5248e+05,35.185 -50000,0.23217,0.0022794,0.05,3.5248e+05,35.185 -50000,0.23217,0.0022794,0.05,3.5248e+05,35.185 -50000,0.23217,0.0022794,0.05,3.5248e+05,35.185 -50000,0.23676,0.0023244,0.05,3.5832e+05,33.862 -50000,0.23676,0.0023244,0.05,3.5832e+05,33.862 -50000,0.23676,0.0023244,0.05,3.5832e+05,33.862 -50000,0.23676,0.0023244,0.05,3.5832e+05,33.862 -50000,0.23676,0.0023244,0.05,3.5832e+05,33.862 -50000,0.24144,0.0023704,0.05,3.6396e+05,32.556 -50000,0.24144,0.0023704,0.05,3.6396e+05,32.556 -50000,0.24144,0.0023704,0.05,3.6396e+05,32.556 -50000,0.24144,0.0023704,0.05,3.6396e+05,32.556 -50000,0.24621,0.0024172,0.05,3.6937e+05,31.267 -50000,0.24621,0.0024172,0.05,3.6937e+05,31.267 -50000,0.24621,0.0024172,0.05,3.6937e+05,31.267 -50000,0.24621,0.0024172,0.05,3.6937e+05,31.267 -50000,0.24621,0.0024172,0.05,3.6937e+05,31.267 -50000,0.25108,0.002465,0.05,3.7455e+05,29.997 -50000,0.25108,0.002465,0.05,3.7455e+05,29.997 -50000,0.25108,0.002465,0.05,3.7455e+05,29.997 -50000,0.25108,0.002465,0.05,3.7455e+05,29.997 -50000,0.25108,0.002465,0.05,3.7455e+05,29.997 -50000,0.25604,0.0025137,0.05,3.7949e+05,28.746 -50000,0.25604,0.0025137,0.05,3.7949e+05,28.746 -50000,0.25604,0.0025137,0.05,3.7949e+05,28.746 -50000,0.25604,0.0025137,0.05,3.7949e+05,28.746 -50000,0.25604,0.0025137,0.05,3.7949e+05,28.746 -50000,0.2611,0.0025634,0.05,3.8418e+05,27.516 -50000,0.2611,0.0025634,0.05,3.8418e+05,27.516 -50000,0.2611,0.0025634,0.05,3.8418e+05,27.516 -50000,0.2611,0.0025634,0.05,3.8418e+05,27.516 -50000,0.2611,0.0025634,0.05,3.8418e+05,27.516 -50000,0.26626,0.0026141,0.05,3.8861e+05,26.306 -50000,0.26626,0.0026141,0.05,3.8861e+05,26.306 -50000,0.26626,0.0026141,0.05,3.8861e+05,26.306 -50000,0.26626,0.0026141,0.05,3.8861e+05,26.306 -50000,0.26626,0.0026141,0.05,3.8861e+05,26.306 -50000,0.27153,0.0026658,0.05,3.9276e+05,25.118 -50000,0.27153,0.0026658,0.05,3.9276e+05,25.118 -50000,0.27153,0.0026658,0.05,3.9276e+05,25.118 -50000,0.27153,0.0026658,0.05,3.9276e+05,25.118 -50000,0.27153,0.0026658,0.05,3.9276e+05,25.118 -50000,0.27153,0.0026658,0.05,3.9276e+05,25.118 -50000,0.2769,0.0027185,0.05,3.9664e+05,23.952 -50000,0.2769,0.0027185,0.05,3.9664e+05,23.952 -50000,0.2769,0.0027185,0.05,3.9664e+05,23.952 -50000,0.2769,0.0027185,0.05,3.9664e+05,23.952 -50000,0.2769,0.0027185,0.05,3.9664e+05,23.952 -50000,0.28237,0.0027723,0.05,4.0022e+05,22.81 -50000,0.28237,0.0027723,0.05,4.0022e+05,22.81 -50000,0.28237,0.0027723,0.05,4.0022e+05,22.81 -50000,0.28237,0.0027723,0.05,4.0022e+05,22.81 -50000,0.28237,0.0027723,0.05,4.0022e+05,22.81 -50000,0.28237,0.0027723,0.05,4.0022e+05,22.81 -50000,0.28796,0.0028271,0.05,4.035e+05,21.692 -50000,0.28796,0.0028271,0.05,4.035e+05,21.692 -50000,0.28796,0.0028271,0.05,4.035e+05,21.692 -50000,0.28796,0.0028271,0.05,4.035e+05,21.692 -50000,0.28796,0.0028271,0.05,4.035e+05,21.692 -50000,0.29365,0.002883,0.05,4.0648e+05,20.599 -50000,0.29365,0.002883,0.05,4.0648e+05,20.599 -50000,0.29365,0.002883,0.05,4.0648e+05,20.599 -50000,0.29365,0.002883,0.05,4.0648e+05,20.599 -50000,0.29365,0.002883,0.05,4.0648e+05,20.599 -50000,0.29365,0.002883,0.05,4.0648e+05,20.599 -50000,0.29946,0.00294,0.05,4.0913e+05,19.532 -50000,0.29946,0.00294,0.05,4.0913e+05,19.532 -50000,0.29946,0.00294,0.05,4.0913e+05,19.532 -50000,0.29946,0.00294,0.05,4.0913e+05,19.532 -50000,0.29946,0.00294,0.05,4.0913e+05,19.532 -50000,0.29946,0.00294,0.05,4.0913e+05,19.532 -50000,0.30538,0.0029982,0.05,4.1145e+05,18.491 -50000,0.30538,0.0029982,0.05,4.1145e+05,18.491 -50000,0.30538,0.0029982,0.05,4.1145e+05,18.491 -50000,0.30538,0.0029982,0.05,4.1145e+05,18.491 -50000,0.30538,0.0029982,0.05,4.1145e+05,18.491 -50000,0.30538,0.0029982,0.05,4.1145e+05,18.491 -50000,0.31142,0.0030575,0.05,4.1343e+05,17.477 -50000,0.31142,0.0030575,0.05,4.1343e+05,17.477 -50000,0.31142,0.0030575,0.05,4.1343e+05,17.477 -50000,0.31142,0.0030575,0.05,4.1343e+05,17.477 -50000,0.31142,0.0030575,0.05,4.1343e+05,17.477 -50000,0.31142,0.0030575,0.05,4.1343e+05,17.477 -50000,0.31758,0.003118,0.05,4.1507e+05,16.491 -50000,0.31758,0.003118,0.05,4.1507e+05,16.491 -50000,0.31758,0.003118,0.05,4.1507e+05,16.491 -50000,0.31758,0.003118,0.05,4.1507e+05,16.491 -50000,0.31758,0.003118,0.05,4.1507e+05,16.491 -50000,0.31758,0.003118,0.05,4.1507e+05,16.491 -50000,0.32386,0.0031796,0.05,4.1635e+05,15.534 -50000,0.32386,0.0031796,0.05,4.1635e+05,15.534 -50000,0.32386,0.0031796,0.05,4.1635e+05,15.534 -50000,0.32386,0.0031796,0.05,4.1635e+05,15.534 -50000,0.32386,0.0031796,0.05,4.1635e+05,15.534 -50000,0.32386,0.0031796,0.05,4.1635e+05,15.534 -50000,0.32386,0.0031796,0.05,4.1635e+05,15.534 -50000,0.33027,0.0032425,0.05,4.1727e+05,14.605 -50000,0.33027,0.0032425,0.05,4.1727e+05,14.605 -50000,0.33027,0.0032425,0.05,4.1727e+05,14.605 -50000,0.33027,0.0032425,0.05,4.1727e+05,14.605 -50000,0.33027,0.0032425,0.05,4.1727e+05,14.605 -50000,0.33027,0.0032425,0.05,4.1727e+05,14.605 -50000,0.3368,0.0033067,0.05,4.1782e+05,13.707 -50000,0.3368,0.0033067,0.05,4.1782e+05,13.707 -50000,0.3368,0.0033067,0.05,4.1782e+05,13.707 -50000,0.3368,0.0033067,0.05,4.1782e+05,13.707 -50000,0.3368,0.0033067,0.05,4.1782e+05,13.707 -50000,0.3368,0.0033067,0.05,4.1782e+05,13.707 -50000,0.3368,0.0033067,0.05,4.1782e+05,13.707 -50000,0.34347,0.0033721,0.05,4.1799e+05,12.839 -50000,0.34347,0.0033721,0.05,4.1799e+05,12.839 -50000,0.34347,0.0033721,0.05,4.1799e+05,12.839 -50000,0.34347,0.0033721,0.05,4.1799e+05,12.839 -50000,0.34347,0.0033721,0.05,4.1799e+05,12.839 -50000,0.34347,0.0033721,0.05,4.1799e+05,12.839 -50000,0.35026,0.0034388,0.05,4.1778e+05,12.002 -50000,0.35026,0.0034388,0.05,4.1778e+05,12.002 -50000,0.35026,0.0034388,0.05,4.1778e+05,12.002 -50000,0.35026,0.0034388,0.05,4.1778e+05,12.002 -50000,0.35026,0.0034388,0.05,4.1778e+05,12.002 -50000,0.35026,0.0034388,0.05,4.1778e+05,12.002 -50000,0.35026,0.0034388,0.05,4.1778e+05,12.002 -50000,0.35719,0.0035069,0.05,4.1719e+05,11.195 -50000,0.35719,0.0035069,0.05,4.1719e+05,11.195 -50000,0.35719,0.0035069,0.05,4.1719e+05,11.195 -50000,0.35719,0.0035069,0.05,4.1719e+05,11.195 -50000,0.35719,0.0035069,0.05,4.1719e+05,11.195 -50000,0.35719,0.0035069,0.05,4.1719e+05,11.195 -50000,0.35719,0.0035069,0.05,4.1719e+05,11.195 -50000,0.36426,0.0035762,0.05,4.162e+05,10.421 -50000,0.36426,0.0035762,0.05,4.162e+05,10.421 -50000,0.36426,0.0035762,0.05,4.162e+05,10.421 -50000,0.36426,0.0035762,0.05,4.162e+05,10.421 -50000,0.36426,0.0035762,0.05,4.162e+05,10.421 -50000,0.36426,0.0035762,0.05,4.162e+05,10.421 -50000,0.36426,0.0035762,0.05,4.162e+05,10.421 -50000,0.37147,0.003647,0.05,4.1482e+05,9.6778 -50000,0.37147,0.003647,0.05,4.1482e+05,9.6778 -50000,0.37147,0.003647,0.05,4.1482e+05,9.6778 -50000,0.37147,0.003647,0.05,4.1482e+05,9.6778 -50000,0.37147,0.003647,0.05,4.1482e+05,9.6778 -50000,0.37147,0.003647,0.05,4.1482e+05,9.6778 -50000,0.37147,0.003647,0.05,4.1482e+05,9.6778 -50000,0.37147,0.003647,0.05,4.1482e+05,9.6778 -50000,0.37882,0.0037192,0.05,4.1305e+05,8.9668 -50000,0.37882,0.0037192,0.05,4.1305e+05,8.9668 -50000,0.37882,0.0037192,0.05,4.1305e+05,8.9668 -50000,0.37882,0.0037192,0.05,4.1305e+05,8.9668 -50000,0.37882,0.0037192,0.05,4.1305e+05,8.9668 -50000,0.37882,0.0037192,0.05,4.1305e+05,8.9668 -50000,0.37882,0.0037192,0.05,4.1305e+05,8.9668 -50000,0.38632,0.0037928,0.05,4.1087e+05,8.288 -50000,0.38632,0.0037928,0.05,4.1087e+05,8.288 -50000,0.38632,0.0037928,0.05,4.1087e+05,8.288 -50000,0.38632,0.0037928,0.05,4.1087e+05,8.288 -50000,0.38632,0.0037928,0.05,4.1087e+05,8.288 -50000,0.38632,0.0037928,0.05,4.1087e+05,8.288 -50000,0.38632,0.0037928,0.05,4.1087e+05,8.288 -50000,0.38632,0.0037928,0.05,4.1087e+05,8.288 -50000,0.39396,0.0038678,0.05,4.083e+05,7.6412 -50000,0.39396,0.0038678,0.05,4.083e+05,7.6412 -50000,0.39396,0.0038678,0.05,4.083e+05,7.6412 -50000,0.39396,0.0038678,0.05,4.083e+05,7.6412 -50000,0.39396,0.0038678,0.05,4.083e+05,7.6412 -50000,0.39396,0.0038678,0.05,4.083e+05,7.6412 -50000,0.39396,0.0038678,0.05,4.083e+05,7.6412 -50000,0.40176,0.0039444,0.05,4.0533e+05,7.0266 -50000,0.40176,0.0039444,0.05,4.0533e+05,7.0266 -50000,0.40176,0.0039444,0.05,4.0533e+05,7.0266 -50000,0.40176,0.0039444,0.05,4.0533e+05,7.0266 -50000,0.40176,0.0039444,0.05,4.0533e+05,7.0266 -50000,0.40176,0.0039444,0.05,4.0533e+05,7.0266 -50000,0.40176,0.0039444,0.05,4.0533e+05,7.0266 -50000,0.40176,0.0039444,0.05,4.0533e+05,7.0266 -50000,0.40971,0.0040224,0.05,4.0196e+05,6.4439 -50000,0.40971,0.0040224,0.05,4.0196e+05,6.4439 -50000,0.40971,0.0040224,0.05,4.0196e+05,6.4439 -50000,0.40971,0.0040224,0.05,4.0196e+05,6.4439 -50000,0.40971,0.0040224,0.05,4.0196e+05,6.4439 -50000,0.40971,0.0040224,0.05,4.0196e+05,6.4439 -50000,0.40971,0.0040224,0.05,4.0196e+05,6.4439 -50000,0.40971,0.0040224,0.05,4.0196e+05,6.4439 -50000,0.41782,0.004102,0.05,3.982e+05,5.8929 -50000,0.41782,0.004102,0.05,3.982e+05,5.8929 -50000,0.41782,0.004102,0.05,3.982e+05,5.8929 -50000,0.41782,0.004102,0.05,3.982e+05,5.8929 -50000,0.41782,0.004102,0.05,3.982e+05,5.8929 -50000,0.41782,0.004102,0.05,3.982e+05,5.8929 -50000,0.41782,0.004102,0.05,3.982e+05,5.8929 -50000,0.41782,0.004102,0.05,3.982e+05,5.8929 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.42609,0.0041832,0.05,3.9405e+05,5.3733 -50000,0.43452,0.004266,0.05,3.8951e+05,4.8847 -50000,0.43452,0.004266,0.05,3.8951e+05,4.8847 -50000,0.43452,0.004266,0.05,3.8951e+05,4.8847 -50000,0.43452,0.004266,0.05,3.8951e+05,4.8847 -50000,0.43452,0.004266,0.05,3.8951e+05,4.8847 -50000,0.43452,0.004266,0.05,3.8951e+05,4.8847 -50000,0.43452,0.004266,0.05,3.8951e+05,4.8847 -50000,0.43452,0.004266,0.05,3.8951e+05,4.8847 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.44312,0.0043505,0.05,3.846e+05,4.4267 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.45189,0.0044366,0.05,3.7932e+05,3.9985 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46084,0.0045244,0.05,3.7368e+05,3.5995 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.46996,0.004614,0.05,3.6768e+05,3.2291 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.47926,0.0047053,0.05,3.6134e+05,2.8862 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.48875,0.0047985,0.05,3.5467e+05,2.57 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.49843,0.0048935,0.05,3.4768e+05,2.2795 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.5083,0.0049903,0.05,3.4039e+05,2.0137 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.51836,0.0050891,0.05,3.328e+05,1.7714 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.52862,0.0051899,0.05,3.2494e+05,1.5515 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.53909,0.0052927,0.05,3.1681e+05,1.3528 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.54976,0.0053975,0.05,3.0844e+05,1.174 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.56065,0.0055043,0.05,2.9983e+05,1.0139 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.57175,0.0056133,0.05,2.9101e+05,0.87123 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.58307,0.0057245,0.05,2.8199e+05,0.74476 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.59462,0.0058378,0.05,2.7279e+05,0.63322 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.60639,0.0059535,0.05,2.6341e+05,0.53539 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.6184,0.0060714,0.05,2.5388e+05,0.45006 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.63065,0.0061916,0.05,2.4421e+05,0.37607 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.64314,0.0063142,0.05,2.3441e+05,0.3123 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.65588,0.0064393,0.05,2.2449e+05,0.25768 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.66887,0.0065668,0.05,2.1448e+05,0.21121 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.68211,0.0066969,0.05,2.0438e+05,0.17193 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.69562,0.0068295,0.05,1.9419e+05,0.13897 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.7094,0.0069648,0.05,1.8394e+05,0.1115 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.72345,0.0071027,0.05,1.7363e+05,0.088788 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.73778,0.0072434,0.05,1.6327e+05,0.070147 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7524,0.0073869,0.05,1.5287e+05,0.054971 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7673,0.0075332,0.05,1.4243e+05,0.042717 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.7825,0.0076824,0.05,1.3196e+05,0.032908 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.798,0.0078346,0.05,1.2147e+05,0.025123 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.81381,0.0079898,0.05,1.1095e+05,0.019002 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.82993,0.0081481,0.05,1.0041e+05,0.014231 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.84637,0.0083095,0.05,89867,0.010549 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.86314,0.0084741,0.05,79309,0.0077325 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.88024,0.008642,0.05,68742,0.0055971 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.89767,0.0088132,0.05,58168,0.0039904 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.91546,0.0089878,0.05,47589,0.0027872 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.93359,0.0091658,0.05,37006,0.0018853 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.95209,0.0093474,0.05,26420,0.0012005 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.97095,0.0095326,0.05,15832,0.00066249 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,0.99019,0.0097215,0.05,5242.9,0.00020997 -50000,nan,nan,nan,nan,nan diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/pureThermalDiffusionAroundWellbore.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/pureThermalDiffusionAroundWellbore.py deleted file mode 100644 index 7e45aa17ab7..00000000000 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/pureThermalDiffusion/pureThermalDiffusionAroundWellbore.py +++ /dev/null @@ -1,132 +0,0 @@ -import os -import sys - -import numpy as np -import matplotlib.pyplot as plt -import pandas as pd -import scipy.linalg -from scipy import special -from xml.etree import ElementTree - -# Analytical results -def steadyState(Tin, Tout, Rin, Rout, radialCoordinate): - return Tin + (Tout - Tin) * (np.log(radialCoordinate) - np.log(Rin)) / (np.log(Rout) - np.log(Rin)) - -def diffusionFunction(radialCoordinate, Rin, diffusionCoefficient, diffusionTime): - return special.erfc( (radialCoordinate - Rin) / 2.0 / np.sqrt( diffusionCoefficient * diffusionTime ) ) - -def computeTransientTemperature(Tin, Rin, radialCoordinate, thermalDiffusionCoefficient, diffusionTime): - # Ref. Wang and Papamichos (1994), https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/94WR01774 - return Tin * np.sqrt(Rin/radialCoordinate) * diffusionFunction(radialCoordinate, Rin, thermalDiffusionCoefficient, diffusionTime) - -def computeThermalDiffusionCoefficient(thermalConductivity, volumetricHeatCapacity): - return thermalConductivity / volumetricHeatCapacity - -def extractDataFromXMLList(paramList): - # Extract data from a list in XML such as "{ 1, 2, 3}" - return paramList.replace('{', '').replace('}', '').strip().split(',') - -def getWellboreGeometryFromXML(xmlFilePath): - tree = ElementTree.parse(xmlFilePath) - - meshParam = tree.find('Mesh/InternalWellbore') - radii = extractDataFromXMLList( meshParam.get("radius") ) - - Rin = float(radii[0]) - Rout = float(radii[-1]) - - return [Rin, Rout] - -def getLoadingFromXML(xmlFilePath): - tree = ElementTree.parse(xmlFilePath) - fsParams = tree.findall('FieldSpecifications/FieldSpecification') - - for fsParam in fsParams: - if ( (fsParam.get('fieldName') == "pressure") & (fsParam.get('initialCondition') != "1") ): - if fsParam.get('setNames') == "{ rneg }": - Pin = float(fsParam.get('scale')) - if fsParam.get('setNames') == "{ rpos }": - Pout = float(fsParam.get('scale')) - - for fsParam in fsParams: - if ( (fsParam.get('fieldName') == "temperature") & (fsParam.get('initialCondition') != "1") ): - if fsParam.get('setNames') == "{ rneg }": - Tin = float(fsParam.get('scale')) - if fsParam.get('setNames') == "{ rpos }": - Tout = float(fsParam.get('scale')) - - thermalConductivity = float( extractDataFromXMLList( tree.find('Constitutive/SinglePhaseConstantThermalConductivity').get('thermalConductivityComponents') )[0] ) - - tree_SolidInternalEnergies = tree.findall('Constitutive/SolidInternalEnergy') - - for tree_SolidInternalEnergy in tree_SolidInternalEnergies: - if tree_SolidInternalEnergy.get('name') == "rockInternalEnergy_linear": - volumetricHeatCapacity = float( tree_SolidInternalEnergy.get('volumetricHeatCapacity') ) - - - permeability = float( extractDataFromXMLList( tree.find('Constitutive/ConstantPermeability').get('permeabilityComponents') )[0] ) - - porosity = float( tree.find('Constitutive/PressurePorosity').get('defaultReferencePorosity') ) - - fluidViscosity = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('defaultViscosity') ) - - fluidCompressibility = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('compressibility') ) - - fluidThermalExpansionCoefficient = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('thermalExpansionCoeff') ) - - return [Pin, Pout, Tin, Tout, thermalConductivity, volumetricHeatCapacity, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient] - - -def main(): - - xmlFilePath = "../../../../../../../inputFiles/singlePhaseFlow/thermalCompressible_2d" - - Rin, Rout = getWellboreGeometryFromXML(xmlFilePath+"_benchmark.xml") - - Pin, Pout, Tin, Tout, thermalConductivity, volumetricHeatCapacity, permeability, porosity, fluidViscosity, fluidCompressibility, fluidThermalExpansionCoefficient = getLoadingFromXML(xmlFilePath+"_base.xml") - - plt.figure(figsize=(10,7)) - font = {'size' : 16} - plt.rc('font', **font) - - for chart_idx, idx in enumerate([1, 2, 5, 10]): - # Numerical results - data = pd.read_csv(f'data_{idx}.csv') - radialCoordinate = data['elementCenter:0'] - temperature = data['temperature'] - pressure = data['pressure'] - diffusionTime = data['Time'][0] - - # Analytical results - thermalDiffusionCoefficient = computeThermalDiffusionCoefficient(thermalConductivity, volumetricHeatCapacity) - - T_transient = computeTransientTemperature(Tin, Rin, radialCoordinate, thermalDiffusionCoefficient, diffusionTime) - - # Analytical results of the steady state regime for comparison - T_steadyState = steadyState(Tin, Tout, Rin, Rout, radialCoordinate) - - # Visualization - # Temperature - plt.subplot(2,2,chart_idx+1) - plt.plot( radialCoordinate, temperature, 'k+' , label='GEOSX' ) - plt.plot( radialCoordinate, T_transient, 'r-' , label='Analytic' ) - plt.plot( radialCoordinate, T_steadyState, 'b-' , label='Steady State' ) - - if chart_idx==1: - plt.legend() - - if chart_idx in [2,3]: - plt.xlabel('Radial distance from well center') - - if chart_idx in [0,2]: - plt.ylabel('Temperature (°C)') - - plt.ylim(-10,100) - plt.xlim(0,1.0) - plt.title('t = '+str(diffusionTime)+'(s)') - plt.tight_layout() - - plt.show() - -if __name__ == "__main__": - main() diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/Example.rst index fa07f267b26..e17d62c0702 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/Example.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/Example.rst @@ -144,8 +144,8 @@ It is important to remark that the initial effective stress of rock must be set .. literalinclude:: ../../../../../../../inputFiles/wellbore/ThermoPoroElasticWellbore_base.xml :language: xml - :start-after: - :end-before: + :start-after: + :end-before: The initial and boundary conditions for pore pressure are defined in the block below: @@ -208,8 +208,6 @@ Results and benchmark A good agreement between the GEOS results and analytical results for temperature and pore pressure distribution around the wellbore is shown in the figures below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_temperature_pressure.py - .. _problemThermoPoroElasticWellbore_Temperature_Pressure_Fig: .. figure:: temperature_pressure.png :align: center @@ -220,8 +218,6 @@ A good agreement between the GEOS results and analytical results for temperature and the validation for the radial displacement around the cased wellbore is shown below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_displacement.py - .. _problemThermoPoroElasticWellbore_Displacement_Fig: .. figure:: displacement.png :align: center @@ -232,8 +228,6 @@ and the validation for the radial displacement around the cased wellbore is show The validations of the total radial and hoop stress (tangent stress) components computed by GEOS against reference results are shown in the figure below: -.. plot:: docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_stress.py - .. _problemThermoPoroElasticWellbore_Stress_Fig: .. figure:: stress.png :align: center diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_displacement.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_displacement.py index 6ce4afe8f19..6e0bacc654d 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_displacement.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_displacement.py @@ -9,9 +9,9 @@ def main(): # Plot GEOSX results hf = h5py.File("displacementHistory.hdf5", 'r') - time = np.array( hf.get('totalDisplacement Time') ) - center = np.array( hf.get('totalDisplacement ReferencePosition') ) - displacement = np.array( hf.get('totalDisplacement') ) + time = np.asarray( hf.get('totalDisplacement Time') ) + center = np.asarray( hf.get('totalDisplacement ReferencePosition') ) + displacement = np.asarray( hf.get('totalDisplacement') ) nNodes = center.shape[1] xCoord = center[0, 0:nNodes, 0] diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_stress.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_stress.py index fa2179aa8c6..4448fa04bc8 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_stress.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_stress.py @@ -5,6 +5,8 @@ import h5py from numpy import genfromtxt from xml.etree import ElementTree +import os +import argparse import analyticalResults @@ -13,140 +15,153 @@ def stressRotation(stress, phi_x): return np.dot(np.dot(np.transpose(rotx), stress), rotx) def main(): - # Material properties from input XML file - xmlFilePathPrefix = "../../../../../../../inputFiles/wellbore/ThermoPoroElasticWellbore" - - xmlData = analyticalResults.getDataFromXML(xmlFilePathPrefix) - - bulkModulus = xmlData[2] # drained bulk modulus of the porous medium - thermalExpansionCoefficients = xmlData[4] # drained linear thermal expansion coefficient of the porous medium - grainBulkModulus = xmlData[6] - BiotCoefficient = 1.0 - bulkModulus / grainBulkModulus - - # Get solid stress, time and element center from GEOSX results - stress_field_name = 'rockSolid_stress' - hf_stress = h5py.File('stressHistory_rock.hdf5', 'r') - time = np.array( hf_stress.get(stress_field_name + ' Time') ) - center = np.array( hf_stress.get(stress_field_name + ' elementCenter') ) - stress = np.array( hf_stress.get(stress_field_name) ) - - # Get temperature and pore pressure for computing the total stress - hf_temperature = h5py.File('temperatureHistory_rock.hdf5', 'r') - temperature = np.array( hf_temperature.get('temperature') ) - - hf_pressure = h5py.File('pressureHistory_rock.hdf5', 'r') - pressure = np.array( hf_pressure.get('pressure') ) - - # Compute total stress - stress_xx_total = stress[:,:,0] - BiotCoefficient * pressure - 3 * bulkModulus * thermalExpansionCoefficients * temperature - stress_yy_total = stress[:,:,1] - BiotCoefficient * pressure - 3 * bulkModulus * thermalExpansionCoefficients * temperature - stress_zz_total = stress[:,:,2] - BiotCoefficient * pressure - 3 * bulkModulus * thermalExpansionCoefficients * temperature - stress_yz_total = stress[:,:,3] - stress_xz_total = stress[:,:,4] - stress_xy_total = stress[:,:,5] - - # Coordinate of elemnt center - nElements = center.shape[1] - xCoord = center[0, :, 0] - yCoord = center[0, :, 1] - rCoord = np.sqrt( xCoord*xCoord + yCoord*yCoord ) - - # Compute stress components in cylindrical coordinate system - stress_rr_total = np.zeros(stress_xx_total.shape) - stress_tt_total = np.zeros(stress_xx_total.shape) - - for idx_time in range(stress.shape[0]): - for idx_elem in range(stress.shape[1]): - stressMatrix_cartesian = np.array([[stress_xx_total[idx_time][idx_elem],stress_xy_total[idx_time][idx_elem],stress_xz_total[idx_time][idx_elem]],\ - [stress_xy_total[idx_time][idx_elem],stress_yy_total[idx_time][idx_elem],stress_yz_total[idx_time][idx_elem]],\ - [stress_xz_total[idx_time][idx_elem],stress_yz_total[idx_time][idx_elem],stress_zz_total[idx_time][idx_elem]]]) - - if(yCoord[idx_elem] != 0): - phi_x = np.arctan( xCoord[idx_elem]/yCoord[idx_elem] ) - else: - phi_x = 0 - - stressMatrix_cylindirical = stressRotation(stressMatrix_cartesian, phi_x) - stress_rr_total[idx_time][idx_elem] = stressMatrix_cylindirical[1][1] - stress_tt_total[idx_time][idx_elem] = stressMatrix_cylindirical[0][0] - - # Plot GEOSX results - plt.figure(figsize=(10,5)) - - plt.subplot(1,2,1) - - plt.plot( rCoord, - stress_rr_total[10, :], - 'r+', - label='GEOS: t = 1 (min)') - - plt.plot( rCoord, - stress_rr_total[24, :], - 'b+', - label='GEOS: t = 1 (hour)') - - plt.subplot(1,2,2) - - plt.plot( rCoord, - stress_tt_total[10, :], - 'r+', - label='GEOS: t = 1 (min)') - - plt.plot( rCoord, - stress_tt_total[24, :], - 'b+', - label='GEOS: t = 1 (hour)') - - # Plot analytical results at one minute - t = 60 #s - r_anal, T_anal, p_anal, ur_anal, sig_rr_anal, sig_tt_anal, sig_zz_anal = analyticalResults.analyticalResults(t) - - plt.subplot(1,2,1) - plt.plot( r_anal, - sig_rr_anal, - 'r-', - label='Analytical: t = 1 (min)') - - plt.subplot(1,2,2) - plt.plot( r_anal, - sig_tt_anal, - 'r-', - label='Analytical: t = 1 (min)') - - # Plot analytical results at one hour - t = 3600 #s - r_anal, T_anal, p_anal, ur_anal, sig_rr_anal, sig_tt_anal, sig_zz_anal = analyticalResults.analyticalResults(t) - - plt.subplot(1,2,1) - plt.plot( r_anal, - sig_rr_anal, - 'b-', - label='Analytical: t = 1 (hour)') - - plt.subplot(1,2,2) - plt.plot( r_anal, - sig_tt_anal, - 'b-', - label='Analytical: t = 1 (hour)') - - plt.subplot(1,2,1) - plt.grid() - plt.ylabel('Radial stress [Pa]') - plt.xlabel('Radial coordinate [m]') - plt.xlim(0.1,0.3) - #plt.ylim(0,100) - - plt.subplot(1,2,2) - plt.grid() - plt.ylabel('Tangential stress [Pa]') - plt.xlabel('Radial coordinate [m]') - plt.xlim(0.1,0.3) - #plt.ylim(0,70e6) - plt.legend(loc='lower right') - plt.tight_layout() - plt.savefig('stress.png') - plt.isoff() + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + outputDir = args.outputDir + geosDir = args.geosDir + + # Material properties from input XML file + xmlFilePathPrefix = geosDir + "/inputFiles/wellbore/ThermoPoroElasticWellbore" + + xmlData = analyticalResults.getDataFromXML(xmlFilePathPrefix) + + bulkModulus = xmlData[2] # drained bulk modulus of the porous medium + thermalExpansionCoefficients = xmlData[4] # drained linear thermal expansion coefficient of the porous medium + grainBulkModulus = xmlData[6] + BiotCoefficient = 1.0 - bulkModulus / grainBulkModulus + + # Get solid stress, time and element center from GEOSX results + stress_field_name = 'rockSolid_stress' + hf_stress = h5py.File(outputDir + '/stressHistory_rock.hdf5', 'r') + time = np.asarray( hf_stress.get(stress_field_name + ' Time') ) + center = np.asarray( hf_stress.get(stress_field_name + ' elementCenter') ) + stress = np.asarray( hf_stress.get(stress_field_name) ) + + # Get temperature and pore pressure for computing the total stress + hf_temperature = h5py.File(outputDir + '/temperatureHistory_rock.hdf5', 'r') + temperature = np.asarray( hf_temperature.get('temperature') ) + + hf_pressure = h5py.File(outputDir + '/pressureHistory_rock.hdf5', 'r') + pressure = np.asarray( hf_pressure.get('pressure') ) + + # Compute total stress + stress_xx_total = stress[:,:,0] - BiotCoefficient * pressure - 3 * bulkModulus * thermalExpansionCoefficients * temperature + stress_yy_total = stress[:,:,1] - BiotCoefficient * pressure - 3 * bulkModulus * thermalExpansionCoefficients * temperature + stress_zz_total = stress[:,:,2] - BiotCoefficient * pressure - 3 * bulkModulus * thermalExpansionCoefficients * temperature + stress_yz_total = stress[:,:,3] + stress_xz_total = stress[:,:,4] + stress_xy_total = stress[:,:,5] + + # Coordinate of elemnt center + nElements = center.shape[1] + xCoord = center[0, :, 0] + yCoord = center[0, :, 1] + rCoord = np.sqrt( xCoord*xCoord + yCoord*yCoord ) + + # Compute stress components in cylindrical coordinate system + stress_rr_total = np.zeros(stress_xx_total.shape) + stress_tt_total = np.zeros(stress_xx_total.shape) + + for idx_time in range(stress.shape[0]): + for idx_elem in range(stress.shape[1]): + stressMatrix_cartesian = np.array([[stress_xx_total[idx_time][idx_elem],stress_xy_total[idx_time][idx_elem],stress_xz_total[idx_time][idx_elem]],\ + [stress_xy_total[idx_time][idx_elem],stress_yy_total[idx_time][idx_elem],stress_yz_total[idx_time][idx_elem]],\ + [stress_xz_total[idx_time][idx_elem],stress_yz_total[idx_time][idx_elem],stress_zz_total[idx_time][idx_elem]]]) + + if(yCoord[idx_elem] != 0): + phi_x = np.arctan( xCoord[idx_elem]/yCoord[idx_elem] ) + else: + phi_x = 0 + + stressMatrix_cylindirical = stressRotation(stressMatrix_cartesian, phi_x) + stress_rr_total[idx_time][idx_elem] = stressMatrix_cylindirical[1][1] + stress_tt_total[idx_time][idx_elem] = stressMatrix_cylindirical[0][0] + + # Plot GEOSX results + plt.figure(figsize=(10,5)) + + plt.subplot(1,2,1) + + plt.plot( rCoord, + stress_rr_total[10, :], + 'r+', + label='GEOS: t = 1 (min)') + + plt.plot( rCoord, + stress_rr_total[24, :], + 'b+', + label='GEOS: t = 1 (hour)') + + plt.subplot(1,2,2) + + plt.plot( rCoord, + stress_tt_total[10, :], + 'r+', + label='GEOS: t = 1 (min)') + + plt.plot( rCoord, + stress_tt_total[24, :], + 'b+', + label='GEOS: t = 1 (hour)') + + # Plot analytical results at one minute + t = 60 #s + r_anal, T_anal, p_anal, ur_anal, sig_rr_anal, sig_tt_anal, sig_zz_anal = analyticalResults.analyticalResults(t) + + plt.subplot(1,2,1) + plt.plot( r_anal, + sig_rr_anal, + 'r-', + label='Analytical: t = 1 (min)') + + plt.subplot(1,2,2) + plt.plot( r_anal, + sig_tt_anal, + 'r-', + label='Analytical: t = 1 (min)') + + # Plot analytical results at one hour + t = 3600 #s + r_anal, T_anal, p_anal, ur_anal, sig_rr_anal, sig_tt_anal, sig_zz_anal = analyticalResults.analyticalResults(t) + + plt.subplot(1,2,1) + plt.plot( r_anal, + sig_rr_anal, + 'b-', + label='Analytical: t = 1 (hour)') + + plt.subplot(1,2,2) + plt.plot( r_anal, + sig_tt_anal, + 'b-', + label='Analytical: t = 1 (hour)') + + plt.subplot(1,2,1) + plt.grid() + plt.ylabel('Radial stress [Pa]') + plt.xlabel('Radial coordinate [m]') + plt.xlim(0.1,0.3) + #plt.ylim(0,100) + + plt.subplot(1,2,2) + plt.grid() + plt.ylabel('Tangential stress [Pa]') + plt.xlabel('Radial coordinate [m]') + plt.xlim(0.1,0.3) + #plt.ylim(0,70e6) + plt.legend(loc='lower right') + plt.tight_layout() + plt.savefig('stress.png') + plt.isoff() if __name__ == "__main__": - main() - + main() + diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_temperature_pressure.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_temperature_pressure.py index 9d89633ed58..b1c612e3861 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_temperature_pressure.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/THM_wellbore_temperature_pressure.py @@ -10,12 +10,12 @@ def main(): # Plot GEOSX results hf = h5py.File("temperatureHistory_rock.hdf5", 'r') - time = np.array( hf.get('temperature Time') ) - center = np.array( hf.get('temperature elementCenter') ) - temperature = np.array( hf.get('temperature') ) + time = np.asarray( hf.get('temperature Time') ) + center = np.asarray( hf.get('temperature elementCenter') ) + temperature = np.asarray( hf.get('temperature') ) hf = h5py.File("pressureHistory_rock.hdf5", 'r') - pressure = np.array( hf.get('pressure') ) + pressure = np.asarray( hf.get('pressure') ) nElements = center.shape[1] xCoord = center[0, 0:nElements, 0] diff --git a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/analyticalResults.py b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/analyticalResults.py index c4ae5d7c182..938f88b0700 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/analyticalResults.py +++ b/src/docs/sphinx/advancedExamples/validationStudies/wellboreProblems/thermoPoroElasticWellbore/analyticalResults.py @@ -34,12 +34,12 @@ def getDataFromXML(xmlFilePathPrefix): defaultShearModulus = float( tree.find('Constitutive/ElasticIsotropic').get('defaultShearModulus') ) defaultDrainedLinearTEC = float( tree.find('Constitutive/ElasticIsotropic').get('defaultDrainedLinearTEC') ) defaultReferencePorosity = float( tree.find('Constitutive/BiotPorosity').get('defaultReferencePorosity') ) - grainBulkModulus = float( tree.find('Constitutive/BiotPorosity').get('grainBulkModulus') ) + grainBulkModulus = float( tree.find('Constitutive/BiotPorosity').get('defaultGrainBulkModulus') ) fluidCompressibility = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('compressibility') ) fluidViscosity = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('defaultViscosity') ) fluidThermalExpansionCoefficient = float( tree.find('Constitutive/ThermalCompressibleSinglePhaseFluid').get('thermalExpansionCoeff') ) - thermalConductivity = float( extractDataFromXMLList( tree.find('Constitutive/SinglePhaseConstantThermalConductivity').get('thermalConductivityComponents') )[0] ) - volumetricHeatCapacity = float( tree.find('Constitutive/SolidInternalEnergy').get('volumetricHeatCapacity') ) + thermalConductivity = float( extractDataFromXMLList( tree.find('Constitutive/SinglePhaseThermalConductivity').get('defaultThermalConductivityComponents') )[0] ) + volumetricHeatCapacity = float( tree.find('Constitutive/SolidInternalEnergy').get('referenceVolumetricHeatCapacity') ) permeability = float( extractDataFromXMLList( tree.find('Constitutive/ConstantPermeability').get('permeabilityComponents') )[0] ) return [ri, Ti, drainedBulkModulusRock, defaultShearModulus, defaultDrainedLinearTEC, defaultReferencePorosity, grainBulkModulus, fluidCompressibility, fluidViscosity, fluidThermalExpansionCoefficient, permeability, thermalConductivity, volumetricHeatCapacity] diff --git a/src/docs/sphinx/basicExamples/Index.rst b/src/docs/sphinx/basicExamples/Index.rst index 0c9e9b5e8f5..af43ba213fe 100644 --- a/src/docs/sphinx/basicExamples/Index.rst +++ b/src/docs/sphinx/basicExamples/Index.rst @@ -21,3 +21,4 @@ Basic Examples + diff --git a/src/docs/sphinx/basicExamples/co2Injection/Example.rst b/src/docs/sphinx/basicExamples/co2Injection/Example.rst index 3076ae46b68..d73796de79b 100644 --- a/src/docs/sphinx/basicExamples/co2Injection/Example.rst +++ b/src/docs/sphinx/basicExamples/co2Injection/Example.rst @@ -134,8 +134,9 @@ The **TwoPointFluxApproximation** is chosen for the fluid equation discretizatio Element regions --------------- -We define a **CellElementRegion** pointing to the cell block defining the reservoir mesh, and a **WellElementRegion** for the well. +We define a **CellElementRegion** pointing to all reservoir mesh cells, and a **WellElementRegion** for the well. The two regions contain a list of constitutive model names. +The keyword "all" is used here to automatically select all cells of the mesh. .. literalinclude:: ../../../../../inputFiles/compositionalMultiphaseWell/simpleCo2InjTutorial_base.xml :language: xml @@ -264,13 +265,13 @@ The simulation can be launched with 4 cores using MPI-parallelism: .. code-block:: console - mpirun -np 4 geosx -i simpleCo2InjTutorial.xml -x 1 -y 1 -z 4 + mpirun -np 4 geosx -i simpleCo2InjTutorial_smoke.xml -x 1 -y 1 -z 4 A restart from a checkpoint file `simpleCo2InjTutorial_restart_000000024.root` is always available thanks to the following command line : .. code-block:: console - mpirun -np 4 geosx -i simpleCo2InjTutorial.xml -r simpleCo2InjTutorial_restart_000000024 -x 1 -y 1 -z 4 + mpirun -np 4 geosx -i simpleCo2InjTutorial_smoke.xml -r simpleCo2InjTutorial_restart_000000024 -x 1 -y 1 -z 4 The output then shows the loading of HDF5 restart files by each core. diff --git a/src/docs/sphinx/basicExamples/multiphaseFlow/Example.rst b/src/docs/sphinx/basicExamples/multiphaseFlow/Example.rst index b0a8183bfd6..341e7a22d46 100644 --- a/src/docs/sphinx/basicExamples/multiphaseFlow/Example.rst +++ b/src/docs/sphinx/basicExamples/multiphaseFlow/Example.rst @@ -82,7 +82,7 @@ Mesh ------- In this simulation, we define a simple mesh generated internally using the **InternalMesh** generator, as -illustrated in the previous examples. +illustrated in the first tutorial (:ref:`TutorialSinglePhaseFlowWithInternalMesh`). The mesh dimensions and cell sizes are chosen to be those specified in the SPE10 test case, but are limited to the two bottom layers. The mesh description must be done in meters. @@ -173,13 +173,12 @@ Reservoir region In the **ElementRegions** XML block, we define a **CellElementRegion** named ``reservoir`` corresponding to the reservoir mesh. -The attribute ``cellBlocks`` is set to ``block`` to point this element region -to the hexahedral mesh defined internally. +``cellBlocks`` is set to ``{ * }`` to automatically target every cells of the mesh. The **CellElementRegion** must also point to the constitutive models that are used to update the dynamic rock and fluid properties in the cells of the reservoir mesh. The names ``fluid``, ``rock``, and ``relperm`` used for this in the ``materialList`` -correspond to the attribute ``name`` of the **Constitutive** block. +correspond to the **Constitutive** blocks with the coresponding names. .. literalinclude:: ../../../../../inputFiles/compositionalMultiphaseFlow/benchmarks/SPE10/deadOilSpe10Layers84_85_base_iterative.xml :language: xml diff --git a/src/docs/sphinx/basicExamples/multiphaseFlowWithWells/Example.rst b/src/docs/sphinx/basicExamples/multiphaseFlowWithWells/Example.rst index 1afb1185816..7fb95a4a927 100644 --- a/src/docs/sphinx/basicExamples/multiphaseFlowWithWells/Example.rst +++ b/src/docs/sphinx/basicExamples/multiphaseFlowWithWells/Example.rst @@ -242,11 +242,8 @@ In this section of the input file, we follow the procedure described in :ref:`TutorialDeadOilBottomLayersSPE10` for the definition of the reservoir region with multiphase constitutive models. We associate a **CellElementRegion** named ``reservoir`` to the reservoir mesh. -Since we have imported a mesh with one region consisting of hexahedral cells, we -must set the attribute ``cellBlocks`` to ``hexahedra``. - -.. note:: - If you use a name that is not ``hexahedra`` for this attribute, GEOS will throw an error at the beginning of the simulation. +Since we have imported a mesh with only one region, we can set ``cellBlocks`` to ``{ * }`` +(we could also set ``cellBlocks`` to ``{ hexahedra }`` as the mesh has only hexahedral cells). We also associate a **WellElementRegion** to each well. As the **CellElementRegion**, it contains a ``materialList`` that must point (by name) to the constitutive models diff --git a/src/docs/sphinx/basicExamples/multiphaseFlowWithWells/multiphaseFlowWithWellsFigure.py b/src/docs/sphinx/basicExamples/multiphaseFlowWithWells/multiphaseFlowWithWellsFigure.py index 0c0cf09bae4..7ef4dd4c370 100644 --- a/src/docs/sphinx/basicExamples/multiphaseFlowWithWells/multiphaseFlowWithWellsFigure.py +++ b/src/docs/sphinx/basicExamples/multiphaseFlowWithWells/multiphaseFlowWithWellsFigure.py @@ -18,9 +18,9 @@ def main(): # Read HDF5 hf = h5py.File(hdf5FilePath, 'r') time = hf.get('Time') - time = np.array(time) + time = np.asarray(time) massRate = hf.get('wellElementMixtureConnectionRate') - massRate = np.array(massRate) + massRate = np.asarray(massRate) # Some comments about the computation of the volumetric rate here: # A proper oil rate constraint for individual wells is currently being implemented diff --git a/src/docs/sphinx/basicExamples/poromechanics/poromechanicsFigure.py b/src/docs/sphinx/basicExamples/poromechanics/poromechanicsFigure.py index a1936cfc4ed..43e76a3a72b 100644 --- a/src/docs/sphinx/basicExamples/poromechanics/poromechanicsFigure.py +++ b/src/docs/sphinx/basicExamples/poromechanics/poromechanicsFigure.py @@ -5,6 +5,8 @@ import xml.etree.ElementTree as ElementTree from mpmath import * import math +import os +import argparse class terzaghi: @@ -91,10 +93,23 @@ def getDomainMaxMinXCoordFromXML(xmlFilePath): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + outputDir = args.outputDir + geosDir = args.geosDir + # File path - hdf5FilePath = "pressure_history.hdf5" - xmlBaseFilePath = "../../../../../inputFiles/poromechanics/PoroElastic_Terzaghi_base_direct.xml" - xmlSmokeFilePath = "../../../../../inputFiles/poromechanics/PoroElastic_Terzaghi_smoke.xml" + hdf5FilePath = outputDir + "/pressure_history.hdf5" + xmlBaseFilePath = geosDir + "/inputFiles/poromechanics/PoroElastic_Terzaghi_base_direct.xml" + xmlSmokeFilePath = geosDir + "/inputFiles/poromechanics/PoroElastic_Terzaghi_smoke.xml" # Read HDF5 hf = h5py.File(hdf5FilePath, 'r') diff --git a/src/docs/sphinx/basicExamples/triaxialDriver/triaxialDriverFigure.py b/src/docs/sphinx/basicExamples/triaxialDriver/triaxialDriverFigure.py index 8de7daa7ca9..b46ec1f300f 100755 --- a/src/docs/sphinx/basicExamples/triaxialDriver/triaxialDriverFigure.py +++ b/src/docs/sphinx/basicExamples/triaxialDriver/triaxialDriverFigure.py @@ -5,6 +5,8 @@ import math from math import sin, cos, tan, exp, atan import xml.etree.ElementTree as ElementTree +import os +import argparse def yieldSurface(xmlFilePath, mechanicalParameters): @@ -166,14 +168,27 @@ def getMechanicalParametersFromXML(xmlFilePath): def main(): + + # Initialize the argument parser + parser = argparse.ArgumentParser(description="Script to generate figure from tutorial.") + + # Add arguments to accept individual file paths + parser.add_argument('--geosDir', help='Path to the GEOS repository ', default='../../../../..') + parser.add_argument('--outputDir', help='Path to output directory', default='.') + + # Parse the command-line arguments + args = parser.parse_args() + # File path - xmlFilePath = "../../../../../inputFiles/triaxialDriver/triaxialDriver_ExtendedDruckerPrager_basicExample.xml" + outputDir = args.outputDir + geosDir = args.geosDir + xmlFilePath = geosDir + "/inputFiles/triaxialDriver/triaxialDriver_ExtendedDruckerPrager_basicExample.xml" # Extract info from XML mechanicalParameters = getMechanicalParametersFromXML(xmlFilePath) # Load GEOSX results - path = "simulationResults.txt" + path = outputDir + "/simulationResults.txt" time, ax_strain, ra_strain1, ra_strain2, ax_stress, ra_stress1, ra_stress2, newton_iter, residual_norm = np.loadtxt( path, skiprows=5, unpack=True) p_num = -(ax_stress + 2.0 * ra_stress1) / 3.0 / 1.0e6 diff --git a/src/docs/sphinx/buildGuide/AppleMacOS.rst b/src/docs/sphinx/buildGuide/AppleMacOS.rst new file mode 100644 index 00000000000..ac2be331852 --- /dev/null +++ b/src/docs/sphinx/buildGuide/AppleMacOS.rst @@ -0,0 +1,93 @@ +.. _AppleMacOS: + +Building Apple MacOS +==================== + +Install homebrew +---------------- +Taken from the [homebrew website](https://brew.sh) +.. code-block:: + + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile + + note: this is the command for `zsh`. Other shells will require different commands. Homebrew should provide the correct command after install is complete. + eval "$(/opt/homebrew/bin/brew shellenv)" + +Install packages using homebrew +------------------------------- + +.. code-block:: + + brew install bison cmake gfortran git-lfs open-mpi lapack python3 ninja m4 + echo 'export PATH="/opt/homebrew/opt/bison/bin:$PATH"' >> ~/.zshrc + echo 'export PATH="/opt/homebrew/opt/m4/bin:$PATH"' >> ~/.zshrc + git lfs install + +Clone GEOS +---------- + +.. code-block:: + + git clone git@github.com:GEOS-DEV/GEOS.git + cd GEOS + git submodule init + git submodule update + cd .. + +Clone thirdPartyLibs +-------------------- + +.. code-block:: + + git clone git@github.com:GEOS-DEV/thirdPartyLibs.git + cd thirdPartyLibs + git submodule init + git submodule update + git lfs pull + + +Configure and build thirdPartyLibs +---------------------------------- + +.. code-block:: + + python3 scripts/config-build.py -hc ../GEOS/host-configs/apple/macOS_arm.cmake -bt Release + +You will get a warning you can ignore + +.. code-block:: + + CMake Warning at /Users/settgast1/Codes/geos/GEOS/host-configs/tpls.cmake:10 (message): + 'GEOS_TPL_DIR' does not exist. + + +Continue with the build + +.. code-block:: + + cd build-macOS_arm-release + make + +You will get an error at the end...you can ignore it. + +.. code-block:: + + [100%] Linking CXX executable ../../../tests/blt_mpi_smoke + ld: warning: -commons use_dylibs is no longer supported, using error treatment instead + ld: file not found: @rpath/libquadmath.0.dylib for architecture arm64 + clang: error: linker command failed with exit code 1 (use -v to see invocation) + make[2]: *** [tests/blt_mpi_smoke] Error 1 + make[1]: *** [blt/tests/smoke/CMakeFiles/blt_mpi_smoke.dir/all] Error 2 + make: *** [all] Error 2 + + +Build GEOS +---------- + +.. code-block:: + + cd ../../GEOS + python3 scripts/config-build.py -hc host-configs/apple/macOS_arm.cmake -bt Release --ninja + cd build-macOS_arm-release + ninja geosx diff --git a/src/docs/sphinx/buildGuide/BuildProcess.rst b/src/docs/sphinx/buildGuide/BuildProcess.rst index 8860a9d1486..cd3910c451c 100644 --- a/src/docs/sphinx/buildGuide/BuildProcess.rst +++ b/src/docs/sphinx/buildGuide/BuildProcess.rst @@ -75,10 +75,10 @@ Option Default Explanation ``ENABLE_TOTALVIEW_OUTPUT`` ``OFF`` Enables TotalView debugger custom view of GEOS data structures ``ENABLE_COV`` ``OFF`` Enables code coverage ``GEOS_ENABLE_TESTS`` ``ON`` Enables unit testing targets -``GEOS_LA_INTERFACE`` ``Hypre`` Choiсe of Linear Algebra backend (Hypre/Petsc/Trilinos) -``GEOS_BUILD_OBJ_LIBS`` ``ON`` Use CMake Object Libraries build -``GEOS_BUILD_SHARED_LIBS`` ``OFF`` Build ``geosx_core`` as a shared library instead of static -``GEOS_PARALLEL_COMPILE_JOBS`` Max. number of compile jobs (when using Ninja), in addition to ``-j`` flag -``GEOS_PARALLEL_LINK_JOBS`` Max. number of link jobs (when using Ninja), in addition to ``-j`` flag -``GEOS_INSTALL_SCHEMA`` ``ON`` Enables schema generation and installation +``GEOS_LA_INTERFACE`` ``Hypre`` Choiсe of Linear Algebra backend (Hypre/Petsc/Trilinos) +``GEOS_BUILD_OBJ_LIBS`` ``ON`` Use CMake Object Libraries build +``GEOS_BUILD_SHARED_LIBS`` ``OFF`` Build ``geosx_core`` as a shared library instead of static +``GEOS_PARALLEL_COMPILE_JOBS`` Max. number of compile jobs (when using Ninja), in addition to ``-j`` flag +``GEOS_PARALLEL_LINK_JOBS`` Max. number of link jobs (when using Ninja), in addition to ``-j`` flag +``GEOS_INSTALL_SCHEMA`` ``ON`` Enables schema generation and installation =============================== ========= ============================================================================== diff --git a/src/docs/sphinx/buildGuide/Index.rst b/src/docs/sphinx/buildGuide/Index.rst index afd042d9561..1ed27e84f1f 100644 --- a/src/docs/sphinx/buildGuide/Index.rst +++ b/src/docs/sphinx/buildGuide/Index.rst @@ -18,3 +18,5 @@ Welcome to the GEOS build guide. SpackUberenv ContinuousIntegration + + AppleMacOS diff --git a/src/docs/sphinx/buildGuide/Prerequisites.rst b/src/docs/sphinx/buildGuide/Prerequisites.rst index 78251f997d5..9bbe5ee6174 100644 --- a/src/docs/sphinx/buildGuide/Prerequisites.rst +++ b/src/docs/sphinx/buildGuide/Prerequisites.rst @@ -10,10 +10,10 @@ List of prerequisites Minimal requirements: -- `CMake `_ build system generator (3.17+). +- `CMake `_ build system generator (3.23.1+). - build tools (`GNU make `_ or `ninja `_ on Linux, XCode on MacOS). -- a C++ compiler with full c++17 standard support (`gcc `_ 8.3+ or `clang `_ 10.0+ are recommended). -- `python `_ (2.7+ or 3.6+). +- a C++ compiler with full c++17 standard support (`gcc `_ 12+ or `clang `_ 13.0+ are recommended). +- `python `_ 3.9-3.11 (versions 3.12+ are untested). - :code:`zlib`, :code:`blas` and :code:`lapack` libraries - any compatible MPI runtime and compilers (if building with MPI) diff --git a/src/docs/sphinx/developerGuide/Contributing/Doxygen.rst b/src/docs/sphinx/developerGuide/Contributing/Doxygen.rst index 8a25b96ee0c..1b240c99811 100644 --- a/src/docs/sphinx/developerGuide/Contributing/Doxygen.rst +++ b/src/docs/sphinx/developerGuide/Contributing/Doxygen.rst @@ -239,4 +239,18 @@ Example Current Doxygen ==================================== -`Link to Doxygen <../../../doxygen_output/html/classes.html>`__ +`Link to Doxygen Class directory <../../../../doxygen_output/html/classes.html>`__ + +Direct links to some useful class documentation: + +`Group API <../../../../doxygen_output/html/classgeos_1_1data_repository_1_1_group.html>`_ + +`Wrapper API <../../../../doxygen_output/html/classgeos_1_1data_repository_1_1_wrapper.html>`_ + +`ObjectManagerBase API <../../../../doxygen_output/html/classgeos_1_1_object_manager_base.html>`_ + +`MeshLevel API <../../../../doxygen_output/html/classgeos_1_1_mesh_level.html>`_ + +`NodeManager API <../../../../doxygen_output/html/classgeos_1_1_node_manager.html>`_ + +`FaceManager API <../../../../doxygen_output/html/classgeos_1_1_face_manager.html>`_ \ No newline at end of file diff --git a/src/docs/sphinx/developerGuide/Contributing/IntegratedTests.rst b/src/docs/sphinx/developerGuide/Contributing/IntegratedTests.rst index 3b5c325ce13..2f712ee5506 100644 --- a/src/docs/sphinx/developerGuide/Contributing/IntegratedTests.rst +++ b/src/docs/sphinx/developerGuide/Contributing/IntegratedTests.rst @@ -139,8 +139,10 @@ After building GEOS, the integrated tests can be triggered in the GEOS build dir When running test or creating new baselines on LC systems, we recommend that you use the *quartz-gcc-12-release* configuration +.. _overrideTestBehavior: + Override Test Behavior -------------------------- +---------------------- For cases where you need additional control over the integrated tests behavior, you can use this script in your build directory: */path/to/GEOS/build-xyz/integratedTests/geos_ats.sh*. To run the tests, simply call this script with any desired arguments (see the output of `geos_ats.sh --help` for additional details.) @@ -532,4 +534,4 @@ We highly recommend running tests and rebaselining on an MPI-aware platform. **Filtering Checks**: A common reason for rebaselining is that you have changed the name of an XML node in the input files. While the baselines may be numerically identical, the restarts will fail because they contain different node names. -In this situation, it can be useful to add a filter to the restart check script using the *geos_ats.sh* script (see the `-e` and `-m` options in :ref:`Override Test Behavior` ) +In this situation, it can be useful to add a filter to the restart check script using the *geos_ats.sh* script (see the `-e` and `-m` options in :ref:`overrideTestBehavior` ) diff --git a/src/docs/sphinx/developerGuide/Contributing/Sphinx.rst b/src/docs/sphinx/developerGuide/Contributing/Sphinx.rst index 6eab163dc43..c08d0890e76 100644 --- a/src/docs/sphinx/developerGuide/Contributing/Sphinx.rst +++ b/src/docs/sphinx/developerGuide/Contributing/Sphinx.rst @@ -5,24 +5,26 @@ Sphinx Documentation Generating the documentation ==================================== -- To generate the documentation files, you will need to install Sphinx using +- To generate the documentation files, you will need to install Sphinx using: .. code-block:: sh - sudo apt install python-sphinx + pip -m install sphinx + pip -m install sphinx-design sphinx-argparse sphinxcontrib-plantuml sphinxcontrib.programoutput sphinx_rtd_theme + pip -m install scipy - Then you can generate the documentation files with the following command +- Then you can generate the documentation files with the following commands: - .. code-block:: sh + .. code-block:: sh - cd GEOS/build-your-platform-release - make geosx_docs + cd /path/to/GEOS/build-your-platform-release + make geosx_docs - That will create a new folder .. code-block:: sh - GEOS/build-your-platform-release/html/docs/sphinx + /path/to/GEOS/build-your-platform-release/html/docs/sphinx which contains all the html files generated. @@ -35,3 +37,21 @@ like those describing a specific class, can instead be found in ``docs`` subdire in the folder containing the source code. Information about how to write ``rst`` files can be found `here `_ . + +Fixing errors the documentation +=============================== +As part of the Continuous Integration process, the documentation is built on readthedocs, and any warnings or errors result in a failure test failure. +What follows is a brief guide on how to fix the most common errors. + +#. Navigate to the readthedocs build logs. This can be done by clicking on the failed test in the github test summary. + +.. image:: githubtestsummary.png + :width: 600 + +#. Download the logs from the failed test on readthedocs through the "view raw" button. + +.. image:: readthedocsbuildsummary.png + :width: 600 + +#. Perform a case sensitive search for "WARNING:" or "ERROR" to locate the sphinx issues. +Note that there will be numerous doxygen warnings that should be ignored. \ No newline at end of file diff --git a/src/docs/sphinx/developerGuide/Contributing/WorkInteractivelyOnCI.rst b/src/docs/sphinx/developerGuide/Contributing/WorkInteractivelyOnCI.rst index 5a15121d48c..64f2e92a07e 100644 --- a/src/docs/sphinx/developerGuide/Contributing/WorkInteractivelyOnCI.rst +++ b/src/docs/sphinx/developerGuide/Contributing/WorkInteractivelyOnCI.rst @@ -16,6 +16,7 @@ First, as much as you can, try to reduce the number of jobs you're triggering by Then in your branch, add the following GHA step to the `.github/build_and_test.yml` (see full documentation of the action `here _`). .. code-block:: console + - name: ssh uses: lhotari/action-upterm@v1 with: @@ -28,9 +29,11 @@ The action should be added after whichever step triggers an error. In case of a It is also important to prevent the job to exit upon failure. For instance, it is suggested to comment the following lines in the `build, test and deploy` step. .. code-block:: console + set -e .. code-block:: console + exit ${EXIT_STATUS} @@ -40,28 +43,29 @@ Step 2: Inspect the CI and grab server address ============================================== .. code-block:: console - Run lhotari/action-upterm@v1 - upterm - - Auto-generating ~/.ssh/known_hosts by attempting connection to uptermd.upterm.dev - Pseudo-terminal will not be allocated because stdin is not a terminal. - - Warning: Permanently added 'uptermd.upterm.dev' (ED25519) to the list of known hosts. - - runner@uptermd.upterm.dev: Permission denied (publickey). - Adding actor "GitHubLogin" to allowed users. - Fetching SSH keys registered with GitHub profiles: GitHubLogin - Fetched 2 ssh public keys - Creating a new session. Connecting to upterm server ssh://uptermd.upterm.dev:22 - Created new session successfully - Entering main loop - === Q16OBOFBLODJVA3TRXPL - Command: tmux new -s upterm -x 132 -y 43 - Force Command: tmux attach -t upterm - - Host: ssh://uptermd.upterm.dev:22 - SSH Session: ssh Q16oBofblOdjVa3TrXPl:ZTc4NGUxMWRiMjI5MDgudm0udXB0ZXJtLmludGVybmFsOjIyMjI=@uptermd.upterm.dev + Run lhotari/action-upterm@v1 + upterm + + Auto-generating ~/.ssh/known_hosts by attempting connection to uptermd.upterm.dev + Pseudo-terminal will not be allocated because stdin is not a terminal. + + Warning: Permanently added 'uptermd.upterm.dev' (ED25519) to the list of known hosts. + + runner@uptermd.upterm.dev: Permission denied (publickey). + + Adding actor "GitHubLogin" to allowed users. + Fetching SSH keys registered with GitHub profiles: GitHubLogin + Fetched 2 ssh public keys + Creating a new session. Connecting to upterm server ssh://uptermd.upterm.dev:22 + Created new session successfully + Entering main loop + === Q16OBOFBLODJVA3TRXPL + Command: tmux new -s upterm -x 132 -y 43 + Force Command: tmux attach -t upterm + + Host: ssh://uptermd.upterm.dev:22 + SSH Session: ssh Q16oBofblOdjVa3TrXPl:ZTc4NGUxMWRiMjI5MDgudm0udXB0ZXJtLmludGVybmFsOjIyMjI=@uptermd.upterm.dev Step 3: Connect to the machine via ssh @@ -71,7 +75,8 @@ You can now open a terminal in your own machine and sshe to the upterm server, e .. code-block:: console - ssh Q16oBofblOdjVa3TrXPl:ZTc4NGUxMWRiMjI5MDgudm0udXB0ZXJtLmludGVybmFsOjIyMjI=@uptermd.upterm.dev + + ssh Q16oBofblOdjVa3TrXPl:ZTc4NGUxMWRiMjI5MDgudm0udXB0ZXJtLmludGVybmFsOjIyMjI=@uptermd.upterm.dev Step 4: Run the docker container interactively @@ -79,18 +84,21 @@ Step 4: Run the docker container interactively Once you are connected to the machine it is convenient to follow these steps to interactively run the docker container: .. code-block:: console - docker ps -a + + docker ps -a The id of the existing docker container will be displayed and you can use it to commit the container. .. code-block:: console - docker commit debug_image + + docker commit debug_image and then run it interactively, e.g. .. code-block:: console - docker run -it --volume=/home/runner/work/GEOS/GEOS:/tmp/geos -e ENABLE_HYPRE=ON -e ENABLE_HYPRE_DEVICE=CUDA -e ENABLE_TRILINOS=OFF --cap-add=SYS_PTRACE --entrypoint /bin/bash debug_image + + docker run -it --volume=/home/runner/work/GEOS/GEOS:/tmp/geos -e ENABLE_HYPRE=ON -e ENABLE_HYPRE_DEVICE=CUDA -e ENABLE_TRILINOS=OFF --cap-add=SYS_PTRACE --entrypoint /bin/bash debug_image Step 5: Cancel the workflow ============================================== diff --git a/src/docs/sphinx/developerGuide/Contributing/githubtestsummary.png b/src/docs/sphinx/developerGuide/Contributing/githubtestsummary.png new file mode 100644 index 00000000000..87d77dd9a22 Binary files /dev/null and b/src/docs/sphinx/developerGuide/Contributing/githubtestsummary.png differ diff --git a/src/docs/sphinx/developerGuide/Contributing/index_contributing.rst b/src/docs/sphinx/developerGuide/Contributing/index_contributing.rst index dd03fc486a3..dbc125fa326 100644 --- a/src/docs/sphinx/developerGuide/Contributing/index_contributing.rst +++ b/src/docs/sphinx/developerGuide/Contributing/index_contributing.rst @@ -1,3 +1,5 @@ +.. _Contributing: + ############################################################################### Contributing ############################################################################### @@ -27,4 +29,4 @@ Contributing InstallWin.rst - WorkingInteractivelyOnCI.rst + WorkInteractivelyOnCI.rst diff --git a/src/docs/sphinx/developerGuide/Contributing/readthedocsbuildsummary.png b/src/docs/sphinx/developerGuide/Contributing/readthedocsbuildsummary.png new file mode 100644 index 00000000000..fc6a42e6a0c Binary files /dev/null and b/src/docs/sphinx/developerGuide/Contributing/readthedocsbuildsummary.png differ diff --git a/src/docs/sphinx/developerGuide/Index.rst b/src/docs/sphinx/developerGuide/Index.rst index 7e06c68461d..9ecf43b846d 100644 --- a/src/docs/sphinx/developerGuide/Index.rst +++ b/src/docs/sphinx/developerGuide/Index.rst @@ -2,7 +2,10 @@ Developer Guide ############################################################################### -Welcome to the GEOS developer guide. +Welcome to the GEOS developer guide. +This guide serves as a reference for developers contributing to the GEOS project. +The :ref:`Contributing` section provides general details and guidelines for contributing to the GEOS project. +The :ref:`KeyComponents` section provides an overview of the some basic components that of the GEOS project. .. toctree:: :maxdepth: 3 diff --git a/src/docs/sphinx/developerGuide/KeyComponents/index_KeyComponents.rst b/src/docs/sphinx/developerGuide/KeyComponents/index_KeyComponents.rst index 6960fe15c24..68899719971 100644 --- a/src/docs/sphinx/developerGuide/KeyComponents/index_KeyComponents.rst +++ b/src/docs/sphinx/developerGuide/KeyComponents/index_KeyComponents.rst @@ -1,3 +1,5 @@ +.. _KeyComponents: + ############################################################################### Code Components ############################################################################### diff --git a/src/docs/sphinx/tutorials/step01/Tutorial.rst b/src/docs/sphinx/tutorials/step01/Tutorial.rst index 0e896f33fa3..8c9b5697689 100644 --- a/src/docs/sphinx/tutorials/step01/Tutorial.rst +++ b/src/docs/sphinx/tutorials/step01/Tutorial.rst @@ -91,6 +91,9 @@ in different regions of the domain at different moments of the simulation. In this first example, we use one type of solver in the entire domain and for the entire duration of the simulation. +The input file for this tutorial can be found in the repository at +`inputFiles/singlePhaseFlow/3D_10x10x10_compressible_smoke.xml `_, which also includes +`inputFiles/singlePhaseFlow/3D_10x10x10_compressible_base.xml `_. The solver we are specifying here is a single-phase flow solver. In GEOS, such a solver is created using a ``SinglePhaseFVM`` element. This type of solver is one among several cell-centered single-phase finite volume methods. @@ -134,7 +137,7 @@ In production runs, you may want to suppress most console output. For solvers of the ``SinglePhaseFVM`` family, one required attribute is a discretization scheme. Here, we use a Two-Point Flux Approximation (TPFA) finite volume discretization scheme called ``singlePhaseTPFA``. -To know the list of admissible values of an attribute, please see GEOS's XML schema. +To know the list of admissible values of an attribute, please see `GEOS's XML schema `_. This discretization type must know how to find permeability values that it uses internally to compute transmissibilities. The ``permeabilityNames`` attribute tells the solver the user-defined name (the *handle*) of the permeability values that will be defined elsewhere in the input file. @@ -199,7 +202,7 @@ Keeping things simple, our element collection has only one type of element: a `` A mesh can contain several geometrical types of elements. For numerical convenience, elements are aggregated by types into ``cellBlocks``. -Here, we only linear 8-node brick elements, so the entire domain is one object called ``cellBlock``. +Here, we only have linear 8-node brick elements, so the entire domain is one object called ``cellBlock``. **xCoords, yCoords, zCoords, nx, ny, nz** @@ -291,14 +294,11 @@ Now to use this scheme, we need to supply more details in the ``NumericalMethods :start-after: :end-before: -The ``fieldName`` attribute specifies which property will be used for flux computations, -and also specifies that for Dirichlet boundary conditions, the pressure value at the element face is used. -The ``coefficientName`` attribute is used for the stencil transmissibility computations. - Note that in GEOS, there is a difference between physics solvers and numerical methods. Their parameterizations are thus independent. We can have multiple solvers using the same numerical scheme but with different tolerances, for instance. +The available numerical methods and their options are listed in the GEOS XML schema documentation which may be found by using the search function in the documentation. .. _ElementRegions_tag_single_phase_internal_mesh: @@ -311,7 +311,9 @@ to regions of elements. Here, we use only one **CellElementRegion** to represent the entire domain (user name: ``mainRegion``). It contains all the blocks called ``cellBlock`` defined in the mesh section. We specify the materials contained in that region using a ``materialList``. -Several materials coexist in ``cellBlock``, and we list them using their user-defined names: ``water``, ``rockPorosity``, and ``rockPerm``, etc. What these names mean, and the physical properties that they are attached to are defined next. +Several materials coexist in ``cellBlock``, and we list them using their user-defined names: +``water`` and ``rock`` in this exemple. +Each material is a definition of physical properties. .. literalinclude:: ../../../../../inputFiles/singlePhaseFlow/3D_10x10x10_compressible_base.xml diff --git a/src/docs/sphinx/tutorials/step02/Tutorial.rst b/src/docs/sphinx/tutorials/step02/Tutorial.rst index c2d0998af32..2682d28d786 100644 --- a/src/docs/sphinx/tutorials/step02/Tutorial.rst +++ b/src/docs/sphinx/tutorials/step02/Tutorial.rst @@ -152,17 +152,16 @@ Here is the ``vtk`` file : .. literalinclude:: ../../../../../inputFiles/singlePhaseFlow/vtk/cube_10x10x10_hex.vtk :caption: cube_10x10x10_hex.vtk - :lines: 1-20 + :lines: 1-7 GEOS can run different physical solvers on different regions of the mesh at different times. Here, to keep things simple, we run one solver (single-phase flow) on the entire domain throughout the simulation. -Even this is trivial, we need to define and name a region encompassing the entire domain -and assign it to the single-phase flow solver. -We also need to provide material properties to the regions. -This is done by specifying ``ElementRegions``. -Here, the entire field is one region called ``Domain``, -and contains multiple constitutive models, including ``water``, ``rockPorosity``, and ``rockPerm``. +To do so, we need to define a region encompassing the entire domain. +We will name it ``Domain``, as refered to in the single-phase flow solver (in its ``targetRegions``), +and list its constitutive models in the ``materialList``, which are ``water`` and ``rock``. +Since we have imported a mesh with only one region, we can set ``cellBlocks`` to ``{ * }`` +(we have could also set ``cellBlocks`` to ``{ hexahedra }`` as the mesh has only hexahedral cells). .. literalinclude:: ../../../../../inputFiles/singlePhaseFlow/vtk/3D_10x10x10_compressible_hex_gravity_base.xml @@ -171,6 +170,11 @@ and contains multiple constitutive models, including ``water``, ``rockPorosity`` :end-before: +.. note:: + If you use a name that is not ``hexahedra`` or ``all`` for this attribute, or if the mesh is + changed and have not-hexahedral cells, GEOS will throw an error at the beginning of the + simulation. See :ref:`Meshes` for more information. + Running GEOS ---------------------------------------- @@ -326,7 +330,9 @@ And the ``vtk`` file starts as follows (notice the tetrahedral point coordinates :caption: cube_10x10x10_tet.vtk :lines: 1-20 -Again, the entire field is one region called ``Domain`` and contains ``water`` and ``rock`` only. +Again, the entire field is one region called ``Domain`` which contains ``water`` and ``rock``. +Since we have imported a mesh with only one region, we can again set ``cellBlocks`` to ``{ * }`` +(we have could also set ``cellBlocks`` to ``{ tetrahedra }`` as the mesh has only tetrahedric cells). .. literalinclude:: ../../../../../inputFiles/singlePhaseFlow/vtk/3D_10x10x10_compressible_tetra_gravity_base.xml :language: xml diff --git a/src/docs/sphinx/tutorials/step03/Tutorial.rst b/src/docs/sphinx/tutorials/step03/Tutorial.rst index e38b55222bd..c9aa49fce57 100644 --- a/src/docs/sphinx/tutorials/step03/Tutorial.rst +++ b/src/docs/sphinx/tutorials/step03/Tutorial.rst @@ -38,9 +38,9 @@ We consider the following mesh as a numerical support to the simulations in this This mesh contains three continuous regions: - - a Top region (overburden, elementary tag = `Overburden`) - - a Middle region (reservoir layer, elementary tag = `Reservoir`) - - a Bottom region (underburden, elementary tag = `Underburden`) + - a Bottom region (underburden, elementary tag = `Underburden`, attribute = ``1``) + - a Middle region (reservoir layer, elementary tag = `Reservoir`, attribute = ``2``) + - a Top region (overburden, elementary tag = `Overburden`, attribute = ``3``) .. image:: reservoir_transparent.png :width: 600px @@ -169,31 +169,17 @@ Regions Assuming that the overburden and the underburden are impermeable, and flow only takes place in the reservoir, we need to define regions. -There are two methods to achieve this regional solve. +We need to define all the ``CellElementRegions`` according to the ``attribute`` values of the VTK file +(which are respectively ``1``, ``2`` and ``3`` for each region). As mentioned above, the solvers is only +applied on the reservoir layer, (on region ``2``). In this case, the **ElementRegions** tag is : -- The first solution is to define a unique ``CellElementRegion`` corresponding to the reservoir. - - .. code-block:: xml - - - - - -- The second solution is to define all the ``CellElementRegions`` as they are in the VTK file, but defining the solvers only on the reservoir layer. In this case, the **ElementRegions** tag is : - - .. literalinclude:: ../../../../../inputFiles/singlePhaseFlow/FieldCaseTutorial3_base.xml - :language: xml - :start-after: - :end-before: - -We opt for the latest as it allows to visualize over- and underburdens and to change regions handling in their tag without needing to amend the **ElementRegion** tag. +.. literalinclude:: ../../../../../inputFiles/singlePhaseFlow/FieldCaseTutorial3_base.xml + :language: xml + :start-after: + :end-before: .. note:: - The material list here was set for a single-phase flow problem. This list is subject - to change if the problem is not a single-phase flow problem. + This material list here is subject to change if the problem is not a single-phase flow problem. .. _Constitutive_tag_field_case: @@ -214,7 +200,8 @@ The constitutive parameters such as the density, the viscosity, and the compress To consider an incompressible fluid, the user has to set the compressibility to 0. .. note:: - GEOS handles permeability as a diagonal matrix, so the three values of the permeability tensor are set individually using the ``component`` field. + Currently GEOS handles permeability as a diagonal matrix, so the three values of the permeability tensor are set individually using the ``component`` field. + The ability for a full tensor permeability is planned for future releases. .. _FieldSpecifications_tag_field_case: diff --git a/src/docs/sphinx/tutorials/step04/Tutorial.rst b/src/docs/sphinx/tutorials/step04/Tutorial.rst index d89f009817e..0be6a99f9dd 100644 --- a/src/docs/sphinx/tutorials/step04/Tutorial.rst +++ b/src/docs/sphinx/tutorials/step04/Tutorial.rst @@ -82,7 +82,7 @@ The computational domain is discretized by ``C3D8`` elements with the first orde functions at each direction in the parent domain. The 2 x 2 x 2 Gauss quadrature rule is adopted to be compatible with the first order interpolation functions. -.. literalinclude:: ../../../../../inputFiles/solidMechanics/beamBending_base.xml +.. literalinclude:: ../../../../../inputFiles/solidMechanics/beamBending_smoke.xml :language: xml :start-after: :end-before: diff --git a/src/docs/sphinx/userGuide/Index.rst b/src/docs/sphinx/userGuide/Index.rst index 1e7330a3f13..66a3c60cf52 100644 --- a/src/docs/sphinx/userGuide/Index.rst +++ b/src/docs/sphinx/userGuide/Index.rst @@ -17,6 +17,8 @@ Welcome to the GEOS user guide. /coreComponents/constitutive/docs/Constitutive + /coreComponents/constitutiveDrivers/docs/ConstitutiveDrivers + /coreComponents/fieldSpecification/docs/FieldSpecification /coreComponents/events/docs/EventManager @@ -25,6 +27,8 @@ Welcome to the GEOS user guide. /coreComponents/functions/docs/FunctionManager + /coreComponents/physicsSolvers/multiphysics/docs/Initialization.rst + /coreComponents/linearAlgebra/docs/LinearSolvers.rst /coreComponents/discretizationMethods/docs/NumericalMethodsManager diff --git a/src/externalComponents/newComponentTemplate/src/CMakeLists.txt b/src/externalComponents/newComponentTemplate/src/CMakeLists.txt index ffc7fbb9552..e79d970d05c 100644 --- a/src/externalComponents/newComponentTemplate/src/CMakeLists.txt +++ b/src/externalComponents/newComponentTemplate/src/CMakeLists.txt @@ -9,11 +9,7 @@ set( componentSources NewComponent.cpp ) unset( dependencyList ) # Specify dependencies -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core) -else() - list( APPEND dependencyList ${geosx_core_libs} ) -endif() +list( APPEND dependencyList geosx_core) message("adding newComponentTemplate library") diff --git a/src/externalComponents/newComponentTemplate/src/NewComponent.cpp b/src/externalComponents/newComponentTemplate/src/NewComponent.cpp index 9a736691569..f9ec9069792 100644 --- a/src/externalComponents/newComponentTemplate/src/NewComponent.cpp +++ b/src/externalComponents/newComponentTemplate/src/NewComponent.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/externalComponents/newComponentTemplate/src/NewComponent.hpp b/src/externalComponents/newComponentTemplate/src/NewComponent.hpp index 788bf745527..41af5f7503b 100644 --- a/src/externalComponents/newComponentTemplate/src/NewComponent.hpp +++ b/src/externalComponents/newComponentTemplate/src/NewComponent.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/externalComponents/newComponentTemplate/tests/CMakeLists.txt b/src/externalComponents/newComponentTemplate/tests/CMakeLists.txt index b64bfbfe5b7..737c1fccebc 100644 --- a/src/externalComponents/newComponentTemplate/tests/CMakeLists.txt +++ b/src/externalComponents/newComponentTemplate/tests/CMakeLists.txt @@ -1,11 +1,7 @@ # Specify list of tests set( dependencyList gtest ) -if ( GEOS_BUILD_SHARED_LIBS ) - list( APPEND dependencyList geosx_core ) -else() - list( APPEND dependencyList ${geosx_core_libs} ) -endif() +list( APPEND dependencyList geosx_core ) set( newComponentTests testNewComponent.cpp ) diff --git a/src/externalComponents/newComponentTemplate/tests/testNewComponent.cpp b/src/externalComponents/newComponentTemplate/tests/testNewComponent.cpp index bfb46c966b1..9a9a521007c 100644 --- a/src/externalComponents/newComponentTemplate/tests/testNewComponent.cpp +++ b/src/externalComponents/newComponentTemplate/tests/testNewComponent.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/index.rst b/src/index.rst index 9dedc1f4d75..a912239cb52 100644 --- a/src/index.rst +++ b/src/index.rst @@ -126,6 +126,22 @@ you have suggestions for improving the guides below, please post an issue on our To the Python Tools Documentation + .. grid-item-card:: + + Feature Requests, Reporting Bugs, and Support + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + To make feature requests, report bugs, or get support (after reviewing the user guide) please submit an issue on Github. + + +++ + + .. button-link:: https://github.com/GEOS-DEV/GEOS/issues/new/choose + :expand: + :color: info + :click-parent: + + To the "New issue" page on the GEOS Github repository + ******************** Table of Contents @@ -150,7 +166,7 @@ Table of Contents docs/sphinx/buildGuide/Index - docs/sphinx/CompleteXMLSchema + docs/sphinx/datastructure/CompleteXMLSchema docs/sphinx/Contributors diff --git a/src/main/main.cpp b/src/main/main.cpp index 375b456aadf..3904111aa1c 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -71,12 +71,14 @@ int main( int argc, char *argv[] ) // A NotAnError is thrown if "-h" or "--help" option is used. catch( NotAnError const & ) { + basicCleanup(); return 0; } catch( std::exception const & e ) { GEOS_LOG( e.what() ); LvArray::system::callErrorHandler(); + basicCleanup(); std::abort(); } return 0; diff --git a/src/pygeosx/CMakeLists.txt b/src/pygeosx/CMakeLists.txt index 9f03409ef48..74cd9dc4ba7 100644 --- a/src/pygeosx/CMakeLists.txt +++ b/src/pygeosx/CMakeLists.txt @@ -3,7 +3,7 @@ set( python_headers pygeosx.hpp ) set( python_sources pygeosx.cpp ) -set( dependencyList ${extraComponentsLinkList} ${externalComponentsLinkList} Python3::Python ) +set( dependencyList ${extraComponentsLinkList} ${externalComponentsLinkList} mainInterface Python3::Python ) blt_add_library( NAME pygeosx SOURCES ${python_sources} @@ -26,6 +26,7 @@ add_custom_command( TARGET pygeosx COMMAND ln -sf ${CMAKE_BINARY_DIR}/lib/pylvarray.so ${CMAKE_BINARY_DIR}/lib/PYGEOSX/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages/ ) target_include_directories( pygeosx PUBLIC ${CMAKE_SOURCE_DIR}/coreComponents ) +target_include_directories( pygeosx PUBLIC ${CMAKE_BINARY_DIR}/include ) geosx_add_code_checks( PREFIX pygeosx ) diff --git a/src/pygeosx/pygeosx.cpp b/src/pygeosx/pygeosx.cpp index c16b6b2b268..75879623f5c 100644 --- a/src/pygeosx/pygeosx.cpp +++ b/src/pygeosx/pygeosx.cpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * diff --git a/src/pygeosx/pygeosx.hpp b/src/pygeosx/pygeosx.hpp index 644be973b9b..0e54130019a 100644 --- a/src/pygeosx/pygeosx.hpp +++ b/src/pygeosx/pygeosx.hpp @@ -5,7 +5,7 @@ * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC * Copyright (c) 2018-2024 Total, S.A * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2024 Chevron + * Copyright (c) 2023-2024 Chevron * Copyright (c) 2019- GEOS/GEOSX Contributors * All rights reserved * @@ -14,8 +14,8 @@ */ // Source includes -#ifndef GEOS_PYGEOS_PYGEOS_HPP_ -#define GEOS_PYGEOS_PYGEOS_HPP_ +#ifndef GEOS_PYGEOSX_PYGEOSX_HPP_ +#define GEOS_PYGEOSX_PYGEOSX_HPP_ #include "LvArray/src/python/pythonForwardDeclarations.hpp" #include "mainInterface/GeosxState.hpp" diff --git a/src/pygeosx/pygeosx_documentation.rst b/src/pygeosx/pygeosx_documentation.rst index 4c1e3c3e346..557999148ba 100644 --- a/src/pygeosx/pygeosx_documentation.rst +++ b/src/pygeosx/pygeosx_documentation.rst @@ -6,7 +6,7 @@ GEOS can be manipulated and executed through a Python script. High-level control of GEOS is managed through the top-level ``pygeosx`` functions, like ``initialize`` and ``run``. GEOS's data can be manipulated by getting -:ref:`pylvarray ` views of LvArray objects living in GEOS's data repository. +`pylvarray `_ views of LvArray objects living in GEOS's data repository. These ``pylvarray`` views are fetched by calling ``Wrapper.value()`` after getting a ``Wrapper`` out of the data repository. diff --git a/src/pygeosx/pyssle.xml b/src/pygeosx/pyssle.xml index 99361955283..82024bb7dc6 100644 --- a/src/pygeosx/pyssle.xml +++ b/src/pygeosx/pyssle.xml @@ -49,7 +49,7 @@ diff --git a/src/pygeosx/unitTests/dataRepositoryTests/pygeosx_only.xml b/src/pygeosx/unitTests/dataRepositoryTests/pygeosx_only.xml index 7625dfd3831..085db97cd7d 100644 --- a/src/pygeosx/unitTests/dataRepositoryTests/pygeosx_only.xml +++ b/src/pygeosx/unitTests/dataRepositoryTests/pygeosx_only.xml @@ -30,7 +30,7 @@