Skip to content
Snippets Groups Projects
Commit 4ec30bbe authored by Bernd Flemisch's avatar Bernd Flemisch
Browse files

implicit branch: unify *properties.hh files.

git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/branches/implicit@9722 2fb0f335-1f38-0410-981e-8018bf24f1b0
parent a65b5538
No related branches found
No related tags found
No related merge requests found
......@@ -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
}
}
......
// -*- 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);
}
}
......
......@@ -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);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment