From 425a4ddce4745dafb4aecfd4d2f872a126f75bae Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Mon, 19 May 2003 10:39:05 +0000 Subject: [PATCH] instantiation of functions for SparseMatrixEZ git-svn-id: https://svn.dealii.org/trunk@7658 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/source/precondition_block_ez.cc | 199 ++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 deal.II/lac/source/precondition_block_ez.cc diff --git a/deal.II/lac/source/precondition_block_ez.cc b/deal.II/lac/source/precondition_block_ez.cc new file mode 100644 index 0000000000..8980df02e8 --- /dev/null +++ b/deal.II/lac/source/precondition_block_ez.cc @@ -0,0 +1,199 @@ +//---------------------------------------------------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//---------------------------------------------------------------------- + + +#include +#include + + +// explicit instantiations for "float" PreconditionBlock +template class PreconditionBlock, float>; + +// the instantiation for class PreconditionBlock, double> is skipped +// because it does not make sense to have inverse block matrices with +// higher precision than the matrix itself + + +// explicit instantiations for "double" PreconditionBlock +template class PreconditionBlock, float>; + +template class PreconditionBlock, double>; + + +/*--------------------- PreconditionBlockJacobi -----------------------*/ + + +// explicit instantiations for "float" PreconditionBlock +template class PreconditionBlockJacobi, float>; + +template void PreconditionBlockJacobi, float>::vmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::vmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::Tvmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::Tvmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::vmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::vmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::Tvmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::Tvmult_add +(Vector &, const Vector &) const; + +template class PreconditionBlockJacobi, float>; + +template void PreconditionBlockJacobi, float>::vmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::vmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::Tvmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::Tvmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::vmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::vmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::Tvmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, float>::Tvmult_add +(Vector &, const Vector &) const; + +template class PreconditionBlockJacobi, double>; + +template void PreconditionBlockJacobi, double>::vmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, double>::vmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, double>::Tvmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, double>::Tvmult +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, double>::vmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, double>::vmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, double>::Tvmult_add +(Vector &, const Vector &) const; +template void PreconditionBlockJacobi, double>::Tvmult_add +(Vector &, const Vector &) const; + +/*--------------------- PreconditionBlockGaussSeidel -----------------------*/ + + +// explicit instantiations for "float" PreconditionBlock +template class PreconditionBlockSOR, float>; + +template void PreconditionBlockSOR, float>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::Tvmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::Tvmult ( + Vector &, const Vector &) const; + + +// the instantiation for class PreconditionBlockSOR, double> is skipped +// because it does not make sense to have inverse block matrices with +// higher precision than the matrix itself + + +// explicit instantiations for "double" PreconditionBlockSOR +template class PreconditionBlockSOR, float>; + + +template void PreconditionBlockSOR, float>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::Tvmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::Tvmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::vmult_add ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::vmult_add ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::Tvmult_add ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, float>::Tvmult_add ( + Vector &, const Vector &) const; + +template class PreconditionBlockSOR, double>; + +template void PreconditionBlockSOR, double>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, double>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, double>::Tvmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, double>::Tvmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, double>::vmult_add ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, double>::vmult_add ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, double>::Tvmult_add ( + Vector &, const Vector &) const; +template void PreconditionBlockSOR, double>::Tvmult_add ( + Vector &, const Vector &) const; + + +/*--------------------- PreconditionBlockSSOR -----------------------*/ + + +// explicit instantiations for "float" PreconditionBlock +template class PreconditionBlockSSOR, float>; + +template void PreconditionBlockSSOR, float>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, float>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, float>::Tvmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, float>::Tvmult ( + Vector &, const Vector &) const; + + +// the instantiation for class PreconditionBlockSSOR, double> is skipped +// because it does not make sense to have inverse block matrices with +// higher precision than the matrix itself + + +// explicit instantiations for "double" PreconditionBlockSSOR +template class PreconditionBlockSSOR, float>; + + +template void PreconditionBlockSSOR, float>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, float>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, float>::Tvmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, float>::Tvmult ( + Vector &, const Vector &) const; + +template class PreconditionBlockSSOR, double>; + +template void PreconditionBlockSSOR, double>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, double>::vmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, double>::Tvmult ( + Vector &, const Vector &) const; +template void PreconditionBlockSSOR, double>::Tvmult ( + Vector &, const Vector &) const; -- 2.39.5