OpenFOAM logo
Open Source CFD Toolkit

faSchemes.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     faSchemes
00027 
00028 Description
00029     Selector class for finite area differencing schemes.
00030     faMesh is derived from faShemes so that all fields have access to the
00031     faSchemes from the mesh reference they hold.
00032 
00033 SourceFiles
00034     faSchemes.C
00035 
00036 \*---------------------------------------------------------------------------*/
00037 
00038 #ifndef faSchemes_H
00039 #define faSchemes_H
00040 
00041 #include "IOdictionary.H"
00042 
00043 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00044 
00045 namespace Foam
00046 {
00047 
00048 /*---------------------------------------------------------------------------*\
00049                            Class faSchemes Declaration
00050 \*---------------------------------------------------------------------------*/
00051 
00052 class faSchemes
00053 :
00054     public IOdictionary
00055 {
00056 private:
00057 
00058     // Private data
00059 
00060         dictionary ddtSchemes_;
00061         ITstream defaultDdtScheme_;
00062 
00063         dictionary d2dt2Schemes_;
00064         ITstream defaultD2dt2Scheme_;
00065 
00066         dictionary interpolationSchemes_;
00067         ITstream defaultInterpolationScheme_;
00068 
00069         dictionary divSchemes_;
00070         ITstream defaultDivScheme_;
00071 
00072         dictionary gradSchemes_;
00073         ITstream defaultGradScheme_;
00074 
00075         dictionary snGradSchemes_;
00076         ITstream defaultSnGradScheme_;
00077 
00078         dictionary laplacianSchemes_;
00079         ITstream defaultLaplacianScheme_;
00080 
00081         dictionary fluxRequired_;
00082 
00083 
00084     // Private Member Functions
00085 
00086         //- Disallow default bitwise copy construct and assignment
00087         faSchemes(const faSchemes&);
00088         void operator=(const faSchemes&);
00089 
00090 
00091 public:
00092 
00093     //- Debug switch
00094     static int debug;
00095 
00096 
00097     // Constructors
00098 
00099         //- Construct from objectRegistry
00100         faSchemes(const objectRegistry& obr);
00101 
00102 
00103     // Member Functions
00104 
00105         // Access
00106 
00107             const dictionary& schemesDict() const;
00108 
00109             ITstream& ddtScheme(const word& name) const;
00110 
00111             ITstream& d2dt2Scheme(const word& name) const;
00112 
00113             ITstream& interpolationScheme(const word& name) const;
00114 
00115             ITstream& divScheme(const word& name) const;
00116 
00117             ITstream& gradScheme(const word& name) const;
00118 
00119             ITstream& snGradScheme(const word& name) const;
00120 
00121             ITstream& laplacianScheme(const word& name) const;
00122 
00123             bool fluxRequired(const word& name) const;
00124 
00125 
00126         // Read
00127 
00128             //- Read the faSchemes
00129             bool read();
00130 };
00131 
00132 
00133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00134 
00135 } // End namespace Foam
00136 
00137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00138 
00139 #endif
00140 
00141 // ************************************************************************* //
For further information go to www.openfoam.org