diff --git a/dumux/implicit/box/boxproperties.hh b/dumux/implicit/box/boxproperties.hh index f0d72d6be19417e72f9b3727c75026ef39465e8d..f980ae05bf00ae124db3f90e08c7382cc4330ddb 100644 --- a/dumux/implicit/box/boxproperties.hh +++ b/dumux/implicit/box/boxproperties.hh @@ -24,6 +24,7 @@ #include <dumux/common/basicproperties.hh> #include <dumux/linear/linearsolverproperties.hh> #include <dumux/nonlinear/newtonmethod.hh> +#include <dumux/implicit/common/implicitproperties.hh> /*! * \ingroup Properties @@ -54,88 +55,9 @@ NEW_TYPE_TAG(BoxModel, INHERITS_FROM(NewtonMethod, LinearSolverTypeTag, Implicit // Property tags ////////////////////////////////////////////////////////////////// -NEW_PROP_TAG(Grid); //!< The type of the DUNE grid -NEW_PROP_TAG(GridView); //!< The type of the grid view - -NEW_PROP_TAG(FVElementGeometry); //! The type of the finite-volume geometry in the box scheme NEW_PROP_TAG(EvalGradientsAtSCVCenter); //! Evaluate shape function gradients additionally at the sub-control volume center -NEW_PROP_TAG(Problem); //!< The type of the problem -NEW_PROP_TAG(BaseModel); //!< The type of the base class of the model -NEW_PROP_TAG(Model); //!< The type of the model -NEW_PROP_TAG(NumEq); //!< Number of equations in the system of PDEs -NEW_PROP_TAG(BaseLocalResidual); //!< The type of the base class of the local residual -NEW_PROP_TAG(LocalResidual); //!< The type of the local residual function -NEW_PROP_TAG(LocalJacobian); //!< The type of the local jacobian operator - -NEW_PROP_TAG(JacobianAssembler); //!< Assembles the global jacobian matrix -NEW_PROP_TAG(JacobianMatrix); //!< Type of the global jacobian matrix -NEW_PROP_TAG(BoundaryTypes); //!< Stores the boundary types of a single degree of freedom -NEW_PROP_TAG(ElementBoundaryTypes); //!< Stores the boundary types on an element - -NEW_PROP_TAG(PrimaryVariables); //!< A vector of primary variables within a sub-control volume -NEW_PROP_TAG(SolutionVector); //!< Vector containing all primary variable vector of the grid -NEW_PROP_TAG(ElementSolutionVector); //!< A vector of primary variables within a sub-control volume - -NEW_PROP_TAG(VolumeVariables); //!< The secondary variables within a sub-control volume -NEW_PROP_TAG(ElementVolumeVariables); //!< The secondary variables of all sub-control volumes in an element -NEW_PROP_TAG(FluxVariables); //!< Data required to calculate a flux over a face -NEW_PROP_TAG(BoundaryVariables); //!< Data required to calculate fluxes over boundary faces (outflow) - -// high level simulation control -NEW_PROP_TAG(TimeManager); //!< Manages the simulation time -NEW_PROP_TAG(NewtonMethod); //!< The type of the newton method -NEW_PROP_TAG(NewtonController); //!< The type of the newton controller - -//! Specify whether the jacobian matrix of the last iteration of a -//! time step should be re-used as the jacobian of the first iteration -//! of the next time step. -NEW_PROP_TAG(ImplicitEnableJacobianRecycling); - -//! Specify whether the jacobian matrix should be only reassembled for -//! elements where at least one vertex is above the specified -//! tolerance -NEW_PROP_TAG(ImplicitEnablePartialReassemble); -/*! - * \brief Specify the maximum size of a time integration [s]. - * - * The default is to not limit the step size. - */ -NEW_PROP_TAG(TimeManagerMaxTimeStepSize); - -/*! - * \brief Specify which kind of method should be used to numerically - * calculate the partial derivatives of the residual. - * - * -1 means backward differences, 0 means central differences, 1 means - * forward differences. By default we use central differences. - */ -NEW_PROP_TAG(ImplicitNumericDifferenceMethod); - -/*! - * \brief Specify whether to use the already calculated solutions as - * starting values of the volume variables. - * - * This only makes sense if the calculation of the volume variables is - * very expensive (e.g. for non-linear fugacity functions where the - * solver converges faster). - */ -NEW_PROP_TAG(ImplicitEnableHints); - -//! indicates whether two-point flux should be used -NEW_PROP_TAG(ImplicitUseTwoPointFlux); - -// mappers from local to global indices - -//! mapper for vertices -NEW_PROP_TAG(VertexMapper); -//! mapper for elements -NEW_PROP_TAG(ElementMapper); -//! mapper for degrees of freedom -NEW_PROP_TAG(DofMapper); - -//! indicate whether discretization is box or not -NEW_PROP_TAG(ImplicitIsBox); +NEW_PROP_TAG(ImplicitUseTwoPointFlux); //! indicates whether two-point flux should be used } } diff --git a/dumux/implicit/cellcentered/ccproperties.hh b/dumux/implicit/cellcentered/ccproperties.hh index 061ad3551e54bfada5f08c968ed9f9628fa55efe..e6d2a3750fedaf4b4447fdaa1aaf53e7ec93244f 100644 --- a/dumux/implicit/cellcentered/ccproperties.hh +++ b/dumux/implicit/cellcentered/ccproperties.hh @@ -1,11 +1,7 @@ // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // vi: set et ts=4 sw=4 sts=4: /***************************************************************************** - * Copyright (C) 2009 by Andreas Lauser * - * Copyright (C) 2008 by Bernd Flemisch * - * Institute for Modelling Hydraulic and Environmental Systems * - * University of Stuttgart, Germany * - * email: <givenname>.<name>@iws.uni-stuttgart.de * + * See the file COPYING for full copying permissions. * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -14,7 +10,7 @@ * * * This program 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 * + * 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 * @@ -28,6 +24,7 @@ #include <dumux/common/basicproperties.hh> #include <dumux/linear/linearsolverproperties.hh> #include <dumux/nonlinear/newtonmethod.hh> +#include <dumux/implicit/common/implicitproperties.hh> /*! * \ingroup Properties @@ -53,91 +50,6 @@ namespace Properties //! The type tag for models based on the box-scheme NEW_TYPE_TAG(CCModel, INHERITS_FROM(NewtonMethod, LinearSolverTypeTag, ImplicitModel)); - -////////////////////////////////////////////////////////////////// -// Property tags -////////////////////////////////////////////////////////////////// - -NEW_PROP_TAG(Grid); //!< The type of the DUNE grid -NEW_PROP_TAG(GridView); //!< The type of the grid view - -NEW_PROP_TAG(FVElementGeometry); //! The type of the finite-volume geometry in the box scheme - -NEW_PROP_TAG(Problem); //!< The type of the problem -NEW_PROP_TAG(BaseModel); //!< The type of the base class of the model -NEW_PROP_TAG(Model); //!< The type of the model -NEW_PROP_TAG(NumEq); //!< Number of equations in the system of PDEs -NEW_PROP_TAG(BaseLocalResidual); //!< The type of the base class of the local residual -NEW_PROP_TAG(LocalResidual); //!< The type of the local residual function -NEW_PROP_TAG(LocalJacobian); //!< The type of the local jacobian operator - -NEW_PROP_TAG(JacobianAssembler); //!< Assembles the global jacobian matrix -NEW_PROP_TAG(JacobianMatrix); //!< Type of the global jacobian matrix -NEW_PROP_TAG(BoundaryTypes); //!< Stores the boundary types of a single degree of freedom -NEW_PROP_TAG(ElementBoundaryTypes); //!< Stores the boundary types on an element - -NEW_PROP_TAG(PrimaryVariables); //!< A vector of primary variables within a sub-control volume -NEW_PROP_TAG(SolutionVector); //!< Vector containing all primary variable vector of the grid -NEW_PROP_TAG(ElementSolutionVector); //!< A vector of primary variables within a sub-control volume - -NEW_PROP_TAG(VolumeVariables); //!< The secondary variables within a sub-control volume -NEW_PROP_TAG(ElementVolumeVariables); //!< The secondary variables of all sub-control volumes in an element -NEW_PROP_TAG(FluxVariables); //!< Data required to calculate a flux over a face -NEW_PROP_TAG(BoundaryVariables); //!< Data required to calculate fluxes over boundary faces (outflow) - -// high level simulation control -NEW_PROP_TAG(TimeManager); //!< Manages the simulation time -NEW_PROP_TAG(NewtonMethod); //!< The type of the newton method -NEW_PROP_TAG(NewtonController); //!< The type of the newton controller - -//! Specify whether the jacobian matrix of the last iteration of a -//! time step should be re-used as the jacobian of the first iteration -//! of the next time step. -NEW_PROP_TAG(ImplicitEnableJacobianRecycling); - -//! Specify whether the jacobian matrix should be only reassembled for -//! elements where at least one vertex is above the specified -//! tolerance -NEW_PROP_TAG(ImplicitEnablePartialReassemble); - -/*! - * \brief Specify the maximum size of a time integration [s]. - * - * The default is to not limit the step size. - */ -NEW_PROP_TAG(TimeManagerMaxTimeStepSize); - -/*! - * \brief Specify which kind of method should be used to numerically - * calculate the partial derivatives of the residual. - * - * -1 means backward differences, 0 means central differences, 1 means - * forward differences. By default we use central differences. - */ -NEW_PROP_TAG(ImplicitNumericDifferenceMethod); - -/*! - * \brief Specify whether to use the already calculated solutions as - * starting values of the volume variables. - * - * This only makes sense if the calculation of the volume variables is - * very expensive (e.g. for non-linear fugacity functions where the - * solver converges faster). - */ -NEW_PROP_TAG(ImplicitEnableHints); - -// mappers from local to global indices - -//! mapper for vertices -NEW_PROP_TAG(VertexMapper); -//! mapper for elements -NEW_PROP_TAG(ElementMapper); -//! mapper for degrees of freedom -NEW_PROP_TAG(DofMapper); - -//! indicate whether discretization is box or not -NEW_PROP_TAG(ImplicitIsBox); - } } diff --git a/dumux/implicit/common/implicitproperties.hh b/dumux/implicit/common/implicitproperties.hh index 9fd7fffa05baccd592c719d7b8a1b22552dbda67..bf6846d50646fb124e8b4fccfc0710738f9fe279 100644 --- a/dumux/implicit/common/implicitproperties.hh +++ b/dumux/implicit/common/implicitproperties.hh @@ -16,22 +16,18 @@ * You should have received a copy of the GNU General Public License * * along with this program. If not, see <http://www.gnu.org/licenses/>. * *****************************************************************************/ -#ifndef DUMUX_BOX_PROPERTIES_HH -#define DUMUX_BOX_PROPERTIES_HH +#ifndef DUMUX_IMPLICIT_PROPERTIES_HH +#define DUMUX_IMPLICIT_PROPERTIES_HH #include <dumux/common/propertysystem.hh> -#include <dumux/common/basicproperties.hh> -#include <dumux/linear/linearsolverproperties.hh> -#include <dumux/nonlinear/newtonmethod.hh> - /*! * \ingroup Properties - * \ingroup BoxProperties - * \ingroup BoxModel + * \ingroup ImplicitProperties + * \ingroup ImplicitModel * \file * \brief Specify the shape functions, operator assemblers, etc - * used for the BoxModel. + * used for the ImplicitModel. */ namespace Dumux { @@ -39,17 +35,10 @@ namespace Dumux namespace Properties { /*! - * \ingroup BoxModel + * \ingroup ImplicitModel */ // \{ -////////////////////////////////////////////////////////////////// -// Type tags -////////////////////////////////////////////////////////////////// - -//! The type tag for models based on the box-scheme -NEW_TYPE_TAG(BoxModel, INHERITS_FROM(NewtonMethod, LinearSolverTypeTag, ImplicitModel)); - ////////////////////////////////////////////////////////////////// // Property tags ////////////////////////////////////////////////////////////////// @@ -58,7 +47,6 @@ NEW_PROP_TAG(Grid); //!< The type of the DUNE grid NEW_PROP_TAG(GridView); //!< The type of the grid view NEW_PROP_TAG(FVElementGeometry); //! The type of the finite-volume geometry in the box scheme -NEW_PROP_TAG(EvalGradientsAtSCVCenter); //! Evaluate shape function gradients additionally at the sub-control volume center NEW_PROP_TAG(Problem); //!< The type of the problem NEW_PROP_TAG(BaseModel); //!< The type of the base class of the model @@ -122,9 +110,6 @@ NEW_PROP_TAG(ImplicitNumericDifferenceMethod); */ NEW_PROP_TAG(ImplicitEnableHints); -//! indicates whether two-point flux should be used -NEW_PROP_TAG(ImplicitUseTwoPointFlux); - // mappers from local to global indices //! maper for vertices @@ -134,6 +119,9 @@ NEW_PROP_TAG(ElementMapper); //! maper for degrees of freedom NEW_PROP_TAG(DofMapper); +//! indicate whether discretization is box or not +NEW_PROP_TAG(ImplicitIsBox); + } }