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 \*---------------------------------------------------------------------------*/ 00025 00026 #include "linearRadial.H" 00027 #include <OpenFOAM/addToRunTimeSelectionTable.H> 00028 00029 namespace Foam 00030 { 00031 namespace extrudeModels 00032 { 00033 00034 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // 00035 00036 defineTypeNameAndDebug(linearRadial, 0); 00037 00038 addToRunTimeSelectionTable(extrudeModel, linearRadial, dictionary); 00039 00040 00041 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // 00042 00043 linearRadial::linearRadial(const dictionary& dict) 00044 : 00045 extrudeModel(typeName, dict), 00046 R_(readScalar(coeffDict_.lookup("R"))) 00047 {} 00048 00049 00050 // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // 00051 00052 linearRadial::~linearRadial() 00053 {} 00054 00055 00056 // * * * * * * * * * * * * * * * * Operators * * * * * * * * * * * * * * * * // 00057 00058 point linearRadial::operator() 00059 ( 00060 const point& surfacePoint, 00061 const vector& surfaceNormal, 00062 const label layer 00063 ) const 00064 { 00065 // radius of the surface 00066 scalar rs = mag(surfacePoint); 00067 vector rsHat = surfacePoint/rs; 00068 00069 scalar delta = (R_ - rs)/nLayers_; 00070 scalar r = rs + layer*delta; 00071 return r*rsHat; 00072 } 00073 00074 00075 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00076 00077 } // End namespace extrudeModels 00078 } // End namespace Foam 00079 00080 // ************************ vim: set sw=4 sts=4 et: ************************ // 00081