/* Copyright 2024, SINTEF Digital This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OPM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OPM. If not, see . */ // this is an empty model that having a lot of empty interfaces. // it is use for the development when some facility class are not ready #include #include #include #include #include namespace Opm { template class EmptyModel : public BaseAuxiliaryModule { using Scalar = GetPropType; using GridView = GetPropType; using GlobalEqVector = GetPropType; using SparseMatrixAdapter = GetPropType; public: using Simulator = GetPropType; explicit EmptyModel(Simulator& /*simulator*/) { } void init(){} template void init(Something /*A*/){} void prepareTracerBatches(){}; using NeighborSet = std::set; void linearize(SparseMatrixAdapter& /*matrix*/, GlobalEqVector& /*residual*/) override {} unsigned numDofs() const override { return 0; } void addNeighbors(std::vector& /*neighbors*/) const override {} //void applyInitial(){}; void initialSolutionApplied(){}; //void initFromRestart(const data::Aquifers& aquiferSoln); template void serialize(Restarter& /*res*/){}; template void deserialize(Restarter& /*res*/){}; void beginEpisode(){}; void beginTimeStep(){}; void beginIteration(){}; // add the water rate due to aquifers to the source term. template void addToSource(RateVector& /*rates*/, const Context& /*context*/, unsigned /*spaceIdx*/, unsigned /*timeIdx*/) const {} template void addToSource(RateVector& /*rates*/, unsigned /*globalSpaceIdx*/, unsigned /*timeIdx*/) const {} void endIteration()const{}; void endTimeStep(){}; void endEpisode(){}; void applyInitial() override {} template void computeTotalRatesForDof(RateType& /*rate*/, unsigned /*globalIdx*/) const{}; auto wellData() const { return data::Wells{}; } auto wellBlockAveragePressures() const { return data::WellBlockAveragePressures{}; } auto groupAndNetworkData(const int&) const { return data::GroupAndNetworkValues{}; } auto wellTestState() const { return WellTestState{}; } auto aquiferData() const { return data::Aquifers{}; } }; } // end of namespace Opm