diff --git a/applications/utilities/parallelProcessing/decomposePar/readFields.C b/applications/utilities/parallelProcessing/decomposePar/readFields.C index 75c0d6c539..d8fa341279 100644 --- a/applications/utilities/parallelProcessing/decomposePar/readFields.C +++ b/applications/utilities/parallelProcessing/decomposePar/readFields.C @@ -36,10 +36,11 @@ void Foam::readFields const bool readOldTime ) { - typedef GeometricField GeoField; - - // Search list of objects for fields of type GeomField - IOobjectList fieldObjects(objects.lookupClass(GeoField::typeName)); + // Search list of objects for fields + IOobjectList fieldObjects(objects.lookupClass + ( + GeometricField::typeName) + ); // Remove the cellProc field IOobjectList::iterator cellProcIter = fieldObjects.find("cellProc"); @@ -59,7 +60,16 @@ void Foam::readFields { const IOobject& io = *fieldObjects[masterNames[i]]; - fields.set(i, new GeoField(io, mesh, readOldTime)); + fields.set + ( + i, + new GeometricField + ( + io, + mesh, + readOldTime + ) + ); } } diff --git a/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/createExternalCoupledPatchGeometryTemplates.C b/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/createExternalCoupledPatchGeometryTemplates.C index 853b5f0b2c..05e44a1b1a 100644 --- a/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/createExternalCoupledPatchGeometryTemplates.C +++ b/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/createExternalCoupledPatchGeometryTemplates.C @@ -43,16 +43,14 @@ void processField return; } - typedef GeometricField fieldType; - const word timeName(mesh.time().name()); - IOobjectList fieldObjbjects(objects.lookupClass(fieldType::typeName)); + IOobjectList fieldObjbjects(objects.lookupClass(VolField::typeName)); if (fieldObjbjects.lookup(fieldName) != nullptr) { - fieldType vtf(*fieldObjbjects.lookup(fieldName), mesh); - const typename fieldType::Boundary& bf = + VolField vtf(*fieldObjbjects.lookup(fieldName), mesh); + const typename VolField::Boundary& bf = vtf.boundaryField(); forAll(bf, patchi) diff --git a/applications/utilities/preProcessing/mapFields/MapConsistentVolFields.H b/applications/utilities/preProcessing/mapFields/MapConsistentVolFields.H index 35c1a417c5..f07b2e3afd 100644 --- a/applications/utilities/preProcessing/mapFields/MapConsistentVolFields.H +++ b/applications/utilities/preProcessing/mapFields/MapConsistentVolFields.H @@ -43,12 +43,10 @@ void MapConsistentVolFields const meshToMesh0::order& mapOrder ) { - typedef GeometricField fieldType; - const fvMesh& meshSource = meshToMesh0Interp.fromMesh(); const fvMesh& meshTarget = meshToMesh0Interp.toMesh(); - IOobjectList fields = objects.lookupClass(fieldType::typeName); + IOobjectList fields = objects.lookupClass(VolField::typeName); forAllIter(IOobjectList, fields, fieldIter) { @@ -56,9 +54,9 @@ void MapConsistentVolFields << endl; // Read field - fieldType fieldSource(*fieldIter(), meshSource); + VolField fieldSource(*fieldIter(), meshSource); - typeIOobject fieldTargetIOobject + typeIOobject> fieldTargetIOobject ( fieldIter()->name(), meshTarget.time().name(), @@ -70,7 +68,7 @@ void MapConsistentVolFields if (fieldTargetIOobject.headerOk()) { // Read fieldTarget - fieldType fieldTarget + VolField fieldTarget ( fieldTargetIOobject, meshTarget @@ -92,7 +90,7 @@ void MapConsistentVolFields fieldTargetIOobject.readOpt() = IOobject::NO_READ; // Interpolate field - fieldType fieldTarget + VolField fieldTarget ( fieldTargetIOobject, meshToMesh0Interp.interpolate diff --git a/applications/utilities/preProcessing/mapFields/MapVolFields.H b/applications/utilities/preProcessing/mapFields/MapVolFields.H index c59169a42c..985c928e83 100644 --- a/applications/utilities/preProcessing/mapFields/MapVolFields.H +++ b/applications/utilities/preProcessing/mapFields/MapVolFields.H @@ -43,16 +43,14 @@ void MapVolFields const meshToMesh0::order& mapOrder ) { - typedef GeometricField fieldType; - const fvMesh& meshSource = meshToMesh0Interp.fromMesh(); const fvMesh& meshTarget = meshToMesh0Interp.toMesh(); - IOobjectList fields = objects.lookupClass(fieldType::typeName); + IOobjectList fields = objects.lookupClass(VolField::typeName); forAllIter(IOobjectList, fields, fieldIter) { - typeIOobject fieldTargetIOobject + typeIOobject> fieldTargetIOobject ( fieldIter()->name(), meshTarget.time().name(), @@ -66,10 +64,10 @@ void MapVolFields Info<< " interpolating " << fieldIter()->name() << endl; // Read field fieldSource - fieldType fieldSource(*fieldIter(), meshSource); + VolField fieldSource(*fieldIter(), meshSource); // Read fieldTarget - fieldType fieldTarget + VolField fieldTarget ( fieldTargetIOobject, meshTarget diff --git a/applications/utilities/preProcessing/setFields/setFields.C b/applications/utilities/preProcessing/setFields/setFields.C index 2de00db9c6..7168a3dc39 100644 --- a/applications/utilities/preProcessing/setFields/setFields.C +++ b/applications/utilities/preProcessing/setFields/setFields.C @@ -50,9 +50,7 @@ bool setCellFieldType Istream& fieldValueStream ) { - typedef GeometricField fieldType; - - if (fieldTypeDesc != fieldType::typeName + "Value") + if (fieldTypeDesc != VolField::typeName + "Value") { return false; } @@ -60,7 +58,7 @@ bool setCellFieldType word fieldName(fieldValueStream); // Check the current time directory - typeIOobject fieldHeader + typeIOobject> fieldHeader ( fieldName, mesh.time().name(), @@ -71,7 +69,7 @@ bool setCellFieldType // Check the "constant" directory if (!fieldHeader.headerOk()) { - fieldHeader = typeIOobject + fieldHeader = typeIOobject> ( fieldName, mesh.time().constant(), @@ -87,7 +85,7 @@ bool setCellFieldType << fieldHeader.headerClassName() << " " << fieldName << endl; - fieldType field(fieldHeader, mesh); + VolField field(fieldHeader, mesh); const Type value = pTraits(fieldValueStream); @@ -196,9 +194,7 @@ bool setFaceFieldType Istream& fieldValueStream ) { - typedef GeometricField fieldType; - - if (fieldTypeDesc != fieldType::typeName + "Value") + if (fieldTypeDesc != VolField::typeName + "Value") { return false; } @@ -206,7 +202,7 @@ bool setFaceFieldType word fieldName(fieldValueStream); // Check the current time directory - typeIOobject fieldHeader + typeIOobject> fieldHeader ( fieldName, mesh.time().name(), @@ -217,7 +213,7 @@ bool setFaceFieldType // Check the "constant" directory if (!fieldHeader.headerOk()) { - fieldHeader = typeIOobject + fieldHeader = typeIOobject> ( fieldName, mesh.time().constant(), @@ -234,8 +230,8 @@ bool setFaceFieldType << " " << fieldName << endl; // Read the field - fieldType field(fieldHeader, mesh); - typename fieldType::Boundary& fieldBf = field.boundaryFieldRef(); + VolField field(fieldHeader, mesh); + typename VolField::Boundary& fieldBf = field.boundaryFieldRef(); // Read the value const Type value = pTraits(fieldValueStream); @@ -252,9 +248,9 @@ bool setFaceFieldType } // Create a copy of the boundary field - typename fieldType::Boundary fieldBfCopy + typename VolField::Boundary fieldBfCopy ( - fieldType::Internal::null(), + VolField::Internal::null(), fieldBf ); diff --git a/src/dynamicMesh/fvMeshAdder/fvMeshAdderTemplates.C b/src/dynamicMesh/fvMeshAdder/fvMeshAdderTemplates.C index ad154342c1..ff3ccdda30 100644 --- a/src/dynamicMesh/fvMeshAdder/fvMeshAdderTemplates.C +++ b/src/dynamicMesh/fvMeshAdder/fvMeshAdderTemplates.C @@ -553,31 +553,29 @@ void Foam::fvMeshAdder::MapSurfaceFields const fvMesh& meshToAdd ) { - typedef GeometricField fldType; - - HashTable fields + HashTable*> fields ( - mesh.objectRegistry::lookupClass() + mesh.objectRegistry::lookupClass>() ); - HashTable fieldsToAdd + HashTable*> fieldsToAdd ( - meshToAdd.objectRegistry::lookupClass() + meshToAdd.objectRegistry::lookupClass>() ); for ( - typename HashTable:: + typename HashTable*>:: iterator fieldIter = fields.begin(); fieldIter != fields.end(); ++fieldIter ) { - fldType& fld = const_cast(*fieldIter()); + SurfaceField& fld = const_cast&>(*fieldIter()); if (fieldsToAdd.found(fld.name())) { - const fldType& fldToAdd = *fieldsToAdd[fld.name()]; + const SurfaceField& fldToAdd = *fieldsToAdd[fld.name()]; if (debug) { @@ -856,24 +854,25 @@ void Foam::fvMeshAdder::MapPointFields const objectRegistry& meshToAdd ) { - typedef GeometricField fldType; + HashTable*> + fields(mesh.thisDb().lookupClass>()); - HashTable fields(mesh.thisDb().lookupClass()); - HashTable fieldsToAdd(meshToAdd.lookupClass()); + HashTable*> + fieldsToAdd(meshToAdd.lookupClass>()); for ( - typename HashTable:: + typename HashTable*>:: iterator fieldIter = fields.begin(); fieldIter != fields.end(); ++fieldIter ) { - fldType& fld = const_cast(*fieldIter()); + PointField& fld = const_cast&>(*fieldIter()); if (fieldsToAdd.found(fld.name())) { - const fldType& fldToAdd = *fieldsToAdd[fld.name()]; + const PointField& fldToAdd = *fieldsToAdd[fld.name()]; if (debug) { @@ -923,33 +922,32 @@ void Foam::fvMeshAdder::MapDimFields const fvMesh& meshToAdd ) { - typedef DimensionedField fldType; - // Note: use strict flag on lookupClass to avoid picking up // volFields - HashTable fields + HashTable*> fields ( - mesh.objectRegistry::lookupClass(true) + mesh.objectRegistry::lookupClass>(true) ); - HashTable fieldsToAdd + HashTable*> fieldsToAdd ( - meshToAdd.objectRegistry::lookupClass(true) + meshToAdd.objectRegistry::lookupClass>(true) ); for ( - typename HashTable:: + typename HashTable*>:: iterator fieldIter = fields.begin(); fieldIter != fields.end(); ++fieldIter ) { - fldType& fld = const_cast(*fieldIter()); + VolInternalField& fld = + const_cast&>(*fieldIter()); if (fieldsToAdd.found(fld.name())) { - const fldType& fldToAdd = *fieldsToAdd[fld.name()]; + const VolInternalField& fldToAdd = *fieldsToAdd[fld.name()]; if (debug) { diff --git a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.H b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.H index fb8e46ae34..799d0b54d6 100644 --- a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.H +++ b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.H @@ -113,30 +113,30 @@ class fvMeshDistribute label findNonEmptyPatch() const; //- Save boundary fields - template + template void saveBoundaryFields ( - PtrList>& bflds + PtrList>& bflds ) const; //- Map boundary fields - template + template void mapBoundaryFields ( const polyTopoChangeMap& map, - const PtrList>& oldBflds + const PtrList>& oldBflds ); //- Set value of exposed patch faces - template - void initMapExposedFaces(PtrList>& iflds) const; + template + void initMapExposedFaces(PtrList>& iflds) const; //- Set value of exposed patch faces - template + template void mapExposedFaces ( const polyTopoChangeMap& map, - const PtrList>& oldFlds + const PtrList>& oldFlds ); //- Correct coupled patch fields diff --git a/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C b/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C index 81b6befe42..aaf298a452 100644 --- a/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C +++ b/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C @@ -55,28 +55,27 @@ void Foam::fvMeshDistribute::printFieldInfo(const fvMesh& mesh) } -template +template void Foam::fvMeshDistribute::saveBoundaryFields ( - PtrList>& bflds + PtrList>& bflds ) const { // Save whole boundary field - typedef GeometricField fldType; - - HashTable flds + HashTable*> flds ( - static_cast(mesh_).objectRegistry::lookupClass() + static_cast(mesh_) + .objectRegistry::lookupClass>() ); bflds.setSize(flds.size()); label i = 0; - forAllConstIter(typename HashTable, flds, iter) + forAllConstIter(typename HashTable*>, flds, iter) { - const fldType& fld = *iter(); + const SurfaceField& fld = *iter(); bflds.set(i, fld.boundaryField().clone().ptr()); @@ -85,11 +84,11 @@ void Foam::fvMeshDistribute::saveBoundaryFields } -template +template void Foam::fvMeshDistribute::mapBoundaryFields ( const polyTopoChangeMap& map, - const PtrList>& oldBflds + const PtrList>& oldBflds ) { // Map boundary field @@ -97,11 +96,9 @@ void Foam::fvMeshDistribute::mapBoundaryFields const labelList& oldPatchStarts = map.oldPatchStarts(); const labelList& faceMap = map.faceMap(); - typedef GeometricField fldType; - - HashTable flds + HashTable*> flds ( - mesh_.objectRegistry::lookupClass() + mesh_.objectRegistry::lookupClass>() ); if (flds.size() != oldBflds.size()) @@ -112,19 +109,19 @@ void Foam::fvMeshDistribute::mapBoundaryFields label fieldi = 0; - forAllIter(typename HashTable, flds, iter) + forAllIter(typename HashTable*>, flds, iter) { - fldType& fld = *iter(); - typename fldType::Boundary& bfld = + SurfaceField& fld = *iter(); + typename SurfaceField::Boundary& bfld = fld.boundaryFieldRef(); - const FieldField& oldBfld = oldBflds[fieldi++]; + const FieldField& oldBfld = oldBflds[fieldi++]; // Pull from old boundary field into bfld. forAll(bfld, patchi) { - fvsPatchField& patchFld = bfld[patchi]; + fvsPatchField& patchFld = bfld[patchi]; label facei = patchFld.patch().start(); forAll(patchFld, i) @@ -147,35 +144,35 @@ void Foam::fvMeshDistribute::mapBoundaryFields } -template +template void Foam::fvMeshDistribute::initMapExposedFaces ( - PtrList>& iflds + PtrList>& iflds ) const { - HashTable*> flds + HashTable*> flds ( - static_cast(mesh_).lookupClass>() + static_cast(mesh_).lookupClass>() ); iflds.setSize(flds.size()); label fieldi = 0; - forAllConstIter(typename HashTable*>, flds, iter) + forAllConstIter(typename HashTable*>, flds, iter) { - iflds.set(fieldi, Field(mesh_.nFaces())); + iflds.set(fieldi, Field(mesh_.nFaces())); - const SurfaceField& fld = *iter(); + const SurfaceField& fld = *iter(); - SubList(iflds[fieldi], fld.primitiveField().size()) = + SubList(iflds[fieldi], fld.primitiveField().size()) = fld.primitiveField(); forAll(fld.boundaryField(), patchi) { - const fvsPatchField& pfld = fld.boundaryField()[patchi]; + const fvsPatchField& pfld = fld.boundaryField()[patchi]; - SubList(iflds[fieldi], pfld.size(), pfld.patch().start()) = + SubList(iflds[fieldi], pfld.size(), pfld.patch().start()) = pfld; } @@ -184,31 +181,31 @@ void Foam::fvMeshDistribute::initMapExposedFaces } -template +template void Foam::fvMeshDistribute::mapExposedFaces ( const polyTopoChangeMap& map, - const PtrList>& oldFlds + const PtrList>& oldFlds ) { - HashTable*> flds + HashTable*> flds ( - mesh_.objectRegistry::lookupClass>() + mesh_.objectRegistry::lookupClass>() ); label fieldi = 0; - forAllIter(typename HashTable*>, flds, iter) + forAllIter(typename HashTable*>, flds, iter) { - SurfaceField& fld = *iter(); + SurfaceField& fld = *iter(); - const Field& oldFld = oldFlds[fieldi]; + const Field& oldFld = oldFlds[fieldi]; const bool negateIfFlipped = isFlux(fld); forAll(fld.boundaryField(), patchi) { - fvsPatchField& patchFld = fld.boundaryFieldRef()[patchi]; + fvsPatchField& patchFld = fld.boundaryFieldRef()[patchi]; forAll(patchFld, i) { diff --git a/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C b/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C index daa323df11..b15a4f8e0c 100644 --- a/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C +++ b/src/dynamicMesh/motionSmoother/motionSmootherAlgoTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -38,8 +38,6 @@ void Foam::motionSmootherAlgo::checkConstraints GeometricField& pf ) { - typedef GeometricField FldType; - const polyMesh& mesh = pf.mesh(); const polyBoundaryMesh& bm = mesh.boundaryMesh(); @@ -57,7 +55,7 @@ void Foam::motionSmootherAlgo::checkConstraints } - typename FldType::Boundary& bFld = pf.boundaryField(); + typename PointField::Boundary& bFld = pf.boundaryField(); // Evaluate in reverse order diff --git a/src/finiteVolume/cfdTools/general/solutionControl/convergenceControl/convergenceControl/convergenceControlTemplates.C b/src/finiteVolume/cfdTools/general/solutionControl/convergenceControl/convergenceControl/convergenceControlTemplates.C index e15b0af837..36d436835c 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/convergenceControl/convergenceControl/convergenceControlTemplates.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/convergenceControl/convergenceControl/convergenceControlTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2018-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -72,9 +72,7 @@ void Foam::convergenceControl::getInitialTypeResiduals scalar& r ) { - typedef GeometricField fieldType; - - if (mesh.foundObject(fieldName)) + if (mesh.foundObject>(fieldName)) { const DynamicList>& sp ( diff --git a/src/finiteVolume/cfdTools/general/solutionControl/convergenceControl/correctorConvergenceControl/correctorConvergenceControlTemplates.C b/src/finiteVolume/cfdTools/general/solutionControl/convergenceControl/correctorConvergenceControl/correctorConvergenceControlTemplates.C index cadd6f0127..c743a639f3 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/convergenceControl/correctorConvergenceControl/correctorConvergenceControlTemplates.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/convergenceControl/correctorConvergenceControl/correctorConvergenceControlTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2018-2019 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2018-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -35,9 +35,7 @@ void Foam::correctorConvergenceControl::getNTypeSolves label& n ) { - typedef GeometricField fieldType; - - if (mesh.foundObject(fieldName)) + if (mesh.foundObject>(fieldName)) { const DynamicList>& sp ( diff --git a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/singleRegionSolutionControl/singleRegionSolutionControlTemplates.C b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/singleRegionSolutionControl/singleRegionSolutionControlTemplates.C index 320e98fd05..898a81cb5a 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/singleRegionSolutionControl/singleRegionSolutionControlTemplates.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/singleRegionSolutionControl/singleRegionSolutionControlTemplates.C @@ -28,14 +28,12 @@ License template void Foam::singleRegionSolutionControl::storePrevIterTypeFields() const { - typedef GeometricField fieldType; + HashTable*> + flds(mesh_.objectRegistry::lookupClass>()); - HashTable - flds(mesh_.objectRegistry::lookupClass()); - - forAllIter(typename HashTable, flds, iter) + forAllIter(typename HashTable*>, flds, iter) { - fieldType& fld = *iter(); + VolField& fld = *iter(); const word& fName = fld.name(); diff --git a/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.C index ffe962bdae..9d5ea60822 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/externalCoupledMixed/externalCoupledMixedFvPatchField.C @@ -64,12 +64,12 @@ void Foam::externalCoupledMixedFvPatchField::setMaster const labelList& patchIDs ) { - const volFieldType& cvf = - static_cast(this->internalField()); + const VolField& cvf = + static_cast&>(this->internalField()); - volFieldType& vf = const_cast(cvf); + VolField& vf = const_cast&>(cvf); - typename volFieldType::Boundary& bf = vf.boundaryFieldRef(); + typename VolField::Boundary& bf = vf.boundaryFieldRef(); // number of patches can be different in parallel... label nPatch = bf.size(); @@ -87,7 +87,8 @@ void Foam::externalCoupledMixedFvPatchField::setMaster { label patchi = patchIDs[i]; - patchType& pf = refCast(bf[patchi]); + externalCoupledMixedFvPatchField& pf = + refCast>(bf[patchi]); offsets_[patchi][Pstream::myProcNo()] = pf.size(); @@ -242,17 +243,18 @@ void Foam::externalCoupledMixedFvPatchField::startWait() const { // only wait on master patch - const volFieldType& cvf = - static_cast(this->internalField()); + const VolField& cvf = + static_cast&>(this->internalField()); - const typename volFieldType::Boundary& bf = + const typename VolField::Boundary& bf = cvf.boundaryField(); forAll(coupledPatchIDs_, i) { label patchi = coupledPatchIDs_[i]; - const patchType& pf = refCast(bf[patchi]); + const externalCoupledMixedFvPatchField& pf = + refCast>(bf[patchi]); if (pf.master()) { @@ -406,17 +408,18 @@ void Foam::externalCoupledMixedFvPatchField::writeData writeHeader(os); - const volFieldType& cvf = - static_cast(this->internalField()); + const VolField& cvf = + static_cast&>(this->internalField()); - const typename volFieldType::Boundary& bf = + const typename VolField::Boundary& bf = cvf.boundaryField(); forAll(coupledPatchIDs_, i) { label patchi = coupledPatchIDs_[i]; - const patchType& pf = refCast(bf[patchi]); + const externalCoupledMixedFvPatchField& pf = + refCast>(bf[patchi]); pf.transferData(os); } @@ -586,19 +589,19 @@ void Foam::externalCoupledMixedFvPatchField::initialise return; } - const volFieldType& cvf = - static_cast(this->internalField()); + const VolField& cvf = + static_cast&>(this->internalField()); - volFieldType& vf = const_cast(cvf); + VolField& vf = const_cast&>(cvf); - typename volFieldType::Boundary& bf = vf.boundaryFieldRef(); + typename VolField::Boundary& bf = vf.boundaryFieldRef(); // identify all coupled patches DynamicList