00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef OPM_NEWTONITERATIONBLACKOILSIMPLE_HEADER_INCLUDED
00022 #define OPM_NEWTONITERATIONBLACKOILSIMPLE_HEADER_INCLUDED
00023
00024
00025 #include <opm/autodiff/NewtonIterationBlackoilInterface.hpp>
00026 #include <opm/core/utility/parameters/ParameterGroup.hpp>
00027 #include <opm/core/linalg/LinearSolverInterface.hpp>
00028 #include <memory>
00029
00030 namespace Opm
00031 {
00032
00037 class NewtonIterationBlackoilSimple : public NewtonIterationBlackoilInterface
00038 {
00039 public:
00045 NewtonIterationBlackoilSimple(const ParameterGroup& param,
00046 const boost::any& parallelInformation=boost::any());
00047
00053 virtual SolutionVector computeNewtonIncrement(const LinearisedBlackoilResidual& residual) const;
00054
00056 virtual int iterations () const { return iterations_; }
00057
00059 virtual const boost::any& parallelInformation() const;
00060
00061 private:
00062 std::unique_ptr<LinearSolverInterface> linsolver_;
00063 mutable int iterations_;
00064 boost::any parallelInformation_;
00065 };
00066
00067 }
00068
00069
00070 #endif // OPM_NEWTONITERATIONBLACKOILSIMPLE_HEADER_INCLUDED