[properties] redistribute property tag definitions

Minimize changes compared to master. Avoid having the one and only
file for property tag definitions.
This commit is contained in:
Bernd Flemisch 2020-05-13 15:24:57 +02:00
parent 5e411a8665
commit de2ca522ff
48 changed files with 403 additions and 473 deletions

View File

@ -73,6 +73,13 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionBaseProblem);
// declare the CO2 injection problem specific property tags
NEW_PROP_TAG(FluidSystemPressureLow);
NEW_PROP_TAG(FluidSystemPressureHigh);
NEW_PROP_TAG(FluidSystemNumPressure);
NEW_PROP_TAG(FluidSystemTemperatureLow);
NEW_PROP_TAG(FluidSystemTemperatureHigh);
NEW_PROP_TAG(FluidSystemNumTemperature);
NEW_PROP_TAG(MaxDepth);
NEW_PROP_TAG(Temperature);
NEW_PROP_TAG(SimulationName);

View File

@ -31,11 +31,20 @@
#include "blackoilproperties.hh"
#include <opm/models/utils/signum.hh>
#include <opm/models/nonlinear/newtonmethod.hh>
#include <opm/material/common/Unused.hpp>
BEGIN_PROPERTIES
template <class TypeTag, class MyTypeTag>
struct DiscNewtonMethod;
NEW_PROP_TAG(DpMaxRel);
NEW_PROP_TAG(DsMax);
NEW_PROP_TAG(PriVarOscilationThreshold);
NEW_PROP_TAG(ProjectSaturations);
SET_SCALAR_PROP(NewtonMethod, DpMaxRel, 0.3);
SET_SCALAR_PROP(NewtonMethod, DsMax, 0.2);
SET_SCALAR_PROP(NewtonMethod, PriVarOscilationThreshold, 1e-5);

View File

@ -35,24 +35,24 @@ BEGIN_PROPERTIES
//! Specifies if the simulation should write output files that are
//! compatible with those produced by the commercial Eclipse simulator
//! The material law for thermal conduction
//! The parameters of the material law for thermal conduction
//! The material law for energy storage of the rock
//! The parameters for material law for energy storage of the rock
NEW_PROP_TAG(EnableEclipseOutput);
//! Enable the ECL-blackoil extension for solvents. ("Second gas")
NEW_PROP_TAG(EnableSolvent);
//! Enable the ECL-blackoil extension for polymer.
NEW_PROP_TAG(EnablePolymer);
//! Enable the tracking polymer molecular weight tracking and related functionalities
NEW_PROP_TAG(EnablePolymerMW);
//! Enable surface volume scaling
NEW_PROP_TAG(BlackoilConserveSurfaceVolume);
//! Enable the ECL-blackoil extension for foam
NEW_PROP_TAG(EnableFoam);
//! Enable the ECL-blackoil extension for salt
NEW_PROP_TAG(EnableBrine);
//! Allow the spatial and temporal domains to exhibit non-constant temperature
//! in the black-oil model
//! Enable the ECL-blackoil extension for energy conservation
//!
//! Setting this property to true implies EnableTemperature.
NEW_PROP_TAG(EnableTemperature);
//! The relative weight of the residual of the energy equation compared to the mass
//! residuals
@ -61,6 +61,7 @@ BEGIN_PROPERTIES
//! of unmodified dune-istl linear solvers cannot weight the individual equations. if the
//! energy equation is not scaled, its absolute value is normally several orders of
//! magnitude larger than that of the mass balance equations
NEW_PROP_TAG(BlackOilEnergyScalingFactor);
END_PROPERTIES

View File

@ -36,6 +36,8 @@
#include <opm/models/common/flux.hh>
#include <opm/models/discretization/vcfv/vcfvdiscretization.hh>
#include <opm/models/io/vtkmultiphasemodule.hh>
#include <opm/models/io/vtktemperaturemodule.hh>
#include <opm/material/fluidmatrixinteractions/NullMaterial.hpp>
#include <opm/material/fluidmatrixinteractions/MaterialTraits.hpp>

View File

@ -30,26 +30,41 @@
#ifndef EWOMS_MULTI_PHASE_BASE_PROPERTIES_HH
#define EWOMS_MULTI_PHASE_BASE_PROPERTIES_HH
#include <opm/models/discretization/common/fvbaseproperties.hh>
#include <opm/models/io/vtkmultiphasemodule.hh>
#include <opm/models/io/vtktemperaturemodule.hh>
#include <opm/models/utils/basicproperties.hh>
BEGIN_PROPERTIES
//! The splice to be used for the spatial discretization
NEW_PROP_TAG(SpatialDiscretizationSplice);
//! Number of fluid phases in the system
NEW_PROP_TAG(NumPhases);
//! Number of chemical species in the system
NEW_PROP_TAG(NumComponents);
//! Enumerations used by the model
NEW_PROP_TAG(Indices);
//! The material law which ought to be used (extracted from the spatial parameters)
NEW_PROP_TAG(MaterialLaw);
//! The context material law (extracted from the spatial parameters)
NEW_PROP_TAG(MaterialLawParams);
//! The material law for the energy stored in the solid matrix
NEW_PROP_TAG(SolidEnergyLaw);
//! The parameters of the material law for energy storage of the solid
NEW_PROP_TAG(SolidEnergyLawParams);
//! The material law for thermal conduction
NEW_PROP_TAG(ThermalConductionLaw);
//! The parameters of the material law for thermal conduction
NEW_PROP_TAG(ThermalConductionLawParams);
//!The fluid systems including the information about the phases
NEW_PROP_TAG(FluidSystem);
//! Specifies the relation used for velocity
NEW_PROP_TAG(FluxModule);
//! Specify whether energy should be considered as a conservation quantity or not
NEW_PROP_TAG(EnableEnergy);
//! Returns whether gravity is considered in the problem
NEW_PROP_TAG(EnableGravity);
//! Enable diffusive fluxes?
NEW_PROP_TAG(EnableDiffusion);
END_PROPERTIES

View File

@ -36,6 +36,7 @@
BEGIN_PROPERTIES
NEW_PROP_TAG(UseTwoPointGradients);
END_PROPERTIES

View File

@ -54,6 +54,7 @@
#include <opm/models/utils/alignedallocator.hh>
#include <opm/models/utils/timer.hh>
#include <opm/models/utils/timerguard.hh>
#include <opm/models/io/vtkprimaryvarsmodule.hh>
#include <opm/simulators/linalg/matrixblock.hh>
#include <opm/material/common/MathToolbox.hpp>

View File

@ -30,6 +30,8 @@
#include "fvbaseproperties.hh"
#include <opm/models/common/multiphasebaseproperties.hh>
#include <opm/material/common/Valgrind.hpp>
#include <opm/material/common/Unused.hpp>

View File

