From 97134499c5a0630f2901b3cafe09cc4891e96866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Mon, 20 Feb 2012 13:59:34 +0100 Subject: [PATCH] Using IncompTpfa. --- examples/Utilities.hpp | 57 ------------------------------------ examples/polymer_reorder.cpp | 9 +++--- 2 files changed, 4 insertions(+), 62 deletions(-) diff --git a/examples/Utilities.hpp b/examples/Utilities.hpp index 9c370e9e3..55735bde9 100644 --- a/examples/Utilities.hpp +++ b/examples/Utilities.hpp @@ -59,63 +59,6 @@ namespace Opm { - - class PressureSolver - { - public: - PressureSolver(const UnstructuredGrid* g, - const IncompPropertiesInterface& props) - : htrans_(g->cell_facepos[ g->number_of_cells ]), - trans_ (g->number_of_faces), - gpress_(g->cell_facepos[ g->number_of_cells ]) - { - UnstructuredGrid* gg = const_cast(g); - tpfa_htrans_compute(gg, props.permeability(), &htrans_[0]); - - h_ = ifs_tpfa_construct(gg); - } - - ~PressureSolver() - { - ifs_tpfa_destroy(h_); - } - - template - void - solve(const UnstructuredGrid* g , - const ::std::vector& totmob, - const ::std::vector& src , - State& state ) - { - UnstructuredGrid* gg = const_cast(g); - tpfa_eff_trans_compute(gg, &totmob[0], &htrans_[0], &trans_[0]); - - // No gravity - std::fill(gpress_.begin(), gpress_.end(), double(0.0)); - - ifs_tpfa_assemble(gg, &trans_[0], &src[0], &gpress_[0], h_); - - using ImplicitTransportLinAlgSupport::CSRMatrixUmfpackSolver; - - CSRMatrixUmfpackSolver linsolve; - linsolve.solve(h_->A, h_->b, h_->x); - - ifs_tpfa_press_flux(gg, &trans_[0], h_, - &state.pressure()[0], - &state.faceflux()[0]); - } - - private: - ::std::vector htrans_; - ::std::vector trans_ ; - ::std::vector gpress_; - - struct ifs_tpfa_data* h_; - }; - - - - void compute_porevolume(const UnstructuredGrid* g, const Opm::IncompPropertiesInterface& props, diff --git a/examples/polymer_reorder.cpp b/examples/polymer_reorder.cpp index e83bac534..fcfc73b97 100644 --- a/examples/polymer_reorder.cpp +++ b/examples/polymer_reorder.cpp @@ -22,8 +22,7 @@ #include "Utilities.hpp" -#include -#include +#include #include #include @@ -34,7 +33,6 @@ #include #include -#include #include #include @@ -307,12 +305,13 @@ main(int argc, char** argv) double tot_porevol = std::accumulate(porevol.begin(), porevol.end(), 0.0); // Solvers init. - Opm::PressureSolver psolver(grid->c_grid(), *props); + Opm::IncompTpfa psolver(*grid->c_grid(), props->permeability(), 0); Opm::TransportModelPolymer tmodel(*grid->c_grid(), props->porosity(), &porevol[0], *props, polydata, method); // State-related and source-related variables init. std::vector totmob; + std::vector omega; // Empty dummy unless/until we include gravity here. double init_sat = param.getDefault("init_sat", 0.0); ReservoirState state(grid->c_grid(), props->numPhases(), init_sat); // We need a separate reorder_sat, because the reorder @@ -365,7 +364,7 @@ main(int argc, char** argv) compute_totmob(*props, state.saturation(), totmob); pressure_timer.start(); - psolver.solve(grid->c_grid(), totmob, src, state); + psolver.solve(totmob, omega, src, state.pressure(), state.faceflux()); pressure_timer.stop(); double pt = pressure_timer.secsSinceStart(); std::cout << "Pressure solver took: " << pt << " seconds." << std::endl;