/usr/include/freefoam/finiteVolume/limitedSnGrad.H is in libfreefoam-dev 0.1.0+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | /*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM 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.
OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::fv::limitedSnGrad
Description
Central-difference snGrad scheme with limited non-orthogonal correction.
The limiter is controlled by a coefficient with a value between 0 and 1
which when 0 switches the correction off and the scheme behaves as
uncorrectedSnGrad, when set to 1 the full correction is applied and the
scheme behaves as correctedSnGrad and when set to 0.5 the limiter is
calculated such that the non-orthogonal contribution does not exceed the
orthogonal part.
SourceFiles
limitedSnGrad.C
\*---------------------------------------------------------------------------*/
#ifndef limitedSnGrad_H
#define limitedSnGrad_H
#include <finiteVolume/snGradScheme.H>
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace fv
{
/*---------------------------------------------------------------------------*\
Class limitedSnGrad Declaration
\*---------------------------------------------------------------------------*/
template<class Type>
class limitedSnGrad
:
public snGradScheme<Type>
{
// Private data
scalar limitCoeff_;
// Private Member Functions
//- Disallow default bitwise assignment
void operator=(const limitedSnGrad&);
public:
//- Runtime type information
TypeName("limited");
// Constructors
//- Construct from mesh
limitedSnGrad(const fvMesh& mesh)
:
snGradScheme<Type>(mesh)
{}
//- Construct from mesh and data stream
limitedSnGrad(const fvMesh& mesh, Istream& is)
:
snGradScheme<Type>(mesh),
limitCoeff_(readScalar(is))
{
if (limitCoeff_ < 0 || limitCoeff_ > 1)
{
FatalIOErrorIn
(
"limitedSnGrad(const fvMesh& mesh, Istream& is) : ",
is
) << "limitCoeff is specified as " << limitCoeff_
<< " but should be >= 0 && <= 1"
<< exit(FatalIOError);
}
}
// Destructor
virtual ~limitedSnGrad();
// Member Functions
//- Return the interpolation weighting factors for the given field
virtual tmp<surfaceScalarField> deltaCoeffs
(
const GeometricField<Type, fvPatchField, volMesh>&
) const
{
return this->mesh().deltaCoeffs();
}
//- Return true if this scheme uses an explicit correction
virtual bool corrected() const
{
return !this->mesh().orthogonal();
}
//- Return the explicit correction to the limitedSnGrad
// for the given field
virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
correction(const GeometricField<Type, fvPatchField, volMesh>&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace fv
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
# include <finiteVolume/limitedSnGrad.C>
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************ vim: set sw=4 sts=4 et: ************************ //
|