From 015032643de5ba16fcff8e06aa47d840aa05151d Mon Sep 17 00:00:00 2001 From: Dmitrij Naumov <dmitrij@naumov.de> Date: Fri, 23 Aug 2013 12:37:15 +0200 Subject: [PATCH] Split SerialVectorMatrixBuilder into Dense and Lis variants. --- .../TestSerialLinearSolver.cpp | 2 +- Tests/VecMatOnMeshLib/TestSerialVecMat.cpp | 2 +- .../Serial/SerialDenseVectorMatrixBuilder.h | 36 +++++++++++++++++++ .../Serial/SerialLisVectorMatrixBuilder.h | 32 +++++++++++++++++ .../Serial/SerialVectorMatrixBuilder.h | 20 ----------- 5 files changed, 70 insertions(+), 22 deletions(-) create mode 100644 VecMatOnMeshLib/Serial/SerialDenseVectorMatrixBuilder.h create mode 100644 VecMatOnMeshLib/Serial/SerialLisVectorMatrixBuilder.h diff --git a/Tests/VecMatOnMeshLib/TestSerialLinearSolver.cpp b/Tests/VecMatOnMeshLib/TestSerialLinearSolver.cpp index 91ff0619d87..f5c8274a00b 100644 --- a/Tests/VecMatOnMeshLib/TestSerialLinearSolver.cpp +++ b/Tests/VecMatOnMeshLib/TestSerialLinearSolver.cpp @@ -33,7 +33,7 @@ #include "MeshLib/Node.h" #include "VecMatOnMeshLib/MeshItemWiseTask/LinearSystemAssembler.h" -#include "VecMatOnMeshLib/Serial/SerialVectorMatrixBuilder.h" +#include "VecMatOnMeshLib/Serial/SerialDenseVectorMatrixBuilder.h" #include "../TestTools.h" #include "SteadyDiffusion2DExample1.h" diff --git a/Tests/VecMatOnMeshLib/TestSerialVecMat.cpp b/Tests/VecMatOnMeshLib/TestSerialVecMat.cpp index 4fef32c5c92..9b860ea660f 100644 --- a/Tests/VecMatOnMeshLib/TestSerialVecMat.cpp +++ b/Tests/VecMatOnMeshLib/TestSerialVecMat.cpp @@ -37,7 +37,7 @@ #include "VecMatOnMeshLib/MeshItemWiseTask/LocalToGlobalIndexMap.h" #include "VecMatOnMeshLib/MeshItemWiseTask/MatrixAssembler.h" #include "VecMatOnMeshLib/MeshItemWiseTask/VectorAssembler.h" -#include "VecMatOnMeshLib/Serial/SerialVectorMatrixBuilder.h" +#include "VecMatOnMeshLib/Serial/SerialDenseVectorMatrixBuilder.h" #include "../TestTools.h" diff --git a/VecMatOnMeshLib/Serial/SerialDenseVectorMatrixBuilder.h b/VecMatOnMeshLib/Serial/SerialDenseVectorMatrixBuilder.h new file mode 100644 index 00000000000..db00a3c015f --- /dev/null +++ b/VecMatOnMeshLib/Serial/SerialDenseVectorMatrixBuilder.h @@ -0,0 +1,36 @@ +/** + * \author Norihiro Watanabe + * \date 2013-04-16 + * + * \copyright + * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#ifndef ASSEMBLERLIB_SERIALDENSEVECTORMATRIXBUILDER_H_ +#define ASSEMBLERLIB_SERIALDENSEVECTORMATRIXBUILDER_H_ + +#include "VecMatOnMeshLib/Serial/SerialVectorMatrixBuilder.h" + +#include "MathLib/LinAlg/Dense/DenseVector.h" +#include "MathLib/LinAlg/Dense/GlobalDenseMatrix.h" + +namespace AssemblerLib +{ + +/// Serial vector/matrix builder using the GlobalDenseMatrix and the DenseVector +/// implementations. +/// +/// \attention Using of GlobalDenseMatrix requires substantial amounts of +/// memory and this implementation is meant to be used for test purpose only. +typedef SerialVectorMatrixBuilder< + MathLib::GlobalDenseMatrix<double>, + MathLib::DenseVector<double> + > SerialDenseVectorMatrixBuilder; + +} // namespace AssemblerLib + +#endif // ASSEMBLERLIB_SERIALVECTOR_MATRIXBUILDER_H_ diff --git a/VecMatOnMeshLib/Serial/SerialLisVectorMatrixBuilder.h b/VecMatOnMeshLib/Serial/SerialLisVectorMatrixBuilder.h new file mode 100644 index 00000000000..f9891641b47 --- /dev/null +++ b/VecMatOnMeshLib/Serial/SerialLisVectorMatrixBuilder.h @@ -0,0 +1,32 @@ +/** + * \author Norihiro Watanabe + * \date 2013-04-16 + * + * \copyright + * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#ifndef ASSEMBLERLIB_SERIALLISVECTORMATRIXBUILDER_H_ +#define ASSEMBLERLIB_SERIALLISVECTORMATRIXBUILDER_H_ + +#include "VecMatOnMeshLib/Serial/SerialVectorMatrixBuilder.h" + +#include "MathLib/LinAlg/Lis/LisMatrix.h" +#include "MathLib/LinAlg/Lis/LisVector.h" + +namespace AssemblerLib +{ + +/// Serial vector/matrix builder using LIS vectors and matrices. +typedef SerialVectorMatrixBuilder< + MathLib::LisMatrix, + MathLib::LisVector + > SerialLisVectorMatrixBuilder; + +} // namespace AssemblerLib + +#endif // ASSEMBLERLIB_SERIALLISVECTORMATRIXBUILDER_H_ diff --git a/VecMatOnMeshLib/Serial/SerialVectorMatrixBuilder.h b/VecMatOnMeshLib/Serial/SerialVectorMatrixBuilder.h index b780b61226a..0eafcbbec7f 100644 --- a/VecMatOnMeshLib/Serial/SerialVectorMatrixBuilder.h +++ b/VecMatOnMeshLib/Serial/SerialVectorMatrixBuilder.h @@ -15,21 +15,11 @@ #include <vector> -#include "MathLib/LinAlg/Sparse/CRSMatrix.h" -#include "MathLib/LinAlg/Dense/DenseVector.h" -#include "MathLib/LinAlg/Dense/GlobalDenseMatrix.h" -#include "MathLib/LinAlg/Lis/LisMatrix.h" - #include "AssemblerLib/MeshComponentMap.h" namespace AssemblerLib { -using AssemblerLib::MeshComponentMap; - -/** - * Non-parallel version using default LinAlg - */ template <typename MatrixType_, typename VectorType_> class SerialVectorMatrixBuilder { @@ -67,16 +57,6 @@ public: }; -typedef SerialVectorMatrixBuilder< - MathLib::GlobalDenseMatrix<double>, - MathLib::DenseVector<double> - > SerialDenseVectorMatrixBuilder; - -typedef SerialVectorMatrixBuilder< - MathLib::LisMatrix, - MathLib::LisVector - > SerialLisVectorMatrixBuilder; - } // namespace AssemblerLib #endif // ASSEMBLERLIB_SERIALVECTORMATRIXBUILDER_H_ -- GitLab