FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

MULES.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-2010 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
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your 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, see <http://www.gnu.org/licenses/>.
00023 
00024 Namespace
00025     Foam::MULES
00026 
00027 Description
00028     Multidimensional universal limiter with explicit solution.
00029 
00030     Solve a convective-only transport equation using an explicit universal
00031     multi-dimensional limiter.
00032 
00033     Parameters are the variable to solve, the normal convective flux and the
00034     actual explicit flux of the variable which is also used to return limited
00035     flux used in the bounded-solution.
00036 
00037 SourceFiles
00038     MULES.C
00039 
00040 \*---------------------------------------------------------------------------*/
00041 
00042 #ifndef MULES_H
00043 #define MULES_H
00044 
00045 #include <finiteVolume/volFields.H>
00046 #include <finiteVolume/surfaceFieldsFwd.H>
00047 #include <OpenFOAM/primitiveFieldsFwd.H>
00048 #include <OpenFOAM/zeroField.H>
00049 #include <OpenFOAM/geometricOneField.H>
00050 
00051 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00052 
00053 namespace Foam
00054 {
00055 
00056 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00057 
00058 namespace MULES
00059 {
00060 
00061 template<class RhoType, class SpType, class SuType>
00062 void explicitSolve
00063 (
00064     const RhoType& rho,
00065     volScalarField& psi,
00066     const surfaceScalarField& phiBD,
00067     surfaceScalarField& phiPsi,
00068     const SpType& Sp,
00069     const SuType& Su,
00070     const scalar psiMax,
00071     const scalar psiMin
00072 );
00073 
00074 void explicitSolve
00075 (
00076     volScalarField& psi,
00077     const surfaceScalarField& phiBD,
00078     surfaceScalarField& phiPsi,
00079     const scalar psiMax,
00080     const scalar psiMin
00081 );
00082 
00083 template<class RhoType, class SpType, class SuType>
00084 void implicitSolve
00085 (
00086     const RhoType& rho,
00087     volScalarField& gamma,
00088     const surfaceScalarField& phi,
00089     surfaceScalarField& phiCorr,
00090     const SpType& Sp,
00091     const SuType& Su,
00092     const scalar psiMax,
00093     const scalar psiMin
00094 );
00095 
00096 void implicitSolve
00097 (
00098     volScalarField& gamma,
00099     const surfaceScalarField& phi,
00100     surfaceScalarField& phiCorr,
00101     const scalar psiMax,
00102     const scalar psiMin
00103 );
00104 
00105 template<class RhoType, class SpType, class SuType>
00106 void limiter
00107 (
00108     scalarField& allLambda,
00109     const RhoType& rho,
00110     const volScalarField& psi,
00111     const surfaceScalarField& phiBD,
00112     const surfaceScalarField& phiCorr,
00113     const SpType& Sp,
00114     const SuType& Su,
00115     const scalar psiMax,
00116     const scalar psiMin,
00117     const label nLimiterIter
00118 );
00119 
00120 } // End namespace MULES
00121 
00122 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00123 
00124 } // End namespace Foam
00125 
00126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00127 
00128 #ifdef NoRepository
00129 #   include <finiteVolume/MULESTemplates.C>
00130 #endif
00131 
00132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00133 
00134 #endif
00135 
00136 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines