ISTLSolver.hpp
Go to the documentation of this file.
160 constexpr static std::size_t pressureIndex = GetPropType<TypeTag, Properties::Indices>::pressureSwitchIdx;
206 parameters_[0].template init<TypeTag>(simulator_.vanguard().eclState().getSimulationConfig().useCPR());
260 detail::findOverlapAndInterior(simulator_.vanguard().grid(), elemMapper, overlapRows_, interiorRows_);
271 const int interiorCellNum_ = detail::numMatrixRowsToUseInSolver(simulator_.vanguard().grid(), true);
339 if (isParallel() && prm_[activeSolverNum_].template get<std::string>("preconditioner.type") != "ParOverILU0") {
468 std::function<Vector()> weightCalculator = this->getWeightsCalculator(prm_[activeSolverNum_], getMatrix(), pressureIndex);
524 std::string msg = "Invalid value: " + std::to_string(this->parameters_[activeSolverNum_].cpr_reuse_setup_)
Interface class adding the update() method to the preconditioner interface. Definition: PreconditionerWithUpdate.hpp:32 Definition: ISTLSolver.hpp:143 ISTLSolver(const Simulator &simulator, const FlowLinearSolverParameters ¶meters, bool forceSerial=false) Definition: ISTLSolver.hpp:183 GetPropType< TypeTag, Properties::Scalar > Scalar Definition: ISTLSolver.hpp:146 std::vector< FlowLinearSolverParameters > parameters_ Definition: ISTLSolver.hpp:623 GetPropType< TypeTag, Properties::GridView > GridView Definition: ISTLSolver.hpp:145 Dune::InverseOperator< Vector, Vector > AbstractSolverType Definition: ISTLSolver.hpp:155 typename SparseMatrixAdapter::IstlMatrix Matrix Definition: ISTLSolver.hpp:152 GetPropType< TypeTag, Properties::WellModel > WellModel Definition: ISTLSolver.hpp:150 GetPropType< TypeTag, Properties::SparseMatrixAdapter > SparseMatrixAdapter Definition: ISTLSolver.hpp:147 Dune::OwnerOverlapCopyCommunication< int, int > CommunicationType Definition: ISTLSolver.hpp:163 static constexpr std::size_t pressureIndex Definition: ISTLSolver.hpp:160 GetPropType< TypeTag, Properties::ThreadManager > ThreadManager Definition: ISTLSolver.hpp:153 GetPropType< TypeTag, Properties::ElementMapper > ElementMapper Definition: ISTLSolver.hpp:159 GetPropType< TypeTag, Properties::GlobalEqVector > Vector Definition: ISTLSolver.hpp:148 const std::any & parallelInformation() const Definition: ISTLSolver.hpp:421 void initPrepare(const Matrix &M, Vector &b) Definition: ISTLSolver.hpp:316 std::vector< detail::FlexibleSolverInfo< Matrix, Vector, CommunicationType > > flexibleSolver_ Definition: ISTLSolver.hpp:617 Dune::AssembledLinearOperator< Matrix, Vector, Vector > AbstractOperatorType Definition: ISTLSolver.hpp:156 std::function< Vector()> getWeightsCalculator(const PropertyTree &prm, const Matrix &matrix, std::size_t pressIndex) const Definition: ISTLSolver.hpp:539 Dune::AssembledLinearOperator< Matrix, Vector, Vector > AssembledLinearOperatorType Definition: ISTLSolver.hpp:169 void checkConvergence(const Dune::InverseOperatorResult &result) const Definition: ISTLSolver.hpp:430 GetPropType< TypeTag, Properties::Simulator > Simulator Definition: ISTLSolver.hpp:151 GetPropType< TypeTag, Properties::Indices > Indices Definition: ISTLSolver.hpp:149 Dune::OwnerOverlapCopyCommunication< int, int > Comm Definition: ISTLSolver.hpp:427 void prepare(const SparseMatrixAdapter &M, Vector &b) Definition: ISTLSolver.hpp:344 GetPropType< TypeTag, Properties::ElementContext > ElementContext Definition: ISTLSolver.hpp:154 Definition: MatrixMarketSpecializations.hpp:17 Definition: PropertyTree.hpp:37 T get(const std::string &key) const Definition: WellOperators.hpp:67 void getTrueImpesWeightsAnalytic(int, Vector &weights, const GridView &gridView, ElementContext &elemCtx, const Model &model, std::size_t threadId) Definition: getQuasiImpesWeights.hpp:137 void getTrueImpesWeights(int pressureVarIndex, Vector &weights, const GridView &gridView, ElementContext &elemCtx, const Model &model, std::size_t threadId) Definition: getQuasiImpesWeights.hpp:91 void writeSystem(const SimulatorType &simulator, const MatrixType &matrix, const VectorType &rhs, const Communicator *comm) Definition: WriteSystemMatrixHelper.hpp:34 Definition: AluGridVanguard.hpp:57 std::unique_ptr< Matrix > blockJacobiAdjacency(const Grid &grid, const std::vector< int > &cell_part, std::size_t nonzeroes, const std::vector< std::set< int > > &wellConnectionsGraph) void copyParValues(std::any ¶llelInformation, std::size_t size, Dune::OwnerOverlapCopyCommunication< int, int > &comm) Copy values in parallel. std::size_t numMatrixRowsToUseInSolver(const Grid &grid, bool ownerFirst) If ownerFirst=true, returns the number of interior cells in grid, else just numCells(). Definition: findOverlapRowsAndColumns.hpp:122 void makeOverlapRowsInvalid(Matrix &matrix, const std::vector< int > &overlapRows) void findOverlapAndInterior(const Grid &grid, const Mapper &mapper, std::vector< int > &overlapRows, std::vector< int > &interiorRows) Find the rows corresponding to overlap cells. Definition: findOverlapRowsAndColumns.hpp:92 Definition: BlackoilPhases.hpp:27 Dune::InverseOperatorResult InverseOperatorResult Definition: BdaBridge.hpp:32 std::string to_string(const ConvergenceReport::ReservoirFailure::Type t) PropertyTree setupPropertyTree(FlowLinearSolverParameters p, bool linearSolverMaxIterSet, bool linearSolverReductionSet) This class carries all parameters for the NewtonIterationBlackoilInterleaved class. Definition: FlowLinearSolverParameters.hpp:237 void init(bool cprRequestedInDataFile) Definition: FlowLinearSolverParameters.hpp:261 std::string linsolver_ Definition: FlowLinearSolverParameters.hpp:251 typename Linear::IstlSparseMatrixAdapter< Block > type Definition: ISTLSolver.hpp:81 Definition: ISTLSolver.hpp:62 std::tuple< FlowIstlSolverParams > InheritsFrom Definition: ISTLSolver.hpp:63 Definition: FlowProblemProperties.hpp:70 Definition: ISTLSolver.hpp:95 std::unique_ptr< AbstractSolverType > solver_ Definition: ISTLSolver.hpp:108 void create(const Matrix &matrix, bool parallel, const PropertyTree &prm, std::size_t pressureIndex, std::function< Vector()> weightCalculator, const bool forceSerial, Comm &comm) std::size_t interiorCellNum_ Definition: ISTLSolver.hpp:112 Dune::InverseOperator< Vector, Vector > AbstractSolverType Definition: ISTLSolver.hpp:96 AbstractPreconditionerType * pre_ Definition: ISTLSolver.hpp:111 Dune::AssembledLinearOperator< Matrix, Vector, Vector > AbstractOperatorType Definition: ISTLSolver.hpp:97 std::unique_ptr< LinearOperatorExtra< Vector, Vector > > wellOperator_ Definition: ISTLSolver.hpp:110 std::unique_ptr< AbstractOperatorType > op_ Definition: ISTLSolver.hpp:109 |