Go to the documentation of this file.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 #ifndef processorPointPatchField_H
00036 #define processorPointPatchField_H
00037
00038 #include <OpenFOAM/coupledPointPatchField.H>
00039 #include <OpenFOAM/processorPointPatch.H>
00040
00041
00042
00043 namespace Foam
00044 {
00045
00046
00047
00048
00049
00050 template<class Type>
00051 class processorPointPatchField
00052 :
00053 public coupledPointPatchField<Type>
00054 {
00055
00056
00057
00058 const processorPointPatch& procPatch_;
00059
00060
00061 public:
00062
00063
00064 TypeName(processorPointPatch::typeName_());
00065
00066
00067
00068
00069
00070 processorPointPatchField
00071 (
00072 const pointPatch&,
00073 const DimensionedField<Type, pointMesh>&
00074 );
00075
00076
00077 processorPointPatchField
00078 (
00079 const pointPatch&,
00080 const DimensionedField<Type, pointMesh>&,
00081 const dictionary&
00082 );
00083
00084
00085 processorPointPatchField
00086 (
00087 const processorPointPatchField<Type>&,
00088 const pointPatch&,
00089 const DimensionedField<Type, pointMesh>&,
00090 const pointPatchFieldMapper&
00091 );
00092
00093
00094 virtual autoPtr<pointPatchField<Type> > clone() const
00095 {
00096 return autoPtr<pointPatchField<Type> >
00097 (
00098 new processorPointPatchField<Type>
00099 (
00100 *this
00101 )
00102 );
00103 }
00104
00105
00106 processorPointPatchField
00107 (
00108 const processorPointPatchField<Type>&,
00109 const DimensionedField<Type, pointMesh>&
00110 );
00111
00112
00113 virtual autoPtr<pointPatchField<Type> > clone
00114 (
00115 const DimensionedField<Type, pointMesh>& iF
00116 ) const
00117 {
00118 return autoPtr<pointPatchField<Type> >
00119 (
00120 new processorPointPatchField<Type>
00121 (
00122 *this,
00123 iF
00124 )
00125 );
00126 }
00127
00128
00129
00130
00131 ~processorPointPatchField();
00132
00133
00134
00135
00136
00137
00138
00139 virtual bool coupled() const
00140 {
00141 if (Pstream::parRun())
00142 {
00143 return true;
00144 }
00145 else
00146 {
00147 return false;
00148 }
00149 }
00150
00151
00152 virtual bool doTransform() const
00153 {
00154 return
00155 !(
00156 procPatch_.procPolyPatch().parallel()
00157 || pTraits<Type>::rank == 0
00158 );
00159 }
00160
00161
00162
00163
00164
00165 virtual void evaluate
00166 (
00167 const Pstream::commsTypes commsType=Pstream::blocking
00168 )
00169 {}
00170
00171
00172 virtual void initSwapAdd(Field<Type>&) const;
00173
00174
00175 virtual void swapAdd(Field<Type>&) const;
00176 };
00177
00178
00179
00180
00181 }
00182
00183
00184
00185 #ifdef NoRepository
00186 # include <OpenFOAM/processorPointPatchField.C>
00187 #endif
00188
00189
00190
00191 #endif
00192
00193