From 79ad0c1417195aa6b881d913213634fa1ad443c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Wed, 21 Jan 2015 15:28:27 +0100 Subject: [PATCH] Can specify injector or producer tracers. --- examples/compute_tof.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/examples/compute_tof.cpp b/examples/compute_tof.cpp index bdd05d2e..869c0dc2 100644 --- a/examples/compute_tof.cpp +++ b/examples/compute_tof.cpp @@ -66,12 +66,14 @@ namespace } void buildTracerheadsFromWells(const Wells& wells, + const bool trace_injectors, Opm::SparseTable& tracerheads) { tracerheads.clear(); const int num_wells = wells.number_of_wells; + const WellType wanted_type = trace_injectors ? INJECTOR : PRODUCER; for (int w = 0; w < num_wells; ++w) { - if (wells.type[w] != INJECTOR) { + if (wells.type[w] != wanted_type) { continue; } tracerheads.appendRow(wells.well_cells + wells.well_connpos[w], @@ -200,6 +202,15 @@ try use_multidim_upwind = param.getDefault("use_multidim_upwind", false); } bool compute_tracer = param.getDefault("compute_tracer", false); + bool trace_injectors = true; + if (compute_tracer) { + std::string trace = param.getDefault("trace", "Injectors"); + if (trace == "Producers") { + trace_injectors = false; + } else if (trace != "Injectors") { + OPM_THROW(std::runtime_error, "Unknown trace specification (allowed is Injectors or Producers): " << trace); + } + } // Write parameters used for later reference. bool output = param.getDefault("output", true); @@ -254,7 +265,7 @@ try std::vector tracer; Opm::SparseTable tracerheads; if (compute_tracer) { - buildTracerheadsFromWells(wells, tracerheads); + buildTracerheadsFromWells(wells, trace_injectors, tracerheads); } if (use_dg) { if (compute_tracer) {