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]>
> 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]
> > http://www.opm-project.org/mailman/listinfo/opm
>
>
> _______________________________________________
> Opm mailing list
> [email protected]
> http://www.opm-project.org/mailman/listinfo/opm
>
_______________________________________________
Opm mailing list
[email protected]
http://www.opm-project.org/mailman/listinfo/opm