mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
[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:
parent
5e411a8665
commit
de2ca522ff
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
|
||||
BEGIN_PROPERTIES
|
||||
|
||||
NEW_PROP_TAG(UseTwoPointGradients);
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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 {
|
||||
/*!
|
||||
|
@ -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,
|
||||
|
@ -45,6 +45,13 @@
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
BEGIN_PROPERTIES
|
||||
|
||||
template <class TypeTag, class MyTypeTag>
|
||||
struct NewtonMethod;
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
namespace Opm {
|
||||
|
||||
/*!
|
||||
|
@ -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>);
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
@ -39,11 +39,6 @@
|
||||
#include <type_traits>
|
||||
#include <memory>
|
||||
|
||||
BEGIN_PROPERTIES
|
||||
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
namespace Opm {
|
||||
|
||||
/*!
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
||||
/*!
|
||||
|
@ -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
|
||||
|
||||
|
@ -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>);
|
||||
|
@ -34,7 +34,8 @@
|
||||
|
||||
BEGIN_PROPERTIES
|
||||
|
||||
|
||||
template <class TypeTag, class MyTypeTag>
|
||||
struct NewtonMethod;
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
|
@ -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 {
|
||||
|
||||
/*!
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
||||
// \}
|
||||
|
||||
|
@ -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, "");
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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>
|
||||
|
@ -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) \
|
||||
|
@ -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 {
|
||||
|
104
opm/simulators/linalg/linalgproperties.hh
Normal file
104
opm/simulators/linalg/linalgproperties.hh
Normal 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
|
@ -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);
|
||||
|
@ -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.
|
||||
|
@ -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"
|
||||
|
@ -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 {
|
||||
|
@ -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>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user