00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef multivariateGaussConvectionScheme_H
00037 #define multivariateGaussConvectionScheme_H
00038
00039 #include "convectionScheme.H"
00040
00041
00042
00043 namespace Foam
00044 {
00045
00046
00047
00048 namespace fv
00049 {
00050
00051
00052
00053
00054
00055 template<class Type>
00056 class multivariateGaussConvectionScheme
00057 :
00058 public fv::convectionScheme<Type>
00059 {
00060
00061
00062 tmp<multivariateSurfaceInterpolationScheme<Type> > tinterpScheme_;
00063
00064
00065
00066
00067
00068 multivariateGaussConvectionScheme
00069 (
00070 const multivariateGaussConvectionScheme&
00071 );
00072
00073
00074 void operator=(const multivariateGaussConvectionScheme&);
00075
00076
00077 public:
00078
00079
00080 TypeName("Gauss");
00081
00082
00083
00084
00085
00086 multivariateGaussConvectionScheme
00087 (
00088 const fvMesh& mesh,
00089 const typename multivariateSurfaceInterpolationScheme<Type>::
00090 fieldTable& fields,
00091 const surfaceScalarField& faceFlux,
00092 Istream& is
00093 )
00094 :
00095 convectionScheme<Type>(mesh, faceFlux),
00096 tinterpScheme_
00097 (
00098 multivariateSurfaceInterpolationScheme<Type>::New
00099 (
00100 mesh, fields, faceFlux, is
00101 )
00102 )
00103 {}
00104
00105
00106
00107
00108 tmp<multivariateSurfaceInterpolationScheme<Type> >
00109 interpolationScheme() const
00110 {
00111 return tinterpScheme_;
00112 }
00113
00114 tmp<GeometricField<Type, fvPatchField, surfaceMesh> > interpolate
00115 (
00116 const surfaceScalarField&,
00117 const GeometricField<Type, fvPatchField, volMesh>&
00118 ) const;
00119
00120 tmp<GeometricField<Type, fvPatchField, surfaceMesh> > flux
00121 (
00122 const surfaceScalarField&,
00123 const GeometricField<Type, fvPatchField, volMesh>&
00124 ) const;
00125
00126 tmp<fvMatrix<Type> > fvmDiv
00127 (
00128 const surfaceScalarField&,
00129 GeometricField<Type, fvPatchField, volMesh>&
00130 ) const;
00131
00132 tmp<GeometricField<Type, fvPatchField, volMesh> > fvcDiv
00133 (
00134 const surfaceScalarField&,
00135 const GeometricField<Type, fvPatchField, volMesh>&
00136 ) const;
00137 };
00138
00139
00140
00141
00142 }
00143
00144
00145
00146 }
00147
00148
00149
00150 #ifdef NoRepository
00151 # include "multivariateGaussConvectionScheme.C"
00152 #endif
00153
00154
00155
00156 #endif
00157
00158