Skip to content

Example overview

JutulDarcy.jl comes with a number of examples that illustrate different features of the simulator. The examples are categorized by tags, and you can find the examples with a specific tag below. Examples can have multiple tags.

Introduction

Introduction  

Examples that illustrate basic features of JutulDarcy.jl and how to get started with the simulator. These examples are a good place to start because they are more detailed and easier to follow than the other examples where it is assumed that you are familiar with the features used in most examples.

Examples with the introduction tag:

  1. data_input_file (in introduction)

  2. intro_sensitivities (in introduction)

  3. two_phase_buckley_leverett (in introduction)

  4. two_phase_gravity_segregation (in introduction)

  5. two_phase_unstable_gravity (in introduction)

  6. wells_intro (in introduction)

  7. equilibrium_state (in workflow)

  8. five_spot_ensemble (in workflow)

  9. tracers_two_wells (in workflow)

  10. optimize_simple_bl (in data_assimilation)

  11. btes (in geothermal)

  12. geothermal_doublet (in geothermal)

  13. compositional_2d_vertical (in compositional)

  14. consistent_avgmpfa (in discretization)

  15. mpfa_weno_discretizations (in discretization)

  16. relperms (in properties)

StartToFinish

StartToFinish  

Tag for examples that go through model setup in detail from start to finish, including meshing, setting up properties, wells, and running a simulation. These examples are a good place to start if you want to see how to set up a complete model.

Examples with the starttofinish tag:

  1. co2_sloped (in workflow)

  2. fully_differentiable_geothermal (in workflow)

Advanced

Advanced  

Examples that illustrate more advanced features of JutulDarcy.jl. These examples assume that you are already familiar with the basics of the simulator (e.g. how a reservoir is represented, how wells are set up) as little attention is given to the basics.

Examples with the advanced tag:

  1. adding_new_wells (in workflow)

  2. co2_sloped (in workflow)

  3. fully_differentiable_geothermal (in workflow)

  4. hybrid_simulation_relperm (in workflow)

  5. model_coarsening (in workflow)

  6. rate_optimization (in workflow)

  7. advanced_history_match (in data_assimilation)

  8. clapeyron (in compositional)

Validation

Validation  

These examples validate the simulator on well-known problems by comparing results to other simulators or analytical solutions.

Examples with the validation tag:

  1. two_phase_buckley_leverett (in introduction)

  2. validation_compositional (in validation)

  3. validation_egg (in validation)

  4. validation_mrst (in validation)

  5. validation_norne_nohyst (in validation)

  6. validation_olympus_1 (in validation)

  7. validation_polymer (in validation)

  8. validation_spe1 (in validation)

  9. validation_spe9 (in validation)

  10. validation_thermal (in validation)

Wells

Wells  

Examples that have a particular focus on wells and are a good place to look if you are building your own model with wells, both in terms of realizing wells in a model and operating them with different types of constraints.

Examples with the wells tag:

  1. wells_intro (in introduction)

  2. adding_new_wells (in workflow)

  3. co2_sloped (in workflow)

  4. tracers_two_wells (in workflow)

InputFile

InputFile  

Examples that illustrate how to set up and run simulations based on input files (e.g. Eclipse/.DATA format).

Examples with the inputfile tag:

  1. data_input_file (in introduction)

  2. adding_new_wells (in workflow)

  3. rate_optimization (in workflow)

  4. spe1_gradients (in data_assimilation)

  5. validation_egg (in validation)

  6. validation_norne_nohyst (in validation)

  7. validation_olympus_1 (in validation)

  8. validation_polymer (in validation)

  9. validation_spe1 (in validation)

  10. validation_spe9 (in validation)

  11. validation_thermal (in validation)

Differentiability

Differentiability  

Examples that illustrate how to use the differentiable features of JutulDarcy.jl, including sensitivity calculations and gradient-based optimization.

Examples with the differentiability tag:

  1. intro_sensitivities (in introduction)

  2. fully_differentiable_geothermal (in workflow)

  3. optimize_simple_bl (in data_assimilation)

  4. spe1_gradients (in data_assimilation)

HistoryMatching

HistoryMatching  

Demonstrations of how to use JutulDarcy.jl for history matching/data assimilation, including gradient-based optimization of model parameters to match observed data.

Examples with the historymatching tag:

  1. fully_differentiable_geothermal (in workflow)

  2. hybrid_simulation_relperm (in workflow)

  3. advanced_history_match (in data_assimilation)

  4. cgnet_egg (in data_assimilation)

  5. optimize_simple_bl (in data_assimilation)

  6. spe1_gradients (in data_assimilation)

