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 BasicSymmetryTetPointPatchField_H
00036 #define BasicSymmetryTetPointPatchField_H
00037
00038 #include "ValueStoredTetPointPatchField.H"
00039
00040
00041
00042 namespace Foam
00043 {
00044
00045
00046
00047
00048
00049 template<template<class> class PatchField, class PointPatch, class Type>
00050 class BasicSymmetryTetPointPatchField
00051 :
00052 public ValueStoredTetPointPatchField<PatchField, PointPatch, Type>
00053 {
00054
00055
00056
00057 Type fixFlagMatrix(const vector&) const;
00058
00059
00060 public:
00061
00062
00063
00064
00065 BasicSymmetryTetPointPatchField
00066 (
00067 const PointPatch&,
00068 const Field<Type>&
00069 );
00070
00071
00072 BasicSymmetryTetPointPatchField
00073 (
00074 const PointPatch&,
00075 const Field<Type>&,
00076 const Field<Type>&
00077 );
00078
00079
00080 BasicSymmetryTetPointPatchField
00081 (
00082 const PointPatch&,
00083 const Field<Type>&,
00084 const dictionary&
00085 );
00086
00087
00088 BasicSymmetryTetPointPatchField
00089 (
00090 const BasicSymmetryTetPointPatchField<PatchField, PointPatch, Type>&,
00091 const PointPatch&,
00092 const Field<Type>&,
00093 const TetPointPatchFieldMapper&
00094 );
00095
00096
00097 virtual autoPtr<PatchField<Type> > clone() const
00098 {
00099 return autoPtr<PatchField<Type> >
00100 (
00101 new BasicSymmetryTetPointPatchField<PatchField, PointPatch, Type>
00102 (
00103 *this
00104 )
00105 );
00106 }
00107
00108
00109 BasicSymmetryTetPointPatchField
00110 (
00111 const BasicSymmetryTetPointPatchField<PatchField, PointPatch, Type>&,
00112 const Field<Type>&
00113 );
00114
00115
00116 virtual autoPtr<PatchField<Type> > clone(const Field<Type>& iF) const
00117 {
00118 return autoPtr<PatchField<Type> >
00119 (
00120 new BasicSymmetryTetPointPatchField<PatchField, PointPatch, Type>
00121 (
00122 *this,
00123 iF
00124 )
00125 );
00126 }
00127
00128
00129
00130
00131
00132 virtual void updateBoundaryField();
00133
00134
00135 virtual void setBoundaryCondition
00136 (
00137 Map<constraint<Type> > &
00138 ) const;
00139
00140
00141
00142 virtual void write(Ostream&) const;
00143 };
00144
00145
00146
00147
00148 }
00149
00150
00151
00152 #ifdef NoRepository
00153 # include "BasicSymmetryTetPointPatchField.C"
00154 #endif
00155
00156
00157
00158 #endif
00159
00160