@ -30,6 +30,7 @@
#include <opm/models/utils/propertysystem.hh>
#include <opm/models/utils/parametersystem.hh>
#include <opm/models/discretization/common/fvbaseproperties.hh>
#include <opm/material/common/MathToolbox.hpp>
#include <opm/material/common/Valgrind.hpp>
@ -54,6 +55,8 @@ BEGIN_PROPERTIES
// declare the property tags required for the finite differences local linearizer
NEW_TYPE_TAG(FiniteDifferenceLocalLinearizer);
NEW_PROP_TAG(NumericDifferenceMethod);
NEW_PROP_TAG(BaseEpsilon);
// set the properties to be spliced in
SET_TYPE_PROP(FiniteDifferenceLocalLinearizer, LocalLinearizer,

View File

@ -33,13 +33,18 @@
#include <iostream>
//! \cond SKIP_THIS
BEGIN_PROPERTIES
// forward declaration of the required property tags
template<class TypeTag, class MyTypeTag>
struct SolutionVector;
template<class TypeTag, class MyTypeTag>
struct GlobalEqVector;
template<class TypeTag, class MyTypeTag>
struct NewtonMethod;
template<class TypeTag, class MyTypeTag>
struct VtkOutputFormat;
END_PROPERTIES
//! \endcond
namespace Opm {
/*!

View File

@ -47,18 +47,8 @@ BEGIN_PROPERTIES
//! create a type tag for the Newton method of the finite-volume discretization
NEW_TYPE_TAG(FvBaseNewtonMethod, INHERITS_FROM(NewtonMethod));
//! The class dealing with the balance equations
//! The class storing primary variables plus pseudo primary variables
//! The class storing values of conservation equations (e.g., a "naked" primary varible
//! vector)
//! The number of balance equations.
//! The discretization specific part of he implementing the Newton algorithm
//! The class implementing the Newton algorithm
NEW_PROP_TAG(DiscNewtonMethod);
// set default values
SET_TYPE_PROP(FvBaseNewtonMethod, DiscNewtonMethod,

View File

@ -45,6 +45,13 @@
#include <sys/stat.h>
BEGIN_PROPERTIES
template <class TypeTag, class MyTypeTag>
struct NewtonMethod;
END_PROPERTIES
namespace Opm {
/*!

View File

@ -30,16 +30,18 @@
#ifndef EWOMS_FV_BASE_PROPERTIES_HH
#define EWOMS_FV_BASE_PROPERTIES_HH
#include "fvbasenewtonmethod.hh"
#include "fvbasefdlocallinearizer.hh"
#include <opm/models/utils/basicproperties.hh>
#include <opm/models/io/dgfvanguard.hh>
#include <opm/models/io/vtkprimaryvarsmodule.hh>
#include <opm/simulators/linalg/parallelbicgstabbackend.hh>
BEGIN_PROPERTIES
namespace TTag {
struct FvBaseNewtonMethod;
struct VtkPrimaryVars;
struct FiniteDifferenceLocalLinearizer;
}
//! The type tag for models based on the finite volume schemes
NEW_TYPE_TAG(FvBaseDiscretization,
INHERITS_FROM(ImplicitModel,
@ -48,6 +50,8 @@ NEW_TYPE_TAG(FvBaseDiscretization,
//! set the splices for the finite volume discretizations
NEW_PROP_TAG(LinearSolverSplice);
NEW_PROP_TAG(LocalLinearizerSplice);
SET_SPLICES(FvBaseDiscretization, LinearSolverSplice, LocalLinearizerSplice);
//! use a parallel BiCGStab linear solver by default
@ -65,80 +69,105 @@ SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalL
* "Scalar" property (if the finite difference linearizer is used), or it may be more
* complex (for the linearizer which uses automatic differentiation).
*/
//! The type of the DUNE grid
//! The type of the grid view
NEW_PROP_TAG(Evaluation);
//! The class describing the stencil of the spatial discretization
NEW_PROP_TAG(Stencil);
//! The class describing the discrete function space when dune-fem is used, otherwise it points to the stencil class
NEW_PROP_TAG(DiscreteFunctionSpace);
//! The type of the problem
NEW_PROP_TAG(Problem);
//! The type of the base class for all problems which use this model
//! The type of the model
//! Number of equations in the system of PDEs
NEW_PROP_TAG(BaseProblem);
//! The type of the spatial discretization used by the model
NEW_PROP_TAG(Discretization);
//! The discretization specific part of the local residual
NEW_PROP_TAG(DiscLocalResidual);
//! The type of the local residual function
NEW_PROP_TAG(LocalResidual);
//! The type of the local linearizer
NEW_PROP_TAG(LocalLinearizer);
//! Specify if elements that do not belong to the local process' grid partition should be
//! skipped
NEW_PROP_TAG(LinearizeNonLocalElements);
//! Linearizes the global non-linear system of equations
//! The class that allows to manipulate sparse matrices
NEW_PROP_TAG(BaseLinearizer);
//! A vector of holding a quantity for each equation (usually at a given spatial location)
NEW_PROP_TAG(EqVector);
//! A vector of holding a quantity for each equation for each DOF of an element
//! Vector containing a quantity of for equation for each DOF of the whole grid
NEW_PROP_TAG(ElementEqVector);
//! Vector containing volumetric or areal rates of quantities
NEW_PROP_TAG(RateVector);
//! Type of object for specifying boundary conditions
NEW_PROP_TAG(BoundaryRateVector);
//! The class which represents a constraint degree of freedom
NEW_PROP_TAG(Constraints);
//! Vector containing all primary variables of the grid
NEW_PROP_TAG(SolutionVector);
//! A vector of primary variables within a sub-control volume
NEW_PROP_TAG(PrimaryVariables);
//! The secondary variables within a sub-control volume
NEW_PROP_TAG(IntensiveQuantities);
//! The discretization specific part of the intensive quantities
NEW_PROP_TAG(DiscIntensiveQuantities);
//! The secondary variables of all degrees of freedom in an element's stencil
NEW_PROP_TAG(ElementContext);
//! The secondary variables of a boundary segment
NEW_PROP_TAG(BoundaryContext);
//! The secondary variables of a constraint degree of freedom
NEW_PROP_TAG(ConstraintsContext);
//! Data required to calculate a flux over a face
NEW_PROP_TAG(ExtensiveQuantities);
//! Calculates gradients of arbitrary quantities at flux integration points
NEW_PROP_TAG(GradientCalculator);
//! The part of the intensive quantities which is specific to the spatial discretization
NEW_PROP_TAG(DiscBaseIntensiveQuantities);
//! The part of the extensive quantities which is specific to the spatial discretization
NEW_PROP_TAG(DiscExtensiveQuantities);
//! The part of the VTK ouput modules which is specific to the spatial discretization
NEW_PROP_TAG(DiscBaseOutputModule);
//! The class to create grid communication handles
NEW_PROP_TAG(GridCommHandleFactory);
/*!
* \brief The OpenMP threads manager
*/
NEW_PROP_TAG(ThreadManager);
NEW_PROP_TAG(ThreadsPerProcess);
//! use locking to prevent race conditions when linearizing the global system of
//! equations in multi-threaded mode. (setting this property to true is always save, but
//! it may slightly deter performance in multi-threaded simlations and some
//! discretizations do not need this.)
NEW_PROP_TAG(UseLinearizationLock);
// high-level simulation control
//! Manages the simulation time
/*!
* \brief Switch to enable or disable grid adaptation
*
* Currently grid adaptation requires the presence of the dune-FEM module. If it is not
* available and grid adaptation is enabled, an exception is thrown.
*/
NEW_PROP_TAG(EnableGridAdaptation);
/*!
* \brief The directory to which simulation output ought to be written to.
*/
NEW_PROP_TAG(OutputDir);
/*!
* \brief Global switch to enable or disable the writing of VTK output files
@ -146,6 +175,7 @@ SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalL
* If writing VTK files is disabled, then the WriteVtk$FOO options do
* not have any effect...
*/
NEW_PROP_TAG(EnableVtkOutput);
/*!
* \brief Determines if the VTK output is written to disk asynchronously
@ -156,6 +186,7 @@ SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalL
* not support multi-threaded multi-process VTK output and even if it would, the result
* would be slower than when using synchronous output.
*/
NEW_PROP_TAG(EnableAsyncVtkOutput);
/*!
* \brief Specify the format the VTK output is written to disk
@ -166,31 +197,37 @@ SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalL
* - Dune::VTK::appendedraw
* - Dune::VTK::appendedbase64
*/
NEW_PROP_TAG(VtkOutputFormat);
//! Specify whether the some degrees of fredom can be constraint
NEW_PROP_TAG(EnableConstraints);
/*!
* \brief Specify the maximum size of a time integration [s].
*
* The default is to not limit the step size.
*/
NEW_PROP_TAG(MaxTimeStepSize);
/*!
* \brief Specify the minimal size of a time integration [s].
*
* The default is to not limit the step size.
*/
NEW_PROP_TAG(MinTimeStepSize);
/*!
* \brief The maximum allowed number of timestep divisions for the
* Newton solver.
*/
NEW_PROP_TAG(MaxTimeStepDivisions);
/*!
* \brief Continue with a non-converged solution instead of giving up
* if we encounter a time step size smaller than the minimum time
* step size.
*/
NEW_PROP_TAG(ContinueOnConvergenceError);
/*!
* \brief Specify whether all intensive quantities for the grid should be
@ -201,6 +238,7 @@ SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalL
* may cause the simulation to exhibit worse cache coherence behavior
* which eats some of the computational benefits again.
*/
NEW_PROP_TAG(EnableIntensiveQuantityCache);
/*!
* \brief Specify whether the storage terms for previous solutions should be cached.
@ -208,6 +246,7 @@ SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalL
* This potentially reduces the CPU time, but comes at the cost of higher memory
* consumption.
*/
NEW_PROP_TAG(EnableStorageCache);
/*!
* \brief Specify whether to use the already calculated solutions as
@ -217,42 +256,43 @@ SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalL
* very expensive (e.g. for non-linear fugacity functions where the
* solver converges faster).
*/
NEW_PROP_TAG(EnableThermodynamicHints);
// mappers from local to global DOF indices
/*!
* \brief The mapper to find the global index of a vertex.
*/
NEW_PROP_TAG(VertexMapper);
/*!
* \brief The mapper to find the global index of an element.
*/
NEW_PROP_TAG(ElementMapper);
/*!
* \brief The mapper to find the global index of a degree of freedom.
*/
/*!
* \brief The class which marks the border indices associated with the
* degrees of freedom on a process boundary.
*
* This is required for the algebraic overlap stuff.
*/
NEW_PROP_TAG(DofMapper);
/*!
* \brief The history size required by the time discretization
*/
NEW_PROP_TAG(TimeDiscHistorySize);
/*!
* \brief Specify whether the storage terms use extensive quantities or not.
*
* Most models don't need this, but the (Navier-)Stokes ones do...
*/
NEW_PROP_TAG(ExtensiveStorageTerm);
//! \brief Specify whether to use volumetric residuals or not
NEW_PROP_TAG(UseVolumetricResidual);
//! Specify if experimental features should be enabled or not.
NEW_PROP_TAG(EnableExperiments);
SET_TYPE_PROP(NumericModel, Vanguard, Opm::DgfVanguard<TypeTag>);

View File

@ -40,6 +40,7 @@ NEW_TYPE_TAG(VcfvDiscretization, INHERITS_FROM(FvBaseDiscretization));
//! Use P1 finite-elements gradients instead of two-point gradients. Note that setting
//! this property to true requires the dune-localfunctions module to be available.
NEW_PROP_TAG(UseP1FiniteElementGradients);
END_PROPERTIES

View File

@ -37,15 +37,10 @@
BEGIN_PROPERTIES
//! Provides the thermodynamic relations
//! The type of the flash constraint solver
NEW_PROP_TAG(FlashSolver);
//! The maximum accepted error of the flash solver
//! The thermal conduction law which ought to be used
//! The parameters of the thermal conduction law
//! Specifies whether energy should be considered as a conservation quantity or not
//! Enable diffusive fluxes?
NEW_PROP_TAG(FlashTolerance);
END_PROPERTIES

View File

@ -35,18 +35,15 @@
BEGIN_PROPERTIES
//!The fluid systems including the information about the phases
//! Specify whether energy should be considered as a conservation quantity or not
// these properties only make sense for the ImmiscibleTwoPhase type tag
//! The wetting phase for two-phase models
NEW_PROP_TAG(WettingPhase);
//! The non-wetting phase for two-phase models
NEW_PROP_TAG(NonwettingPhase);
// these properties only make sense for the ImmiscibleSinglePhase type tag
//! The fluid used by the model
NEW_PROP_TAG(Fluid);
END_PROPERTIES

View File

@ -31,6 +31,9 @@
#include <opm/models/utils/parametersystem.hh>
#include <opm/models/utils/propertysystem.hh>
#include <opm/models/utils/basicproperties.hh>
#include <opm/models/common/multiphasebaseproperties.hh>
#include <opm/models/discretization/common/fvbaseproperties.hh>
#include <opm/material/common/Exceptions.hpp>
@ -44,15 +47,15 @@
#include <cstdio>
BEGIN_PROPERTIES
// forward definition of property tags
END_PROPERTIES
namespace Opm {
namespace Properties {
template <class TypeTag, class MyTypeTag>
struct FluidSystem;
} // namespace Properties
#if __GNUC__ || __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpragmas"

View File

@ -39,11 +39,6 @@
#include <type_traits>
#include <memory>
BEGIN_PROPERTIES
END_PROPERTIES
namespace Opm {
/*!

View File

@ -46,6 +46,10 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkBlackOilEnergy);
// create the property tags needed for the energy module
NEW_PROP_TAG(VtkWriteRockInternalEnergy);
NEW_PROP_TAG(VtkWriteTotalThermalConductivity);
NEW_PROP_TAG(VtkWriteFluidInternalEnergies);
NEW_PROP_TAG(VtkWriteFluidEnthalpies);
// set default values for what quantities to output
SET_BOOL_PROP(VtkBlackOilEnergy, VtkWriteRockInternalEnergy, true);

View File

@ -46,6 +46,17 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkBlackOil);
// create the property tags needed for the multi phase module
NEW_PROP_TAG(VtkWriteGasDissolutionFactor);
NEW_PROP_TAG(VtkWriteOilVaporizationFactor);
NEW_PROP_TAG(VtkWriteOilFormationVolumeFactor);
NEW_PROP_TAG(VtkWriteGasFormationVolumeFactor);
NEW_PROP_TAG(VtkWriteWaterFormationVolumeFactor);
NEW_PROP_TAG(VtkWriteOilSaturationPressure);
NEW_PROP_TAG(VtkWriteGasSaturationPressure);
NEW_PROP_TAG(VtkWriteSaturationRatios);
NEW_PROP_TAG(VtkWriteSaturatedOilGasDissolutionFactor);
NEW_PROP_TAG(VtkWriteSaturatedGasOilVaporizationFactor);
NEW_PROP_TAG(VtkWritePrimaryVarsMeaning);
// set default values for what quantities to output
SET_BOOL_PROP(VtkBlackOil, VtkWriteGasDissolutionFactor, false);

View File

@ -46,6 +46,12 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkBlackOilPolymer);
// create the property tags needed for the polymer output module
NEW_PROP_TAG(VtkWritePolymerConcentration);
NEW_PROP_TAG(VtkWritePolymerDeadPoreVolume);
NEW_PROP_TAG(VtkWritePolymerAdsorption);
NEW_PROP_TAG(VtkWritePolymerRockDensity);
NEW_PROP_TAG(VtkWritePolymerViscosityCorrection);
NEW_PROP_TAG(VtkWriteWaterViscosityCorrection);
// set default values for what quantities to output
SET_BOOL_PROP(VtkBlackOilPolymer, VtkWritePolymerConcentration, true);

View File

@ -46,6 +46,10 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkBlackOilSolvent);
// create the property tags needed for the solvent output module
NEW_PROP_TAG(VtkWriteSolventSaturation);
NEW_PROP_TAG(VtkWriteSolventDensity);
NEW_PROP_TAG(VtkWriteSolventViscosity);
NEW_PROP_TAG(VtkWriteSolventMobility);
// set default values for what quantities to output
SET_BOOL_PROP(VtkBlackOilSolvent, VtkWriteSolventSaturation, true);

View File

@ -41,6 +41,13 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkComposition);
// create the property tags needed for the composition module
NEW_PROP_TAG(VtkWriteMassFractions);
NEW_PROP_TAG(VtkWriteMoleFractions);
NEW_PROP_TAG(VtkWriteTotalMassFractions);
NEW_PROP_TAG(VtkWriteTotalMoleFractions);
NEW_PROP_TAG(VtkWriteMolarities);
NEW_PROP_TAG(VtkWriteFugacities);
NEW_PROP_TAG(VtkWriteFugacityCoeffs);
// set default values for what quantities to output
SET_BOOL_PROP(VtkComposition, VtkWriteMassFractions, false);

View File

@ -44,6 +44,9 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkDiffusion);
// create the property tags needed for the diffusion module
NEW_PROP_TAG(VtkWriteTortuosities);
NEW_PROP_TAG(VtkWriteDiffusionCoefficients);
NEW_PROP_TAG(VtkWriteEffectiveDiffusionCoefficients);
// set default values for what quantities to output
SET_BOOL_PROP(VtkDiffusion, VtkWriteTortuosities, false);

View File

@ -45,6 +45,13 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkDiscreteFracture);
// create the property tags needed for the multi phase module
NEW_PROP_TAG(VtkWriteFractureSaturations);
NEW_PROP_TAG(VtkWriteFractureMobilities);
NEW_PROP_TAG(VtkWriteFractureRelativePermeabilities);
NEW_PROP_TAG(VtkWriteFracturePorosity);
NEW_PROP_TAG(VtkWriteFractureIntrinsicPermeabilities);
NEW_PROP_TAG(VtkWriteFractureFilterVelocities);
NEW_PROP_TAG(VtkWriteFractureVolumeFraction);
// set default values for what quantities to output
SET_BOOL_PROP(VtkDiscreteFracture, VtkWriteFractureSaturations, true);

View File

@ -41,6 +41,10 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkEnergy);
// create the property tags needed for the energy module
NEW_PROP_TAG(VtkWriteSolidInternalEnergy);
NEW_PROP_TAG(VtkWriteThermalConductivity);
NEW_PROP_TAG(VtkWriteInternalEnergies);
NEW_PROP_TAG(VtkWriteEnthalpies);
// set default values for what quantities to output
SET_BOOL_PROP(VtkEnergy, VtkWriteSolidInternalEnergy, false);

View File

@ -46,6 +46,18 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkMultiPhase);
// create the property tags needed for the multi phase module
NEW_PROP_TAG(VtkWriteExtrusionFactor);
NEW_PROP_TAG(VtkWritePressures);
NEW_PROP_TAG(VtkWriteDensities);
NEW_PROP_TAG(VtkWriteSaturations);
NEW_PROP_TAG(VtkWriteMobilities);
NEW_PROP_TAG(VtkWriteRelativePermeabilities);
NEW_PROP_TAG(VtkWriteViscosities);
NEW_PROP_TAG(VtkWriteAverageMolarMasses);
NEW_PROP_TAG(VtkWritePorosity);
NEW_PROP_TAG(VtkWriteIntrinsicPermeabilities);
NEW_PROP_TAG(VtkWritePotentialGradients);
NEW_PROP_TAG(VtkWriteFilterVelocities);
// set default values for what quantities to output
SET_BOOL_PROP(VtkMultiPhase, VtkWriteExtrusionFactor, false);

View File

@ -39,6 +39,7 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkPhasePresence);
// create the property tags needed for the primary variables module
NEW_PROP_TAG(VtkWritePhasePresence);
SET_BOOL_PROP(VtkPhasePresence, VtkWritePhasePresence, false);

View File

@ -39,6 +39,9 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkPrimaryVars);
// create the property tags needed for the primary variables module
NEW_PROP_TAG(VtkWritePrimaryVars);
NEW_PROP_TAG(VtkWriteProcessRank);
NEW_PROP_TAG(VtkWriteDofIndex);
SET_BOOL_PROP(VtkPrimaryVars, VtkWritePrimaryVars, false);
SET_BOOL_PROP(VtkPrimaryVars, VtkWriteProcessRank, false);

View File

@ -41,6 +41,7 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(VtkTemperature);
// create the property tags needed for the temperature module
NEW_PROP_TAG(VtkWriteTemperature);
// set default values for what quantities to output
SET_BOOL_PROP(VtkTemperature, VtkWriteTemperature, true);

View File

@ -30,11 +30,19 @@
#include "ncpproperties.hh"
#include <opm/models/nonlinear/newtonmethod.hh>
#include <opm/material/common/Unused.hpp>
#include <opm/material/common/Exceptions.hpp>
#include <algorithm>
BEGIN_PROPERTIES
template <class TypeTag, class MyTypeTag>
struct DiscNewtonMethod;
END_PROPERTIES
namespace Opm {
/*!

View File

@ -37,16 +37,16 @@
BEGIN_PROPERTIES
//! Enable the energy equation?
//! Enable diffusive fluxes?
//! The unmodified weight for the pressure primary variable
NEW_PROP_TAG(NcpPressureBaseWeight);
//! The weight for the saturation primary variables
NEW_PROP_TAG(NcpSaturationsBaseWeight);
//! The unmodified weight for the fugacity primary variables
NEW_PROP_TAG(NcpFugacitiesBaseWeight);
//! The themodynamic constraint solver which calculates the
//! composition of any phase given all component fugacities.
NEW_PROP_TAG(NcpCompositionFromFugacitiesSolver);
END_PROPERTIES

View File

@ -33,6 +33,7 @@
#include <opm/models/utils/parametersystem.hh>
#include <opm/models/utils/timer.hh>
#include <opm/models/utils/timerguard.hh>
#include <opm/simulators/linalg/linalgproperties.hh>
#include <opm/material/densead/Math.hpp>
#include <opm/material/common/Unused.hpp>
@ -65,43 +66,25 @@ BEGIN_PROPERTIES
//! are attached
NEW_TYPE_TAG(NewtonMethod);
//! The simulation management class of the simulation
//! The physical model which we would like to solve
//! The model describing the PDEs for the conservation quantities
//! The type of scalar values
//! Specifies the type of the actual Newton method
//! Specifies the type of a solution
//! Specifies the type of a solution for a single degee of freedom
//! Specifies whether the problem to be simulated exhibits contraint degrees of freedom
//! Specifies the type of objects which specify constraints for a single degee of freedom
//! Vector containing a quantity of for equation on the whole grid
//! Vector containing a quantity of for equation for a single degee of freedom
NEW_PROP_TAG(NewtonMethod);
//! The class which linearizes the non-linear system of equations
//! Specifies the type of a global Jacobian matrix
//! Specifies the type of the linear solver to be used
NEW_PROP_TAG(Linearizer);
//! Specifies whether the Newton method should print messages or not
NEW_PROP_TAG(NewtonVerbose);
//! Specifies the type of the class which writes out the Newton convergence
NEW_PROP_TAG(NewtonConvergenceWriter);
//! Specifies whether the convergence rate and the global residual
//! gets written out to disk for every Newton iteration
NEW_PROP_TAG(NewtonWriteConvergence);
//! Specifies whether the convergence rate and the global residual
//! gets written out to disk for every Newton iteration
NEW_PROP_TAG(ConvergenceWriter);
/*!
* \brief The value for the error below which convergence is declared
@ -109,9 +92,11 @@ NEW_TYPE_TAG(NewtonMethod);
* This value can (and for the porous media models will) be changed to account for grid
* scaling and other effects.
*/
NEW_PROP_TAG(NewtonTolerance);
//! The maximum error which may occur in a simulation before the
//! Newton method for the time step is aborted
NEW_PROP_TAG(NewtonMaxError);
/*!
* \brief The number of iterations at which the Newton method
@ -121,8 +106,10 @@ NEW_TYPE_TAG(NewtonMethod);
* is to scale the last time-step size by the deviation of the
* number of iterations used from the target steps.
*/
NEW_PROP_TAG(NewtonTargetIterations);
//! Number of maximum iterations for the Newton method.
NEW_PROP_TAG(NewtonMaxIterations);
// set default values for the properties
SET_TYPE_PROP(NewtonMethod, NewtonMethod, Opm::NewtonMethod<TypeTag>);

View File

@ -34,7 +34,8 @@
BEGIN_PROPERTIES
template <class TypeTag, class MyTypeTag>
struct NewtonMethod;
END_PROPERTIES

View File

@ -30,6 +30,15 @@
#include "pvsproperties.hh"
#include <opm/models/nonlinear/newtonmethod.hh>
BEGIN_PROPERTIES
template <class TypeTag, class MyTypeTag>
struct DiscNewtonMethod;
END_PROPERTIES
namespace Opm {
/*!

View File

@ -40,13 +40,14 @@
BEGIN_PROPERTIES
//! Specifies whether energy is considered as a conservation quantity or not
//! Enable diffusive fluxes?
//! The verbosity of the model (0 -> do not print anything, 2 -> spam stdout a lot)
NEW_PROP_TAG(PvsVerbosity);
//! The basis value for the weight of the pressure primary variable
NEW_PROP_TAG(PvsPressureBaseWeight);
//! The basis value for the weight of the saturation primary variables
NEW_PROP_TAG(PvsSaturationsBaseWeight);
//! The basis value for the weight of the mole fraction primary variables
NEW_PROP_TAG(PvsMoleFractionsBaseWeight);
END_PROPERTIES

View File

@ -34,21 +34,25 @@
// \{
BEGIN_PROPERTIES
//! The fluid system used for the problem
//! The fluid used as the wetting phase (by default, we set the fluid
//! system to the immiscible one, which requires this property.)
NEW_PROP_TAG(WettingFluid);
//! The fluid used as the non-wetting phase (by default, we set the
//! fluid system to the immiscible one, which requires this property.)
NEW_PROP_TAG(NonWettingFluid);
//! Index of the fluid which represents the wetting phase
NEW_PROP_TAG(LiquidPhaseIndex);
//! Index of the fluid which represents the non-wetting phase
NEW_PROP_TAG(GasPhaseIndex);
//! Index of the component which constitutes the liquid
NEW_PROP_TAG(LiquidComponentIndex);
//! Index of the component which constitutes the gas
NEW_PROP_TAG(GasComponentIndex);
// \}

View File

@ -57,6 +57,10 @@
BEGIN_PROPERTIES
// type tag which is supposed to spliced in or inherited from if the
// parameter system is to be used
NEW_TYPE_TAG(ParameterSystem);
///////////////////////////////////
// Type tag definitions:
//
@ -65,7 +69,6 @@ BEGIN_PROPERTIES
// +-> ImplicitModel
///////////////////////////////////
NEW_TYPE_TAG(ParameterSystem);
//! Type tag for all models.
NEW_TYPE_TAG(NumericModel, INHERITS_FROM(ParameterSystem));
@ -81,329 +84,30 @@ NEW_TYPE_TAG(ImplicitModel, INHERITS_FROM(NumericModel));
//! Property to specify the type of scalar values.
NEW_PROP_TAG(Scalar);
//! Number of equations in the system of PDEs
NEW_PROP_TAG(NumEq);
//! Property which provides a Dune::ParameterTree.
NEW_PROP_TAG(ParameterTree);
//! The type of the model
NEW_PROP_TAG(Model);
//! Property which defines the group that is queried for parameters by default
NEW_PROP_TAG(ModelParameterGroup);
//! Property which provides a Vanguard (manages grids)
NEW_PROP_TAG(Vanguard);
NEW_PROP_TAG(GridView);
NEW_PROP_TAG(Simulator);
//! The type of the DUNE grid
NEW_PROP_TAG(Grid);
NEW_PROP_TAG(GridFile);
NEW_PROP_TAG(Model);
NEW_PROP_TAG(Problem);
NEW_PROP_TAG(ThreadManager);
NEW_PROP_TAG(NewtonMethod);
NEW_PROP_TAG(SolutionVector);
NEW_PROP_TAG(GlobalEqVector);
NEW_PROP_TAG(VtkOutputFormat);
//! Specifies the type of a solution for a single degee of freedom
NEW_PROP_TAG(PrimaryVariables);
//! Specifies whether the problem to be simulated exhibits contraint degrees of freedom
NEW_PROP_TAG(EnableConstraints);
//! Specifies the type of objects which specify constraints for a single degee of freedom
NEW_PROP_TAG(Constraints);
//! Vector containing a quantity of for equation for a single degee of freedom
NEW_PROP_TAG(EqVector);
//! The class which linearizes the non-linear system of equations
NEW_PROP_TAG(Linearizer);
//! Specifies the type of a global Jacobian matrix
NEW_PROP_TAG(SparseMatrixAdapter);
//! Specifies the type of the linear solver to be used
NEW_PROP_TAG(LinearSolverBackend);
//! Specifies whether the Newton method should print messages or not
NEW_PROP_TAG(NewtonVerbose);
//! Specifies the type of the class which writes out the Newton convergence
NEW_PROP_TAG(NewtonConvergenceWriter);
//! Specifies whether the convergence rate and the global residual
//! gets written out to disk for every Newton iteration
NEW_PROP_TAG(NewtonWriteConvergence);
//! Specifies whether the convergence rate and the global residual
//! gets written out to disk for every Newton iteration
NEW_PROP_TAG(ConvergenceWriter);
/*!
* \brief The value for the error below which convergence is declared
*
* This value can (and for the porous media models will) be changed to account for grid
* scaling and other effects.
*/
NEW_PROP_TAG(NewtonTolerance);
//! The maximum error which may occur in a simulation before the
//! Newton method for the time step is aborted
NEW_PROP_TAG(NewtonMaxError);
/*!
* \brief The number of iterations at which the Newton method
* should aim at.
*
* This is used to control the time-step size. The heuristic used
* is to scale the last time-step size by the deviation of the
* number of iterations used from the target steps.
*/
NEW_PROP_TAG(NewtonTargetIterations);
//! Number of maximum iterations for the Newton method.
NEW_PROP_TAG(NewtonMaxIterations);
NEW_PROP_TAG(GridView);
#if HAVE_DUNE_FEM
NEW_PROP_TAG(GridPart);
#endif
NEW_PROP_TAG(LocalLinearizer);
NEW_PROP_TAG(Evaluation);
NEW_PROP_TAG(NumericDifferenceMethod);
NEW_PROP_TAG(BaseEpsilon);
NEW_PROP_TAG(LocalResidual);
NEW_PROP_TAG(ElementContext);
NEW_PROP_TAG(NumPhases);
NEW_PROP_TAG(NumComponents);
NEW_PROP_TAG(NumEq);
NEW_PROP_TAG(FluidSystem);
NEW_PROP_TAG(DiscBaseOutputModule);
// create new type tag for the VTK primary variables output
NEW_PROP_TAG(EnableVtkOutput);
// create the property tags needed for the primary variables module
NEW_PROP_TAG(VtkWritePrimaryVars);
NEW_PROP_TAG(VtkWriteProcessRank);
NEW_PROP_TAG(VtkWriteDofIndex);
NEW_PROP_TAG(VtkWriteExtrusionFactor);
NEW_PROP_TAG(VtkWritePressures);
NEW_PROP_TAG(VtkWriteDensities);
NEW_PROP_TAG(VtkWriteSaturations);
NEW_PROP_TAG(VtkWriteMobilities);
NEW_PROP_TAG(VtkWriteRelativePermeabilities);
NEW_PROP_TAG(VtkWriteViscosities);
NEW_PROP_TAG(VtkWriteAverageMolarMasses);
NEW_PROP_TAG(VtkWritePorosity);
NEW_PROP_TAG(VtkWriteIntrinsicPermeabilities);
NEW_PROP_TAG(VtkWritePotentialGradients);
NEW_PROP_TAG(VtkWriteFilterVelocities);
NEW_PROP_TAG(VtkWriteTemperature);
NEW_PROP_TAG(VtkWriteSolidInternalEnergy);
NEW_PROP_TAG(VtkWriteThermalConductivity);
NEW_PROP_TAG(VtkWriteInternalEnergies);
NEW_PROP_TAG(VtkWriteEnthalpies);
NEW_PROP_TAG(VtkWriteMassFractions);
NEW_PROP_TAG(VtkWriteMoleFractions);
NEW_PROP_TAG(VtkWriteTotalMassFractions);
NEW_PROP_TAG(VtkWriteTotalMoleFractions);
NEW_PROP_TAG(VtkWriteMolarities);
NEW_PROP_TAG(VtkWriteFugacities);
NEW_PROP_TAG(VtkWriteFugacityCoeffs);
NEW_PROP_TAG(VtkWriteEffectiveDiffusionCoefficients);
NEW_PROP_TAG(VtkWriteDiffusionCoefficients);
NEW_PROP_TAG(VtkWriteTortuosities);
NEW_PROP_TAG(VtkWritePhasePresence);
NEW_PROP_TAG(VtkWriteSolventSaturation);
NEW_PROP_TAG(VtkWriteSolventDensity);
NEW_PROP_TAG(VtkWriteSolventViscosity);
NEW_PROP_TAG(VtkWriteSolventMobility);
NEW_PROP_TAG(EnableSolvent);
NEW_PROP_TAG(BlackoilConserveSurfaceVolume);
NEW_PROP_TAG(VtkWritePolymerConcentration);
NEW_PROP_TAG(VtkWritePolymerDeadPoreVolume);
NEW_PROP_TAG(VtkWritePolymerViscosityCorrection);
NEW_PROP_TAG(VtkWriteWaterViscosityCorrection);
NEW_PROP_TAG(VtkWritePolymerRockDensity);
NEW_PROP_TAG(VtkWritePolymerAdsorption);
NEW_PROP_TAG(EnablePolymer);
NEW_PROP_TAG(EnablePolymerMW);
NEW_PROP_TAG(VtkWriteRockInternalEnergy);
NEW_PROP_TAG(VtkWriteTotalThermalConductivity);
NEW_PROP_TAG(VtkWriteFluidInternalEnergies);
NEW_PROP_TAG(VtkWriteFluidEnthalpies);
NEW_PROP_TAG(BlackOilEnergyScalingFactor);
NEW_PROP_TAG(EnableTemperature);
NEW_PROP_TAG(EnableFoam);
NEW_PROP_TAG(EnableBrine);
NEW_PROP_TAG(DpMaxRel);
NEW_PROP_TAG(DsMax);
NEW_PROP_TAG(PriVarOscilationThreshold);
NEW_PROP_TAG(VtkWriteGasDissolutionFactor);
NEW_PROP_TAG(VtkWriteOilVaporizationFactor);
NEW_PROP_TAG(VtkWriteOilFormationVolumeFactor);
NEW_PROP_TAG(VtkWriteGasFormationVolumeFactor);
NEW_PROP_TAG(VtkWriteWaterFormationVolumeFactor);
NEW_PROP_TAG(VtkWriteOilSaturationPressure);
NEW_PROP_TAG(VtkWriteGasSaturationPressure);
NEW_PROP_TAG(VtkWriteSaturationRatios);
NEW_PROP_TAG(VtkWriteSaturatedOilGasDissolutionFactor);
NEW_PROP_TAG(VtkWriteSaturatedGasOilVaporizationFactor);
NEW_PROP_TAG(VtkWritePrimaryVarsMeaning);
NEW_PROP_TAG(VtkWriteFractureSaturations);
NEW_PROP_TAG(VtkWriteFractureMobilities);
NEW_PROP_TAG(VtkWriteFractureRelativePermeabilities);
NEW_PROP_TAG(VtkWriteFracturePorosity);
NEW_PROP_TAG(VtkWriteFractureIntrinsicPermeabilities);
NEW_PROP_TAG(VtkWriteFractureFilterVelocities);
NEW_PROP_TAG(VtkWriteFractureVolumeFraction);
NEW_PROP_TAG(UseTwoPointGradients);
NEW_PROP_TAG(PvsVerbosity);
NEW_PROP_TAG(PvsPressureBaseWeight);
NEW_PROP_TAG(PvsSaturationsBaseWeight);
NEW_PROP_TAG(PvsMoleFractionsBaseWeight);
NEW_PROP_TAG(NcpPressureBaseWeight);
NEW_PROP_TAG(NcpSaturationsBaseWeight);
NEW_PROP_TAG(NcpFugacitiesBaseWeight);
NEW_PROP_TAG(FluidSystemPressureLow);
NEW_PROP_TAG(FluidSystemPressureHigh);
NEW_PROP_TAG(FluidSystemNumPressure);
NEW_PROP_TAG(FluidSystemTemperatureLow);
NEW_PROP_TAG(FluidSystemTemperatureHigh);
NEW_PROP_TAG(FluidSystemNumTemperature);
NEW_PROP_TAG(IntensiveQuantities);
NEW_PROP_TAG(BoundaryContext);
NEW_PROP_TAG(BoundaryRateVector);
NEW_PROP_TAG(CellsX);
NEW_PROP_TAG(CellsY);
NEW_PROP_TAG(CellsZ);
NEW_PROP_TAG(ContinueOnConvergenceError);
NEW_PROP_TAG(DiscExtensiveQuantities);
NEW_PROP_TAG(DiscIntensiveQuantities);
NEW_PROP_TAG(DiscLocalResidual);
NEW_PROP_TAG(Discretization);
NEW_PROP_TAG(DofMapper);
NEW_PROP_TAG(DomainSizeX);
NEW_PROP_TAG(DomainSizeY);
NEW_PROP_TAG(DomainSizeZ);
NEW_PROP_TAG(ElementMapper);
NEW_PROP_TAG(EnableAsyncVtkOutput);
NEW_PROP_TAG(EnableDiffusion);
NEW_PROP_TAG(EnableEnergy);
NEW_PROP_TAG(EnableGravity);
NEW_PROP_TAG(EnableGridAdaptation);
NEW_PROP_TAG(EnableStorageCache);
NEW_PROP_TAG(ExtensiveQuantities);
NEW_PROP_TAG(ExtensiveStorageTerm);
NEW_PROP_TAG(Fluid);
NEW_PROP_TAG(FluxModule);
NEW_PROP_TAG(GradientCalculator);
NEW_PROP_TAG(GridCommHandleFactory);
NEW_PROP_TAG(Indices);
NEW_PROP_TAG(LinearizeNonLocalElements);
NEW_PROP_TAG(MaterialLaw);
NEW_PROP_TAG(MaterialLawParams);
NEW_PROP_TAG(MaxTimeStepDivisions);
NEW_PROP_TAG(MaxTimeStepSize);
NEW_PROP_TAG(MinTimeStepSize);
NEW_PROP_TAG(OutputDir);
NEW_PROP_TAG(RateVector);
NEW_PROP_TAG(SolidEnergyLaw);
NEW_PROP_TAG(Stencil);
NEW_PROP_TAG(ThermalConductionLaw);
NEW_PROP_TAG(ThreadsPerProcess);
NEW_PROP_TAG(TimeDiscHistorySize);
NEW_PROP_TAG(UseLinearizationLock);
NEW_PROP_TAG(UseP1FiniteElementGradients);
NEW_PROP_TAG(UseVolumetricResidual);
NEW_PROP_TAG(VertexMapper);
NEW_PROP_TAG(SolidEnergyLawParams);
NEW_PROP_TAG(ThermalConductionLawParams);
NEW_PROP_TAG(FlashSolver);
NEW_PROP_TAG(FlashTolerance);
NEW_PROP_TAG(BaseProblem);
NEW_PROP_TAG(ConstraintsContext);
NEW_PROP_TAG(ElementEqVector);
NEW_PROP_TAG(EnableExperiments);
NEW_PROP_TAG(EnableIntensiveQuantityCache);
NEW_PROP_TAG(EnableThermodynamicHints);
NEW_PROP_TAG(NonwettingPhase);
NEW_PROP_TAG(WettingPhase);
NEW_PROP_TAG(OverlappingMatrix);
NEW_PROP_TAG(OverlappingVector);
NEW_PROP_TAG(PreconditionerOrder);
NEW_PROP_TAG(PreconditionerRelaxation);
NEW_PROP_TAG(AmgCoarsenTarget);
NEW_PROP_TAG(BorderListCreator);
NEW_PROP_TAG(Overlap);
NEW_PROP_TAG(OverlappingScalarProduct);
NEW_PROP_TAG(OverlappingLinearOperator);
NEW_PROP_TAG(LiquidPhaseIndex);
NEW_PROP_TAG(GasPhaseIndex);
NEW_PROP_TAG(LiquidComponentIndex);
NEW_PROP_TAG(GasComponentIndex);
NEW_PROP_TAG(WettingFluid);
NEW_PROP_TAG(NonWettingFluid);
//! the preconditioner used by the linear solver
NEW_PROP_TAG(PreconditionerWrapper);
//! The floating point type used internally by the linear solver
NEW_PROP_TAG(LinearSolverScalar);
/*!
* \brief The size of the algebraic overlap of the linear solver.
*
* Algebraic overlaps can be thought as being the same as the overlap
* of a grid, but it is only existant for the linear system of
* equations.
*/
NEW_PROP_TAG(LinearSolverOverlapSize);
/*!
* \brief Maximum accepted error of the solution of the linear solver.
*/
NEW_PROP_TAG(LinearSolverTolerance);
/*!
* \brief Maximum accepted error of the norm of the residual.
*/
NEW_PROP_TAG(LinearSolverAbsTolerance);
/*!
* \brief Specifies the verbosity of the linear solver
*
* By default it is 0, i.e. it doesn't print anything. Setting this
* property to 1 prints aggregated convergence rates, 2 prints the
* convergence rate of every iteration of the scheme.
*/
NEW_PROP_TAG(LinearSolverVerbosity);
//! Maximum number of iterations eyecuted by the linear solver
NEW_PROP_TAG(LinearSolverMaxIterations);
NEW_PROP_TAG(LinearSolverMaxError);
NEW_PROP_TAG(GMResRestart);
NEW_PROP_TAG(LinearSolverWrapper);
NEW_PROP_TAG(LinearSolverSplice);
NEW_PROP_TAG(LocalLinearizerSplice);
NEW_PROP_TAG(SpatialDiscretizationSplice);
//! The discretization specific part of he implementing the Newton algorithm
NEW_PROP_TAG(DiscNewtonMethod);
//! Property which tells the Vanguard how often the grid should be refined
//! after creation.
NEW_PROP_TAG(GridGlobalRefinements);
@ -440,7 +144,32 @@ NEW_PROP_TAG(RestartTime);
//! The name of the file with a number of forced time step lengths
NEW_PROP_TAG(PredeterminedTimeStepsFile);
NEW_PROP_TAG(ParameterMetaData);
//! domain size
NEW_PROP_TAG(DomainSizeX);
NEW_PROP_TAG(DomainSizeY);
NEW_PROP_TAG(DomainSizeZ);
//! grid resolution
NEW_PROP_TAG(CellsX);
NEW_PROP_TAG(CellsY);
NEW_PROP_TAG(CellsZ);
//! name of the grid file
NEW_PROP_TAG(GridFile);
//! level of the grid view
NEW_PROP_TAG(GridViewLevel);
//! Manages the simulation time
NEW_PROP_TAG(Simulator);
/*!
* \brief The class which marks the border indices associated with the
* degrees of freedom on a process boundary.
*
* This is required for the algebraic overlap stuff.
*/
NEW_PROP_TAG(BorderListCreator);
///////////////////////////////////
// Values for the properties
@ -464,7 +193,6 @@ SET_PROP(NumericModel, ParameterTree)
//! use the global group as default for the model's parameter group
SET_STRING_PROP(NumericModel, ModelParameterGroup, "");
//! Set a value for the GridFile property
SET_STRING_PROP(NumericModel, GridFile, "");

View File

@ -222,11 +222,7 @@ private:
BEGIN_PROPERTIES
// type tag which is supposed to spliced in or inherited from if the
// parameter system is to be used
//NEW_TYPE_TAG(ParameterSystem);
NEW_PROP_TAG(ParameterMetaData);
//! Set the ParameterMetaData property
SET_PROP(ParameterSystem, ParameterMetaData)

View File

@ -35,6 +35,7 @@
#include <opm/models/utils/timer.hh>
#include <opm/models/utils/timerguard.hh>
#include <opm/models/parallel/mpiutil.hh>
#include <opm/models/discretization/common/fvbaseproperties.hh>
#include <dune/common/version.hh>
#include <dune/common/parallel/mpihelper.hh>

View File

@ -45,14 +45,12 @@
#include <opm/models/utils/propertysystem.hh>
#include <opm/models/utils/parametersystem.hh>
#include <opm/simulators/linalg/linalgproperties.hh>
#include <dune/istl/preconditioners.hh>
#include <dune/common/version.hh>
BEGIN_PROPERTIES
END_PROPERTIES
namespace Opm {
namespace Linear {
#define EWOMS_WRAP_ISTL_PRECONDITIONER(PREC_NAME, ISTL_PREC_TYPE) \

View File

@ -45,14 +45,10 @@
#include <opm/models/utils/propertysystem.hh>
#include <opm/models/utils/parametersystem.hh>
#include <opm/simulators/linalg/linalgproperties.hh>
#include <dune/istl/solvers.hh>
BEGIN_PROPERTIES
END_PROPERTIES
namespace Opm {
namespace Linear {

View File

@ -0,0 +1,104 @@
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*
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 2 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 <http://www.gnu.org/licenses/>.
Consult the COPYING file in the top-level source directory of this
module for the precise wording of the license and the list of
copyright holders.
*/
/*!
* \file
* \ingroup BlackOilModel
*
* \brief Declares the properties required by the black oil model.
*/
#ifndef EWOMS_LINALG_PROPERTIES_HH
#define EWOMS_LINALG_PROPERTIES_HH
#include <opm/models/utils/basicproperties.hh>
BEGIN_PROPERTIES
//! The type of the linear solver to be used
NEW_PROP_TAG(LinearSolverBackend);
//! the preconditioner used by the linear solver
NEW_PROP_TAG(PreconditionerWrapper);
//! The floating point type used internally by the linear solver
NEW_PROP_TAG(LinearSolverScalar);
/*!
* \brief The size of the algebraic overlap of the linear solver.
*
* Algebraic overlaps can be thought as being the same as the overlap
* of a grid, but it is only existant for the linear system of
* equations.
*/
NEW_PROP_TAG(LinearSolverOverlapSize);
/*!
* \brief Maximum accepted error of the solution of the linear solver.
*/
NEW_PROP_TAG(LinearSolverTolerance);
/*!
* \brief Maximum accepted error of the norm of the residual.
*/
NEW_PROP_TAG(LinearSolverAbsTolerance);
/*!
* \brief Specifies the verbosity of the linear solver
*
* By default it is 0, i.e. it doesn't print anything. Setting this
* property to 1 prints aggregated convergence rates, 2 prints the
* convergence rate of every iteration of the scheme.
*/
NEW_PROP_TAG(LinearSolverVerbosity);
//! Maximum number of iterations eyecuted by the linear solver
NEW_PROP_TAG(LinearSolverMaxIterations);
//! The order of the sequential preconditioner
NEW_PROP_TAG(PreconditionerOrder);
//! The relaxation factor of the preconditioner
NEW_PROP_TAG(PreconditionerRelaxation);
//! number of iterations between solver restarts for the GMRES solver
NEW_PROP_TAG(GMResRestart);
//! The class that allows to manipulate sparse matrices
NEW_PROP_TAG(SparseMatrixAdapter);
//! Vector containing a quantity of for equation for each DOF of the whole grid
NEW_PROP_TAG(GlobalEqVector);
NEW_PROP_TAG(AmgCoarsenTarget);
NEW_PROP_TAG(LinearSolverMaxError);
NEW_PROP_TAG(LinearSolverWrapper);
NEW_PROP_TAG(Overlap);
NEW_PROP_TAG(OverlappingLinearOperator);
NEW_PROP_TAG(OverlappingMatrix);
NEW_PROP_TAG(OverlappingScalarProduct);
NEW_PROP_TAG(OverlappingVector);
NEW_TYPE_TAG(ParallelBaseLinearSolver);
END_PROPERTIES
#endif

View File

@ -27,6 +27,7 @@
#ifndef EWOMS_PARALLEL_AMG_BACKEND_HH
#define EWOMS_PARALLEL_AMG_BACKEND_HH
#include "linalgproperties.hh"
#include "parallelbasebackend.hh"
#include "bicgstabsolver.hh"
#include "combinedcriterion.hh"
@ -51,7 +52,6 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(ParallelAmgLinearSolver, INHERITS_FROM(ParallelBaseLinearSolver));
//! The target number of DOFs per processor for the parallel algebraic
//! multi-grid solver
SET_INT_PROP(ParallelAmgLinearSolver, AmgCoarsenTarget, 5000);

View File

@ -40,6 +40,7 @@
#include <opm/models/utils/propertysystem.hh>
#include <opm/models/utils/parametersystem.hh>
#include <opm/simulators/linalg/matrixblock.hh>
#include <opm/simulators/linalg/linalgproperties.hh>
#include <dune/grid/io/file/vtk/vtkwriter.hh>
@ -51,47 +52,6 @@
#include <iostream>
BEGIN_PROPERTIES
NEW_TYPE_TAG(ParallelBaseLinearSolver);
// forward declaration of the required property tags
//! The type of the linear solver to be used
//! the preconditioner used by the linear solver
//! The floating point type used internally by the linear solver
/*!
* \brief The size of the algebraic overlap of the linear solver.
*
* Algebraic overlaps can be thought as being the same as the overlap
* of a grid, but it is only existant for the linear system of
* equations.
*/
/*!
* \brief Maximum accepted error of the solution of the linear solver.
*/
/*!
* \brief Maximum accepted error of the norm of the residual.
*/
/*!
* \brief Specifies the verbosity of the linear solver
*
* By default it is 0, i.e. it doesn't print anything. Setting this
* property to 1 prints aggregated convergence rates, 2 prints the
* convergence rate of every iteration of the scheme.
*/
//! Maximum number of iterations eyecuted by the linear solver
//! The order of the sequential preconditioner
//! The relaxation factor of the preconditioner
//! Set the type of a global jacobian matrix for linear solvers that are based on
//! dune-istl.

View File

@ -27,6 +27,7 @@
#ifndef EWOMS_PARALLEL_BICGSTAB_BACKEND_HH
#define EWOMS_PARALLEL_BICGSTAB_BACKEND_HH
#include "linalgproperties.hh"
#include "parallelbasebackend.hh"
#include "bicgstabsolver.hh"
#include "combinedcriterion.hh"

View File

@ -27,6 +27,7 @@
#ifndef EWOMS_PARALLEL_ISTL_BACKEND_HH
#define EWOMS_PARALLEL_ISTL_BACKEND_HH
#include "linalgproperties.hh"
#include "parallelbasebackend.hh"
#include "istlsolverwrappers.hh"
#include "istlsparsematrixadapter.hh"
@ -37,9 +38,6 @@ BEGIN_PROPERTIES
NEW_TYPE_TAG(ParallelIstlLinearSolver, INHERITS_FROM(ParallelBaseLinearSolver));
//! number of iterations between solver restarts for the GMRES solver
END_PROPERTIES
namespace Opm {

View File

@ -31,6 +31,7 @@
#include <opm/models/linear/istlsparsematrixbackend.hh>
#include <opm/models/utils/parametersystem.hh>
#include <opm/simulators/linalg/linalgproperties.hh>
#include <opm/material/common/Unused.hpp>