Giter Site home page Giter Site logo

ajacquey / golem Goto Github PK

View Code? Open in Web Editor NEW
35.0 14.0 26.0 20.91 MB

GOLEM is a numerical simulator for modelling coupled Thermo-Hydro-Mechanical processes in faulted geothermal reservoirs.

License: GNU General Public License v3.0

Makefile 0.66% C++ 78.60% Python 0.07% Shell 0.15% C 0.03% GLSL 1.55% Assembly 6.62% SWIG 12.33%
golem geothermal-reservoirs moose-framework

golem's Introduction


GOLEM
A MOOSE-based application

A numerical simulator for modelling coupled THM processes in faulted geothermal reservoirs based on MOOSE.

GitHub License Gitter DOI

About

GOLEM is a numerical simulator for modelling coupled Thermo-Hydro-Mechanical processes in faulted geothermal reservoirs. The simulator is developed by Antoine Jacquey ORCID iD iconGitHub icon id and Mauro Cacace ORCID iD iconGitHub icon id at the GFZ German Research Centre for Geosciences from the section Basin Modelling.

GOLEM is a MOOSE-based application. Visit the MOOSE framework page for more information.

Licence

GOLEM is distributed under the GNU GENERAL PUBLIC LICENSE v3.

Getting Started

Minimum System Requirements

The following system requirements are from the MOOSE framework (see Getting Started for more information):

  • Compiler: C++11 Compliant GCC 4.8.4, Clang 3.4.0, Intel20130607
  • Python 2.7+
  • Memory: 16 GBs (debug builds)
  • Processor: 64-bit x86
  • Disk: 30 GBs
  • OS: UNIX compatible (OS X, most flavors of Linux)

1. Setting Up a MOOSE Installation

To install GOLEM, you need first to have a working and up-to-date installation of the MOOSE framework.
To do so, please visit the Getting Started page of the MOOSE framework and follow the instructions. If you encounter difficulties at this step, you can ask for help on the MOOSE-users Google group.

2. Clone GOLEM

GOLEM can be cloned directly from GitHub using Git. In the following, we refer to the directory projects which you created during the MOOSE installation (by default ~/projects):

cd ~/projects
git clone https://github.com/ajacquey/Golem.git
cd ~/projects/golem
git checkout master

Note: the "master" branch of GOLEM is the "stable" branch which is updated only if all tests are passing.

3. Compile GOLEM

You can compile GOLEM by following these instructions:

cd ~/projects/golem
make -j4

4. Test GOLEM

To make sure that everything was installed properly, you can run the tests suite of GOLEM:

cd ~/projects/golem
./run_tests -j2

If all the tests passed, then your installation is working properly. You can now use the GOLEM simulator!

Usage

To run GOLEM from the command line with multiple processors, use the following command:

mpiexec -n <nprocs> ~/projects/golem/golem-opt -i <input-file>

Where <nprocs> is the number of processors you want to use and <input-file> is the path to your input file (extension .i).

Information about the structure of the GOLEM input files can be found in the documentation (link to follow).

Cite

If you use GOLEM for your work please cite:

  • This repository:
    Antoine B. Jacquey, & Mauro Cacace. (2017, September 29). GOLEM, a MOOSE-based application. Zenodo. http://doi.org/10.5281/zenodo.999401
  • The publication presenting GOLEM:
    Cacace, M. and Jacquey, A. B.: Flexible parallel implicit modelling of coupled thermal–hydraulic–mechanical processes in fractured rocks, Solid Earth, 8, 921-941, https://doi.org/10.5194/se-8-921-2017, 2017.

Please read the CITATION file for more information.

