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 cyclicPointPatchField_H
00036 #define cyclicPointPatchField_H
00037
00038 #include <OpenFOAM/coupledPointPatchField.H>
00039 #include <OpenFOAM/cyclicPointPatch.H>
00040
00041
00042
00043 namespace Foam
00044 {
00045
00046
00047
00048
00049
00050 template<class Type>
00051 class cyclicPointPatchField
00052 :
00053 public coupledPointPatchField<Type>
00054 {
00055
00056
00057
00058 const cyclicPointPatch& cyclicPatch_;
00059
00060
00061 public:
00062
00063
00064 TypeName(cyclicPointPatch::typeName_());
00065
00066
00067
00068
00069
00070 cyclicPointPatchField
00071 (
00072 const pointPatch&,
00073 const DimensionedField<Type, pointMesh>&
00074 );
00075
00076
00077 cyclicPointPatchField
00078 (
00079 const pointPatch&,
00080 const DimensionedField<Type, pointMesh>&,
00081 const dictionary&
00082 );
00083
00084
00085 cyclicPointPatchField
00086 (
00087 const cyclicPointPatchField<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 cyclicPointPatchField<Type>
00099 (
00100 *this
00101 )
00102 );
00103 }
00104
00105
00106 cyclicPointPatchField
00107 (
00108 const cyclicPointPatchField<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 cyclicPointPatchField<Type>
00121 (
00122 *this, iF
00123 )
00124 );
00125 }
00126
00127
00128
00129
00130
00131
00132
00133 virtual bool doTransform() const
00134 {
00135 return !(cyclicPatch_.parallel() || pTraits<Type>::rank == 0);
00136 }
00137
00138
00139 virtual const tensorField& forwardT() const
00140 {
00141 return cyclicPatch_.forwardT();
00142 }
00143
00144
00145 virtual const tensorField& reverseT() const
00146 {
00147 return cyclicPatch_.reverseT();
00148 }
00149
00150
00151
00152
00153
00154 virtual void evaluate
00155 (
00156 const Pstream::commsTypes commsType=Pstream::blocking
00157 )
00158 {}
00159
00160
00161 virtual void swapAdd(Field<Type>&) const;
00162 };
00163
00164
00165
00166
00167 }
00168
00169
00170
00171 #ifdef NoRepository
00172 # include <OpenFOAM/cyclicPointPatchField.C>
00173 #endif
00174
00175
00176
00177 #endif
00178
00179