ISTLSolver.hpp
Go to the documentation of this file.
161 constexpr static std::size_t pressureIndex = GetPropType<TypeTag, Properties::Indices>::pressureSwitchIdx;
288 detail::findOverlapAndInterior(simulator_.vanguard().grid(), elemMapper, overlapRows_, interiorRows_);
299 const int interiorCellNum_ = detail::numMatrixRowsToUseInSolver(simulator_.vanguard().grid(), true);
367 if (isParallel() && prm_[activeSolverNum_].template get<std::string>("preconditioner.type") != "ParOverILU0") {
496 std::function<Vector()> weightCalculator = this->getWeightsCalculator(prm_[activeSolverNum_], getMatrix(), pressureIndex);
558 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:144 ISTLSolver(const Simulator &simulator, const FlowLinearSolverParameters ¶meters, bool forceSerial=false) Definition: ISTLSolver.hpp:188 GetPropType< TypeTag, Properties::Scalar > Scalar Definition: ISTLSolver.hpp:147 static constexpr bool isIncompatibleWithCprw Definition: ISTLSolver.hpp:165 std::vector< FlowLinearSolverParameters > parameters_ Definition: ISTLSolver.hpp:656 GetPropType< TypeTag, Properties::GridView > GridView Definition: ISTLSolver.hpp:146 Dune::InverseOperator< Vector, Vector > AbstractSolverType Definition: ISTLSolver.hpp:156 typename SparseMatrixAdapter::IstlMatrix Matrix Definition: ISTLSolver.hpp:153 GetPropType< TypeTag, Properties::WellModel > WellModel Definition: ISTLSolver.hpp:151 GetPropType< TypeTag, Properties::SparseMatrixAdapter > SparseMatrixAdapter Definition: ISTLSolver.hpp:148 Dune::OwnerOverlapCopyCommunication< int, int > CommunicationType Definition: ISTLSolver.hpp:168 static constexpr std::size_t pressureIndex Definition: ISTLSolver.hpp:161 GetPropType< TypeTag, Properties::ThreadManager > ThreadManager Definition: ISTLSolver.hpp:154 GetPropType< TypeTag, Properties::ElementMapper > ElementMapper Definition: ISTLSolver.hpp:160 GetPropType< TypeTag, Properties::GlobalEqVector > Vector Definition: ISTLSolver.hpp:149 const std::any & parallelInformation() const Definition: ISTLSolver.hpp:449 void initPrepare(const Matrix &M, Vector &b) Definition: ISTLSolver.hpp:344 std::vector< detail::FlexibleSolverInfo< Matrix, Vector, CommunicationType > > flexibleSolver_ Definition: ISTLSolver.hpp:650 Dune::AssembledLinearOperator< Matrix, Vector, Vector > AbstractOperatorType Definition: ISTLSolver.hpp:157 std::function< Vector()> getWeightsCalculator(const PropertyTree &prm, const Matrix &matrix, std::size_t pressIndex) const Definition: ISTLSolver.hpp:572 Dune::AssembledLinearOperator< Matrix, Vector, Vector > AssembledLinearOperatorType Definition: ISTLSolver.hpp:174 void checkConvergence(const Dune::InverseOperatorResult &result) const Definition: ISTLSolver.hpp:458 GetPropType< TypeTag, Properties::Simulator > Simulator Definition: ISTLSolver.hpp:152 GetPropType< TypeTag, Properties::Indices > Indices Definition: ISTLSolver.hpp:150 Dune::OwnerOverlapCopyCommunication< int, int > Comm Definition: ISTLSolver.hpp:455 void prepare(const SparseMatrixAdapter &M, Vector &b) Definition: ISTLSolver.hpp:372 GetPropType< TypeTag, Properties::ElementContext > ElementContext Definition: ISTLSolver.hpp:155 A sparse matrix interface backend for BCRSMatrix from dune-istl. Definition: istlsparsematrixadapter.hh:43 Definition: matrixblock.hh:227 Definition: PropertyTree.hpp:37 T get(const std::string &key) const static unsigned threadId() Return the index of the current OpenMP thread. Definition: WellOperators.hpp:70 Declare the properties used by the infrastructure code of the finite volume discretizations. Defines the common properties required by the porous medium multi-phase models. 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: blackoilmodel.hh:72 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: blackoilboundaryratevector.hh:37 Dune::InverseOperatorResult InverseOperatorResult Definition: BdaBridge.hpp:32 typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(.... Definition: propertysystem.hh:235 std::string to_string(const ConvergenceReport::ReservoirFailure::Type t) PropertyTree setupPropertyTree(FlowLinearSolverParameters p, bool linearSolverMaxIterSet, bool linearSolverReductionSet) This file provides the infrastructure to retrieve run-time parameters. The Opm property system, traits with inheritance. This class carries all parameters for the NewtonIterationBlackoilInterleaved class. Definition: FlowLinearSolverParameters.hpp:95 static void registerParameters() void init(bool cprRequestedInDataFile) std::string linsolver_ Definition: FlowLinearSolverParameters.hpp:110 typename Linear::IstlSparseMatrixAdapter< Block > type Definition: ISTLSolver.hpp:82 The class that allows to manipulate sparse matrices. Definition: linalgproperties.hh:50 Definition: ISTLSolver.hpp:63 std::tuple< FlowIstlSolverParams > InheritsFrom Definition: ISTLSolver.hpp:64 Definition: FlowBaseProblemProperties.hpp:82 Definition: ISTLSolver.hpp:96 std::unique_ptr< AbstractSolverType > solver_ Definition: ISTLSolver.hpp:109 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:113 Dune::InverseOperator< Vector, Vector > AbstractSolverType Definition: ISTLSolver.hpp:97 AbstractPreconditionerType * pre_ Definition: ISTLSolver.hpp:112 Dune::AssembledLinearOperator< Matrix, Vector, Vector > AbstractOperatorType Definition: ISTLSolver.hpp:98 std::unique_ptr< LinearOperatorExtra< Vector, Vector > > wellOperator_ Definition: ISTLSolver.hpp:111 std::unique_ptr< AbstractOperatorType > op_ Definition: ISTLSolver.hpp:110 |