Publications using GOLEM

  • Freymark, J., Bott, J., Cacace, M., Ziegler, M., Scheck-Wenderoth, M.: Influence of the Main Border Faults on the 3D Hydraulic Field of the Central Upper Rhine Graben, Geofluids, 2019.
  • Blöcher, G., Cacace, M., Jacquey, A. B., Zang, A., Heidbach, O., Hofmann, H., Kluge, C., Zimmermann, G.: Evaluating Micro-Seismic Events Triggered by Reservoir Operations at the Geothermal Site of Groß Schönebeck (Germany), Rock Mechanics and Rock Engineering, 2018.
  • Jacquey, A. B., Urpi, L., Cacace, M., Blöcher, G., Zimmermann, G., Scheck-Wenderoth, M.: Far field poroelastic response of geothermal reservoirs to hydraulic stimulation treatment: Theory and application at the Groß Schönebeck geothermal research facility, International Journal of Rock Mechanics and Mining Sciences, 2018.
  • Peters, E., Blöcher, G., Salimzadeh, S., Egberts, P. J. P., Cacace, M.: Modelling of multi-lateral well geometries for geothermal applications, Advances in Geosciences, 2018.
  • Magri, F., Cacace, M., Fischer, T., Kolditz, O., Wang, W., Watanabe, N.: Thermal convection of viscous fluids in a faulted system: 3D benchmark for numerical codes, Energy Procedia, 2017.
  • Cacace, M. and Jacquey, A. B.: Flexible parallel implicit modelling of coupled Thermal-Hydraulic-Mechanical processes in fractured rocks, Solid Earth, 2017.
  • Jacquey, A. B.: Coupled Thermo-Hydro-Mechanical Processes in Geothermal Reservoirs: a Multiphysic and Multiscale Approach Linking Geology and 3D Numerical Modelling, PhD thesis, RWTH Aachen, 2017.
  • Jacquey, A. B., Cacace, M., Blöcher, G.: Modelling coupled fluid flow and heat transfer in fractured reservoirs: description of a 3D benchmark numerical case, Energy Procedia, 2017.
  • Jacquey, A. B., Cacace, M., Blöcher, G., Milsch, H., Deon, F., Scheck-Wenderoth, M.: Processes Responsible for Localized Deformation within Porous Rocks: Insights from Laboratory Experiments and Numerical Modelling, 6th Biot Conference on Poromechanics, Paris 2017.

golem's People

Contributors

ajacquey avatar lindsayad avatar mcacace avatar zivanradosavljevic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

golem's Issues

various small issues after git-clone, compile, run tests

After the Dep.6.4 seminar talk (awesome but overwhelming) I've installed Moose and Golem on my PC. Didn't know anything about Moose and Golem until then. I did the following because I just like to try things out. Maybe you like to get feedback from first-time users.

Now I have a working Moose installation on my Linux PC, ubuntu 16.04 with 4 CPUs and 24 GB RAM, kernel 4.4.0-137-generic #163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 x86_64

Moose master branch, commit 56178d8, from 2018-10-16

test/run_tests
Ran 1735 tests in 258.1 seconds.
1735 passed, 73 skipped, 0 pending, 0 failed

Various issues

  1. From Golem's test suite all tests passed but 1 test failed:
test:TH.2D_transient ............................................................. [FINISHED] FAILED (EXODIFF)
--------------------------------------------------------------------------------------------------------------
Ran 44 tests in 160.8 seconds.
43 passed, 0 skipped, 0 pending, 1 FAILED

Details:

