Foam::tmp<Foam::fvsPatchField<Type>> Foam::fvsPatchField<Type>::New ( const fvsPatchField<Type>& ptf, const fvPatch& p, const DimensionedField<Type, surfaceMesh>& iF, const fvPatchFieldMapper& pfMapper ) { if (debug) { InfoInFunction << "Constructing fvsPatchField<Type>" << endl; } auto cstrIter = patchMapperConstructorTablePtr_->cfind(ptf.type()); if (!cstrIter.found()) { FatalErrorInFunction << "Unknown patchField type " << ptf.type() << nl << nl << "Valid patchField types :" << endl << patchMapperConstructorTablePtr_->sortedToc() << exit(FatalError); } auto patchTypeCstrIter = patchMapperConstructorTablePtr_->cfind(p.type()); if (patchTypeCstrIter.found()) { return patchTypeCstrIter()(ptf, p, iF, pfMapper); } else { return cstrIter()(ptf, p, iF, pfMapper); } }
tmp<fvsPatchField<Type> > fvsPatchField<Type>::New ( const fvsPatchField<Type>& ptf, const fvPatch& p, const DimensionedField<Type, surfaceMesh>& iF, const fvPatchFieldMapper& pfMapper ) { if (debug) { Info<< "fvsPatchField<Type>::New(const fvsPatchField<Type>&," " const fvPatch&, const DimensionedField<Type, surfaceMesh>&, " "const fvPatchFieldMapper&) : " "constructing fvsPatchField<Type>" << endl; } typename patchMapperConstructorTable::iterator cstrIter = patchMapperConstructorTablePtr_->find(ptf.type()); if (cstrIter == patchMapperConstructorTablePtr_->end()) { FatalErrorIn ( "fvsPatchField<Type>::New(const fvsPatchField<Type>&, " "const fvPatch&, const Field<Type>&, " "const fvPatchFieldMapper&)" ) << "unknown patch field type " << ptf.type() << endl << endl << "Valid patchField types are :" << endl << patchMapperConstructorTablePtr_->toc() << exit(FatalError); } typename patchMapperConstructorTable::iterator patchTypeCstrIter = patchMapperConstructorTablePtr_->find(p.type()); if (patchTypeCstrIter != patchMapperConstructorTablePtr_->end()) { return patchTypeCstrIter()(ptf, p, iF, pfMapper); } else { return cstrIter()(ptf, p, iF, pfMapper); } }