Commit 7d017ef2 authored by simone's avatar simone
Browse files

Removing files listed in NEWS

If you need files that have been tagged OBSOLETE, do
cvs up -r OBSOLETE filename
and work with it. You'll probably need to modify Makefile.am
in the same directory and maybe also run tools/update-headers from the base directory
parent d5805c21
......@@ -2,19 +2,19 @@
# DO NOT EDIT : generated automatically by update-headers
#
LIFECORE_HDRS=life/lifecore/GetPot.hpp life/lifecore/SmartAssert.hpp life/lifecore/about.hpp life/lifecore/application.hpp life/lifecore/chrono.hpp life/lifecore/dataString.hpp life/lifecore/debug.hpp life/lifecore/displayer.hpp life/lifecore/factory.hpp life/lifecore/fortran_wrap.hpp life/lifecore/life.hpp life/lifecore/lifeassert.hpp life/lifecore/lifemacros.hpp life/lifecore/lifeversion.hpp life/lifecore/policy.hpp life/lifecore/singleton.hpp life/lifecore/switch.hpp life/lifecore/typeInfo.hpp life/lifecore/util_string.hpp
LIFECORE_HDRS=life/lifecore/switch.hpp life/lifecore/GetPot.hpp life/lifecore/util_string.hpp life/lifecore/fortran_wrap.hpp life/lifecore/dataString.hpp life/lifecore/lifeassert.hpp life/lifecore/lifemacros.hpp life/lifecore/debug.hpp life/lifecore/about.hpp life/lifecore/singleton.hpp life/lifecore/policy.hpp life/lifecore/chrono.hpp life/lifecore/lifeversion.hpp life/lifecore/SmartAssert.hpp life/lifecore/factory.hpp life/lifecore/typeInfo.hpp life/lifecore/displayer.hpp life/lifecore/life.hpp life/lifecore/application.hpp
LIFEARRAY_HDRS=life/lifearray/CSRMatrix.hpp life/lifearray/EpetraMatrix.hpp life/lifearray/EpetraVector.hpp life/lifearray/MSRMatrix.hpp life/lifearray/MixedMatrix.hpp life/lifearray/RNM.hpp life/lifearray/RNM_op.hpp life/lifearray/RNM_opc.hpp life/lifearray/RNM_tpl.hpp life/lifearray/SimpleVect.hpp life/lifearray/VBRMatrix.hpp life/lifearray/blockMatrix.hpp life/lifearray/boostmatrix.hpp life/lifearray/connectivity.hpp life/lifearray/elemMat.hpp life/lifearray/elemVec.hpp life/lifearray/pattern.hpp life/lifearray/sparseArray.hpp life/lifearray/tab.hpp life/lifearray/variables.hpp life/lifearray/vecUnknown.hpp
LIFEARRAY_HDRS=life/lifearray/EpetraVector.hpp life/lifearray/elemVec.hpp life/lifearray/RNM.hpp life/lifearray/SimpleVect.hpp life/lifearray/tab.hpp life/lifearray/RNM_op.hpp life/lifearray/RNM_tpl.hpp life/lifearray/EpetraMatrix.hpp life/lifearray/variables.hpp life/lifearray/elemMat.hpp life/lifearray/RNM_opc.hpp life/lifearray/vecUnknown.hpp
LIFEALG_HDRS=life/lifealg/EpetraMap.hpp life/lifealg/EpetraPreconditioner.hpp life/lifealg/IfpackPreconditioner.hpp life/lifealg/MLPreconditioner.hpp life/lifealg/PressureMatrixSolver.hpp life/lifealg/SolverAmesos.hpp life/lifealg/SolverAztec.hpp life/lifealg/SolverBase.hpp life/lifealg/SolverPETSC.hpp life/lifealg/SolverTrilinos.hpp life/lifealg/SolverUMFPACK.hpp life/lifealg/algebraic_facto.hpp life/lifealg/cblas.hpp life/lifealg/clapack.hpp life/lifealg/dataAztec.hpp life/lifealg/dataNewton.hpp life/lifealg/generalizedAitken.hpp life/lifealg/givens.hpp life/lifealg/gmres.hpp life/lifealg/inexactLU.hpp life/lifealg/iteration.hpp life/lifealg/linesearch_cubic.hpp life/lifealg/linesearch_parabolic.hpp life/lifealg/newton.hpp life/lifealg/nonLinRichardson.hpp life/lifealg/picard.hpp life/lifealg/preconditioner.hpp life/lifealg/saddlePointCG.hpp life/lifealg/triDiagCholesky.hpp life/lifealg/triDiagLU.hpp
LIFEALG_HDRS=life/lifealg/newton.hpp life/lifealg/MLPreconditioner.hpp life/lifealg/EpetraMap.hpp life/lifealg/SolverAmesos.hpp life/lifealg/picard.hpp life/lifealg/linesearch_parabolic.hpp life/lifealg/nonLinRichardson.hpp life/lifealg/EpetraPreconditioner.hpp life/lifealg/generalizedAitken.hpp life/lifealg/SolverTrilinos.hpp life/lifealg/linesearch_cubic.hpp life/lifealg/IfpackPreconditioner.hpp life/lifealg/dataNewton.hpp
LIFEMESH_HDRS=life/lifemesh/bareItems.hpp life/lifemesh/basicOneDMesh.hpp life/lifemesh/basisElSh.hpp life/lifemesh/dataMesh.hpp life/lifemesh/geo0D.hpp life/lifemesh/geoElement.hpp life/lifemesh/geoND.hpp life/lifemesh/identifier.hpp life/lifemesh/markers.hpp life/lifemesh/markers_base.hpp life/lifemesh/meshEntity.hpp life/lifemesh/mesh_util_base.hpp life/lifemesh/partitionMesh.hpp life/lifemesh/regionMesh1D.hpp life/lifemesh/regionMesh2D.hpp life/lifemesh/regionMesh3D.hpp life/lifemesh/subDomainNeighbors.hpp
LIFEMESH_HDRS=life/lifemesh/partitionMesh.hpp life/lifemesh/meshEntity.hpp life/lifemesh/regionMesh2D.hpp life/lifemesh/geoElement.hpp life/lifemesh/regionMesh1D.hpp life/lifemesh/identifier.hpp life/lifemesh/mesh_util_base.hpp life/lifemesh/dataMesh.hpp life/lifemesh/markers.hpp life/lifemesh/markers_base.hpp life/lifemesh/regionMesh3D.hpp life/lifemesh/bareItems.hpp life/lifemesh/basisElSh.hpp life/lifemesh/geo0D.hpp life/lifemesh/geoND.hpp
LIFEFEM_HDRS=life/lifefem/FESpace.hpp life/lifefem/Operator01.hpp life/lifefem/assemb.hpp life/lifefem/assembGeneric.hpp life/lifefem/bcCond.hpp life/lifefem/bcFunction.hpp life/lifefem/bcHandler.hpp life/lifefem/bcManage.hpp life/lifefem/bcVector.hpp life/lifefem/bdf.hpp life/lifefem/bdfNS.hpp life/lifefem/bdfNS_template.hpp life/lifefem/bdf_template.hpp life/lifefem/currentBFDG.hpp life/lifefem/currentBdDG.hpp life/lifefem/currentBdFE.hpp life/lifefem/currentFE.hpp life/lifefem/currentFEDG.hpp life/lifefem/currentHdivFE.hpp life/lifefem/currentIFDG.hpp life/lifefem/dataTime.hpp life/lifefem/dataTransient.hpp life/lifefem/dof.hpp life/lifefem/dofByFace.hpp life/lifefem/dofDG.hpp life/lifefem/dofInterface3Dto2D.hpp life/lifefem/dofInterface3Dto3D.hpp life/lifefem/dofInterfaceBase.hpp life/lifefem/dofInterfaceHandler.hpp life/lifefem/elemOper.hpp life/lifefem/elemOper_ext.hpp life/lifefem/geoMap.hpp life/lifefem/geoMapDG.hpp life/lifefem/interpolate.hpp life/lifefem/localDofPattern.hpp life/lifefem/postProc.hpp life/lifefem/quadRule.hpp life/lifefem/refEle.hpp life/lifefem/refEleDG.hpp life/lifefem/refFE.hpp life/lifefem/refFEDG.hpp life/lifefem/refHdivFE.hpp life/lifefem/refHybridFE.hpp life/lifefem/regionMesh3D_ALE.hpp life/lifefem/sobolevNorms.hpp life/lifefem/staticBdFE.hpp life/lifefem/v2elemVec.hpp life/lifefem/values.hpp life/lifefem/BCNormalManager.hpp
LIFEFEM_HDRS=life/lifefem/regionMesh3D_ALE.hpp life/lifefem/currentFE.hpp life/lifefem/currentBFDG.hpp life/lifefem/dofInterfaceHandler.hpp life/lifefem/dofInterfaceBase.hpp life/lifefem/assemb.hpp life/lifefem/refEle.hpp life/lifefem/dofInterface3Dto3D.hpp life/lifefem/refFE.hpp life/lifefem/bdf.hpp life/lifefem/dofInterface3Dto2D.hpp life/lifefem/bdf_template.hpp life/lifefem/currentBdFE.hpp life/lifefem/bdfNS_template.hpp life/lifefem/postProc.hpp life/lifefem/BCNormalManager.hpp life/lifefem/bcCond.hpp life/lifefem/bcFunction.hpp life/lifefem/staticBdFE.hpp life/lifefem/dof.hpp life/lifefem/bcHandler.hpp life/lifefem/dataTime.hpp life/lifefem/elemOper.hpp life/lifefem/localDofPattern.hpp life/lifefem/FESpace.hpp life/lifefem/bcVector.hpp life/lifefem/geoMap.hpp life/lifefem/bdfNS.hpp life/lifefem/quadRule.hpp life/lifefem/bcManage.hpp life/lifefem/sobolevNorms.hpp
LIFESOLVER_HDRS=life/lifesolver/AFSolvers.hpp life/lifesolver/AdvectionDiffusionReaction.hpp life/lifesolver/AdvectionDiffusionReactionSolver.hpp life/lifesolver/ElasticStructureHandler.hpp life/lifesolver/FSIOperator.hpp life/lifesolver/FSISolver.hpp life/lifesolver/HarmonicExtensionSolver.hpp life/lifesolver/NavierStokesAleHandler.hpp life/lifesolver/NavierStokesAleSolver.hpp life/lifesolver/NavierStokesAleSolverCT.hpp life/lifesolver/NavierStokesAleSolverPC.hpp life/lifesolver/NavierStokesHandler.hpp life/lifesolver/NavierStokesSolver.hpp life/lifesolver/NavierStokesSolverPC.hpp life/lifesolver/NavierStokesWithFlux.hpp life/lifesolver/Oseen.hpp life/lifesolver/OseenShapeDerivative.hpp life/lifesolver/VenantKirchhofSolver.hpp life/lifesolver/bidomainSolver.hpp life/lifesolver/convDiffReactHandler.hpp life/lifesolver/convDiffReactSolverPC.hpp life/lifesolver/darcyHandler.hpp life/lifesolver/darcySolver.hpp life/lifesolver/darcySolverBase.hpp life/lifesolver/dataADR.hpp life/lifesolver/dataBidomain.hpp life/lifesolver/dataConvDiffReact.hpp life/lifesolver/dataDarcy.hpp life/lifesolver/dataElasticStructure.hpp life/lifesolver/dataIonic.hpp life/lifesolver/dataMonodomain.hpp life/lifesolver/dataNavierStokes.hpp life/lifesolver/dataSimplifiedStructure.hpp life/lifesolver/exactJacobianBase.hpp life/lifesolver/fixedPointBase.hpp life/lifesolver/fluidToMaster.hpp life/lifesolver/ionicSolver.hpp life/lifesolver/ipStabilization.hpp life/lifesolver/monodomainSolver.hpp life/lifesolver/nsip.hpp life/lifesolver/nsipterms.hpp life/lifesolver/parabolicSolver.hpp life/lifesolver/reducedLinFluid.hpp life/lifesolver/sdStabilization.hpp life/lifesolver/simplifiedStructure.hpp life/lifesolver/steklovPoincareBase.hpp life/lifesolver/timeSolver.hpp
LIFESOLVER_HDRS=life/lifesolver/fluidToMaster.hpp life/lifesolver/VenantKirchhofSolver.hpp life/lifesolver/bidomainSolver.hpp life/lifesolver/HarmonicExtensionSolver.hpp life/lifesolver/steklovPoincareBase.hpp life/lifesolver/monodomainSolver.hpp life/lifesolver/AdvectionDiffusionReaction.hpp life/lifesolver/FSIOperator.hpp life/lifesolver/reducedLinFluid.hpp life/lifesolver/AdvectionDiffusionReactionSolver.hpp life/lifesolver/sdStabilization.hpp life/lifesolver/Oseen.hpp life/lifesolver/nsipterms.hpp life/lifesolver/dataADR.hpp life/lifesolver/dataMonodomain.hpp life/lifesolver/dataNavierStokes.hpp life/lifesolver/NavierStokesSolverPC.hpp life/lifesolver/OseenShapeDerivative.hpp life/lifesolver/ionicSolver.hpp life/lifesolver/fixedPointBase.hpp life/lifesolver/ElasticStructureHandler.hpp life/lifesolver/ipStabilization.hpp life/lifesolver/dataElasticStructure.hpp life/lifesolver/exactJacobianBase.hpp life/lifesolver/dataBidomain.hpp life/lifesolver/NavierStokesSolver.hpp life/lifesolver/dataIonic.hpp life/lifesolver/dataSimplifiedStructure.hpp life/lifesolver/FSISolver.hpp life/lifesolver/NavierStokesHandler.hpp
LIFEFILTERS_HDRS=life/lifefilters/ensight.hpp life/lifefilters/ensight7Writer.hpp life/lifefilters/exporter.hpp life/lifefilters/gmsh_wrtrs.hpp life/lifefilters/gmv_wrtrs.hpp life/lifefilters/hdf5exporter.hpp life/lifefilters/importer.hpp life/lifefilters/medit.hpp life/lifefilters/medit_wrtrs.hpp life/lifefilters/mesh_util.hpp life/lifefilters/noexport.hpp life/lifefilters/openDX_wrtrs.hpp life/lifefilters/postProc.hpp life/lifefilters/readMesh2D.hpp life/lifefilters/readMesh3D.hpp life/lifefilters/selectMarker.hpp life/lifefilters/vtk_wrtrs.hpp
LIFEFILTERS_HDRS=life/lifefilters/mesh_util.hpp life/lifefilters/hdf5exporter.hpp life/lifefilters/ensight.hpp life/lifefilters/medit_wrtrs.hpp life/lifefilters/readMesh3D.hpp life/lifefilters/noexport.hpp life/lifefilters/importer.hpp life/lifefilters/selectMarker.hpp life/lifefilters/readMesh2D.hpp life/lifefilters/exporter.hpp
nobase_include_HEADERS=lifeconfig.h\
$(LIFECORE_HDRS)\
......
......@@ -11,110 +11,90 @@ of the lifev-parallel.
The serial version is continuing on a separate cvs module, lifev-serial.
Obsolete (Branch Obsolete)
Obsolete (Branch OBSOLETE)
--------------------------
This are no longer in the head, nor distributed.
Developers can access to these files by cvs co -r OBSOLETE filename .
If the files are not obsolete anymore, they can be merged to the head.
life/lifealg/PressureMatrixSolver.hpp
life/lifefilters/medit.hpp
life/lifesolver/darcyHandler.hpp
life/lifesolver/darcySolverBase.hpp
life/lifesolver/darcySolver.hpp,cpp
life/lifesolver/dataDarcy.hpp
life/lifefem/currentHdivFE.hpp,cpp
life/lifefem/refEleDG.hpp,cpp
life/lifefem/refFEDG.hpp,cpp
life/lifefem/refHdivFE.hpp,cpp
life/lifefem/refHybridFE.hpp,cpp
life/lifealg/cblas.hpp | darcySolver.hpp
life/lifealg/clapack.hpp | darcySolver.hpp
life/lifefem/currentBdDG.hpp,cpp
life/lifefem/currentFEDG.hpp,cpp
life/lifefem/currentHdivFE.hpp,cpp
life/lifefem/currentIFDG.hpp,cpp
life/lifefem/refFEDG.hpp,cpp
life/lifefem/refHdivFE.hpp,cpp
life/lifefem/refHybridFE.hpp,cpp
Removed (tagged Removed)
life/lifealg/PressureMatrixSolver.hpp \
life/lifefilters/medit.hpp \
life/lifesolver/darcyHandler.hpp \
life/lifesolver/darcySolverBase.hpp \
life/lifesolver/darcySolver.{hpp,cpp} \
life/lifesolver/dataDarcy.hpp \
life/lifefem/assembDG.hpp \
life/lifefem/refEleDG.{hpp,cpp} \
life/lifefem/refFEDG.{hpp,cpp} \
life/lifefem/dofDG.{hpp,cpp} \
life/lifefem/geoMapDG.{hpp,cpp} \
life/lifefem/refHdivFE.{hpp,cpp} \
life/lifefem/refHybridFE.{hpp,cpp} \
life/lifealg/cblas.hpp \
life/lifealg/clapack.hpp \
life/lifefem/currentBdDG.{hpp,cpp} \
life/lifefem/currentFEDG.{hpp,cpp} \
life/lifefem/currentHdivFE.{hpp,cpp} \
life/lifefem/currentIFDG.{hpp,cpp} \
life/lifefem/defQuadRuleHybridFE.cpp
Removed (tagged REMOVED)
------------------------
These files are removed. The last tag that has them is LIFEV_1_1_0.
life/lifearray/pattern.hpp
life/lifearray/pattern.cpp
life/lifealg/algebraic_facto.hpp
life/lifealg/dataAztec.hpp
life/lifealg/givens.hpp | gmres.hpp
life/lifealg/gmres.hpp
life/lifealg/inexactLU.hpp
life/lifealg/iteration.hpp
life/lifealg/preconditioner.hpp
life/lifealg/saddlePointCG.hpp
life/lifealg/SolverAztec.hpp | timeSolver.hpp nsip.hpp
NavierStokesAleSolver.hpp NavierStokesAleSolverCT.hpp
life/liealg/SolverBase.hpp
life/lifealg/SolverPETSC.hpp,cpp
life/lifealg/SolverUMFPACK.hpp,cpp | nsip.hpp
life/lifealg/triDriagCholesky.hpp
life/lifealg/triDiagLU.hpp
life/lifecore/lifecore.dox ????
life/lifefilters/ensight7Writer.hpp
life/lifefilters/gmsh_wrtrs.hpp
life/lifefilters/gmv_wrtrs.hpp
life/lifefilters/openDX_wrtrs.hpp,cpp | NavierStokesHandler ...
life/lifefilters/postProc.hpp
life/lifefilters/vtk_wrtrs.hpp,cpp
life/lifearray/blockMatrix.hpp
life/lifearray/boostmatrix.hpp | nsip.hpp
life/lifearray/connectivity.hpp
life/lifearray/CSRMatrix.hpp
life/lifearray/MixedMatrix.hpp
life/lifearray/MSRMatrix.hpp
life/lifearray/sparseArray.hpp,cpp
life/lifearray/VBRMatrix.hpp
life/lifearray/vecUnknown.hpp,cpp
life/lifefem/assembGeneric.hpp
life/lifefem/dataTransient.hpp,cpp
life/lifefem/dofByFace.hpp,cpp
life/lifefem/dofDG.hpp
life/lifefem/elemOper_ext.hpp
life/lifefem/geoMapDG.hpp,cpp
life/lifefem/interpolate.hpp
life/lifefem/Operator01.hpp
life/lifefem/postProc.hpp
life/lifefem/refEleDG.hpp,cpp
life/lifefem/v2elemVec.hpp,cpp
life/lifefem/values.hpp ????? (inclued in some solvers but members
don't seem to be used anywhere )
life/lifemesh/basicOneDMesh.hpp,cpp
life/lifemesh/subDomainNeighbors.hpp,cpp
life/lifesolver/AFSolvers.hpp | nsip.hpp
life/lifesolver/convDiffReactHandler.hpp
life/lifesolver/convDiffReactSolverPC.hpp
life/lifesolver/dataBidomain.hpp ???
life/lifesolver/dataConvDiffReact.hpp
life/lifesolver/NavierStokesAleHanlder.hpp
life/lifesolver/NavierStokesAleSolverCT.hpp
life/lifesolver/NavierStokesAleSolver.hpp
life/lifesolver/NavierStokesAleSolverPC.hpp
life/lifesolver/NavierStokesWithFlux.hpp
life/lifesolver/nsip.hpp
life/lifesolver/simplifiedStructure.hpp
life/lifesolver/parabolicSolver.hpp
life/lifesolver/timeSolver.hpp,cpp
life/lifearray/pattern.hpp \
life/lifearray/pattern.cpp \
life/lifealg/algebraic_facto.hpp \
life/lifealg/dataAztec.hpp \
life/lifealg/givens.hpp \
life/lifealg/gmres.hpp \
life/lifealg/inexactLU.hpp \
life/lifealg/iteration.hpp \
life/lifealg/preconditioner.hpp \
life/lifealg/saddlePointCG.hpp \
life/lifealg/SolverAztec.hpp \
life/lifealg/SolverBase.hpp \
life/lifealg/SolverPETSC.{hpp,cpp} \
life/lifealg/SolverUMFPACK.{hpp,cpp} \
life/lifealg/triDiagCholesky.hpp \
life/lifealg/triDiagLU.hpp \
life/lifefilters/ensight7Writer.hpp \
life/lifefilters/gmsh_wrtrs.hpp \
life/lifefilters/gmv_wrtrs.hpp \
life/lifefilters/openDX_wrtrs.{hpp,cpp} \
life/lifefilters/vtk_wrtrs.{hpp,cpp} \
life/lifearray/blockMatrix.hpp \
life/lifearray/boostmatrix.hpp \
life/lifearray/connectivity.hpp \
life/lifearray/CSRMatrix.hpp \
life/lifearray/MixedMatrix.hpp \
life/lifearray/MSRMatrix.hpp \
life/lifearray/sparseArray.{hpp,cpp} \
life/lifearray/VBRMatrix.hpp \
life/lifefem/assembGeneric.hpp \
life/lifefem/dataTransient.{hpp,cpp} \
life/lifefem/dofByFace.{hpp,cpp} \
life/lifefem/elemOper_ext.hpp \
life/lifefem/interpolate.hpp \
life/lifefem/Operator01.hpp \
life/lifefem/v2elemVec.{hpp,cpp} \
life/lifefem/values.hpp \
life/lifemesh/basicOneDMesh.{hpp,cpp} \
life/lifemesh/subDomainNeighbors.{hpp,cpp} \
life/lifesolver/AFSolvers.hpp \
life/lifesolver/convDiffReactHandler.hpp \
life/lifesolver/convDiffReactSolverPC.hpp \
life/lifesolver/dataConvDiffReact.hpp \
life/lifesolver/NavierStokesAleHandler.hpp \
life/lifesolver/NavierStokesAleSolverCT.hpp \
life/lifesolver/NavierStokesAleSolver.hpp \
life/lifesolver/NavierStokesAleSolverPC.hpp \
life/lifesolver/NavierStokesWithFlux.hpp \
life/lifesolver/nsip.hpp \
life/lifesolver/simplifiedStructure.hpp \
life/lifesolver/parabolicSolver.hpp \
life/lifesolver/timeSolver.{hpp,cpp}
Bug Fixes
......
......@@ -22,18 +22,11 @@
SUFFIXES = .cpp .hpp .idl .c .h .f .F .o .moc
if HAVE_PETSC
PETSC_SRCS=SolverPETSC.cpp
endif
if HAVE_UMFPACK
UMFPACK_SRCS=SolverUMFPACK.cpp
endif
lib_LTLIBRARIES = liblifealg.la
liblifealg_la_SOURCES = EpetraPreconditioner.cpp MLPreconditioner.cpp IfpackPreconditioner.cpp SolverAmesos.cpp SolverTrilinos.cpp SolverAztec.cpp dataAztec.cpp dataNewton.cpp EpetraMap.cpp $(PETSC_SRCS) $(UMFPACK_SRCS)
liblifealg_la_SOURCES = EpetraPreconditioner.cpp MLPreconditioner.cpp IfpackPreconditioner.cpp SolverAmesos.cpp SolverTrilinos.cpp dataNewton.cpp EpetraMap.cpp
liblifealg_la_LIBADD = ../lifecore/liblifecore.la ../lifearray/liblifearray.la $(petsc_libs) $(umfpack_libs) $(aztec_libs)
liblifealg_la_LIBADD = ../lifecore/liblifecore.la ../lifearray/liblifearray.la $(aztec_libs)
include $(top_srcdir)/admin/Doxyfile.am
/* -*- mode: c++ -*-
This file is part of the LifeV library
Author(s): Daniele A. Di Pietro <dipietro@unibg.it>
Date: 2-5-2005
Copyright (C) 2005 Università degli Studi di Bergamo
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
\file PressureMatrixSolver.hp
\author Daniele A. Di Pietro <dipietro@unibg.it>
\date 2-5-2005
*/
#ifndef _PRESSUREMATRIXSOLVER_HPP_
#define _PRESSUREMATRIXSOLVER_HPP_
#include <life/lifecore/GetPot.hpp>
#include <life/lifearray/pattern.hpp>
#include <life/lifearray/boostmatrix.hpp>
namespace LifeV {
/*!
\class PressureMatrixSolver
\brief A class for solving the linear system arising from the discretization
of Stokes and Navier-Stokes equations. Matrices are assumed to share the interface
of boost::numeric::ublas::compressed_matrix format.
\author Daniele Antonio Di Pietro <dipietro@unibg.it>
*/
template<typename MatrixTypeC, typename MatrixTypeD, typename MatrixTypeG, typename SolverType>
class PressureMatrixSolver {
public:
/**
@name Typedefs
*/
//@{
typedef Vector vector_type;
typedef MatrixTypeC matrix_type_C;
typedef MatrixTypeD matrix_type_D;
typedef MatrixTypeG matrix_type_G;
typedef SolverType solver_type;
//@}
/**
@name Constructor
*/
//@{
PressureMatrixSolver(const matrix_type_C& C,
const matrix_type_D& D,
const matrix_type_G& G,
const GetPot& data_file,
const std::string& data_section)
:
_M_C(C),
_M_D(D),
_M_G(G),
_M_data_file(data_file),
_M_data_section(data_section),
_M_tol(_M_data_file( (_M_data_section + "cg/tol").data(), 1e-6)),
_M_maxit(_M_data_file( (_M_data_section + "cg/maxit").data(), 100)),
_M_nit(0),
_M_converged(false)
{
}
//@}
/**
@name Accessors
*/
//@{
/**!
\Return the number of iterations needed in the last call of
\solve() method
*/
const UInt numIterations() const {
return _M_nit;
}
/**!
\Return true if last call to solve() method converged
*/
const bool converged() const {
return _M_converged;
}
/**!
\Return residual at last iteration
*/
const Real residual() const {
return _M_res;
}
//@}
/**
@name Methods
*/
//@{
void solve(vector_type& u, vector_type& p, vector_type& b1, vector_type& /* b2 */);
//@}
/**
@name Friend operators
*/
//@{
/**
\Report the result of last call to solve() method
*/
template<typename _MatrixTypeC, typename _MatrixTypeD, typename _MatrixTypeG, typename _SolverType>
friend std::ostream& operator<<(std::ostream&, PressureMatrixSolver<_MatrixTypeC, _MatrixTypeD, _MatrixTypeG, _SolverType>&);
//@}
private:
//! C block
const matrix_type_C& _M_C;
//! D block
const matrix_type_D& _M_D;
//! G block
const matrix_type_G& _M_G;
//! Data file
const GetPot& _M_data_file;
//! Data section
const std::string _M_data_section;
//! Tolerance for conjugate gradient method
Real _M_tol;
//! Maximum number of iteration for conjugate gradient method
UInt _M_maxit;
//! Number of iterations for the last call of solve() method
UInt _M_nit;
//! Convergence flag for the last call of solve() method
bool _M_converged;
//! Residual after last call of solve() method
Real _M_res;
//! Underlying linear solver
solver_type _M_solver;
};
// Implementations
template<typename MatrixTypeC, typename MatrixTypeD, typename MatrixTypeG, typename SolverType>
void PressureMatrixSolver<MatrixTypeC, MatrixTypeD, MatrixTypeG, SolverType>
::
solve(vector_type& __u, vector_type& __p, vector_type& b1, vector_type& /* b2 */) {
vector_type r_k( __p.size() );
vector_type p_k( __p.size() );
vector_type g( __p.size() );
vector_type temp1( __u.size() );
vector_type temp2( __p.size() );
Real alfa_k;
Real beta_k;
_M_solver.setMatrix( _M_C );
_M_solver.solve( temp1, b1 );
g = prod( _M_D, temp1 );
r_k = g;
p_k = r_k;
_M_nit = 0;
_M_res = norm_2(r_k);
while(_M_res > _M_tol && _M_nit < _M_maxit) {
_M_solver.solve(temp1, prod( _M_G, p_k ) );
temp2 = prod( _M_D, temp1 );
alfa_k = inner_prod(p_k, r_k) / inner_prod(p_k, temp2);
__p += alfa_k * p_k;
_M_solver.solve(temp1, _M_G * __p);
r_k = g - prod( _M_D, temp1 );
beta_k = inner_prod(temp2, r_k) / inner_prod(temp2, p_k);
p_k = r_k - beta_k * p_k;
_M_nit++;
_M_res = norm_2(r_k);
}
_M_solver.solve(__u, b1 - prod( _M_G, __p ) );
(_M_nit == _M_maxit) ? _M_converged = false : _M_converged = true;
}
template<typename _MatrixTypeC, typename _MatrixTypeD, typename _MatrixTypeG, typename SolverType>
std::ostream& operator<<(std::ostream& __ostr, PressureMatrixSolver<_MatrixTypeC, _MatrixTypeD, _MatrixTypeG, SolverType>& __PMS) {
__ostr << std::endl;
__ostr << "==================================================" << std::endl;
__ostr << "PMS report" << std::endl;
__ostr << "==================================================" << std::endl;
__ostr << "Convergence ";
__PMS._M_converged ? __ostr << "YES" : __ostr << "NO";
__ostr << std::endl;
__ostr << "--------------------------------------------------" << std::endl;
__ostr << "Final residual " << __PMS._M_res << std::endl;
__ostr << "==================================================" << std::endl;
return __ostr;
}
}
#endif
/* -*- mode: c++ -*-
This file is part of the LifeV library
Author(s): Christoph Winkelmann <christoph.winkelmann@epfl.ch>
Date: 2004-09-22
Copyright (C) 2004 EPFL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
\file SolverAztec.hpp
\author Christoph Winkelmann <christoph.winkelmann@epfl.ch>
\date 2004-09-22
*/
#ifndef SolverAztec_H
#define SolverAztec_H 1
#include <life/lifealg/dataAztec.hpp>
#include <life/lifearray/vecUnknown.hpp>
class GetPot;
namespace LifeV
{
/*!
\class SolverAztec
\brief wrap aztec linear solvers
@author Christoph Winkelmann
*/
class SolverAztec
{
public:
/** @name Typedefs
*/
//@{
typedef double value_type;
typedef SolverAztec solver_type;
//typedef St::Array::SArray<double,1>::type array_type;
typedef Vector array_type;
//@}
//! describes if/how the preconditioner shall be recalculated
enum PreCalc { SAME_PRECONDITIONER,
SAME_NONZERO_PATTERN,
DIFFERENT_NONZERO_PATTERN };
/** @name Constructors, destructor
*/
//@{
//! default constructor
//! @param filename GetPot data file containing options for solver in
//! section "aztec"
SolverAztec( std::string filename="" );
//! create a new instance
static SolverAztec* New();
//! destructor
~SolverAztec();
//@}
/** @name Accessors
*/
//@{
double residualNorm() const;
int iterations() const;
bool converged() const;
//@}
/** @name Mutators
*/
//@{
//! set matrix from MSRMatr
void setMatrix( MSRMatr<value_type> const& newMatrix );
/** set matrix from CSRMatr
*
* Warning: The matrix is converted to MSR. This method provides ease of
* use, possibly for the sake of efficiency.
*/
void setMatrix( CSRMatr<CSRPatt, value_type> const& newMatrix );
/** set matrix free data
* @param nEq number of equations
* @data data for matvec
* @matvec user provided function for matrix vector product
* @see Aztec documentation, http://www.cs.sandia.gov/CRF/aztec1.html
*/
void setMatrixFree( int nEq, void* data,
void ( *matvec ) ( double*, double*, AZ_MATRIX_STRUCT*,
int* ) );
void setTolerance( double newTolerance )
{
M_params[ AZ_tol ] = newTolerance;
}
//! set the level of recursion in the solution of a linear system
void setRecursionLevel( int newLevel )
{
M_options[ AZ_recursion_level ] = newLevel;
}
//@}
/** @name Methods
*/
//@{
/*
solve the problem \f$ A x = b \f$
\c A has been entered via \c setMatrix .
\c preCalc can have the following values :
-# \c SAME_PRECONDITIONER -
Pmat is identical during successive linear solves.
This option is intended for folks who are using
different Amat and Pmat matrices and want to reuse the
same preconditioner matrix. For example, this option
saves work by not recomputing incomplete factorization
for ILU/ICC preconditioners.
-# \c SAME_NONZERO_PATTERN :
Pmat has the same nonzero structure during
successive linear solves.
-# \c DIFFERENT_NONZERO_PATTERN -
Pmat does not have the same nonzero structure.