test:TH.2D_transient: ERROR: 
test:TH.2D_transient:    *****************************************************************
test:TH.2D_transient:               EXODIFF	(Version: 2.90) Modified: 2018-02-15
test:TH.2D_transient:               Authors:  Richard Drake, [email protected]           
test:TH.2D_transient:                         Greg Sjaardema, [email protected]          
test:TH.2D_transient:               Run on    2018/10/18   13:13:24 CEST
test:TH.2D_transient:    *****************************************************************
test:TH.2D_transient: 
test:TH.2D_transient: Reading first file ... 
test:TH.2D_transient: Reading second file ... 
test:TH.2D_transient:   FILE 1: /home/knb/code/git/projects/Golem/test/tests/TH/gold/TH_2D_transient_out.e
test:TH.2D_transient:    Title: TH_2D_transient_out.e
test:TH.2D_transient:           Dim = 3, Blocks = 1, Nodes = 9882, Elements = 4800, Nodesets = 6, Sidesets = 6
test:TH.2D_transient:           Vars: Global = 0, Nodal = 2, Element = 3, Nodeset = 0, Sideset = 0, Times = 3
test:TH.2D_transient: 
test:TH.2D_transient:   FILE 2: /home/knb/code/git/projects/Golem/test/tests/TH/TH_2D_transient_out.e
test:TH.2D_transient:    Title: TH_2D_transient_out.e
test:TH.2D_transient:           Dim = 3, Blocks = 1, Nodes = 9882, Elements = 4800, Nodesets = 6, Sidesets = 6
test:TH.2D_transient:           Vars: Global = 0, Nodal = 2, Element = 3, Nodeset = 0, Sideset = 0, Times = 3
test:TH.2D_transient: 
test:TH.2D_transient: exodiff: INFO .. Map option is not needed.
test:TH.2D_transient: 
test:TH.2D_transient: Nodal coordinates will be compared .. tol:    1e-06 (absolute), floor:        0
test:TH.2D_transient: Time step values will be compared .. tol:  5.5e-06 (relative), floor:    1e-10
test:TH.2D_transient: No Global variables on either file.
test:TH.2D_transient: Nodal variables to be compared:
test:TH.2D_transient: 	pore_pressure                    tol:  5.5e-06 (relative), floor:    1e-10
test:TH.2D_transient: 	temperature                            5.5e-06 (relative),           1e-10
test:TH.2D_transient: Element variables to be compared:
test:TH.2D_transient: 	vx                               tol:  5.5e-06 (relative), floor:    1e-10
test:TH.2D_transient: 	vy                                     5.5e-06 (relative),           1e-10
test:TH.2D_transient: 	vz                                     5.5e-06 (relative),           1e-10
test:TH.2D_transient: No Element Attribute variables on either file.
test:TH.2D_transient: No Nodeset variables on either file.
test:TH.2D_transient: No Sideset variables on either file.
test:TH.2D_transient: Sideset Distribution Factors will be compared .. tol:    1e-06 (relative), floor:        0
test:TH.2D_transient: 
test:TH.2D_transient:   ==============================================================
test:TH.2D_transient:   NOTE: All node and element ids are reported as global ids.
test:TH.2D_transient: 
test:TH.2D_transient: Sideset Distribution Factors:
test:TH.2D_transient:   --------- Time step 1, 0.0000000e+00 ~ 0.0000000e+00, rel diff:  0.00000e+00 ---------
test:TH.2D_transient: Nodal variables:
test:TH.2D_transient: Element variables:
test:TH.2D_transient:   --------- Time step 2, 3.5000000e+03 ~ 3.5000000e+03, rel diff:  0.00000e+00 ---------
test:TH.2D_transient: Nodal variables:
test:TH.2D_transient:    temperature    rel diff: -1.6335222e-03 ~ -1.6334518e-03 = 4.31226e-05 (node 9882)
test:TH.2D_transient: Element variables:
test:TH.2D_transient:   --------- Time step 3, 7.0000000e+03 ~ 7.0000000e+03, rel diff:  0.00000e+00 ---------
test:TH.2D_transient: Nodal variables:
test:TH.2D_transient:    temperature    rel diff: -4.8462806e-03 ~ -4.8462504e-03 = 6.23805e-06 (node 9882)
test:TH.2D_transient: Element variables:
test:TH.2D_transient: 
test:TH.2D_transient: exodiff: Files are different
test:TH.2D_transient: 
test:TH.2D_transient:  
test:TH.2D_transient: ################################################################################
test:TH.2D_transient: Tester failed, reason: EXODIFF
test:TH.2D_transient: 

I tried this twice. I don't know what's wrong here, and I won't investigate. This is not my expertise.
Maybe you should write a small paragraph telling the user how serious this is if 1 test fails. Maybe it's just a false alarm here (tiny temperature differences) and you can change some tolerance value(s) or acceptance criteria here ?

  1. Moreover your paper says:

