![]() |
|
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 partialSlipFvPatchField 00027 00028 Description 00029 00030 SourceFiles 00031 partialSlipFvPatchField.C 00032 00033 \*---------------------------------------------------------------------------*/ 00034 00035 #ifndef partialSlipFvPatchField_H 00036 #define partialSlipFvPatchField_H 00037 00038 #include "transformFvPatchField.H" 00039 00040 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00041 00042 namespace Foam 00043 { 00044 00045 /*---------------------------------------------------------------------------*\ 00046 Class partialSlipFvPatch Declaration 00047 \*---------------------------------------------------------------------------*/ 00048 00049 template<class Type> 00050 class partialSlipFvPatchField 00051 : 00052 public transformFvPatchField<Type> 00053 { 00054 // Private data 00055 00056 //- Fraction (0-1) of value used for boundary condition 00057 scalarField valueFraction_; 00058 00059 00060 public: 00061 00062 //- Runtime type information 00063 TypeName("partialSlip"); 00064 00065 00066 // Constructors 00067 00068 //- Construct from patch and internal field 00069 partialSlipFvPatchField 00070 ( 00071 const fvPatch&, 00072 const Field<Type>& 00073 ); 00074 00075 //- Construct from patch, internal field and dictionary 00076 partialSlipFvPatchField 00077 ( 00078 const fvPatch&, 00079 const Field<Type>&, 00080 const dictionary& 00081 ); 00082 00083 //- Construct by mapping given partialSlipFvPatchField onto a new patch 00084 partialSlipFvPatchField 00085 ( 00086 const partialSlipFvPatchField<Type>&, 00087 const fvPatch&, 00088 const Field<Type>&, 00089 const fvPatchFieldMapper& 00090 ); 00091 00092 //- Construct and return a clone 00093 virtual tmp<fvPatchField<Type> > clone() const 00094 { 00095 return tmp<fvPatchField<Type> > 00096 ( 00097 new partialSlipFvPatchField<Type>(*this) 00098 ); 00099 } 00100 00101 //- Construct as copy setting internal field reference 00102 partialSlipFvPatchField 00103 ( 00104 const partialSlipFvPatchField<Type>&, 00105 const Field<Type>& 00106 ); 00107 00108 //- Construct and return a clone setting internal field reference 00109 virtual tmp<fvPatchField<Type> > clone(const Field<Type>& iF) const 00110 { 00111 return tmp<fvPatchField<Type> > 00112 ( 00113 new partialSlipFvPatchField<Type>(*this, iF) 00114 ); 00115 } 00116 00117 00118 // Member functions 00119 00120 // Mapping functions 00121 00122 //- Map (and resize as needed) from self given a mapping object 00123 virtual void autoMap 00124 ( 00125 const fvPatchFieldMapper& 00126 ); 00127 00128 //- Reverse map the given fvPatchField onto this fvPatchField 00129 virtual void rmap 00130 ( 00131 const fvPatchField<Type>&, 00132 const labelList& 00133 ); 00134 00135 00136 // Return defining fields 00137 00138 virtual scalarField& valueFraction() 00139 { 00140 return valueFraction_; 00141 } 00142 00143 virtual const scalarField& valueFraction() const 00144 { 00145 return valueFraction_; 00146 } 00147 00148 00149 // Evaluation functions 00150 00151 //- Return gradient at boundary 00152 virtual tmp<Field<Type> > snGrad() const; 00153 00154 //- Evaluate the patch field 00155 virtual void evaluate(); 00156 00157 //- Return face-gradient transform diagonal 00158 virtual tmp<Field<Type> > snGradTransformDiag() const; 00159 00160 00161 //- Write 00162 virtual void write(Ostream&) const; 00163 00164 00165 // Member operators 00166 00167 virtual void operator=(const UList<Type>&) {} 00168 00169 virtual void operator=(const fvPatchField<Type>&) {} 00170 virtual void operator+=(const fvPatchField<Type>&) {} 00171 virtual void operator-=(const fvPatchField<Type>&) {} 00172 virtual void operator*=(const fvPatchField<scalar>&) {} 00173 virtual void operator/=(const fvPatchField<scalar>&) {} 00174 00175 virtual void operator+=(const Field<Type>&) {} 00176 virtual void operator-=(const Field<Type>&) {} 00177 00178 virtual void operator*=(const Field<scalar>&) {} 00179 virtual void operator/=(const Field<scalar>&) {} 00180 00181 virtual void operator=(const Type&) {} 00182 virtual void operator+=(const Type&) {} 00183 virtual void operator-=(const Type&) {} 00184 virtual void operator*=(const scalar) {} 00185 virtual void operator/=(const scalar) {} 00186 }; 00187 00188 00189 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00190 00191 } // End namespace Foam 00192 00193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00194 00195 #ifdef NoRepository 00196 # include "partialSlipFvPatchField.C" 00197 #endif 00198 00199 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00200 00201 #endif 00202 00203 // ************************************************************************* //