34 const word& patchFieldType,
35 const word& actualPatchType,
37 const DimensionedField<Type, pointMesh>& iF
42 auto* ctorPtr = pointPatchConstructorTable(patchFieldType);
50 *pointPatchConstructorTablePtr_
54 autoPtr<pointPatchField<Type>> pfPtr(ctorPtr(
p, iF));
58 actualPatchType.empty()
59 || actualPatchType !=
p.type()
62 if (pfPtr().constraintType() !=
p.constraintType())
67 auto* patchTypeCtor = pointPatchConstructorTable(
p.type());
72 <<
"Inconsistent patch and patchField types for\n"
73 <<
" patch type " <<
p.type()
74 <<
" and patchField type " << patchFieldType
78 return patchTypeCtor(
p, iF);
83 if (pointPatchConstructorTablePtr_->found(
p.type()))
85 pfPtr().patchType() = actualPatchType;
96 const word& patchFieldType,
98 const DimensionedField<Type, pointMesh>& iF
101 return New(patchFieldType, word::null,
p, iF);
109 const DimensionedField<Type, pointMesh>& iF,
110 const dictionary&
dict
115 const word patchFieldType(
dict.get<word>(
"type"));
117 auto* ctorPtr = dictionaryConstructorTable(patchFieldType);
121 if (!disallowGenericPointPatchField)
123 ctorPtr = dictionaryConstructorTable(
"generic");
129 <<
"Unknown patchField type " << patchFieldType
130 <<
" for patch type " <<
p.type() <<
nl <<
nl
131 <<
"Valid patchField types :" <<
endl
132 << dictionaryConstructorTablePtr_->sortedToc()
138 autoPtr<pointPatchField<Type>> pfPtr(ctorPtr(
p, iF,
dict));
142 !
dict.found(
"patchType")
143 ||
dict.get<word>(
"patchType") !=
p.type()
146 if (pfPtr().constraintType() !=
p.constraintType())
151 auto* patchTypeCtor = dictionaryConstructorTable(
p.type());
156 <<
"Inconsistent patch and patchField types for\n"
157 <<
" patch type " <<
p.type()
158 <<
" and patchField type " << patchFieldType
162 return patchTypeCtor(
p, iF,
dict);
173 const pointPatchField<Type>& ptf,
175 const DimensionedField<Type, pointMesh>& iF,
176 const pointPatchFieldMapper& pfMapper
181 auto* ctorPtr = patchMapperConstructorTable(ptf.type());
189 *patchMapperConstructorTablePtr_
193 return ctorPtr(ptf,
p, iF, pfMapper);