The source code and the input files of
the five numerical examples presented in this paper, plus a suite
of specific benchmark cases, are available for downloading from a
GitHub repository (https://github.com/ajacquey/Golem).

but there seems to be no such folder /examples/ (or similar) in the github repo. I haveb't really looked, and I don't care, and I don't need the examples, but maybe someone else will notice. I think a dummy paragraph /"coming soon" will suffice

  1. Maybe this is a moose issue, but still:
    I think it is appropriate to inform the user that the Moose installer alters the PATH variable. Moose brings its own python (Python 2.7.15 :: Anaconda, Inc. in /opt/moose/miniconda/bin), so many Python scripts or Python-based binaries (e.g. "diffuse" editor) that rely on the system's Python will cease to work when called from a bash shell. I had to change the PATH back to the old value by removing /opt/moose/miniconda/bin.

New version of GOLEM

Here is a list of improvements - new features which could the topic of a new GOLEM release version:

  • Improve memory usage for the mechanics
  • Direct solve for the plastic update
  • Direct solve for Maxwell viscoelasticity
  • Advection based on the entropy-production viscosity formulation
  • Aperture update based on normal and shear stress on fault plane (Hannes)
  • Reorganization of the materials
  • Use automatic differentiation

Failed to build Golem

I am new to Moose Golem and tried to compile it after successfully installing ad testing the Moose framework without any errors. Following the instructions on the README, I get the following while trying to build. I am running it on Ubuntu subsystem (20.04 LTS) within Windows 10.

(moose) vi65zebe@DESKTOP-9LJ6NCG:~/projects/golem$ make -j 4
Checking if header needs updating: /home/vi65zebe/projects/moose/framework/include/base/MooseRevision.h...
Rebuilding symlinks in /home/vi65zebe/projects/golem/build/header_symlinks
Creating Unity Directory /home/vi65zebe/projects/golem/build/unity_src
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/src/base/GolemApp.C...
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/src/main.C...
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/test/src/base/GolemTestApp.C...
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/auxkernels_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/kernels_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/controls_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/actions_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/bcs_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/utils_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/userobjects_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/functions_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/dirackernels_Unity.C
Creating Unity /home/vi65zebe/projects/golem/build/unity_src/materials_Unity.C
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/build/unity_src/auxkernels_Unity.C...
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/build/unity_src/kernels_Unity.C...
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/build/unity_src/controls_Unity.C...
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/build/unity_src/actions_Unity.C...
In file included from /home/vi65zebe/projects/golem/build/unity_src/kernels_Unity.C:7:
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C: In member function 'virtual void GolemKernelM::computeFiniteDeformJacobian()':
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:194:36: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
194 | const RankFourTensor II_ijkl = I.mixedProductIkJl(I);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:207:9: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
207 | I.mixedProductIkJl(rot_times_stress) + I.mixedProductJkIl(rot_times_stress);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:207:48: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductJkIl'; did you mean 'mixedProductJkI'?
207 | I.mixedProductIkJl(rot_times_stress) + I.mixedProductJkIl(rot_times_stress);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:209:35: error: 'MooseADWrapper<RankTwoTensorTempl, false>' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
209 | (_rotation_increment)[_qp].mixedProductIkJl((_rotation_increment)[_qp]);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:210:45: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
210 | const RankFourTensor drot_dUhatinv = Fhat.mixedProductIkJl(I);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:217:10: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
217 | -I.mixedProductIkJl(A) - I.mixedProductJkIl(A) + II_ijkl + I.mixedProductJkIl(I);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:217:34: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductJkIl'; did you mean 'mixedProductJkI'?
217 | -I.mixedProductIkJl(A) - I.mixedProductJkIl(A) + II_ijkl + I.mixedProductJkIl(I);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:217:68: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductJkIl'; did you mean 'mixedProductJkI'?
217 | -I.mixedProductIkJl(A) - I.mixedProductJkIl(A) + II_ijkl + I.mixedProductJkIl(I);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:223:38: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
223 | 0.5 * II_ijkl - 1.0 / 8.0 * (I.mixedProductIkJl(Ctilde) + Ctilde.mixedProductIkJl(I));
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:223:72: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
223 | 0.5 * II_ijkl - 1.0 / 8.0 * (I.mixedProductIkJl(Ctilde) + Ctilde.mixedProductIkJl(I));
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:226:25: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
226 | drot_dFhatinv -= Fhat.mixedProductIkJl((*_rotation_increment)[_qp].transpose());
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:230:34: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
230 | -0.5 * II_ijkl + 0.25 * (I.mixedProductIkJl(Ctilde) + Ctilde.mixedProductIkJl(I));
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:230:68: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
230 | -0.5 * II_ijkl + 0.25 * (I.mixedProductIkJl(Ctilde) + Ctilde.mixedProductIkJl(I));
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:233:40: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductJkIl'; did you mean 'mixedProductJkI'?
233 | _finite_deform_jacobian[_qp] += Fhat.mixedProductJkIl(_stress[_qp]);
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:235:47: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
235 | const RankFourTensor dFhat_dFhatinv = -Fhat.mixedProductIkJl(Fhat.transpose());
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
/home/vi65zebe/projects/golem/src/kernels/GolemKernelM.C:243:51: error: 'const RankTwoTensor' {aka 'const class RankTwoTensorTempl'} has no member named 'mixedProductIkJl'; did you mean 'mixedProductJkI'?
243 | const RankFourTensor dFhatinv_dGradu = -Fhatinv.mixedProductIkJl(Finv.transpose());
| ^~~~~~~~~~~~~~~~
| mixedProductJkI
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/build/unity_src/bcs_Unity.C...
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/build/unity_src/utils_Unity.C...
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/build/unity_src/userobjects_Unity.C...
Compiling C++ (in opt mode) /home/vi65zebe/projects/golem/build/unity_src/functions_Unity.C...
make: *** [/home/vi65zebe/projects/moose/framework/build.mk:144: /home/vi65zebe/projects/golem/build/unity_src/kernels_Unity.x86_64-conda-linux-gnu.opt.lo] Error 1
make: *** Waiting for unfinished jobs....


GolemPressureAction crashing on GLIC

Guido reported that the GolemPressureAction is not working on GLIC and working fine on desktop computer.

When running simulation using GolemPressureAction on GLIC, the simulation crashes with the following error:


mpirun has exited due to process rank 6 with PID 145868 on
node node189 exiting improperly. There are three reasons this could occur:

  1. this process did not call "init" before exiting, but others in
    the job did. This can cause a job to hang indefinitely while it waits
    for all processes to call "init". By rule, if one process calls "init",
    then ALL processes must call "init" prior to termination.

  2. this process called "init", but exited without calling "finalize".
    By rule, all processes that call "init" MUST call "finalize" prior to
    exiting or it will be considered an "abnormal termination"

  3. this process called "MPI_Abort" or "orte_abort" and the mca parameter
    orte_create_session_dirs is set to false. In this case, the run-time cannot
    detect that the abort call was an abnormal termination. Hence, the only
    error message you will receive is this one.

This may have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).

