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
IntroductionExamples 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:
data_input_file (in introduction)
intro_sensitivities (in introduction)
two_phase_buckley_leverett (in introduction)
two_phase_gravity_segregation (in introduction)
two_phase_unstable_gravity (in introduction)
wells_intro (in introduction)
equilibrium_state (in workflow)
five_spot_ensemble (in workflow)
tracers_two_wells (in workflow)
optimize_simple_bl (in data_assimilation)
btes (in geothermal)
geothermal_doublet (in geothermal)
compositional_2d_vertical (in compositional)
consistent_avgmpfa (in discretization)
mpfa_weno_discretizations (in discretization)
relperms (in properties)
StartToFinish
StartToFinishTag 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:
co2_sloped (in workflow)
fully_differentiable_geothermal (in workflow)
Advanced
AdvancedExamples 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:
adding_new_wells (in workflow)
co2_sloped (in workflow)
fully_differentiable_geothermal (in workflow)
hybrid_simulation_relperm (in workflow)
model_coarsening (in workflow)
rate_optimization (in workflow)
advanced_history_match (in data_assimilation)
clapeyron (in compositional)
Validation
ValidationThese examples validate the simulator on well-known problems by comparing results to other simulators or analytical solutions.
Examples with the validation tag:
two_phase_buckley_leverett (in introduction)
validation_compositional (in validation)
validation_egg (in validation)
validation_mrst (in validation)
validation_norne_nohyst (in validation)
validation_olympus_1 (in validation)
validation_polymer (in validation)
validation_spe1 (in validation)
validation_spe9 (in validation)
validation_thermal (in validation)
Wells
WellsExamples 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:
wells_intro (in introduction)
adding_new_wells (in workflow)
co2_sloped (in workflow)
tracers_two_wells (in workflow)
InputFile
InputFileExamples that illustrate how to set up and run simulations based on input files (e.g. Eclipse/.DATA format).
Examples with the inputfile tag:
data_input_file (in introduction)
adding_new_wells (in workflow)
rate_optimization (in workflow)
spe1_gradients (in data_assimilation)
validation_egg (in validation)
validation_norne_nohyst (in validation)
validation_olympus_1 (in validation)
validation_polymer (in validation)
validation_spe1 (in validation)
validation_spe9 (in validation)
validation_thermal (in validation)
Differentiability
DifferentiabilityExamples that illustrate how to use the differentiable features of JutulDarcy.jl, including sensitivity calculations and gradient-based optimization.
Examples with the differentiability tag:
intro_sensitivities (in introduction)
fully_differentiable_geothermal (in workflow)
optimize_simple_bl (in data_assimilation)
spe1_gradients (in data_assimilation)
HistoryMatching
HistoryMatchingDemonstrations 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:
fully_differentiable_geothermal (in workflow)
hybrid_simulation_relperm (in workflow)
advanced_history_match (in data_assimilation)
cgnet_egg (in data_assimilation)
optimize_simple_bl (in data_assimilation)
spe1_gradients (in data_assimilation)
Discretizations
DiscretizationsExamples 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:
consistent_avgmpfa (in discretization)
mpfa_weno_discretizations (in discretization)
Meshing
MeshingThese examples cover meshing (e.g. by calling Gmsh or other packages for mesh generation).
Examples with the meshing tag:
btes (in geothermal)
mpfa_weno_discretizations (in discretization)
MachineLearning
MachineLearningExamples 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:
hybrid_simulation_relperm (in workflow)
advanced_history_match (in data_assimilation)
Tracers
TracersExamples 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:
tracers_two_wells (in workflow)
validation_polymer (in validation)
ModelReduction
ModelReductionExamples 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:
model_coarsening (in workflow)
rate_optimization (in workflow)
Optimization
OptimizationExamples 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:
fully_differentiable_geothermal (in workflow)
rate_optimization (in workflow)
Properties
PropertiesExamples 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:
Immiscible
ImmiscibleExamples that make use of the immiscible/dead-oil model for PVT descriptions.
Examples with the immiscible tag:
two_phase_buckley_leverett (in introduction)
two_phase_gravity_segregation (in introduction)
two_phase_unstable_gravity (in introduction)
wells_intro (in introduction)
equilibrium_state (in workflow)
five_spot_ensemble (in workflow)
hybrid_simulation_relperm (in workflow)
model_coarsening (in workflow)
rate_optimization (in workflow)
tracers_two_wells (in workflow)
advanced_history_match (in data_assimilation)
cgnet_egg (in data_assimilation)
optimize_simple_bl (in data_assimilation)
consistent_avgmpfa (in discretization)
mpfa_weno_discretizations (in discretization)
validation_egg (in validation)
validation_mrst (in validation)
validation_olympus_1 (in validation)
CO2
CO2Examples 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:
co2_sloped (in workflow)
co2_props (in properties)
Blackoil
BlackoilExamples that make use of the blackoil model for PVT descriptions.
Examples with the blackoil tag:
adding_new_wells (in workflow)
equilibrium_state (in workflow)
spe1_gradients (in data_assimilation)
validation_mrst (in validation)
validation_norne_nohyst (in validation)
validation_polymer (in validation)
validation_spe1 (in validation)
validation_spe9 (in validation)
Compositional
CompositionalExamples that make use of the compositional model for PVT descriptions.
Examples with the compositional tag:
equilibrium_state (in workflow)
clapeyron (in compositional)
compositional_2d_vertical (in compositional)
compositional_5components (in compositional)
validation_compositional (in validation)
Geothermal
GeothermalExamples 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:
fully_differentiable_geothermal (in workflow)
btes (in geothermal)
geothermal_doublet (in geothermal)
htates_intro (in geothermal)
validation_thermal (in validation)