Discretizations

Discretizations  

Examples that illustrate how to use different discretizations for flow and transport in JutulDarcy.jl, including advanced discretizations such as multipoint flux approximations (MPFA) and high-resolution schemes (WENO).

Examples with the discretizations tag:

  1. consistent_avgmpfa (in discretization)

  2. mpfa_weno_discretizations (in discretization)

Meshing

Meshing  

These examples cover meshing (e.g. by calling Gmsh or other packages for mesh generation).

Examples with the meshing tag:

  1. btes (in geothermal)

  2. mpfa_weno_discretizations (in discretization)

MachineLearning

MachineLearning  

Examples that involve machine learning techniques, such as using neural networks to model relative permeability or other properties, or integrating machine learning type models into the simulation workflow.

Examples with the machinelearning tag:

  1. hybrid_simulation_relperm (in workflow)

  2. advanced_history_match (in data_assimilation)

Tracers

Tracers  

Examples that illustrate how to use tracers in JutulDarcy.jl, including setting up passive and active tracers, and using tracers for enhanced oil recovery (EOR) simulations.

Examples with the tracers tag:

  1. tracers_two_wells (in workflow)

  2. validation_polymer (in validation)

ModelReduction

ModelReduction  

Examples that illustrate how to use model reduction techniques in JutulDarcy.jl, including coarsening/upscaling, and other methods to reduce the computational cost of simulations.

Examples with the modelreduction tag:

  1. model_coarsening (in workflow)

  2. rate_optimization (in workflow)

Optimization

Optimization  

Examples that illustrate how to use JutulDarcy.jl for optimization problems, including gradient-based optimization of well controls and other parameters to maximize an objective function.

Examples with the optimization tag:

  1. fully_differentiable_geothermal (in workflow)

  2. rate_optimization (in workflow)

Properties

Properties  

Examples that illustrate how to set up and use different dynamic properties in JutulDarcy.jl, including PVT properties, relative permeability, hysteresis and capillary pressure.

Examples with the properties tag:

  1. co2_props (in properties)

  2. relperms (in properties)

Immiscible

Immiscible  

Examples that make use of the immiscible/dead-oil model for PVT descriptions.

Examples with the immiscible tag:

  1. two_phase_buckley_leverett (in introduction)

  2. two_phase_gravity_segregation (in introduction)

  3. two_phase_unstable_gravity (in introduction)

  4. wells_intro (in introduction)

  5. equilibrium_state (in workflow)

  6. five_spot_ensemble (in workflow)

  7. hybrid_simulation_relperm (in workflow)

  8. model_coarsening (in workflow)

  9. rate_optimization (in workflow)

  10. tracers_two_wells (in workflow)

  11. advanced_history_match (in data_assimilation)

  12. cgnet_egg (in data_assimilation)

  13. optimize_simple_bl (in data_assimilation)

  14. consistent_avgmpfa (in discretization)

  15. mpfa_weno_discretizations (in discretization)

  16. validation_egg (in validation)

  17. validation_mrst (in validation)

  18. validation_olympus_1 (in validation)

CO2

CO2  

Examples that involve simulation of geological sequestration of CO2 (carbon storage and sequestration / CCS), or other types of simulations involving CO2.

Examples with the co2 tag:

  1. co2_sloped (in workflow)

  2. co2_props (in properties)

Blackoil

Blackoil  

Examples that make use of the blackoil model for PVT descriptions.

Examples with the blackoil tag:

  1. adding_new_wells (in workflow)

  2. equilibrium_state (in workflow)

  3. spe1_gradients (in data_assimilation)

  4. validation_mrst (in validation)

  5. validation_norne_nohyst (in validation)

  6. validation_polymer (in validation)

  7. validation_spe1 (in validation)

  8. validation_spe9 (in validation)

Compositional

Compositional  

Examples that make use of the compositional model for PVT descriptions.

Examples with the compositional tag:

  1. equilibrium_state (in workflow)

  2. clapeyron (in compositional)

  3. compositional_2d_vertical (in compositional)

  4. compositional_5components (in compositional)

  5. validation_compositional (in validation)

Geothermal

Geothermal  

Examples that simulate recovery and/or storage of heat in the subsurface. See also the dedicated Fimbul.jl module for geothermal simulation with JutulDarcy.jl.

Examples with the geothermal tag:

  1. fully_differentiable_geothermal (in workflow)

  2. btes (in geothermal)

  3. geothermal_doublet (in geothermal)

  4. htates_intro (in geothermal)

  5. validation_thermal (in validation)