You can avoid this message by specifying -quiet on the mpirun command line.

[node189:145859] mca: base: component_find: unable to open /opt/mpi/gcc/openmpi-1.8.8/lib/openmpi/mca_mtl_psm: libpsm_infinipath.so.1: cannot open shared object file: No such file or directory (ignored)


Need to investigate if it's related to GLIC installation or code of GolemPressureAction.

Is there manual or uerguide for golem?

it is a good tool for geothermal reservoir smulation. Is there any user guide for golem? I wonder what's the mesh generation tool for the multi fracture example running?

Installation Error with current Moose Version

I tried to compile Golem with a fresh Moose installation and got the following error:

In file included from /home/hombre/projects/Golem/build/unity_src/auxkernels_Unity.C:3:
/home/hombre/projects/Golem/src/auxkernels/GolemEqvInelasticStrain.C: In member function 'virtual libMesh::Real GolemEqvInelasticStrain::computeValue()':
/home/hombre/projects/Golem/src/auxkernels/GolemEqvInelasticStrain.C:44:10: error: '_u_old' was not declared in this scope; did you mean '_dt_old'?
44 | return _u_old[_qp] + std::sqrt(2.0 / 3.0) * inelastic_strain_increment.L2norm();
| ^~~~~~
| _dt_old
In file included from /home/hombre/projects/Golem/build/unity_src/auxkernels_Unity.C:7:
/home/hombre/projects/Golem/src/auxkernels/GolemThermalStress.C: In member function 'virtual libMesh::Real GolemThermalStress::computeValue()':
/home/hombre/projects/Golem/src/auxkernels/GolemThermalStress.C:52:10: error: '_u_old' was not declared in this scope; did you mean '_dt_old'?
52 | return _u_old[_qp] + dstressT(_i, _i);
| ^~~~~~
| _dt_old
/home/hombre/projects/moose/framework/build.mk:118: recipe for target '/home/hombre/projects/Golem/build/unity_src/auxkernels_Unity.x86_64-conda-linux-gnu.opt.lo' failed
make: *** [/home/hombre/projects/Golem/build/unity_src/auxkernels_Unity.x86_64-conda-linux-gnu.opt.lo] Error 1
make: *** Waiting for unfinished jobs....

Example case with fracture

Hi,

Thanks for your nice code !

I'd like to reproduce the simulations in the paper below:

Cacace, M. and Jacquey, A. B.: Flexible parallel implicit modelling of coupled thermal–hydraulic–mechanical processes in fractured rocks, Solid Earth, 8, 921-941, https://doi.org/10.5194/se-8-921-2017, 2017.

However, I didn't find any example input files that including fracture, wellbore and model.

Is that possible to share the example file that can help us to learn the GOLEM?

Bin Wang
PhD Student
Craft & Hawkins Department of Petroleum Engineering
Louisiana State University

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.