OpenFOAM logo
Open Source CFD Toolkit

tetFem.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2005 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software; you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by the
00013     Free Software Foundation; either version 2 of the License, or (at your
00014     option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM; if not, write to the Free Software Foundation,
00023     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00024 
00025 Class
00026     tetFem
00027 
00028 Description
00029     Class of static functions to calculate implicit finite element derivatives
00030     returning a matrix.
00031 
00032 SourceFiles
00033     tetFem.C
00034 
00035 \*---------------------------------------------------------------------------*/
00036 
00037 #ifndef tetFem_H
00038 #define tetFem_H
00039 
00040 #include "tetPointFieldsFwd.H"
00041 #include "tetFemMatrices.H"
00042 #include "tmp.H"
00043 
00044 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00045 
00046 namespace Foam
00047 {
00048 
00049 /*---------------------------------------------------------------------------*\
00050                   Namespace tetFem functions Declaration
00051 \*---------------------------------------------------------------------------*/
00052 
00053 namespace tetFem
00054 {
00055     // Laplacian
00056 
00057         template<class Type>
00058         static tmp<tetFemMatrix<Type> > laplacian
00059         (
00060             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00061         );
00062 
00063         template<class Type>
00064         static tmp<tetFemMatrix<Type> > laplacian
00065         (
00066             const elementScalarField&,
00067             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00068         );
00069 
00070         template<class Type>
00071         static tmp<tetFemMatrix<Type> > smoother
00072         (
00073             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00074         );
00075 
00076         template<class Type>
00077         static tmp<tetFemMatrix<Type> > laplacian
00078         (
00079             const dimensionedScalar&,
00080             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00081         );
00082 
00083         template<class Type>
00084         static tmp<tetFemMatrix<Type> > laplacianTranspose
00085         (
00086             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00087         );
00088 
00089         template<class Type>
00090         static tmp<tetFemMatrix<Type> > laplacianTranspose
00091         (
00092             const elementScalarField&,
00093             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00094         );
00095 
00096         template<class Type>
00097         static tmp<tetFemMatrix<Type> > laplacianTranspose
00098         (
00099             const dimensionedScalar&,
00100             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00101         );
00102 
00103         template<class Type>
00104         static tmp<tetFemMatrix<Type> > laplacianTrace
00105         (
00106             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00107         );
00108         template<class Type>
00109         static tmp<tetFemMatrix<Type> > laplacianTrace
00110         (
00111             const elementScalarField&,
00112             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00113         );
00114 
00115         template<class Type>
00116         static tmp<tetFemMatrix<Type> > laplacianTrace
00117         (
00118             const dimensionedScalar&,
00119             GeometricField<Type, tetPolyPatchField, tetPointMesh>&
00120         );
00121 };
00122 
00123 
00124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00125 
00126 } // End namespace Foam
00127 
00128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00129 
00130 #ifdef NoRepository
00131 #   include "tetFem.C"
00132 #endif
00133 
00134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00135 
00136 #endif
00137 
00138 // ************************************************************************* //
For further information go to www.openfoam.org