mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
FlowMain: move hiding of parameters to utility function in FlowUtils
This commit is contained in:
parent
b902f83fa6
commit
9a9d4e0974
@ -103,91 +103,18 @@ namespace Opm {
|
||||
// register the base parameters
|
||||
registerAllParameters_<TypeTag>(/*finalizeRegistration=*/false);
|
||||
|
||||
// hide the parameters unused by flow. TODO: this is a pain to maintain
|
||||
Parameters::Hide<Parameters::EnableGravity>();
|
||||
Parameters::Hide<Parameters::EnableGridAdaptation>();
|
||||
|
||||
// this parameter is actually used in eWoms, but the flow well model
|
||||
// hard-codes the assumption that the intensive quantities cache is enabled,
|
||||
// so flow crashes. Let's hide the parameter for that reason.
|
||||
Parameters::Hide<Parameters::EnableIntensiveQuantityCache>();
|
||||
|
||||
// thermodynamic hints are not implemented/required by the eWoms blackoil
|
||||
// model
|
||||
Parameters::Hide<Parameters::EnableThermodynamicHints>();
|
||||
|
||||
// in flow only the deck file determines the end time of the simulation
|
||||
Parameters::Hide<Parameters::EndTime<Scalar>>();
|
||||
|
||||
// time stepping is not done by the eWoms code in flow
|
||||
Parameters::Hide<Parameters::InitialTimeStepSize<Scalar>>();
|
||||
Parameters::Hide<Parameters::MaxTimeStepDivisions>();
|
||||
Parameters::Hide<Parameters::MaxTimeStepSize<Scalar>>();
|
||||
Parameters::Hide<Parameters::MinTimeStepSize<Scalar>>();
|
||||
Parameters::Hide<Parameters::PredeterminedTimeStepsFile>();
|
||||
|
||||
// flow also does not use the eWoms Newton method
|
||||
Parameters::Hide<Parameters::NewtonMaxError<Scalar>>();
|
||||
Parameters::Hide<Parameters::NewtonTolerance<Scalar>>();
|
||||
Parameters::Hide<Parameters::NewtonTargetIterations>();
|
||||
Parameters::Hide<Parameters::NewtonVerbose>();
|
||||
Parameters::Hide<Parameters::NewtonWriteConvergence>();
|
||||
|
||||
// the default eWoms checkpoint/restart mechanism does not work with flow
|
||||
Parameters::Hide<Parameters::RestartTime<Scalar>>();
|
||||
Parameters::Hide<Parameters::RestartWritingInterval>();
|
||||
// hide all vtk related it is not currently possible to do this dependet on if the vtk writing is used
|
||||
//if(not(Parameters::Get<Parameters::EnableVtkOutput>())){
|
||||
Parameters::Hide<Parameters::VtkWriteOilFormationVolumeFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteOilSaturationPressure>();
|
||||
Parameters::Hide<Parameters::VtkWriteOilVaporizationFactor>();
|
||||
Parameters::Hide<Parameters::VtkWritePorosity>();
|
||||
Parameters::Hide<Parameters::VtkWritePotentialGradients>();
|
||||
Parameters::Hide<Parameters::VtkWritePressures>();
|
||||
Parameters::Hide<Parameters::VtkWritePrimaryVars>();
|
||||
Parameters::Hide<Parameters::VtkWritePrimaryVarsMeaning>();
|
||||
Parameters::Hide<Parameters::VtkWriteProcessRank>();
|
||||
Parameters::Hide<Parameters::VtkWriteRelativePermeabilities>();
|
||||
Parameters::Hide<Parameters::VtkWriteSaturatedGasOilVaporizationFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteSaturatedOilGasDissolutionFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteSaturationRatios>();
|
||||
Parameters::Hide<Parameters::VtkWriteSaturations>();
|
||||
Parameters::Hide<Parameters::VtkWriteTemperature>();
|
||||
Parameters::Hide<Parameters::VtkWriteViscosities>();
|
||||
Parameters::Hide<Parameters::VtkWriteWaterFormationVolumeFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteGasDissolutionFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteGasFormationVolumeFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteGasSaturationPressure>();
|
||||
Parameters::Hide<Parameters::VtkWriteIntrinsicPermeabilities>();
|
||||
Parameters::Hide<Parameters::VtkWriteTracerConcentration>();
|
||||
Parameters::Hide<Parameters::VtkWriteExtrusionFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteFilterVelocities>();
|
||||
Parameters::Hide<Parameters::VtkWriteDensities>();
|
||||
Parameters::Hide<Parameters::VtkWriteDofIndex>();
|
||||
Parameters::Hide<Parameters::VtkWriteMobilities>();
|
||||
//}
|
||||
Parameters::Hide<Parameters::VtkWriteAverageMolarMasses>();
|
||||
Parameters::Hide<Parameters::VtkWriteFugacities>();
|
||||
Parameters::Hide<Parameters::VtkWriteFugacityCoeffs>();
|
||||
Parameters::Hide<Parameters::VtkWriteMassFractions>();
|
||||
Parameters::Hide<Parameters::VtkWriteMolarities>();
|
||||
Parameters::Hide<Parameters::VtkWriteMoleFractions>();
|
||||
Parameters::Hide<Parameters::VtkWriteTotalMassFractions>();
|
||||
Parameters::Hide<Parameters::VtkWriteTotalMoleFractions>();
|
||||
|
||||
Parameters::Hide<Parameters::VtkWriteTortuosities>();
|
||||
Parameters::Hide<Parameters::VtkWriteDiffusionCoefficients>();
|
||||
Parameters::Hide<Parameters::VtkWriteEffectiveDiffusionCoefficients>();
|
||||
|
||||
// hide average density option
|
||||
Parameters::Hide<Parameters::UseAverageDensityMsWells>();
|
||||
detail::hideUnusedParameters<Scalar>();
|
||||
|
||||
Parameters::endRegistration();
|
||||
|
||||
int mpiRank = comm.rank();
|
||||
|
||||
// read in the command line parameters
|
||||
int status = ::Opm::setupParameters_<TypeTag>(argc, const_cast<const char**>(argv), /*doRegistration=*/false, /*allowUnused=*/true, /*handleHelp=*/(mpiRank==0));
|
||||
int status = ::Opm::setupParameters_<TypeTag>(argc,
|
||||
const_cast<const char**>(argv),
|
||||
/*doRegistration=*/false,
|
||||
/*allowUnused=*/true,
|
||||
/*handleHelp=*/(mpiRank==0));
|
||||
if (status == 0) {
|
||||
|
||||
// deal with unknown parameters.
|
||||
|
@ -20,12 +20,27 @@
|
||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "opm/simulators/flow/BlackoilModelParameters.hpp"
|
||||
#include "opm/simulators/flow/FlowProblemParameters.hpp"
|
||||
#include "opm/simulators/flow/VtkTracerModule.hpp"
|
||||
#include <config.h>
|
||||
#include <opm/simulators/flow/FlowUtils.hpp>
|
||||
|
||||
#include <opm/common/OpmLog/OpmLog.hpp>
|
||||
#include <opm/common/utility/String.hpp>
|
||||
|
||||
#include <opm/models/common/multiphasebaseparameters.hh>
|
||||
#include <opm/models/discretization/common/fvbaseparameters.hh>
|
||||
#include <opm/models/io/vtkblackoilmodule.hh>
|
||||
#include <opm/models/io/vtkcompositionmodule.hh>
|
||||
#include <opm/models/io/vtkdiffusionmodule.hh>
|
||||
#include <opm/models/io/vtkmultiphasemodule.hh>
|
||||
#include <opm/models/io/vtkprimaryvarsmodule.hh>
|
||||
#include <opm/models/io/vtktemperaturemodule.hh>
|
||||
#include <opm/models/nonlinear/newtonmethodparameters.hh>
|
||||
#include <opm/models/utils/basicparameters.hh>
|
||||
#include <opm/models/utils/parametersystem.hh>
|
||||
|
||||
#include <opm/simulators/flow/ConvergenceOutputConfiguration.hpp>
|
||||
#include <opm/simulators/timestepping/SimulatorReport.hpp>
|
||||
#include <opm/simulators/utils/ParallelFileMerger.hpp>
|
||||
@ -164,4 +179,89 @@ void checkAllMPIProcesses()
|
||||
#endif
|
||||
}
|
||||
|
||||
template<class Scalar>
|
||||
void hideUnusedParameters()
|
||||
{
|
||||
// hide the parameters unused by flow. TODO: this is a pain to maintain
|
||||
Parameters::Hide<Parameters::EnableGravity>();
|
||||
Parameters::Hide<Parameters::EnableGridAdaptation>();
|
||||
|
||||
// this parameter is actually used in eWoms, but the flow well model
|
||||
// hard-codes the assumption that the intensive quantities cache is enabled,
|
||||
// so flow crashes. Let's hide the parameter for that reason.
|
||||
Parameters::Hide<Parameters::EnableIntensiveQuantityCache>();
|
||||
|
||||
// thermodynamic hints are not implemented/required by the eWoms blackoil
|
||||
// model
|
||||
Parameters::Hide<Parameters::EnableThermodynamicHints>();
|
||||
|
||||
// in flow only the deck file determines the end time of the simulation
|
||||
Parameters::Hide<Parameters::EndTime<Scalar>>();
|
||||
|
||||
// time stepping is not done by the eWoms code in flow
|
||||
Parameters::Hide<Parameters::InitialTimeStepSize<Scalar>>();
|
||||
Parameters::Hide<Parameters::MaxTimeStepDivisions>();
|
||||
Parameters::Hide<Parameters::MaxTimeStepSize<Scalar>>();
|
||||
Parameters::Hide<Parameters::MinTimeStepSize<Scalar>>();
|
||||
Parameters::Hide<Parameters::PredeterminedTimeStepsFile>();
|
||||
|
||||
// flow also does not use the eWoms Newton method
|
||||
Parameters::Hide<Parameters::NewtonMaxError<Scalar>>();
|
||||
Parameters::Hide<Parameters::NewtonTolerance<Scalar>>();
|
||||
Parameters::Hide<Parameters::NewtonTargetIterations>();
|
||||
Parameters::Hide<Parameters::NewtonVerbose>();
|
||||
Parameters::Hide<Parameters::NewtonWriteConvergence>();
|
||||
|
||||
// the default eWoms checkpoint/restart mechanism does not work with flow
|
||||
Parameters::Hide<Parameters::RestartTime<Scalar>>();
|
||||
Parameters::Hide<Parameters::RestartWritingInterval>();
|
||||
// hide all vtk related it is not currently possible to do this dependet on if the vtk writing is used
|
||||
//if(not(Parameters::Get<Parameters::EnableVtkOutput>())){
|
||||
Parameters::Hide<Parameters::VtkWriteOilFormationVolumeFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteOilSaturationPressure>();
|
||||
Parameters::Hide<Parameters::VtkWriteOilVaporizationFactor>();
|
||||
Parameters::Hide<Parameters::VtkWritePorosity>();
|
||||
Parameters::Hide<Parameters::VtkWritePotentialGradients>();
|
||||
Parameters::Hide<Parameters::VtkWritePressures>();
|
||||
Parameters::Hide<Parameters::VtkWritePrimaryVars>();
|
||||
Parameters::Hide<Parameters::VtkWritePrimaryVarsMeaning>();
|
||||
Parameters::Hide<Parameters::VtkWriteProcessRank>();
|
||||
Parameters::Hide<Parameters::VtkWriteRelativePermeabilities>();
|
||||
Parameters::Hide<Parameters::VtkWriteSaturatedGasOilVaporizationFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteSaturatedOilGasDissolutionFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteSaturationRatios>();
|
||||
Parameters::Hide<Parameters::VtkWriteSaturations>();
|
||||
Parameters::Hide<Parameters::VtkWriteTemperature>();
|
||||
Parameters::Hide<Parameters::VtkWriteViscosities>();
|
||||
Parameters::Hide<Parameters::VtkWriteWaterFormationVolumeFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteGasDissolutionFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteGasFormationVolumeFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteGasSaturationPressure>();
|
||||
Parameters::Hide<Parameters::VtkWriteIntrinsicPermeabilities>();
|
||||
Parameters::Hide<Parameters::VtkWriteTracerConcentration>();
|
||||
Parameters::Hide<Parameters::VtkWriteExtrusionFactor>();
|
||||
Parameters::Hide<Parameters::VtkWriteFilterVelocities>();
|
||||
Parameters::Hide<Parameters::VtkWriteDensities>();
|
||||
Parameters::Hide<Parameters::VtkWriteDofIndex>();
|
||||
Parameters::Hide<Parameters::VtkWriteMobilities>();
|
||||
//}
|
||||
Parameters::Hide<Parameters::VtkWriteAverageMolarMasses>();
|
||||
Parameters::Hide<Parameters::VtkWriteFugacities>();
|
||||
Parameters::Hide<Parameters::VtkWriteFugacityCoeffs>();
|
||||
Parameters::Hide<Parameters::VtkWriteMassFractions>();
|
||||
Parameters::Hide<Parameters::VtkWriteMolarities>();
|
||||
Parameters::Hide<Parameters::VtkWriteMoleFractions>();
|
||||
Parameters::Hide<Parameters::VtkWriteTotalMassFractions>();
|
||||
Parameters::Hide<Parameters::VtkWriteTotalMoleFractions>();
|
||||
|
||||
Parameters::Hide<Parameters::VtkWriteTortuosities>();
|
||||
Parameters::Hide<Parameters::VtkWriteDiffusionCoefficients>();
|
||||
Parameters::Hide<Parameters::VtkWriteEffectiveDiffusionCoefficients>();
|
||||
|
||||
// hide average density option
|
||||
Parameters::Hide<Parameters::UseAverageDensityMsWells>();
|
||||
}
|
||||
|
||||
template void hideUnusedParameters<double>();
|
||||
|
||||
} // namespace Opm::detail
|
||||
|
@ -40,6 +40,10 @@ void handleExtraConvergenceOutput(SimulatorReport& report,
|
||||
std::string_view output_dir,
|
||||
std::string_view base_name);
|
||||
|
||||
//! \brief Hides unused runtime parameters.
|
||||
template<class Scalar>
|
||||
void hideUnusedParameters();
|
||||
|
||||
} // namespace Opm::detail
|
||||
|
||||
#endif // OPM_FLOW_UTILS_HEADER_INCLUDED
|
||||
|
Loading…
Reference in New Issue
Block a user