From 48ddc085a1b6f24f6dc1b2044eed1ab7f62e8d89 Mon Sep 17 00:00:00 2001 From: Vuko Vukcevic Date: Sat, 27 Jun 2015 22:46:49 +0200 Subject: [PATCH] extendedBlockLduMatrices - preparation for BlockILUCp algorithm --- src/foam/Make/files | 2 + .../BlockLduMatrix/blockLduMatrices.C | 2 +- .../BlockLduMatrix/blockVectorNMatrices.C | 2 +- .../extendedBlockLduMatrices.C} | 23 +- .../extendedBlockLduMatrices.H} | 36 +-- .../extendedBlockLduMatrix.C | 259 +++++++++++++++++++++ .../extendedBlockLduMatrix.H | 150 ++++++++++++ .../extendedBlockVectorNMatrices.C} | 14 +- .../extendedBlockVectorNMatrices.H} | 34 +-- 9 files changed, 475 insertions(+), 47 deletions(-) copy src/foam/matrices/blockLduMatrix/BlockLduMatrix/{blockVectorNMatrices.C => extendedBlockLduMatrix/extendedBlockLduMatrices.C} (69%) copy src/foam/matrices/blockLduMatrix/BlockLduMatrix/{blockVectorNMatrices.C => extendedBlockLduMatrix/extendedBlockLduMatrices.H} (60%) create mode 100644 src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrix.C create mode 100644 src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrix.H copy src/foam/matrices/blockLduMatrix/BlockLduMatrix/{blockVectorNMatrices.C => extendedBlockLduMatrix/extendedBlockVectorNMatrices.C} (84%) copy src/foam/matrices/blockLduMatrix/BlockLduMatrix/{blockVectorNMatrices.C => extendedBlockLduMatrix/extendedBlockVectorNMatrices.H} (67%) diff --git a/src/foam/Make/files b/src/foam/Make/files index 5989ae249..e6ad9b003 100644 --- a/src/foam/Make/files +++ b/src/foam/Make/files @@ -663,6 +663,8 @@ matrices/blockLduMatrix/BlockLduMatrix/symmTensorBlockLduMatrix.C matrices/blockLduMatrix/BlockLduMatrix/tensorBlockLduMatrix.C matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C matrices/blockLduMatrix/BlockLduMatrix/BlockConstraint/scalarBlockConstraint.C +matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrices.C +matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockVectorNMatrices.C BlockLduInterfaceField = matrices/blockLduMatrix/BlockLduMatrix/BlockLduInterfaceField $(BlockLduInterfaceField)/BlockLduInterfaceFields.C diff --git a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockLduMatrices.C b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockLduMatrices.C index 84e367a80..cb2121992 100644 --- a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockLduMatrices.C +++ b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockLduMatrices.C @@ -22,7 +22,7 @@ License along with foam-extend. If not, see . Description - Block matrix member static data members + Block matrix member static data members Author Hrvoje Jasak, Wikki Ltd. All rights reserved. diff --git a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C index 0b65e4990..58c055294 100644 --- a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C +++ b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C @@ -22,7 +22,7 @@ License along with foam-extend. If not, see . Description - Block matrix member static data members + Block matrix member static data members Author Hrvoje Jasak, Wikki Ltd. All rights reserved. diff --git a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrices.C similarity index 69% copy from src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C copy to src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrices.C index 0b65e4990..fa7f0cfaa 100644 --- a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C +++ b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrices.C @@ -1,9 +1,9 @@ /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | foam-extend: Open Source CFD - \\ / O peration | Version: 3.2 - \\ / A nd | Web: http://www.foam-extend.org - \\/ M anipulation | For copyright notice see file Copyright + \\ / O peration | + \\ / A nd | For copyright notice see file Copyright + \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of foam-extend. @@ -22,15 +22,14 @@ License along with foam-extend. If not, see . Description - Block matrix member static data members + Extended block matrix static data members Author - Hrvoje Jasak, Wikki Ltd. All rights reserved. + Vuko Vukcevic, FMENA Zagreb. All rights reserved. \*---------------------------------------------------------------------------*/ -#include "coeffFields.H" -#include "blockVectorNMatrices.H" +#include "extendedBlockLduMatrices.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -39,12 +38,12 @@ namespace Foam // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // -#define makeNamedTemplateTypeNameAndDebug(type, Type, args...) \ - defineNamedTemplateTypeNameAndDebug(block##Type##Matrix, 0); +defineNamedTemplateTypeNameAndDebug(extendedBlockScalarMatrix, 0); +defineNamedTemplateTypeNameAndDebug(extendedBlockVectorMatrix, 0); +defineNamedTemplateTypeNameAndDebug(extendedBlockSphericalTensorMatrix, 0); +defineNamedTemplateTypeNameAndDebug(extendedBlockSymmTensorMatrix, 0); +defineNamedTemplateTypeNameAndDebug(extendedBlockTensorMatrix, 0); -forAllVectorNTypes(makeNamedTemplateTypeNameAndDebug); - -#undef makeNamedTemplateTypeNameAndDebug // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrices.H similarity index 60% copy from src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C copy to src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrices.H index 0b65e4990..0a64ae2fc 100644 --- a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C +++ b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrices.H @@ -1,9 +1,9 @@ /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | foam-extend: Open Source CFD - \\ / O peration | Version: 3.2 - \\ / A nd | Web: http://www.foam-extend.org - \\/ M anipulation | For copyright notice see file Copyright + \\ / O peration | + \\ / A nd | For copyright notice see file Copyright + \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of foam-extend. @@ -21,33 +21,43 @@ License You should have received a copy of the GNU General Public License along with foam-extend. If not, see . +Class + extendedBlockLduMatrix + Description - Block matrix member static data members + Typedefs for extended block matrices Author - Hrvoje Jasak, Wikki Ltd. All rights reserved. + Vuko Vukcevic, FMENA Zagreb. All rights reserved. \*---------------------------------------------------------------------------*/ -#include "coeffFields.H" -#include "blockVectorNMatrices.H" +#ifndef extendedBlockLduMatrices_H +#define extendedBlockLduMatrices_H + +#include "extendedBlockLduMatrix.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -#define makeNamedTemplateTypeNameAndDebug(type, Type, args...) \ - defineNamedTemplateTypeNameAndDebug(block##Type##Matrix, 0); +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -forAllVectorNTypes(makeNamedTemplateTypeNameAndDebug); +typedef extendedBlockLduMatrix extendedBlockScalarMatrix; +typedef extendedBlockLduMatrix extendedBlockVectorMatrix; +typedef extendedBlockLduMatrix + extendedBlockSphericalTensorMatrix; +typedef extendedBlockLduMatrix extendedBlockSymmTensorMatrix; +typedef extendedBlockLduMatrix extendedBlockTensorMatrix; -#undef makeNamedTemplateTypeNameAndDebug // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + // ************************************************************************* // diff --git a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrix.C b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrix.C new file mode 100644 index 000000000..d35e240ef --- /dev/null +++ b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrix.C @@ -0,0 +1,259 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | + \\ / A nd | For copyright notice see file Copyright + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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 3 of the License, or (at your + option) any later version. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "extendedBlockLduMatrix.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template +Foam::extendedBlockLduMatrix::extendedBlockLduMatrix +( + const blockLduMatrix& blockLdum, + const label extensionLevel, + const polyMesh& polyMesh +) +: + basicBlockLduMatrix_(blockLdum), + extLduAddr_ + ( + extendedLduAddressing::New + ( + polyMesh, + blockLdum.lduAddr(), + extensionLevel + ) + ), + extendedLowerPtr_(NULL), + extendedUpperPtr_(NULL) +{ + if (debug) + { + Info<< "extendedBlockLduMatrix(lduMatrix&, label, polyMesh&) :" + "Constructing extendedBlockLduMatrix." + << endl; + } + + if (blockLdum.diagonal()) + { + WarningIn("extendedBlockLduMatrix(lduMatrix&, label, polyMesh&)") + << "Attempted to create extended lower/upper coeffs for block " + << "matrix that is diagonal." + << nl << endl; + } + else if (blockLdum.symmetric()) + { + // Get reference to faceMap in extended addressing + const unallocLabelList& faceMap = extLduAddr_.faceMap(); + + // Avoid assuming it's upper if the matrix is symmetric + if (blockLdum.hasUpper()) + { + // Allocate extended upper only + extendedUpperPtr_ = new TypeCoeffField + ( + extLduAddr_.extendedUpperAddr().size(), + pTraits::zero + ); + TypeCoeffField& extUpper = *extendedUpperPtr_; + + // Get upper coeffs from underlying lduMatrix + const TypeCoeffField& upper = blockLdum.upper(); + + // Copy non-zero coeffs from basic lduMatrix into corresponding + // positions + forAll (upper, faceI) + { + extUpper[faceMap[faceI]] = upper[faceI]; + } + } + else + { + // Allocate extended lower only + extendedLowerPtr_ = new TypeCoeffField + ( + extLduAddr_.extendedLowerAddr().size(), + pTraits::zero + ); + TypeCoeffField& extLower = *extendedLowerPtr_; + + // Get lower coeffs from underlying lduMatrix + const TypeCoeffField& lower = blockLdum.lower(); + + // Copy non-zero coeffs from basic lduMatrix into corresponding + // positions + forAll (lower, faceI) + { + extLower[faceMap[faceI]] = lower[faceI]; + } + } + } + else + { + // Get reference to faceMap in extended addressing + const unallocLabelList& faceMap = extLduAddr_.faceMap(); + + // Get number of extended faces + const label nExtFaces = extLduAddr_.extendedUpperAddr().size(); + + // Allocate extended upper and lower + extendedUpperPtr_ = new TypeCoeffField(nExtFaces, pTraits::zero); + TypeCoeffField& extUpper = *extendedUpperPtr_; + + extendedLowerPtr_ = new TypeCoeffField(nExtFaces, pTraits::zero); + TypeCoeffField& extLower = *extendedLowerPtr_; + + // Get upper and lower coeffs from underlying lduMatrix + const TypeCoeffField& upper = blockLdum.upper(); + const TypeCoeffField& lower = blockLdum.lower(); + + // Copy non-zero coeffs from basic lduMatrix into corresponding + // positions + forAll (upper, faceI) + { + extUpper[faceMap[faceI]] = upper[faceI]; + extLower[faceMap[faceI]] = lower[faceI]; + } + } +} + + +// * * * * * * * * * * * * * * * * Destructor* * * * * * * * * * * * * * * * // + +template +Foam::extendedBlockLduMatrix::~extendedBlockLduMatrix() +{ + if (extendedLowerPtr_) + { + delete extendedLowerPtr_; + } + + if (extendedUpperPtr_) + { + delete extendedUpperPtr_; + } +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template +typename Foam::extendedBlockLduMatrix::TypeCoeffField& +Foam::extendedBlockLduMatrix::extendedLower() +{ + if (!extendedLowerPtr_) + { + if (extendedUpperPtr_) + { + extendedLowerPtr_ = new TypeCoeffField(*extendedUpperPtr_); + } + else + { + extendedLowerPtr_ = new TypeCoeffField + ( + extLduAddr_.extendedLowerAddr().size(), + pTraits::zero + ); + } + } + + return *extendedLowerPtr_; +} + + +template +typename Foam::extendedBlockLduMatrix::TypeCoeffField& +Foam::extendedBlockLduMatrix::extendedUpper() +{ + if (!extendedUpperPtr_) + { + if (extendedLowerPtr_) + { + extendedUpperPtr_ = new TypeCoeffField(*extendedLowerPtr_); + } + else + { + extendedUpperPtr_ = new TypeCoeffField + ( + extLduAddr_.extendedUpperAddr().size(), + pTraits::zero + ); + } + } + + return *extendedUpperPtr_; +} + + +template +const typename Foam::extendedBlockLduMatrix::TypeCoeffField& +Foam::extendedBlockLduMatrix::extendedLower() const +{ + if (!extendedLowerPtr_ && !extendedUpperPtr_) + { + FatalErrorIn + ( + "const CoeffField& " + "extendedBlockLduMatrix::extendedLower() const" + ) << "extendedLowerPtr_ or extendedUpperPtr_ unallocated" + << abort(FatalError); + } + + if (extendedLowerPtr_) + { + return *extendedLowerPtr_; + } + else + { + return *extendedUpperPtr_; + } +} + + +template +const typename Foam::extendedBlockLduMatrix::TypeCoeffField& +Foam::extendedBlockLduMatrix::extendedUpper() const +{ + if (!extendedLowerPtr_ && !extendedUpperPtr_) + { + FatalErrorIn + ( + "const CoeffField& " + "extendedBlockLduMatrix::extendedLower() const" + ) << "extendedLowerPtr_ or extendedUpperPtr_ unallocated" + << abort(FatalError); + } + + if (extendedUpperPtr_) + { + return *extendedUpperPtr_; + } + else + { + return *extendedLowerPtr_; + } +} + + +// ************************************************************************* // diff --git a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrix.H b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrix.H new file mode 100644 index 000000000..3147d6209 --- /dev/null +++ b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockLduMatrix.H @@ -0,0 +1,150 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | + \\ / A nd | For copyright notice see file Copyright + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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 3 of the License, or (at your + option) any later version. + + foam-extend 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 foam-extend. If not, see . + +Class + Foam::extendedBlockLduMatrix + +Description + Extension of lower and upper coeffs of BlockLduMatrix. Uses faceMap from + extendedLduAddressing to define extended lower and upper coeffs from + ordinary lower and upper coeffs given by ordinary BlockLduMatrix. Used in + ILUCp preconditioner. + +SourceFiles + extendedBlockLduMatrix.C + +\*---------------------------------------------------------------------------*/ + +#ifndef extendedBlockLduMatrix_H +#define extendedBlockLduMatrix_H + +#include "extendedLduAddressing.H" +#include "polyMesh.H" +#include "className.H" +#include "BlockLduMatrix.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + + +/*---------------------------------------------------------------------------*\ + Class extendedBlockLduMatrix Declaration +\*---------------------------------------------------------------------------*/ + +template +class extendedBlockLduMatrix +{ + // Public data type + + typedef typename BlockLduMatrix::TypeCoeffField TypeCoeffField; + + +private: + + // Private data + + //- Reference to underlying BlockLduMatrix + const BlockLduMatrix& basicBlockLduMatrix_; + + //- Reference to extended ldu addressing + const extendedLduAddressing& extLduAddr_; + + //- Extended lower coeffs + CoeffField* extendedLowerPtr_; + + //- Extended upper coeffs + CoeffField* extendedUpperPtr_; + + + // Private member functions + + //- Disallow default bitwise copy construct + extendedBlockLduMatrix(const extendedBlockLduMatrix&); + + //- Disallow default bitwise assignement + void operator=(const extendedBlockLduMatrix&); + + +public: + + + ClassName("extendedBlockLduMatrix"); + + + // Constructors + + //- Construct given BlockduMatrix, extension level and polyMesh + extendedBlockLduMatrix + ( + const BlockLduMatrix&, + const label, + const polyMesh& + ); + + + // Destructor + + ~extendedBlockLduMatrix(); + + + // Member functions + + // Access + + //- Const access to underlying basic BlockLduMatrix + const lduMatrix& basicBlockLduMatrix() const + { + return basicBlockLduMatrix_; + }; + + //- Const access to extendedLduAddressing + const extendedLduAddressing& extendedLduAddr() const + { + return extLduAddr_; + }; + + //- Non-const access to extended lower coeffs + TypeCoeffField& extendedLower(); + + //- Non-const access to extended upper coeffs + TypeCoeffField& extendedUpper(); + + //- Const access to extended lower coeffs + const TypeCoeffField& extendedLower() const; + + //- Const access to extended upper coeffs + const TypeCoeffField& extendedUpper() const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockVectorNMatrices.C similarity index 84% copy from src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C copy to src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockVectorNMatrices.C index 0b65e4990..164bced12 100644 --- a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C +++ b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockVectorNMatrices.C @@ -1,9 +1,9 @@ /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | foam-extend: Open Source CFD - \\ / O peration | Version: 3.2 - \\ / A nd | Web: http://www.foam-extend.org - \\/ M anipulation | For copyright notice see file Copyright + \\ / O peration | + \\ / A nd | For copyright notice see file Copyright + \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of foam-extend. @@ -22,15 +22,15 @@ License along with foam-extend. If not, see . Description - Block matrix member static data members + Extended block matrix static data members Author - Hrvoje Jasak, Wikki Ltd. All rights reserved. + Vuko Vukcevic, FMENA Zagreb. All rights reserved. \*---------------------------------------------------------------------------*/ #include "coeffFields.H" -#include "blockVectorNMatrices.H" +#include "extendedBlockVectorNMatrices.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -39,7 +39,7 @@ namespace Foam // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // -#define makeNamedTemplateTypeNameAndDebug(type, Type, args...) \ +#define makeNamedTemplateTypeNameAndDebug(type, Type, args...) \ defineNamedTemplateTypeNameAndDebug(block##Type##Matrix, 0); forAllVectorNTypes(makeNamedTemplateTypeNameAndDebug); diff --git a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockVectorNMatrices.H similarity index 67% copy from src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C copy to src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockVectorNMatrices.H index 0b65e4990..68074e673 100644 --- a/src/foam/matrices/blockLduMatrix/BlockLduMatrix/blockVectorNMatrices.C +++ b/src/foam/matrices/blockLduMatrix/BlockLduMatrix/extendedBlockLduMatrix/extendedBlockVectorNMatrices.H @@ -1,9 +1,9 @@ /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | foam-extend: Open Source CFD - \\ / O peration | Version: 3.2 - \\ / A nd | Web: http://www.foam-extend.org - \\/ M anipulation | For copyright notice see file Copyright + \\ / O peration | + \\ / A nd | For copyright notice see file Copyright + \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of foam-extend. @@ -21,33 +21,41 @@ License You should have received a copy of the GNU General Public License along with foam-extend. If not, see . +Class + extendedBlockLduMatrix + Description - Block matrix member static data members + Typedefs for extended block matrices Author - Hrvoje Jasak, Wikki Ltd. All rights reserved. + Vuko Vukcevic, FMENA Zagreb. All rights reserved. \*---------------------------------------------------------------------------*/ -#include "coeffFields.H" -#include "blockVectorNMatrices.H" +#ifndef blockVectorNMatrices_H +#define blockVectorNMatrices_H + +#include "extendedBlockLduMatrices.H" +#include "VectorTensorNFieldsFwd.H" +#include "ExpandTensorNField.H" +#include "VectorNFieldTypes.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // +#define makeTypedef(type, Type, args...) \ + typedef extendedBlockLduMatrix block##Type##Matrix; -#define makeNamedTemplateTypeNameAndDebug(type, Type, args...) \ - defineNamedTemplateTypeNameAndDebug(block##Type##Matrix, 0); +forAllVectorNTypes(makeTypedef) -forAllVectorNTypes(makeNamedTemplateTypeNameAndDebug); +#undef makeTypedef -#undef makeNamedTemplateTypeNameAndDebug +} // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace Foam +#endif // ************************************************************************* // -- 2.11.4.GIT