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