symmetryPointPatchField<Type>::symmetryPointPatchField ( const pointPatch& p, const DimensionedField<Type, pointMesh>& iF, const dictionary& dict ) : basicSymmetryPointPatchField<Type>(p, iF, dict) { if (!isType<symmetryPointPatch>(p)) { FatalIOErrorIn ( "symmetryPointPatchField<Type>::symmetryPointPatchField\n" "(\n" " const pointPatch& p,\n" " const Field<Type>& field,\n" " const dictionary& dict\n" ")\n", dict ) << "patch " << this->patch().index() << " not symmetry type. " << "Patch type = " << p.type() << exit(FatalIOError); } }
Foam::cyclicAMIPointPatchField<Type>::cyclicAMIPointPatchField ( const pointPatch& p, const DimensionedField<Type, pointMesh>& iF, const dictionary& dict ) : coupledPointPatchField<Type>(p, iF, dict), cyclicAMIPatch_(refCast<const cyclicAMIPointPatch>(p)), ppiPtr_(NULL), nbrPpiPtr_(NULL) { if (!isType<cyclicAMIPointPatch>(p)) { FatalIOErrorIn ( "cyclicAMIPointPatchField<Type>::cyclicAMIPointPatchField\n" "(\n" " const pointPatch&,\n" " const DimensionedField<Type, pointMesh>&,\n" " const dictionary&\n" ")\n", dict ) << "patch " << this->patch().index() << " not cyclicAMI type. " << "Patch type = " << p.type() << exit(FatalIOError); } }
Foam::emptyPointPatchField<Type>::emptyPointPatchField ( const pointPatch& p, const DimensionedField<Type, pointMesh>& iF, const dictionary& dict ) : pointPatchField<Type>(p, iF, dict) { if (!isType<emptyPointPatch>(p)) { FatalIOErrorInFunction ( dict ) << "patch " << this->patch().index() << " not empty type. " << "Patch type = " << p.type() << exit(FatalIOError); } }
Foam::symmetryPlanePointPatchField<Type>::symmetryPlanePointPatchField ( const pointPatch& p, const DimensionedField<Type, pointMesh>& iF, const dictionary& dict ) : basicSymmetryPointPatchField<Type>(p, iF, dict), symmetryPlanePatch_(refCast<const symmetryPlanePointPatch>(p)) { if (!isType<symmetryPlanePointPatch>(p)) { FatalIOErrorInFunction ( dict ) << "patch " << this->patch().index() << " not symmetry type. " << "Patch type = " << p.type() << exit(FatalIOError); } }
Foam::autoPtr<Foam::pointPatchField<Type> > Foam::pointPatchField<Type>::New ( const word& patchFieldType, const word& actualPatchType, const pointPatch& p, const DimensionedField<Type, pointMesh>& iF ) { if (debug) { Info<< "PointPatchField<Type>::" "New(const word&, const word&" ", const pointPatch&, const Field<Type>&) : " "constructing pointPatchField<Type>" << endl; } typename pointPatchConstructorTable::iterator cstrIter = pointPatchConstructorTablePtr_->find(patchFieldType); if (cstrIter == pointPatchConstructorTablePtr_->end()) { FatalErrorIn ( "PointPatchField<Type>::New" "(const word&, const word&, const pointPatch&, const Field<Type>&)" ) << "Unknown patchFieldType type " << patchFieldType << nl << nl << "Valid patchField types are :" << endl << pointPatchConstructorTablePtr_->sortedToc() << exit(FatalError); } autoPtr<pointPatchField<Type> > pfPtr(cstrIter()(p, iF)); if ( actualPatchType == word::null || actualPatchType != p.type() ) { if (pfPtr().constraintType() != p.constraintType()) { // Use default constraint type typename pointPatchConstructorTable::iterator patchTypeCstrIter = pointPatchConstructorTablePtr_->find(p.type()); if (patchTypeCstrIter == pointPatchConstructorTablePtr_->end()) { FatalErrorIn ( "PointPatchField<Type>::New" "(const word&, const word&" ", const pointPatch&, const Field<Type>&)" ) << "inconsistent patch and patchField types for \n" << " patch type " << p.type() << " and patchField type " << patchFieldType << exit(FatalError); } return patchTypeCstrIter()(p, iF); } } return pfPtr; }
Foam::autoPtr<Foam::pointPatchField<Type> > Foam::pointPatchField<Type>::New ( const pointPatch& p, const DimensionedField<Type, pointMesh>& iF, const dictionary& dict ) { if (debug) { Info<< "PointPatchField<Type>::" "New(const pointPatch&, const Field<Type>&, const dictionary&)" " : constructing pointPatchField<Type>" << endl; } word patchFieldType(dict.lookup("type")); typename dictionaryConstructorTable::iterator cstrIter = dictionaryConstructorTablePtr_->find(patchFieldType); if (cstrIter == dictionaryConstructorTablePtr_->end()) { if (!disallowGenericPointPatchField) { cstrIter = dictionaryConstructorTablePtr_->find("generic"); } if (cstrIter == dictionaryConstructorTablePtr_->end()) { FatalIOErrorIn ( "PointPatchField<Type>::" "New(const pointPatch&, const Field<Type>&, const dictionary&)", dict ) << "Unknown patchField type " << patchFieldType << " for patch type " << p.type() << nl << nl << "Valid patchField types are :" << endl << dictionaryConstructorTablePtr_->sortedToc() << exit(FatalIOError); } } // Construct (but not necesarily returned) autoPtr<pointPatchField<Type> > pfPtr(cstrIter()(p, iF, dict)); if ( !dict.found("patchType") || word(dict.lookup("patchType")) != p.type() ) { if (pfPtr().constraintType() == p.constraintType()) { // Compatible (constraint-wise) with the patch type return pfPtr; } else { // Use default constraint type typename dictionaryConstructorTable::iterator patchTypeCstrIter = dictionaryConstructorTablePtr_->find(p.type()); if (patchTypeCstrIter == pointPatchConstructorTablePtr_->end()) { FatalIOErrorIn ( "PointPatchField<Type>const pointPatch&, " "const Field<Type>&, const dictionary&)", dict ) << "inconsistent patch and patchField types for \n" << " patch type " << p.type() << " and patchField type " << patchFieldType << exit(FatalIOError); } return patchTypeCstrIter()(p, iF, dict); } } return cstrIter()(p, iF, dict); }