mirror of
				https://github.com/OPM/opm-simulators.git
				synced 2025-02-25 18:55:30 -06:00 
			
		
		
		
	performing prepareTimeStep in assemble for StandardWellsDense
instead of model->preppareStep() to avoid segmenttation error from eclSimulator and also not intervening with NonlinearSolver
This commit is contained in:
		@@ -213,13 +213,11 @@ namespace Opm {
 | 
			
		||||
        /// \param[in, out] well_state        well state variables
 | 
			
		||||
        void prepareStep(const SimulatorTimerInterface& /*timer*/,
 | 
			
		||||
                         const ReservoirState& reservoir_state,
 | 
			
		||||
                         WellState& well_state)
 | 
			
		||||
                         const WellState& /* well_state */)
 | 
			
		||||
        {
 | 
			
		||||
            if ( wellModel().wellCollection()->havingVREPGroups() ) {
 | 
			
		||||
                updateRateConverter(reservoir_state);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            well_model_.prepareTimeStep(ebosSimulator_, well_state);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -130,8 +130,7 @@ namespace Opm
 | 
			
		||||
        // TODO: this is not the correct fix, possibly breaking the sequential solver
 | 
			
		||||
        // TODO: the only reason to do this is that the wellPotentials() is part of the well_state, which will be modified
 | 
			
		||||
        // during the well_potential calculation
 | 
			
		||||
        model_->prepareStep(timer, initial_reservoir_state, well_state);
 | 
			
		||||
        // model_->prepareStep(timer, initial_reservoir_state, initial_reservoir_state);
 | 
			
		||||
        model_->prepareStep(timer, initial_reservoir_state, initial_well_state);
 | 
			
		||||
 | 
			
		||||
        int iteration = 0;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -130,6 +130,10 @@ namespace Opm {
 | 
			
		||||
             WellState& well_state)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        if (iterationIdx == 0) {
 | 
			
		||||
            prepareTimeStep(ebosSimulator, well_state);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // after restarting, the well_controls can be modified while
 | 
			
		||||
        // the well_state still uses the old control index
 | 
			
		||||
        // we need to synchronize these two.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user