diff --git a/opm/core/pressure/CompressibleTpfa.cpp b/opm/core/pressure/CompressibleTpfa.cpp index 564eeb8f1..3fb78204b 100644 --- a/opm/core/pressure/CompressibleTpfa.cpp +++ b/opm/core/pressure/CompressibleTpfa.cpp @@ -27,6 +27,7 @@ #include <opm/core/linalg/sparse_sys.h> #include <opm/core/utility/ErrorMacros.hpp> #include <opm/core/newwells.h> +#include <opm/core/BlackoilState.hpp> #include <algorithm> @@ -83,13 +84,14 @@ namespace Opm /// Solve pressure equation, by Newton iterations. - void CompressibleTpfa::solve() + void CompressibleTpfa::solve(const double dt, + BlackoilState& state) { // Set up dynamic data. computeDynamicData(); // Assemble J and F. - assemble(); + assemble(dt, state); bool residual_ok = false; // Replace with tolerance check. while (!residual_ok) { @@ -104,7 +106,7 @@ namespace Opm computeDynamicData(); // Assemble J and F. - assemble(); + assemble(dt, state); // Check for convergence. // Include both tolerance check for residual @@ -127,12 +129,12 @@ namespace Opm /// Compute the residual and Jacobian. - void CompressibleTpfa::assemble() + void CompressibleTpfa::assemble(const double dt, + const BlackoilState& state) { // Arguments or members? - const double dt = 0.0; - const double* z = NULL; - const double* cell_press = NULL; + const double* z = &state.surfacevol()[0]; + const double* cell_press = &state.pressure()[0]; const double* well_bhp = NULL; const double* porevol = NULL; diff --git a/opm/core/pressure/CompressibleTpfa.hpp b/opm/core/pressure/CompressibleTpfa.hpp index fdacf4268..7141100dd 100644 --- a/opm/core/pressure/CompressibleTpfa.hpp +++ b/opm/core/pressure/CompressibleTpfa.hpp @@ -31,6 +31,7 @@ struct FlowBoundaryConditions; namespace Opm { + class BlackoilState; class LinearSolverInterface; /// Encapsulating a tpfa pressure solver for the compressible-fluid case. @@ -60,11 +61,13 @@ namespace Opm /// Destructor. ~CompressibleTpfa(); - void solve(); + void solve(const double dt, + BlackoilState& state); private: void computeDynamicData(); - void assemble(); + void assemble(const double dt, + const BlackoilState& state); void solveIncrement(); void computeResults(std::vector<double>& pressure,