We do not handle BHP group controls, that is correct, only some rate variants 
are available with group controls. I cannot immediately think of how such a bhp 
group control should be interpreted (at least how it would be different from 
using BHP controls on each individual well) -- what are you trying to do with 
it?

Two caveats: 1. I have not yet read your code for potential problems. 2. The 
group control code has not been very extensively tested.

Atgeirr

Den 1. aug. 2013 kl. 16:15 skrev Júlio Hoffimann:

Hi Atgeirr,

sim_2p_incomp.cpp has no wells, unless we use an Eclipse deck, right?

I'm asking about BHP because of the THROW("Unhandled group injection control 
mode " << inj_mode); found in WellsGroup::applyInjGroupControls().

There is something conceptually wrong in the following test snippet?


/// Create the injection specification for our inj well group.
InjectionSpecification well_group_inj_spec;
well_group_inj_spec.BHP_limit_ = SOMETHING;
well_group_inj_spec.control_mode_ = InjectionSpecification::BHP;

/// Create our inj well group.
boost::shared_ptr<WellsGroupInterface> inj_well_group(new 
WellsGroup("inj_group", ProductionSpecification(), well_group_inj_spec, 
phase_usage));

// Add to the collection
well_collection.addChild(inj_well_group);

/// Create the injection specification and injection wells
InjectionSpecification injection_specification;
injection_specification.control_mode_ = InjectionSpecification::GRUP;

for (int i = 0; i < num_inj_wells; ++i) {
    boost::shared_ptr<WellsGroupInterface> well_leaf_node(new 
WellNode(inj_well_names[i], ProductionSpecification(), injection_specification, 
phase_usage));
    well_collection.addChild(well_leaf_node, "inj_group");
}

const int num_wells = num_prod_wells + num_inj_wells;

/// Now we create the C struct to hold our wells (this is to interface with the 
solver code)
Wells* wells = create_wells(num_phases, num_wells, num_wells /*number of 
perforations. We'll only have one perforation per well*/);

/// We need to add each well to the C API.
/// To do this we need to specify the relevant cells the well will be located 
in (well_cells).
const double well_index = 1;
for (int i = 0; i < num_prod_wells; ++i) {
    add_well(PRODUCER, 0, 1, NULL, &prod_well_cells[i], &well_index, 
prod_well_names[i].c_str(), wells);
}
for (int i = 0; i < num_inj_wells; ++i) {
    add_well(INJECTOR, 0, 1, NULL, &inj_well_cells[i], &well_index, 
inj_well_names[i].c_str(), wells);
}

/// We need to make the well collection aware of our wells object
well_collection.setWellsPointer(wells);

/// We're not using well controls, just group controls, so we need to apply 
them.
well_collection.applyGroupControls();

Júlio.



2013/8/1 Atgeirr Rasmussen 
<[email protected]<mailto:[email protected]>>
BHP wells are available. There is written a little about it on the API doc page:

http://opm-project.org/documentation/git/opm-core/html/

The Wells struct is accepted by most solvers, and if your data are in an 
eclipse-format input deck you may use the WellsManager class to create it. 
Otherwise you must use the C API for well initialization as explained in the 
API doc.

You could take a look at the class SimulatorIncompTwophase for more tips about 
usage of wells, solvers etc.
The class is used by the example program examples/sim_2p_incomp.cpp

http://opm-project.org/documentation/git/opm-core/html/class_opm_1_1_simulator_incomp_twophase.php

Atgeirr


Den 1. aug. 2013 kl. 15:32 skrev Júlio Hoffimann:

> Dear all,
>
> Could you please confirm BHP limits aren't implemented yet?
>
> I'm almost done adapting tutorial 4 into a five-spot, if you have similar 
> production models implemented in OPM you want to share, I appreciate. Your 
> name will appear in my dissertation if the model is used.
>
> Best,
> Júlio.
> _______________________________________________
> Opm mailing list
> [email protected]<mailto:[email protected]>
> http://www.opm-project.org/mailman/listinfo/opm


_______________________________________________
Opm mailing list
[email protected]<mailto:[email protected]>
http://www.opm-project.org/mailman/listinfo/opm


_______________________________________________
Opm mailing list
[email protected]
http://www.opm-project.org/mailman/listinfo/opm

Reply via email to