diff --git a/applications/solvers/multiphase/reactingMultiphaseEulerFoam/pUf/pEqn.H b/applications/solvers/multiphase/reactingMultiphaseEulerFoam/pUf/pEqn.H index 08d97031b044fd0379c63b333fde4638e4cdc742..b66aabffce6e986fb1db584af0f7772c02eea69b 100644 --- a/applications/solvers/multiphase/reactingMultiphaseEulerFoam/pUf/pEqn.H +++ b/applications/solvers/multiphase/reactingMultiphaseEulerFoam/pUf/pEqn.H @@ -272,10 +272,7 @@ while (pimple.correct()) ).ptr() ); - deleteDemandDrivenData - ( - pEqnComps[phasei].faceFluxCorrectionPtr() - ); + pEqnComps[phasei].faceFluxCorrectionPtr(nullptr); pEqnComps[phasei].relax(); } diff --git a/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C b/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C index 4197ef6bac7a9e4016864aff75056dbb16e86cd2..bc97ae9c80fc93d1648b60de9cb1678353fa289a 100644 --- a/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C +++ b/src/dynamicFaMesh/interfaceTrackingFvMesh/interfaceTrackingFvMesh.C @@ -50,6 +50,7 @@ License #include "demandDrivenData.H" #include "unitConversion.H" #include "foamVtkIndPatchWriter.H" +#include "calculatedFaPatchFields.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // diff --git a/src/finiteArea/areaMesh/areaFaMesh.H b/src/finiteArea/areaMesh/areaFaMesh.H index 0a9cea06d47bde1031737bfa8f732dce1a2e4bb1..039a574c7c19c12149811904c585eb096592d8da 100644 --- a/src/finiteArea/areaMesh/areaFaMesh.H +++ b/src/finiteArea/areaMesh/areaFaMesh.H @@ -69,22 +69,13 @@ public: // Member Functions //- Return size. Number of faces - static label size(const Mesh& mesh) - { - return mesh.nFaces(); - } + static label size(const Mesh& mesh) { return mesh.nFaces(); } //- Return size. Number of faces - label size() const - { - return size(mesh_); - } + label size() const { return size(mesh_); } //- Field of face centres - const areaVectorField& C() const - { - return mesh_.areaCentres(); - } + const areaVectorField& C() const { return mesh_.areaCentres(); } }; diff --git a/src/finiteArea/distributed/faMeshDistributor.C b/src/finiteArea/distributed/faMeshDistributor.C index 9ee084fd949ff362c0a064a5008a2d12b85f8842..a3b8841d1ec23ddae772126fe6454925aaa45c07 100644 --- a/src/finiteArea/distributed/faMeshDistributor.C +++ b/src/finiteArea/distributed/faMeshDistributor.C @@ -84,10 +84,10 @@ void Foam::faMeshDistributor::createInternalEdgeMap() const const auto& faEdgeMap = distMap_.faceMap(); // Copy full map - internalEdgeMap_.reset(new mapDistributeBase(faEdgeMap)); + internalEdgeMapPtr_ = std::make_unique<mapDistributeBase>(faEdgeMap); // Retain internal edges - internalEdgeMap_->compactRemoteData + internalEdgeMapPtr_->compactRemoteData ( bitSet(tgtMesh_.nInternalEdges(), true), UPstream::msgType(), @@ -200,8 +200,6 @@ Foam::faMeshDistributor::faMeshDistributor srcMesh_(srcMesh), tgtMesh_(tgtMesh), distMap_(distMap), - internalEdgeMap_(), - patchEdgeMaps_(), dummyHandler_(fileOperation::null()), writeHandler_(dummyHandler_), isWriteProc_(isWriteProc) @@ -221,8 +219,6 @@ Foam::faMeshDistributor::faMeshDistributor srcMesh_(srcMesh), tgtMesh_(tgtMesh), distMap_(distMap), - internalEdgeMap_(), - patchEdgeMaps_(), dummyHandler_(nullptr), writeHandler_(writeHandler), isWriteProc_(Switch::INVALID) diff --git a/src/finiteArea/distributed/faMeshDistributor.H b/src/finiteArea/distributed/faMeshDistributor.H index 52f2c4d82594c2f1710536bcab7d8749c6917f8f..632d617308341332c408538fb9ccd1a4628c4945 100644 --- a/src/finiteArea/distributed/faMeshDistributor.H +++ b/src/finiteArea/distributed/faMeshDistributor.H @@ -73,7 +73,7 @@ class faMeshDistributor const mapDistributePolyMesh& distMap_; //- Internal edge mapper - mutable std::unique_ptr<mapDistributeBase> internalEdgeMap_; + mutable std::unique_ptr<mapDistributeBase> internalEdgeMapPtr_; //- Patch edge mappers mutable PtrList<mapDistributeBase> patchEdgeMaps_; @@ -99,6 +99,7 @@ class faMeshDistributor //- Debug: check addressing void checkAddressing() const; + //- Construct reconstruct mapping static mapDistributePolyMesh createReconstructMap ( const faMesh& mesh, diff --git a/src/finiteArea/distributed/faMeshDistributorTemplates.C b/src/finiteArea/distributed/faMeshDistributorTemplates.C index 9215cc3b2bf31b15a99dd9d22f93c5b8d11d72f5..8df66fe2ab8c12429457ed67d457bbfee5e4df26 100644 --- a/src/finiteArea/distributed/faMeshDistributorTemplates.C +++ b/src/finiteArea/distributed/faMeshDistributorTemplates.C @@ -154,7 +154,7 @@ Foam::faMeshDistributor::distributeField const GeometricField<Type, faePatchField, edgeMesh>& fld ) const { - if (!internalEdgeMap_) + if (!internalEdgeMapPtr_) { createInternalEdgeMap(); } @@ -165,7 +165,7 @@ Foam::faMeshDistributor::distributeField const distributedFieldMapper mapper ( labelUList::null(), - *(internalEdgeMap_) + *(internalEdgeMapPtr_) ); DimensionedField<Type, edgeMesh> internalField diff --git a/src/finiteArea/edgeMesh/edgeFaMesh.H b/src/finiteArea/edgeMesh/edgeFaMesh.H index e726f628810aa8c60b82f12d6f8b02f213817364..214af6a9c746464fa1871fd799297e6cc76260b2 100644 --- a/src/finiteArea/edgeMesh/edgeFaMesh.H +++ b/src/finiteArea/edgeMesh/edgeFaMesh.H @@ -65,25 +65,17 @@ public: GeoMesh<faMesh>(mesh) {} + // Member Functions //- Return size. Number of internal edges - static label size(const Mesh& mesh) - { - return mesh.nInternalEdges(); - } + static label size(const Mesh& mesh) { return mesh.nInternalEdges(); } //- Return size. Number of internal edges - label size() const - { - return size(mesh_); - } + label size() const { return size(mesh_); } //- Field of edge centres - const edgeVectorField& C() const - { - return mesh_.edgeCentres(); - } + const edgeVectorField& C() const { return mesh_.edgeCentres(); } }; diff --git a/src/finiteArea/faMatrices/faMatrix/faMatrix.C b/src/finiteArea/faMatrices/faMatrix/faMatrix.C index 4d06db262d2ac0c95e62f3bd331936cfda249774..ac90e7101280522ca012ac3d104faa5784bc8f17 100644 --- a/src/finiteArea/faMatrices/faMatrix/faMatrix.C +++ b/src/finiteArea/faMatrices/faMatrix/faMatrix.C @@ -28,12 +28,9 @@ License #include "areaFields.H" #include "edgeFields.H" -#include "calculatedFaPatchFields.H" #include "extrapolatedCalculatedFaPatchFields.H" -#include "zeroGradientFaPatchFields.H" #include "IndirectList.H" #include "UniformList.H" -#include "demandDrivenData.H" // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -50,7 +47,7 @@ void Foam::faMatrix<Type>::addToInternalField { FatalErrorInFunction << "addressing (" << addr.size() - << ") and field (" << pf.size() << ") are different sizes" << endl + << ") and field (" << pf.size() << ") are different sizes" << abort(FatalError); } @@ -88,7 +85,7 @@ void Foam::faMatrix<Type>::subtractFromInternalField { FatalErrorInFunction << "addressing (" << addr.size() - << ") and field (" << pf.size() << ") are different sizes" << endl + << ") and field (" << pf.size() << ") are different sizes" << abort(FatalError); } @@ -193,8 +190,7 @@ Foam::faMatrix<Type>::faMatrix dimensions_(ds), source_(psi.size(), Zero), internalCoeffs_(psi.mesh().boundary().size()), - boundaryCoeffs_(psi.mesh().boundary().size()), - faceFluxCorrectionPtr_(nullptr) + boundaryCoeffs_(psi.mesh().boundary().size()) { DebugInFunction << "constructing faMatrix<Type> for field " << psi_.name() @@ -234,19 +230,17 @@ Foam::faMatrix<Type>::faMatrix(const faMatrix<Type>& fam) dimensions_(fam.dimensions_), source_(fam.source_), internalCoeffs_(fam.internalCoeffs_), - boundaryCoeffs_(fam.boundaryCoeffs_), - faceFluxCorrectionPtr_(nullptr) + boundaryCoeffs_(fam.boundaryCoeffs_) { DebugInFunction << "Copying faMatrix<Type> for field " << psi_.name() << endl; if (fam.faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = - new GeometricField<Type, faePatchField, edgeMesh> - ( - *(fam.faceFluxCorrectionPtr_) - ); + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> + ( + *(fam.faceFluxCorrectionPtr_) + ); } } @@ -259,8 +253,7 @@ Foam::faMatrix<Type>::faMatrix(const tmp<faMatrix<Type>>& tmat) dimensions_(tmat().dimensions_), source_(tmat.constCast().source_, tmat.movable()), internalCoeffs_(tmat.constCast().internalCoeffs_, tmat.movable()), - boundaryCoeffs_(tmat.constCast().boundaryCoeffs_, tmat.movable()), - faceFluxCorrectionPtr_(nullptr) + boundaryCoeffs_(tmat.constCast().boundaryCoeffs_, tmat.movable()) { DebugInFunction << "Copy/Move faMatrix<Type> for field " << psi_.name() << endl; @@ -269,16 +262,15 @@ Foam::faMatrix<Type>::faMatrix(const tmp<faMatrix<Type>>& tmat) { if (tmat.movable()) { - faceFluxCorrectionPtr_ = tmat().faceFluxCorrectionPtr_; - tmat().faceFluxCorrectionPtr_ = nullptr; + faceFluxCorrectionPtr_ = + std::move(tmat.constCast().faceFluxCorrectionPtr_); } - else + else if (tmat().faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = - new GeometricField<Type, faePatchField, edgeMesh> - ( - *(tmat().faceFluxCorrectionPtr_) - ); + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> + ( + *(tmat().faceFluxCorrectionPtr_) + ); } } @@ -293,8 +285,6 @@ Foam::faMatrix<Type>::~faMatrix() { DebugInFunction << "Destroying faMatrix<Type> for field " << psi_.name() << endl; - - deleteDemandDrivenData(faceFluxCorrectionPtr_); } @@ -791,9 +781,10 @@ void Foam::faMatrix<Type>::operator=(const faMatrix<Type>& famv) } else if (famv.faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = - new GeometricField<Type, faePatchField, edgeMesh> - (*famv.faceFluxCorrectionPtr_); + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> + ( + *famv.faceFluxCorrectionPtr_ + ); } } @@ -838,8 +829,7 @@ void Foam::faMatrix<Type>::operator+=(const faMatrix<Type>& famv) } else if (famv.faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = new - GeometricField<Type, faePatchField, edgeMesh> + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> ( *famv.faceFluxCorrectionPtr_ ); @@ -872,9 +862,10 @@ void Foam::faMatrix<Type>::operator-=(const faMatrix<Type>& famv) } else if (famv.faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = - new GeometricField<Type, faePatchField, edgeMesh> - (-*famv.faceFluxCorrectionPtr_); + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> + ( + -*famv.faceFluxCorrectionPtr_ + ); } } diff --git a/src/finiteArea/faMatrices/faMatrix/faMatrix.H b/src/finiteArea/faMatrices/faMatrix/faMatrix.H index 47b19d76048d6b0e454716c00176f390d5794413..0b4681537c04c95e2a455c36f334c360bb16a2bd 100644 --- a/src/finiteArea/faMatrices/faMatrix/faMatrix.H +++ b/src/finiteArea/faMatrices/faMatrix/faMatrix.H @@ -46,10 +46,6 @@ Author #include "areaFields.H" #include "edgeFields.H" #include "lduMatrix.H" -#include "tmp.H" -#include "autoPtr.H" -#include "dimensionedTypes.H" -#include "className.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -155,7 +151,7 @@ private: FieldField<Field, Type> boundaryCoeffs_; //- Face flux field for non-orthogonal correction - mutable faceFluxFieldType* faceFluxCorrectionPtr_; + mutable std::unique_ptr<faceFluxFieldType> faceFluxCorrectionPtr_; protected: @@ -357,8 +353,7 @@ public: } //- Declare return type of the faceFluxCorrectionPtr() function - typedef GeometricField<Type, faePatchField, edgeMesh> - *faceFluxFieldPtrType; + typedef std::unique_ptr<faceFluxFieldType> faceFluxFieldPtrType; //- Return pointer to face-flux non-orthogonal correction field faceFluxFieldPtrType& faceFluxCorrectionPtr() @@ -366,6 +361,12 @@ public: return faceFluxCorrectionPtr_; } + //- Set pointer to face-flux non-orthogonal correction field + void faceFluxCorrectionPtr(faceFluxFieldType* flux) + { + faceFluxCorrectionPtr_.reset(flux); + } + //- True if face-flux non-orthogonal correction field exists bool hasFaceFluxCorrection() const noexcept { diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C index 5df6a43abe8e12dfc5e95a40dc98610d5b730ca6..3ed9ea7f8fc7c6b3a0e5dfdd4a55a1d1705d2ce5 100644 --- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C +++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C @@ -29,7 +29,6 @@ License #include "faBoundaryMesh.H" #include "faMesh.H" #include "globalIndex.H" -#include "primitiveMesh.H" #include "processorFaPatch.H" #include "wordRes.H" #include "PtrListOps.H" diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H index 9a147781d5b1fb4ca42e164b6b7a5c27fa9dc9b3..0603bd28d2e9a093113fc0e415fd11d9cf3fbdf2 100644 --- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H +++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H @@ -46,8 +46,6 @@ Author #include "faPatch.H" #include "labelPair.H" #include "lduInterfacePtrsList.H" -#include "wordList.H" -#include "pointField.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.H b/src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.H index c494e22f535ac4385e1d5951fb22bcb692237f60..ea6da26d7fd22cff137a94a37fc78240782efe7c 100644 --- a/src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.H +++ b/src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.H @@ -77,7 +77,13 @@ class faGlobalMeshData labelList sharedPointAddr_; - // Private Member Functions +public: + + //- Runtime type information + ClassName("faGlobalMeshData"); + + + // Generated Methods //- No copy construct faGlobalMeshData(const faGlobalMeshData&) = delete; @@ -86,12 +92,6 @@ class faGlobalMeshData void operator=(const faGlobalMeshData&) = delete; -public: - - //- Runtime type information - ClassName("faGlobalMeshData"); - - // Constructors //- Construct from mesh diff --git a/src/finiteArea/faMesh/faMesh.C b/src/finiteArea/faMesh/faMesh.C index cfb9e1608cb97abe79d89951eb141d016f376161..49c518363d5b3461ce1bb549bae08bf341fb665c 100644 --- a/src/finiteArea/faMesh/faMesh.C +++ b/src/finiteArea/faMesh/faMesh.C @@ -169,14 +169,12 @@ void Foam::faMesh::checkBoundaryEdgeLabelRange void Foam::faMesh::initPatch() const { - patchPtr_.reset + patchPtr_ = std::make_unique<uindirectPrimitivePatch> ( - new uindirectPrimitivePatch - ( - UIndirectList<face>(mesh().faces(), faceLabels_), - mesh().points() - ) + UIndirectList<face>(mesh().faces(), faceLabels_), + mesh().points() ); + // Could set some basic primitive data here... // nEdges_ = patchPtr_->nEdges(); // nInternalEdges_ = patchPtr_->nInternalEdges(); @@ -253,17 +251,17 @@ void Foam::faMesh::clearGeomNotAreas() const polyPatchFacesPtr_.reset(nullptr); polyPatchIdsPtr_.reset(nullptr); bndConnectPtr_.reset(nullptr); - deleteDemandDrivenData(SPtr_); - deleteDemandDrivenData(patchStartsPtr_); - deleteDemandDrivenData(LePtr_); - deleteDemandDrivenData(magLePtr_); - deleteDemandDrivenData(faceCentresPtr_); - deleteDemandDrivenData(edgeCentresPtr_); - deleteDemandDrivenData(faceAreaNormalsPtr_); - deleteDemandDrivenData(edgeAreaNormalsPtr_); + SPtr_.reset(nullptr); + patchStartsPtr_.reset(nullptr); + LePtr_.reset(nullptr); + magLePtr_.reset(nullptr); + faceCentresPtr_.reset(nullptr); + edgeCentresPtr_.reset(nullptr); + faceAreaNormalsPtr_.reset(nullptr); + edgeAreaNormalsPtr_.reset(nullptr); pointAreaNormalsPtr_.reset(nullptr); - deleteDemandDrivenData(faceCurvaturesPtr_); - deleteDemandDrivenData(edgeTransformTensorsPtr_); + faceCurvaturesPtr_.reset(nullptr); + edgeTransformTensorsPtr_.reset(nullptr); } @@ -272,9 +270,9 @@ void Foam::faMesh::clearGeom() const DebugInFunction << "Clearing geometry" << endl; clearGeomNotAreas(); - deleteDemandDrivenData(S0Ptr_); - deleteDemandDrivenData(S00Ptr_); - deleteDemandDrivenData(correctPatchPointNormalsPtr_); + S0Ptr_.reset(nullptr); + S00Ptr_.reset(nullptr); + correctPatchPointNormalsPtr_.reset(nullptr); } @@ -282,7 +280,7 @@ void Foam::faMesh::clearAddressing() const { DebugInFunction << "Clearing addressing" << endl; - deleteDemandDrivenData(lduPtr_); + lduPtr_.reset(nullptr); } @@ -402,33 +400,7 @@ Foam::faMesh::faMesh *this ), comm_(UPstream::worldComm), - curTimeIndex_(time().timeIndex()), - - patchPtr_(nullptr), - polyPatchFacesPtr_(nullptr), - polyPatchIdsPtr_(nullptr), - bndConnectPtr_(nullptr), - lduPtr_(nullptr), - - SPtr_(nullptr), - S0Ptr_(nullptr), - S00Ptr_(nullptr), - patchStartsPtr_(nullptr), - LePtr_(nullptr), - magLePtr_(nullptr), - faceCentresPtr_(nullptr), - edgeCentresPtr_(nullptr), - faceAreaNormalsPtr_(nullptr), - edgeAreaNormalsPtr_(nullptr), - pointAreaNormalsPtr_(nullptr), - faceCurvaturesPtr_(nullptr), - edgeTransformTensorsPtr_(nullptr), - correctPatchPointNormalsPtr_(nullptr), - globalMeshDataPtr_(nullptr), - - haloMapPtr_(nullptr), - haloFaceCentresPtr_(nullptr), - haloFaceNormalsPtr_(nullptr) + curTimeIndex_(time().timeIndex()) { DebugInFunction << "Creating from IOobject" << endl; @@ -459,7 +431,7 @@ Foam::faMesh::faMesh rio.resetHeader("S0"); if (returnReduceOr(rio.typeHeaderOk<regIOobject>(false))) { - S0Ptr_ = new DimensionedField<scalar, areaMesh> + S0Ptr_ = std::make_unique<DimensionedField<scalar, areaMesh>> ( rio, *this, @@ -524,33 +496,7 @@ Foam::faMesh::faMesh label(0) ), comm_(UPstream::worldComm), - curTimeIndex_(time().timeIndex()), - - patchPtr_(nullptr), - polyPatchFacesPtr_(nullptr), - polyPatchIdsPtr_(nullptr), - bndConnectPtr_(nullptr), - lduPtr_(nullptr), - - SPtr_(nullptr), - S0Ptr_(nullptr), - S00Ptr_(nullptr), - patchStartsPtr_(nullptr), - LePtr_(nullptr), - magLePtr_(nullptr), - faceCentresPtr_(nullptr), - edgeCentresPtr_(nullptr), - faceAreaNormalsPtr_(nullptr), - edgeAreaNormalsPtr_(nullptr), - pointAreaNormalsPtr_(nullptr), - faceCurvaturesPtr_(nullptr), - edgeTransformTensorsPtr_(nullptr), - correctPatchPointNormalsPtr_(nullptr), - globalMeshDataPtr_(nullptr), - - haloMapPtr_(nullptr), - haloFaceCentresPtr_(nullptr), - haloFaceNormalsPtr_(nullptr) + curTimeIndex_(time().timeIndex()) { // Not yet much for primitive mesh data possible... nPoints_ = 0; @@ -609,33 +555,7 @@ Foam::faMesh::faMesh label(0) ), comm_(UPstream::worldComm), - curTimeIndex_(time().timeIndex()), - - patchPtr_(nullptr), - polyPatchFacesPtr_(nullptr), - polyPatchIdsPtr_(nullptr), - bndConnectPtr_(nullptr), - lduPtr_(nullptr), - - SPtr_(nullptr), - S0Ptr_(nullptr), - S00Ptr_(nullptr), - patchStartsPtr_(nullptr), - LePtr_(nullptr), - magLePtr_(nullptr), - faceCentresPtr_(nullptr), - edgeCentresPtr_(nullptr), - faceAreaNormalsPtr_(nullptr), - edgeAreaNormalsPtr_(nullptr), - pointAreaNormalsPtr_(nullptr), - faceCurvaturesPtr_(nullptr), - edgeTransformTensorsPtr_(nullptr), - correctPatchPointNormalsPtr_(nullptr), - globalMeshDataPtr_(nullptr), - - haloMapPtr_(nullptr), - haloFaceCentresPtr_(nullptr), - haloFaceNormalsPtr_(nullptr) + curTimeIndex_(time().timeIndex()) { // Not yet much for primitive mesh data possible... nPoints_ = 0; @@ -732,7 +652,7 @@ Foam::faMesh::faMesh rio.resetHeader("S0"); if (returnReduceOr(rio.typeHeaderOk<regIOobject>(false))) { - S0Ptr_ = new DimensionedField<scalar, areaMesh> + S0Ptr_ = std::make_unique<DimensionedField<scalar, areaMesh>> ( rio, *this, @@ -948,7 +868,7 @@ Foam::faMesh::S00() const { if (!S00Ptr_) { - S00Ptr_ = new DimensionedField<scalar, areaMesh> + S00Ptr_ = std::make_unique<DimensionedField<scalar, areaMesh>> ( IOobject ( @@ -994,7 +914,7 @@ const Foam::vectorField& Foam::faMesh::pointAreaNormals() const { if (!pointAreaNormalsPtr_) { - pointAreaNormalsPtr_.reset(new vectorField(nPoints())); + pointAreaNormalsPtr_ = std::make_unique<vectorField>(nPoints()); calcPointAreaNormals(*pointAreaNormalsPtr_); @@ -1082,7 +1002,7 @@ bool Foam::faMesh::movePoints() { DebugInfo<< "Creating old cell volumes." << endl; - S0Ptr_ = new DimensionedField<scalar, areaMesh> + S0Ptr_ = std::make_unique<DimensionedField<scalar, areaMesh>> ( IOobject ( @@ -1140,7 +1060,8 @@ Foam::boolList& Foam::faMesh::correctPatchPointNormals() const { if (!correctPatchPointNormalsPtr_) { - correctPatchPointNormalsPtr_ = new boolList(boundary().size(), false); + correctPatchPointNormalsPtr_ = + std::make_unique<boolList>(boundary().size(), false); } return *correctPatchPointNormalsPtr_; diff --git a/src/finiteArea/faMesh/faMesh.H b/src/finiteArea/faMesh/faMesh.H index ce875b9a794014a3b965e434d864665c3d042a6a..34e1352250faaa7c8ca26b3d3ad4357cb74661d6 100644 --- a/src/finiteArea/faMesh/faMesh.H +++ b/src/finiteArea/faMesh/faMesh.H @@ -261,52 +261,53 @@ class faMesh mutable std::unique_ptr<List<labelPair>> bndConnectPtr_; //- Ldu addressing data - mutable faMeshLduAddressing* lduPtr_; + mutable std::unique_ptr<faMeshLduAddressing> lduPtr_; // Geometric Data //- Face areas - mutable DimensionedField<scalar, areaMesh>* SPtr_; + mutable std::unique_ptr<DimensionedField<scalar, areaMesh>> SPtr_; //- Face areas old time level - mutable DimensionedField<scalar, areaMesh>* S0Ptr_; + mutable std::unique_ptr<DimensionedField<scalar, areaMesh>> S0Ptr_; //- Face areas old-old time level - mutable DimensionedField<scalar, areaMesh>* S00Ptr_; + mutable std::unique_ptr<DimensionedField<scalar, areaMesh>> S00Ptr_; //- Patch starts in the edge list - mutable labelList* patchStartsPtr_; + mutable std::unique_ptr<labelList> patchStartsPtr_; //- Edge length vectors - mutable edgeVectorField* LePtr_; + mutable std::unique_ptr<edgeVectorField> LePtr_; //- Mag edge length vectors - mutable edgeScalarField* magLePtr_; + mutable std::unique_ptr<edgeScalarField> magLePtr_; //- Face centres - mutable areaVectorField* faceCentresPtr_; + mutable std::unique_ptr<areaVectorField> faceCentresPtr_; //- Edge centres - mutable edgeVectorField* edgeCentresPtr_; + mutable std::unique_ptr<edgeVectorField> edgeCentresPtr_; //- Face area normals - mutable areaVectorField* faceAreaNormalsPtr_; + mutable std::unique_ptr<areaVectorField> faceAreaNormalsPtr_; //- Edge area normals - mutable edgeVectorField* edgeAreaNormalsPtr_; + mutable std::unique_ptr<edgeVectorField> edgeAreaNormalsPtr_; //- Point area normals mutable std::unique_ptr<vectorField> pointAreaNormalsPtr_; //- Face curvatures - mutable areaScalarField* faceCurvaturesPtr_; + mutable std::unique_ptr<areaScalarField> faceCurvaturesPtr_; //- Edge transformation tensors - mutable FieldField<Field, tensor>* edgeTransformTensorsPtr_; + mutable std::unique_ptr<FieldField<Field, tensor>> + edgeTransformTensorsPtr_; //- Whether point normals must be corrected for a patch - mutable boolList* correctPatchPointNormalsPtr_; + mutable std::unique_ptr<boolList> correctPatchPointNormalsPtr_; // Other mesh-related data @@ -332,12 +333,6 @@ class faMesh // Private Member Functions - //- No copy construct - faMesh(const faMesh&) = delete; - - //- No copy assignment - void operator=(const faMesh&) = delete; - //- Set indirect patch, removing any old one. // No communication void initPatch() const; @@ -524,6 +519,15 @@ public: static word meshSubDir; + // Generated Methods + + //- No copy construct + faMesh(const faMesh&) = delete; + + //- No copy assignment + void operator=(const faMesh&) = delete; + + // Constructors //- Read construct from polyMesh, using its IOobject properties diff --git a/src/finiteArea/faMesh/faMeshDemandDrivenData.C b/src/finiteArea/faMesh/faMeshDemandDrivenData.C index 3f94292886eb70bf71225d10ed1b9bbeea8a63d4..49b60d401803fd44135b1e88024b81cd9c60089f 100644 --- a/src/finiteArea/faMesh/faMeshDemandDrivenData.C +++ b/src/finiteArea/faMesh/faMeshDemandDrivenData.C @@ -222,7 +222,7 @@ void Foam::faMesh::calcLduAddressing() const << abort(FatalError); } - lduPtr_ = new faMeshLduAddressing(*this); + lduPtr_ = std::make_unique<faMeshLduAddressing>(*this); } @@ -238,7 +238,7 @@ void Foam::faMesh::calcPatchStarts() const << abort(FatalError); } - patchStartsPtr_ = new labelList(boundary().patchStarts()); + patchStartsPtr_ = std::make_unique<labelList>(boundary().patchStarts()); } @@ -254,9 +254,9 @@ void Foam::faMesh::calcWhichPatchFaces() const const polyBoundaryMesh& pbm = mesh().boundaryMesh(); - polyPatchFacesPtr_.reset + polyPatchFacesPtr_ = std::make_unique<List<labelPair>> ( - new List<labelPair>(pbm.whichPatchFace(faceLabels_)) + pbm.whichPatchFace(faceLabels_) ); labelHashSet ids; @@ -278,7 +278,7 @@ void Foam::faMesh::calcWhichPatchFaces() const this->comm() ); - polyPatchIdsPtr_.reset(new labelList(ids.sortedToc())); + polyPatchIdsPtr_ = std::make_unique<labelList>(ids.sortedToc()); } @@ -675,23 +675,22 @@ void Foam::faMesh::calcLe() const << abort(FatalError); } - LePtr_ = - new edgeVectorField + LePtr_ = std::make_unique<edgeVectorField> + ( + IOobject ( - IOobject - ( - "Le", - mesh().pointsInstance(), - faMesh::meshSubDir, - faMesh::thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE, - IOobject::NO_REGISTER - ), - *this, - dimLength - // -> calculatedType() - ); + "Le", + mesh().pointsInstance(), + faMesh::meshSubDir, + faMesh::thisDb(), + IOobject::NO_READ, + IOobject::NO_WRITE, + IOobject::NO_REGISTER + ), + *this, + dimLength + // -> calculatedType() + ); edgeVectorField& Le = *LePtr_; // Need face centres @@ -773,23 +772,21 @@ void Foam::faMesh::calcMagLe() const << abort(FatalError); } - magLePtr_ = - new edgeScalarField + magLePtr_ = std::make_unique<edgeScalarField> + ( + IOobject ( - IOobject - ( - "magLe", - mesh().pointsInstance(), - faMesh::meshSubDir, - faMesh::thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE, - IOobject::NO_REGISTER - ), - *this, - dimLength - ); - + "magLe", + mesh().pointsInstance(), + faMesh::meshSubDir, + faMesh::thisDb(), + IOobject::NO_READ, + IOobject::NO_WRITE, + IOobject::NO_REGISTER + ), + *this, + dimLength + ); edgeScalarField& magLe = *magLePtr_; const pointField& localPoints = points(); @@ -849,24 +846,22 @@ void Foam::faMesh::calcFaceCentres() const << abort(FatalError); } - faceCentresPtr_ = - new areaVectorField + faceCentresPtr_ = std::make_unique<areaVectorField> + ( + IOobject ( - IOobject - ( - "centres", - mesh().pointsInstance(), - faMesh::meshSubDir, - faMesh::thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE, - IOobject::NO_REGISTER - ), - *this, - dimLength - // -> calculatedType() - ); - + "centres", + mesh().pointsInstance(), + faMesh::meshSubDir, + faMesh::thisDb(), + IOobject::NO_READ, + IOobject::NO_WRITE, + IOobject::NO_REGISTER + ), + *this, + dimLength + // -> calculatedType() + ); areaVectorField& centres = *faceCentresPtr_; // Need local points @@ -931,24 +926,22 @@ void Foam::faMesh::calcEdgeCentres() const << abort(FatalError); } - edgeCentresPtr_ = - new edgeVectorField + edgeCentresPtr_ = std::make_unique<edgeVectorField> + ( + IOobject ( - IOobject - ( - "edgeCentres", - mesh().pointsInstance(), - faMesh::meshSubDir, - faMesh::thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE, - IOobject::NO_REGISTER - ), - *this, - dimLength - // -> calculatedType() - ); - + "edgeCentres", + mesh().pointsInstance(), + faMesh::meshSubDir, + faMesh::thisDb(), + IOobject::NO_READ, + IOobject::NO_WRITE, + IOobject::NO_REGISTER + ), + *this, + dimLength + // -> calculatedType() + ); edgeVectorField& centres = *edgeCentresPtr_; // Need local points @@ -996,7 +989,7 @@ void Foam::faMesh::calcS() const << abort(FatalError); } - SPtr_ = new DimensionedField<scalar, areaMesh> + SPtr_ = std::make_unique<DimensionedField<scalar, areaMesh>> ( IOobject ( @@ -1068,23 +1061,21 @@ void Foam::faMesh::calcFaceAreaNormals() const << abort(FatalError); } - faceAreaNormalsPtr_ = - new areaVectorField + faceAreaNormalsPtr_ = std::make_unique<areaVectorField> + ( + IOobject ( - IOobject - ( - "faceAreaNormals", - mesh().pointsInstance(), - faMesh::meshSubDir, - faMesh::thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE, - IOobject::NO_REGISTER - ), - *this, - dimless - ); - + "faceAreaNormals", + mesh().pointsInstance(), + faMesh::meshSubDir, + faMesh::thisDb(), + IOobject::NO_READ, + IOobject::NO_WRITE, + IOobject::NO_REGISTER + ), + *this, + dimless + ); areaVectorField& faceNormals = *faceAreaNormalsPtr_; const pointField& localPoints = points(); @@ -1149,23 +1140,22 @@ void Foam::faMesh::calcEdgeAreaNormals() const << abort(FatalError); } - edgeAreaNormalsPtr_ = - new edgeVectorField + edgeAreaNormalsPtr_ = std::make_unique<edgeVectorField> + ( + IOobject ( - IOobject - ( - "edgeAreaNormals", - mesh().pointsInstance(), - faMesh::meshSubDir, - faMesh::thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE, - IOobject::NO_REGISTER - ), - *this, - dimless - // -> calculatedType() - ); + "edgeAreaNormals", + mesh().pointsInstance(), + faMesh::meshSubDir, + faMesh::thisDb(), + IOobject::NO_READ, + IOobject::NO_WRITE, + IOobject::NO_REGISTER + ), + *this, + dimless + // -> calculatedType() + ); edgeVectorField& edgeAreaNormals = *edgeAreaNormalsPtr_; @@ -1279,23 +1269,21 @@ void Foam::faMesh::calcFaceCurvatures() const << abort(FatalError); } - faceCurvaturesPtr_ = - new areaScalarField + faceCurvaturesPtr_ = std::make_unique<areaScalarField> + ( + IOobject ( - IOobject - ( - "faceCurvatures", - mesh().pointsInstance(), - faMesh::meshSubDir, - faMesh::thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE, - IOobject::NO_REGISTER - ), - *this, - dimless/dimLength - ); - + "faceCurvatures", + mesh().pointsInstance(), + faMesh::meshSubDir, + faMesh::thisDb(), + IOobject::NO_READ, + IOobject::NO_WRITE, + IOobject::NO_REGISTER + ), + *this, + dimless/dimLength + ); areaScalarField& faceCurvatures = *faceCurvaturesPtr_; @@ -1321,7 +1309,8 @@ void Foam::faMesh::calcEdgeTransformTensors() const << abort(FatalError); } - edgeTransformTensorsPtr_ = new FieldField<Field, tensor>(nEdges_); + edgeTransformTensorsPtr_ = + std::make_unique<FieldField<Field, tensor>>(nEdges_); auto& edgeTransformTensors = *edgeTransformTensorsPtr_; // Initialize all transformation tensors diff --git a/src/finiteArea/faMesh/faMeshLduAddressing.H b/src/finiteArea/faMesh/faMeshLduAddressing.H index 28981c11c8b9466d9647e1a451a5151d403b95ea..3e6d41e3e5681ff3c0ad47db9198bb2780229ae0 100644 --- a/src/finiteArea/faMesh/faMeshLduAddressing.H +++ b/src/finiteArea/faMesh/faMeshLduAddressing.H @@ -73,7 +73,9 @@ class faMeshLduAddressing const lduSchedule& patchSchedule_; - // Private Member Functions +public: + + // Generated Methods //- No copy construct faMeshLduAddressing(const faMeshLduAddressing&) = delete; @@ -82,8 +84,6 @@ class faMeshLduAddressing void operator=(const faMeshLduAddressing&) = delete; -public: - // Constructors //- Construct from components diff --git a/src/finiteArea/faMesh/faMeshMapper/faAreaMapper.C b/src/finiteArea/faMesh/faMeshMapper/faAreaMapper.C index e079de2bab53eb9443a94e96af2cb1f60dd3c358..f575d1a6e87c11fb5665423a3fe4d76c5a8c0a8f 100644 --- a/src/finiteArea/faMesh/faMeshMapper/faAreaMapper.C +++ b/src/finiteArea/faMesh/faMeshMapper/faAreaMapper.C @@ -61,10 +61,18 @@ void Foam::faAreaMapper::calcAddressing() const // Prepare a list of new face labels and (preliminary) addressing // Note: dimensioned to number of boundary faces of polyMesh - newFaceLabelsPtr_ = new labelList(mesh_.mesh().nBoundaryFaces(), -1); - labelList& newFaceLabels = *newFaceLabelsPtr_; + newFaceLabelsPtr_ = std::make_unique<labelList> + ( + mesh_.mesh().nBoundaryFaces(), + -1 + ); + auto& newFaceLabels = *newFaceLabelsPtr_; - newFaceLabelsMapPtr_ = new labelList(mesh_.mesh().nBoundaryFaces(), -1); + newFaceLabelsMapPtr_ = std::make_unique<labelList> + ( + mesh_.mesh().nBoundaryFaces(), + -1 + ); labelList& newFaceLabelsMap = *newFaceLabelsMapPtr_; label nNewFaces = 0; @@ -94,7 +102,7 @@ void Foam::faAreaMapper::calcAddressing() const // Direct mapping: no further faces to add. Resize list newFaceLabels.setSize(nNewFaces); - directAddrPtr_ = new labelList(newFaceLabels.size()); + directAddrPtr_ = std::make_unique<labelList>(newFaceLabels.size()); labelList& addr = *directAddrPtr_; // Adjust for creation of a boundary face from an internal face @@ -114,10 +122,13 @@ void Foam::faAreaMapper::calcAddressing() const { // There are further faces to add. Prepare interpolation addressing // and weights to full size - interpolationAddrPtr_ = new labelListList(newFaceLabels.size()); + interpolationAddrPtr_ = std::make_unique<labelListList> + ( + newFaceLabels.size() + ); labelListList& addr = *interpolationAddrPtr_; - weightsPtr_ = new scalarListList(newFaceLabels.size()); + weightsPtr_ = std::make_unique<scalarListList>(newFaceLabels.size()); scalarListList& w = *weightsPtr_; // Insert single addressing and weights @@ -256,20 +267,20 @@ void Foam::faAreaMapper::calcAddressing() const // Inserted objects cannot appear in the new faMesh as they have no master // HJ, 10/Aug/2011 - insertedObjectLabelsPtr_ = new labelList(0); + insertedObjectLabelsPtr_ = std::make_unique<labelList>(); } void Foam::faAreaMapper::clearOut() { - deleteDemandDrivenData(newFaceLabelsPtr_); - deleteDemandDrivenData(newFaceLabelsMapPtr_); + newFaceLabelsPtr_.reset(nullptr); + newFaceLabelsMapPtr_.reset(nullptr); - deleteDemandDrivenData(directAddrPtr_); - deleteDemandDrivenData(interpolationAddrPtr_); - deleteDemandDrivenData(weightsPtr_); + directAddrPtr_.reset(nullptr); + interpolationAddrPtr_.reset(nullptr); + weightsPtr_.reset(nullptr); - deleteDemandDrivenData(insertedObjectLabelsPtr_); + insertedObjectLabelsPtr_.reset(nullptr); hasUnmapped_ = false; } @@ -286,13 +297,7 @@ Foam::faAreaMapper::faAreaMapper mpm_(mpm), direct_(false), hasUnmapped_(false), - sizeBeforeMapping_(mesh.nFaces()), - newFaceLabelsPtr_(nullptr), - newFaceLabelsMapPtr_(nullptr), - directAddrPtr_(nullptr), - interpolationAddrPtr_(nullptr), - weightsPtr_(nullptr), - insertedObjectLabelsPtr_(nullptr) + sizeBeforeMapping_(mesh.nFaces()) { // Check for possibility of direct mapping if diff --git a/src/finiteArea/faMesh/faMeshMapper/faAreaMapper.H b/src/finiteArea/faMesh/faMeshMapper/faAreaMapper.H index e13c97c6bf649abcfc24080aff0e18c245ce0b1c..9a75decf955ff0220d48c64f5c26460420be12d2 100644 --- a/src/finiteArea/faMesh/faMeshMapper/faAreaMapper.H +++ b/src/finiteArea/faMesh/faMeshMapper/faAreaMapper.H @@ -43,9 +43,6 @@ SourceFiles #include "morphFieldMapper.H" #include "faMesh.H" -#include "faceMapper.H" -#include "HashSet.H" -#include "mapPolyMesh.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -60,7 +57,7 @@ class faAreaMapper : public morphFieldMapper { - // Private data + // Private Data //- Reference to mesh mapper const faMesh& mesh_; @@ -80,33 +77,27 @@ class faAreaMapper label sizeBeforeMapping_; //- New face labels after mapping - mutable labelList* newFaceLabelsPtr_; + mutable std::unique_ptr<labelList> newFaceLabelsPtr_; //- New face labels after mapping - mutable labelList* newFaceLabelsMapPtr_; + mutable std::unique_ptr<labelList> newFaceLabelsMapPtr_; //- Direct addressing (only one form of addressing is used) - mutable labelList* directAddrPtr_; + mutable std::unique_ptr<labelList> directAddrPtr_; //- Interpolated addressing (only one form of addressing is used) - mutable labelListList* interpolationAddrPtr_; + mutable std::unique_ptr<labelListList> interpolationAddrPtr_; //- Interpolation weights - mutable scalarListList* weightsPtr_; + mutable std::unique_ptr<scalarListList> weightsPtr_; //- Inserted faces - mutable labelList* insertedObjectLabelsPtr_; + mutable std::unique_ptr<labelList> insertedObjectLabelsPtr_; // Private Member Functions - //- No copy construct - faAreaMapper(const faAreaMapper&) = delete; - - //- No copy assignment - void operator=(const faAreaMapper&) = delete; - //- Calculate addressing void calcAddressing() const; @@ -116,6 +107,15 @@ class faAreaMapper public: + // Generated Methods + + //- No copy construct + faAreaMapper(const faAreaMapper&) = delete; + + //- No copy assignment + void operator=(const faAreaMapper&) = delete; + + //- Construct from components faAreaMapper ( @@ -127,7 +127,6 @@ public: //- Destructor virtual ~faAreaMapper(); - // Member Functions //- Return new face labels diff --git a/src/finiteArea/faMesh/faMeshMapper/faBoundaryMeshMapper.H b/src/finiteArea/faMesh/faMeshMapper/faBoundaryMeshMapper.H index 8cb95b33583b6d2be42cd8c664cc04abaed64ea4..b60d1a66124511a5df7c43861b04b4fe7ba5f32e 100644 --- a/src/finiteArea/faMesh/faMeshMapper/faBoundaryMeshMapper.H +++ b/src/finiteArea/faMesh/faMeshMapper/faBoundaryMeshMapper.H @@ -34,7 +34,6 @@ Description #ifndef faBoundaryMeshMapper_H #define faBoundaryMeshMapper_H -#include "PtrList.H" #include "faPatchMapper.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.C b/src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.C index dd0684a39c5a5e982a6852edd7280d2803f7304e..2dffd9ed7b23998edd0343a65cc0024858073157 100644 --- a/src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.C +++ b/src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.C @@ -43,13 +43,13 @@ void Foam::faEdgeMapper::calcAddressing() const hasUnmapped_ = false; // Dummy mapping: take value from edge 0 - directAddrPtr_ = new labelList(size(), Zero); + directAddrPtr_ = std::make_unique<labelList>(size(), Foam::zero{}); } void Foam::faEdgeMapper::clearOut() { - deleteDemandDrivenData(directAddrPtr_); + directAddrPtr_.reset(nullptr); hasUnmapped_ = false; } @@ -63,10 +63,8 @@ Foam::faEdgeMapper::faEdgeMapper ) : mesh_(mesh), -// mpm_(mpm), sizeBeforeMapping_(mesh.nInternalEdges()), - hasUnmapped_(false), - directAddrPtr_(nullptr) + hasUnmapped_(false) {} diff --git a/src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.H b/src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.H index 267790b7d266a811d5b09c730cbd61703054a5e2..05f0cd0fda979f1824937404407a28be02fa6872 100644 --- a/src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.H +++ b/src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.H @@ -45,7 +45,6 @@ SourceFiles #include "morphFieldMapper.H" #include "faMesh.H" #include "faceMapper.H" -#include "HashSet.H" #include "mapPolyMesh.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -61,14 +60,11 @@ class faEdgeMapper : public morphFieldMapper { - // Private data + // Private Data //- Reference to mesh const faMesh& mesh_; - //- Reference to mapPolyMesh - //const mapPolyMesh& mpm_; - //- Old mesh size label sizeBeforeMapping_; @@ -78,17 +74,11 @@ class faEdgeMapper mutable bool hasUnmapped_; //- Direct addressing - mutable labelList* directAddrPtr_; + mutable std::unique_ptr<labelList> directAddrPtr_; // Private Member Functions - //- No copy construct - faEdgeMapper(const faEdgeMapper&) = delete; - - //- No copy assignment - void operator=(const faEdgeMapper&) = delete; - //- Calculate addressing void calcAddressing() const; @@ -98,6 +88,15 @@ class faEdgeMapper public: + // Generated Methods + + //- No copy construct + faEdgeMapper(const faEdgeMapper&) = delete; + + //- No copy assignment + void operator=(const faEdgeMapper&) = delete; + + //- Construct from components faEdgeMapper ( diff --git a/src/finiteArea/faMesh/faMeshMapper/faMeshMapper.H b/src/finiteArea/faMesh/faMeshMapper/faMeshMapper.H index aaef4826d8e6326d4de9ad052a1b907297487973..16760b12e67a80db2be3f8cd16abb200a3dfb658 100644 --- a/src/finiteArea/faMesh/faMeshMapper/faMeshMapper.H +++ b/src/finiteArea/faMesh/faMeshMapper/faMeshMapper.H @@ -68,7 +68,7 @@ class mapPolyMesh; class faMeshMapper { - // Private data + // Private Data //- Reference to mesh const faMesh& mesh_; @@ -110,7 +110,9 @@ class faMeshMapper faBoundaryMeshMapper boundaryMap_; - // Private Member Functions +public: + + // Generated Methods //- No copy construct faMeshMapper(const faMeshMapper&) = delete; @@ -119,8 +121,6 @@ class faMeshMapper void operator=(const faMeshMapper&) = delete; -public: - // Constructors //- Construct from components diff --git a/src/finiteArea/faMesh/faMeshMapper/faPatchMapper.C b/src/finiteArea/faMesh/faMeshMapper/faPatchMapper.C index 569a2c02f38bd35ec80dde76f64c0fb8cc0615d5..69aa3177f6611f0f5e30a093aceb88e8ab24a5e2 100644 --- a/src/finiteArea/faMesh/faMeshMapper/faPatchMapper.C +++ b/src/finiteArea/faMesh/faMeshMapper/faPatchMapper.C @@ -26,11 +26,7 @@ License \*---------------------------------------------------------------------------*/ #include "faPatchMapper.H" -#include "faPatch.H" -#include "faBoundaryMesh.H" -#include "faMesh.H" #include "mapPolyMesh.H" -#include "faceMapper.H" #include "demandDrivenData.H" // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -47,7 +43,7 @@ void Foam::faPatchMapper::calcAddressing() const // Compatibility change HJ, 12/Aug/2017 hasUnmapped_ = false; - directAddrPtr_ = new labelList(patch_.size(), Zero); + directAddrPtr_ = std::make_unique<labelList>(patch_.size(), Foam::zero{}); labelList& addr = *directAddrPtr_; // Make a map of old edgeFaces, giving edge index in patch given the new @@ -90,7 +86,7 @@ void Foam::faPatchMapper::calcAddressing() const void Foam::faPatchMapper::clearOut() { - deleteDemandDrivenData(directAddrPtr_); + directAddrPtr_.reset(nullptr); hasUnmapped_ = false; } @@ -107,8 +103,7 @@ Foam::faPatchMapper::faPatchMapper mpm_(mpm), sizeBeforeMapping_(patch.size()), oldEdgeFaces_(patch.edgeFaces()), - hasUnmapped_(false), - directAddrPtr_(nullptr) + hasUnmapped_(false) {} diff --git a/src/finiteArea/faMesh/faMeshMapper/faPatchMapper.H b/src/finiteArea/faMesh/faMeshMapper/faPatchMapper.H index 764ecd34a449c0d40118a000949a5a187b81f0c9..b27bd6874dfe56bd22cf6bf8ad3284c39dbfc1b9 100644 --- a/src/finiteArea/faMesh/faMeshMapper/faPatchMapper.H +++ b/src/finiteArea/faMesh/faMeshMapper/faPatchMapper.H @@ -45,7 +45,6 @@ SourceFiles #include "faPatchFieldMapper.H" #include "faceMapper.H" #include "faPatch.H" -#include "primitiveFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -64,7 +63,7 @@ class faPatchMapper : public faPatchFieldMapper { - // Private data + // Private Data //- Reference to patch const faPatch& patch_; @@ -84,18 +83,11 @@ class faPatchMapper mutable bool hasUnmapped_; //- Direct addressing - mutable labelList* directAddrPtr_; + mutable std::unique_ptr<labelList> directAddrPtr_; // Private Member Functions - //- No copy construct - faPatchMapper(const faPatchMapper&) = delete; - - //- No copy assignment - void operator=(const faPatchMapper&) = delete; - - //- Calculate addressing for mapping with inserted cells void calcAddressing() const; @@ -105,6 +97,15 @@ class faPatchMapper public: + // Generated Methods + + //- No copy construct + faPatchMapper(const faPatchMapper&) = delete; + + //- No copy assignment + void operator=(const faPatchMapper&) = delete; + + //- Construct from mappers faPatchMapper ( diff --git a/src/finiteArea/faMesh/faMeshSubset/faMeshSubset.H b/src/finiteArea/faMesh/faMeshSubset/faMeshSubset.H index 0617e7e7d6a9ebc32a0c640cb8db5c66f5c6e43b..3c4c3b217f9e9becdc993992ba3b0c412f4328cb 100644 --- a/src/finiteArea/faMesh/faMeshSubset/faMeshSubset.H +++ b/src/finiteArea/faMesh/faMeshSubset/faMeshSubset.H @@ -102,12 +102,6 @@ protected: //- FatalError if subset has not been performed bool checkHasSubMesh() const; - //- No copy construct - faMeshSubset(const faMeshSubset&) = delete; - - //- No copy assignment - void operator=(const faMeshSubset&) = delete; - public: @@ -116,6 +110,14 @@ public: //- Name for exposed internal edges (default: oldInternalEdges) static word exposedPatchName; + // Generated Methods + + //- No copy construct + faMeshSubset(const faMeshSubset&) = delete; + + //- No copy assignment + void operator=(const faMeshSubset&) = delete; + // Constructors diff --git a/src/finiteArea/faMesh/faMeshTools/faMeshTools.C b/src/finiteArea/faMesh/faMeshTools/faMeshTools.C index d9a346a52d1b97ca005ed5ed4c2b2d2695e5a8c7..0154e9929801ec02a2bdf74dc15147a48a5d47b6 100644 --- a/src/finiteArea/faMesh/faMeshTools/faMeshTools.C +++ b/src/finiteArea/faMesh/faMeshTools/faMeshTools.C @@ -144,7 +144,7 @@ Foam::faMeshTools::newMesh IOobject cmptIO(meshIO, "faceLabels", meshSubDir); cmptIO.readOpt(IOobject::MUST_READ); cmptIO.writeOpt(IOobject::NO_WRITE); - cmptIO.registerObject(false); + cmptIO.registerObject(IOobject::NO_REGISTER); // Check who has a mesh diff --git a/src/finiteArea/faMesh/faMeshTopology.C b/src/finiteArea/faMesh/faMeshTopology.C index 9c85727b5a143c3929963665a2d52a84b9fe30d8..c9dbb6b130bcd22fb109b77986cc46b39eda64a5 100644 --- a/src/finiteArea/faMesh/faMeshTopology.C +++ b/src/finiteArea/faMesh/faMeshTopology.C @@ -849,9 +849,10 @@ void Foam::faMesh::setBoundaryConnections << abort(FatalError); } - bndConnectPtr_.reset + bndConnectPtr_ = std::make_unique<List<labelPair>> ( - new List<labelPair>(nBoundaryEdges, labelPair(-1,-1)) + nBoundaryEdges, + labelPair(-1,-1) ); auto& bndConnect = *bndConnectPtr_; @@ -989,7 +990,7 @@ const Foam::faMeshBoundaryHalo& Foam::faMesh::boundaryHaloMap() const { if (!haloMapPtr_) { - haloMapPtr_.reset(new faMeshBoundaryHalo(*this)); + haloMapPtr_ = std::make_unique<faMeshBoundaryHalo>(*this); } return *haloMapPtr_; @@ -1022,8 +1023,8 @@ void Foam::faMesh::calcHaloFaceGeometry() const const labelList& inputFaceIds = halo.inputMeshFaces(); - haloFaceCentresPtr_.reset(new pointField); - haloFaceNormalsPtr_.reset(new vectorField); + haloFaceCentresPtr_ = std::make_unique<pointField>(); + haloFaceNormalsPtr_ = std::make_unique<vectorField>(); auto& centres = *haloFaceCentresPtr_; auto& normals = *haloFaceNormalsPtr_; diff --git a/src/finiteArea/faMesh/faPatches/constraint/cyclic/cyclicFaPatch.C b/src/finiteArea/faMesh/faPatches/constraint/cyclic/cyclicFaPatch.C index f513163190145ed34b40a783942c640bc9f83084..5d0ffcb436fe3931b4b9406c2f6c9eca5d3aa56b 100644 --- a/src/finiteArea/faMesh/faPatches/constraint/cyclic/cyclicFaPatch.C +++ b/src/finiteArea/faMesh/faPatches/constraint/cyclic/cyclicFaPatch.C @@ -27,10 +27,8 @@ License \*---------------------------------------------------------------------------*/ #include "cyclicFaPatch.H" -#include "coupledPolyPatch.H" #include "addToRunTimeSelectionTable.H" #include "transform.H" -#include "faMesh.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C b/src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C index 340403498092bb9e6d87946965d37881a31cd940..c60a08a0ba62a8f41d448e5badbf6e170a90161a 100644 --- a/src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C +++ b/src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C @@ -30,7 +30,6 @@ License #include "processorPolyPatch.H" // For newName() #include "addToRunTimeSelectionTable.H" #include "transformField.H" -#include "faBoundaryMesh.H" #include "faMesh.H" #include "globalMeshData.H" diff --git a/src/finiteArea/faMesh/faPatches/constraint/wedge/wedgeFaPatch.C b/src/finiteArea/faMesh/faPatches/constraint/wedge/wedgeFaPatch.C index c6dc0755051ef5a3b03993ca1c8b7fe51d4260c7..8c8e70e661dfbc13f88864bdc3f3a1d224f6022e 100644 --- a/src/finiteArea/faMesh/faPatches/constraint/wedge/wedgeFaPatch.C +++ b/src/finiteArea/faMesh/faPatches/constraint/wedge/wedgeFaPatch.C @@ -28,9 +28,6 @@ License #include "wedgeFaPatch.H" #include "addToRunTimeSelectionTable.H" -#include "faBoundaryMesh.H" -#include "wedgePolyPatch.H" -#include "polyMesh.H" #include "faMesh.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/faMesh/faPatches/faPatch/faPatch.C b/src/finiteArea/faMesh/faPatches/faPatch/faPatch.C index 39c1627d59be1b6ef8775c45d46869f2d8a71bb8..735b9b2224ba3ad7bb9ed176939857ab71803488 100644 --- a/src/finiteArea/faMesh/faPatches/faPatch/faPatch.C +++ b/src/finiteArea/faMesh/faPatches/faPatch/faPatch.C @@ -105,10 +105,7 @@ Foam::faPatch::faPatch patchIdentifier(name, index), labelList(edgeLabels), nbrPolyPatchId_(nbrPolyPatchi), - boundaryMesh_(bm), - edgeFacesPtr_(nullptr), - pointLabelsPtr_(nullptr), - pointEdgesPtr_(nullptr) + boundaryMesh_(bm) { if (constraintType(patchType)) { @@ -129,10 +126,7 @@ Foam::faPatch::faPatch patchIdentifier(name, dict, index), labelList(dict.get<labelList>("edgeLabels")), nbrPolyPatchId_(dict.get<label>("ngbPolyPatchIndex")), - boundaryMesh_(bm), - edgeFacesPtr_(nullptr), - pointLabelsPtr_(nullptr), - pointEdgesPtr_(nullptr) + boundaryMesh_(bm) { if (constraintType(patchType)) { @@ -153,10 +147,7 @@ Foam::faPatch::faPatch patchIdentifier(p, index), labelList(edgeLabels), nbrPolyPatchId_(p.nbrPolyPatchId_), - boundaryMesh_(bm), - edgeFacesPtr_(nullptr), - pointLabelsPtr_(nullptr), - pointEdgesPtr_(nullptr) + boundaryMesh_(bm) {} @@ -331,7 +322,7 @@ void Foam::faPatch::calcPointLabels() const } // Transfer to plain list (reuse storage) - pointLabelsPtr_.reset(new labelList(std::move(dynEdgePoints))); + pointLabelsPtr_ = std::make_unique<labelList>(std::move(dynEdgePoints)); /// const auto& edgePoints = *pointLabelsPtr_; /// @@ -381,7 +372,7 @@ void Foam::faPatch::calcPointEdges() const } // Flatten to regular list - pointEdgesPtr_.reset(new labelListList(edgePoints.size())); + pointEdgesPtr_ = std::make_unique<labelListList>(edgePoints.size()); auto& pEdges = *pointEdgesPtr_; forAll(pEdges, pointi) @@ -441,12 +432,9 @@ const Foam::labelUList& Foam::faPatch::edgeFaces() const { if (!edgeFacesPtr_) { - edgeFacesPtr_.reset + edgeFacesPtr_ = std::make_unique<labelList::subList> ( - new labelList::subList - ( - patchSlice(boundaryMesh().mesh().edgeOwner()) - ) + patchSlice(boundaryMesh().mesh().edgeOwner()) ); } @@ -520,11 +508,9 @@ void Foam::faPatch::makeDeltaCoeffs(scalarField& dc) const void Foam::faPatch::makeCorrectionVectors(vectorField& k) const { - vectorField unitDelta(delta()/mag(delta())); - vectorField edgeNormMag(edgeNormals()/mag(edgeNormals())); - scalarField dn(edgeNormals() & delta()); + const vectorField unitDelta(delta()/mag(delta())); - k = edgeNormMag - (scalar(1)/(unitDelta & edgeNormMag))*unitDelta; + k = edgeNormals() - (scalar(1)/(unitDelta & edgeNormals()))*unitDelta; } diff --git a/src/finiteArea/faSolution/faSolution.H b/src/finiteArea/faSolution/faSolution.H index ded55b74311ae32b6c73c4816c6a97d6e962b65b..c3e4772b0d3d67e1602ee2db14481290c26f7296 100644 --- a/src/finiteArea/faSolution/faSolution.H +++ b/src/finiteArea/faSolution/faSolution.H @@ -61,11 +61,13 @@ class faSolution { public: - //- No copy construct - faSolution(const faSolution&) = delete; + // Generated Methods - //- No copy assignment - void operator=(const faSolution&) = delete; + //- No copy construct + faSolution(const faSolution&) = delete; + + //- No copy assignment + void operator=(const faSolution&) = delete; // Constructors diff --git a/src/finiteArea/fields/areaFields/areaFields.H b/src/finiteArea/fields/areaFields/areaFields.H index eedec105a2fd1129dba7094370c1adf391a7c59f..22ce54161aacb38f32016c051a79d34a1e4813c4 100644 --- a/src/finiteArea/fields/areaFields/areaFields.H +++ b/src/finiteArea/fields/areaFields/areaFields.H @@ -47,7 +47,6 @@ SourceFiles #include "faMesh.H" #include "faPatchFields.H" #include "areaFieldsFwd.H" -#include "calculatedFaPatchFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/fields/edgeFields/edgeFields.H b/src/finiteArea/fields/edgeFields/edgeFields.H index 974dfc7d0a984e3eb117ff6e975d9f55f894abca..73c95fb2d7adaca1d86e7e0a1619ec93a18ca2dd 100644 --- a/src/finiteArea/fields/edgeFields/edgeFields.H +++ b/src/finiteArea/fields/edgeFields/edgeFields.H @@ -48,7 +48,6 @@ SourceFiles #include "faMesh.H" #include "faePatchFields.H" #include "edgeFieldsFwd.H" -#include "calculatedFaePatchFields.H" #endif diff --git a/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H b/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H index 5ac2a891c5ea2bf8190539a59cd8ae3562ce024f..7a6f8e158cdaded6a22266c391326503fe454aee 100644 --- a/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H @@ -68,7 +68,7 @@ class cyclicFaPatchField const cyclicFaPatch& cyclicPatch_; - // Private member functions + // Private Member Functions //- Return neighbour side field given internal fields template<class Type2> diff --git a/src/finiteArea/fields/faPatchFields/faPatchField/faPatchFieldMapperPatchRef.H b/src/finiteArea/fields/faPatchFields/faPatchField/faPatchFieldMapperPatchRef.H index fc0bb216a62ec85f678a7892863ef767bf7e70e5..ba6e52aa05e69fb32c331dae1e3cd52244aad5dd 100644 --- a/src/finiteArea/fields/faPatchFields/faPatchField/faPatchFieldMapperPatchRef.H +++ b/src/finiteArea/fields/faPatchFields/faPatchField/faPatchFieldMapperPatchRef.H @@ -48,7 +48,7 @@ class faPatchFieldMapperPatchRef : public faPatchFieldMapper { - // Private data + // Private Data const faPatch& sourcePatch_; const faPatch& targetPatch_; diff --git a/src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchField.H b/src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchField.H index 3993605ab30098b932e650006a6b2c22bf56f058..77dd9189186ce5351331b0e6947dee7e68254102 100644 --- a/src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchField.H +++ b/src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchField.H @@ -59,7 +59,7 @@ class cyclicFaePatchField : public coupledFaePatchField<Type> { - // Private data + // Private Data //- Local reference cast into the cyclic patch const cyclicFaPatch& cyclicPatch_; diff --git a/src/finiteArea/finiteArea/convectionSchemes/faConvectionScheme/faConvectionScheme.H b/src/finiteArea/finiteArea/convectionSchemes/faConvectionScheme/faConvectionScheme.H index ae2673c8fc6a9d1e9382d42b94747f9105091436..cb882d1206900817062b8018ce35c01103b2d11e 100644 --- a/src/finiteArea/finiteArea/convectionSchemes/faConvectionScheme/faConvectionScheme.H +++ b/src/finiteArea/finiteArea/convectionSchemes/faConvectionScheme/faConvectionScheme.H @@ -37,10 +37,8 @@ SourceFiles #ifndef faConvectionScheme_H #define faConvectionScheme_H -#include "tmp.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" -#include "typeInfo.H" #include "runTimeSelectionTables.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -48,6 +46,7 @@ SourceFiles namespace Foam { +// Forward Declarations template<class Type> class faMatrix; @@ -67,20 +66,12 @@ class convectionScheme : public refCount { - // Private data + // Private Data + //- Reference to mesh const faMesh& mesh_; - // Private Member Functions - - //- No copy construct - convectionScheme(const convectionScheme&) = delete; - - //- No copy assignment - void operator=(const convectionScheme&) = delete; - - public: // Declare run-time constructor selection tables @@ -99,6 +90,15 @@ public: ); + // Generated Methods + + //- No copy construct + convectionScheme(const convectionScheme&) = delete; + + //- No copy assignment + void operator=(const convectionScheme&) = delete; + + // Constructors //- Construct from mesh, flux and Istream @@ -130,10 +130,7 @@ public: // Member Functions //- Return mesh reference - const faMesh& mesh() const - { - return mesh_; - } + const faMesh& mesh() const noexcept { return mesh_; } virtual tmp<GeometricField<Type, faePatchField, edgeMesh>> flux ( diff --git a/src/finiteArea/finiteArea/convectionSchemes/gaussFaConvectionScheme/gaussFaConvectionScheme.H b/src/finiteArea/finiteArea/convectionSchemes/gaussFaConvectionScheme/gaussFaConvectionScheme.H index be22ae9dbc1c689226ee67302eed430d168ee2b1..b3b46da0f96a395ea97364839d9f9e70e50375f7 100644 --- a/src/finiteArea/finiteArea/convectionSchemes/gaussFaConvectionScheme/gaussFaConvectionScheme.H +++ b/src/finiteArea/finiteArea/convectionSchemes/gaussFaConvectionScheme/gaussFaConvectionScheme.H @@ -60,12 +60,19 @@ class gaussConvectionScheme : public fa::convectionScheme<Type> { - // Private data + // Private Data + //- Edge-interpolation scheme tmp<edgeInterpolationScheme<Type>> tinterpScheme_; - // Private Member Functions +public: + + //- Runtime type information + TypeName("Gauss"); + + + // Generated Methods //- No copy construct gaussConvectionScheme(const gaussConvectionScheme&) = delete; @@ -74,12 +81,6 @@ class gaussConvectionScheme void operator=(const gaussConvectionScheme&) = delete; -public: - - //- Runtime type information - TypeName("Gauss"); - - // Constructors //- Construct from flux and interpolation scheme diff --git a/src/finiteArea/finiteArea/d2dt2Schemes/EulerFaD2dt2Scheme/EulerFaD2dt2Scheme.C b/src/finiteArea/finiteArea/d2dt2Schemes/EulerFaD2dt2Scheme/EulerFaD2dt2Scheme.C index 7327de14f5d74fcb8af0bbddcd6c437f125843a1..aeca2e05161f8d0fe3d2f0668ea26baaccdafb10 100644 --- a/src/finiteArea/finiteArea/d2dt2Schemes/EulerFaD2dt2Scheme/EulerFaD2dt2Scheme.C +++ b/src/finiteArea/finiteArea/d2dt2Schemes/EulerFaD2dt2Scheme/EulerFaD2dt2Scheme.C @@ -26,7 +26,6 @@ License \*---------------------------------------------------------------------------*/ #include "EulerFaD2dt2Scheme.H" -#include "facDiv.H" #include "faMatrices.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -72,21 +71,21 @@ EulerFaD2dt2Scheme<Type>::facD2dt2 scalar coefft = (deltaT + deltaT0)/(2*deltaT); scalar coefft00 = (deltaT + deltaT0)/(2*deltaT0); - IOobject d2dt2IOobject + const IOobject d2dt2IOobject ( - "d2dt2("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "d2dt2("+dt.name()+')', + { IOobject::REGISTER } + ) ); if (mesh().moving()) { - scalar halfRdeltaT2 = rDeltaT2.value()/2.0; + scalar halfRdeltaT2 = 0.5*rDeltaT2.value(); - scalarField SS0 = mesh().S() + mesh().S0(); - scalarField S0S00 = mesh().S0() + mesh().S00(); + scalarField SS0(mesh().S() + mesh().S0()); + scalarField S0S00(mesh().S0() + mesh().S00()); tmp<GeometricField<Type, faPatchField, areaMesh>> tdt2dt2 ( @@ -131,13 +130,13 @@ EulerFaD2dt2Scheme<Type>::facD2dt2 dimensionedScalar rDeltaT2 = 4.0/sqr(mesh().time().deltaT() + mesh().time().deltaT0()); - IOobject d2dt2IOobject + const IOobject d2dt2IOobject ( - "d2dt2("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "d2dt2("+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -149,10 +148,10 @@ EulerFaD2dt2Scheme<Type>::facD2dt2 if (mesh().moving()) { - scalar halfRdeltaT2 = rDeltaT2.value()/2.0; + scalar halfRdeltaT2 = 0.5*rDeltaT2.value(); - scalarField SS0 = mesh().S() + mesh().S0(); - scalarField S0S00 = mesh().S0() + mesh().S00(); + scalarField SS0(mesh().S() + mesh().S0()); + scalarField S0S00(mesh().S0() + mesh().S00()); return tmp<GeometricField<Type, faPatchField, areaMesh>> ( @@ -209,13 +208,13 @@ EulerFaD2dt2Scheme<Type>::facD2dt2 dimensionedScalar rDeltaT2 = 4.0/sqr(mesh().time().deltaT() + mesh().time().deltaT0()); - IOobject d2dt2IOobject + const IOobject d2dt2IOobject ( - "d2dt2("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "d2dt2("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -229,13 +228,15 @@ EulerFaD2dt2Scheme<Type>::facD2dt2 { scalar halfRdeltaT2 = 0.5*rDeltaT2.value(); - scalarField SS0rhoRho0 = - (mesh().S() + mesh().S0()) - *rho.value(); + scalarField SS0rhoRho0 + ( + (mesh().S() + mesh().S0())*rho.value() + ); - scalarField S0S00rho0Rho00 = - (mesh().S0() + mesh().S00()) - *rho.value(); + scalarField S0S00rho0Rho00 + ( + (mesh().S0() + mesh().S00())*rho.value() + ); return tmp<GeometricField<Type, faPatchField, areaMesh>> ( @@ -294,13 +295,13 @@ EulerFaD2dt2Scheme<Type>::facD2dt2 dimensionedScalar rDeltaT2 = 4.0/sqr(mesh().time().deltaT() + mesh().time().deltaT0()); - IOobject d2dt2IOobject + const IOobject d2dt2IOobject ( - "d2dt2("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "d2dt2("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -490,7 +491,6 @@ EulerFaD2dt2Scheme<Type>::famD2dt2 scalar halfRdeltaT2 = 0.5*rDeltaT2; scalarField SS0(mesh().S() + mesh().S0()); - scalarField S0S00(mesh().S0() + mesh().S00()); fam.diag() = rho.value()*(coefft*halfRdeltaT2)*SS0; diff --git a/src/finiteArea/finiteArea/d2dt2Schemes/EulerFaD2dt2Scheme/EulerFaD2dt2Scheme.H b/src/finiteArea/finiteArea/d2dt2Schemes/EulerFaD2dt2Scheme/EulerFaD2dt2Scheme.H index f25ca65a793220c7c685e88ce464e6ddc116c35c..584114c2fa4a61fd84b6b7a5aa0d59edb1abd104 100644 --- a/src/finiteArea/finiteArea/d2dt2Schemes/EulerFaD2dt2Scheme/EulerFaD2dt2Scheme.H +++ b/src/finiteArea/finiteArea/d2dt2Schemes/EulerFaD2dt2Scheme/EulerFaD2dt2Scheme.H @@ -67,12 +67,6 @@ class EulerFaD2dt2Scheme //- Return the previous time-step scalar deltaT0_() const; - //- No copy construct - EulerFaD2dt2Scheme(const EulerFaD2dt2Scheme&) = delete; - - //- No copy assignment - void operator=(const EulerFaD2dt2Scheme&) = delete; - public: @@ -80,6 +74,15 @@ public: TypeName("Euler"); + // Generated Methods + + //- No copy construct + EulerFaD2dt2Scheme(const EulerFaD2dt2Scheme&) = delete; + + //- No copy assignment + void operator=(const EulerFaD2dt2Scheme&) = delete; + + // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/d2dt2Schemes/faD2dt2Scheme/faD2dt2Scheme.C b/src/finiteArea/finiteArea/d2dt2Schemes/faD2dt2Scheme/faD2dt2Scheme.C index 2f33acefcf46fbd8f1dc91f47bfbf3d2e13c2648..76a5c8b615acba6505cd5d2ad9f7487557532438 100644 --- a/src/finiteArea/finiteArea/d2dt2Schemes/faD2dt2Scheme/faD2dt2Scheme.C +++ b/src/finiteArea/finiteArea/d2dt2Schemes/faD2dt2Scheme/faD2dt2Scheme.C @@ -24,13 +24,9 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. -Description - Abstract base class for finite area d2dt2 schemes. - \*---------------------------------------------------------------------------*/ #include "fa.H" -#include "HashTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/d2dt2Schemes/faD2dt2Scheme/faD2dt2Scheme.H b/src/finiteArea/finiteArea/d2dt2Schemes/faD2dt2Scheme/faD2dt2Scheme.H index 1b679b5f7ea232a29ceb48d522aab4ba2cdb9198..9d040c4062fc1db43fd9eae057cf99227d610ec2 100644 --- a/src/finiteArea/finiteArea/d2dt2Schemes/faD2dt2Scheme/faD2dt2Scheme.H +++ b/src/finiteArea/finiteArea/d2dt2Schemes/faD2dt2Scheme/faD2dt2Scheme.H @@ -37,11 +37,9 @@ SourceFiles #ifndef faD2dt2Scheme_H #define faD2dt2Scheme_H -#include "tmp.H" #include "dimensionedType.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" -#include "typeInfo.H" #include "runTimeSelectionTables.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -49,6 +47,7 @@ SourceFiles namespace Foam { +// Forward Declarations template<class Type> class faMatrix; @@ -68,23 +67,14 @@ class faD2dt2Scheme : public refCount { - protected: - // Protected data + // Protected Data + //- Reference to mesh const faMesh& mesh_; - // Private Member Functions - - //- No copy construct - faD2dt2Scheme(const faD2dt2Scheme&) = delete; - - //- No copy assignment - void operator=(const faD2dt2Scheme&) = delete; - - public: //- Runtime type information @@ -103,6 +93,15 @@ public: ); + // Generated Methods + + //- No copy construct + faD2dt2Scheme(const faD2dt2Scheme&) = delete; + + //- No copy assignment + void operator=(const faD2dt2Scheme&) = delete; + + // Constructors //- Construct from mesh @@ -135,10 +134,7 @@ public: // Member Functions //- Return mesh reference - const faMesh& mesh() const - { - return mesh_; - } + const faMesh& mesh() const noexcept { return mesh_; } virtual tmp<GeometricField<Type, faPatchField, areaMesh>> facD2dt2 ( diff --git a/src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.C b/src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.C index 8b9c8e9fac29ddb157935cc5472399266879d0d6..3359014fe4bc3264b4c33d865cd1362c89f5198e 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.C +++ b/src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.C @@ -26,7 +26,6 @@ License \*---------------------------------------------------------------------------*/ #include "EulerFaDdtScheme.H" -#include "facDiv.H" #include "faMatrices.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -50,13 +49,13 @@ EulerFaDdtScheme<Type>::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+dt.name()+')', + { IOobject::REGISTER } + ) ); if (mesh().moving()) @@ -97,13 +96,13 @@ EulerFaDdtScheme<Type>::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+dt.name()+')', + { IOobject::REGISTER } + ) ); tmp<GeometricField<Type, faPatchField, areaMesh>> tdtdt0 @@ -135,13 +134,13 @@ EulerFaDdtScheme<Type>::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+vf.name()+')', + { IOobject::REGISTER } + ) ); if (mesh().moving()) @@ -188,13 +187,13 @@ EulerFaDdtScheme<Type>::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+vf.name()+')', + { IOobject::REGISTER } + ) ); if (mesh().moving()) @@ -235,13 +234,13 @@ EulerFaDdtScheme<Type>::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); if (mesh().moving()) @@ -288,13 +287,13 @@ EulerFaDdtScheme<Type>::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); if (mesh().moving()) @@ -337,13 +336,13 @@ EulerFaDdtScheme<Type>::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); if (mesh().moving()) @@ -394,13 +393,13 @@ EulerFaDdtScheme<Type>::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); if (mesh().moving()) diff --git a/src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.H b/src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.H index 6d0d96c1405954c3589554ddf11e97e12a60913a..834cc62a23ed8072feaf224e37dd4a6b5e5c0083 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.H +++ b/src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.H @@ -59,7 +59,13 @@ class EulerFaDdtScheme : public fa::faDdtScheme<Type> { - // Private Member Functions +public: + + //- Runtime type information + TypeName("Euler"); + + + // Generated Methods //- No copy construct EulerFaDdtScheme(const EulerFaDdtScheme&) = delete; @@ -68,12 +74,6 @@ class EulerFaDdtScheme void operator=(const EulerFaDdtScheme&) = delete; -public: - - //- Runtime type information - TypeName("Euler"); - - // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.C b/src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.C index 01c0576d719147358950f95db7768d6dd7e24de8..457e744df21b6d2b5d59f51fa8a1dd14455c1539 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.C +++ b/src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.C @@ -26,7 +26,6 @@ License \*---------------------------------------------------------------------------*/ #include "backwardFaDdtScheme.H" -#include "facDiv.H" #include "faMatrices.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -81,13 +80,13 @@ backwardFaDdtScheme<Type>::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+dt.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -136,13 +135,13 @@ backwardFaDdtScheme<Type>::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+dt.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -183,13 +182,13 @@ backwardFaDdtScheme<Type>::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -256,13 +255,13 @@ backwardFaDdtScheme<Type>::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -327,13 +326,13 @@ backwardFaDdtScheme<Type>::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -400,13 +399,13 @@ backwardFaDdtScheme<Type>::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -471,13 +470,13 @@ backwardFaDdtScheme<Type>::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -548,13 +547,13 @@ backwardFaDdtScheme<Type>::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); diff --git a/src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.H b/src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.H index e2bff70518868c7725e05c45cb195c6bc8179898..54fcb89e4e99955df90209281b8f9372d254b2dc 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.H +++ b/src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.H @@ -72,12 +72,6 @@ class backwardFaDdtScheme template<class GeoField> scalar deltaT0_(const GeoField&) const; - //- No copy construct - backwardFaDdtScheme(const backwardFaDdtScheme&) = delete; - - //- No copy assignment - void operator=(const backwardFaDdtScheme&) = delete; - public: @@ -85,6 +79,15 @@ public: TypeName("backward"); + // Generated Methods + + //- No copy construct + backwardFaDdtScheme(const backwardFaDdtScheme&) = delete; + + //- No copy assignment + void operator=(const backwardFaDdtScheme&) = delete; + + // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.C b/src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.C index b63446ae20b4094952fae2768f6486a9f23a57da..2e41f5289713b63596bf10c18be870734345f863 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.C +++ b/src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.C @@ -26,7 +26,6 @@ License \*---------------------------------------------------------------------------*/ #include "boundedBackwardFaDdtScheme.H" -#include "facDiv.H" #include "faMatrices.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -64,13 +63,13 @@ tmp<areaScalarField> boundedBackwardFaDdtScheme::facDdt dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+dt.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -119,13 +118,13 @@ tmp<areaScalarField> boundedBackwardFaDdtScheme::facDdt0 dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+dt.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -164,13 +163,13 @@ tmp<areaScalarField> boundedBackwardFaDdtScheme::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -261,13 +260,13 @@ tmp<areaScalarField> boundedBackwardFaDdtScheme::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -356,13 +355,13 @@ tmp<areaScalarField> boundedBackwardFaDdtScheme::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -453,13 +452,13 @@ tmp<areaScalarField> boundedBackwardFaDdtScheme::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -548,13 +547,13 @@ tmp<areaScalarField> boundedBackwardFaDdtScheme::facDdt { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); @@ -649,13 +648,13 @@ tmp<areaScalarField> boundedBackwardFaDdtScheme::facDdt0 { dimensionedScalar rDeltaT = 1.0/mesh().time().deltaT(); - IOobject ddtIOobject + const IOobject ddtIOobject ( - "ddt0("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb(), - IOobject::NO_READ, - IOobject::NO_WRITE + mesh().thisDb().newIOobject + ( + "ddt0("+rho.name()+','+vf.name()+')', + { IOobject::REGISTER } + ) ); scalar deltaT = deltaT_(); diff --git a/src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.H b/src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.H index 02163a746be1ac4a0befd31e91fc23df5e88df39..f778368530a17784fd1835fd6bfeb8fe35fc3b8e 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.H +++ b/src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.H @@ -76,13 +76,19 @@ class boundedBackwardFaDdtScheme { return GREAT; } - else - { - return deltaT0_(); - } + + return deltaT0_(); } +public: + + //- Runtime type information + TypeName("boundedBackward"); + + + // Generated Methods + //- No copy construct boundedBackwardFaDdtScheme(const boundedBackwardFaDdtScheme&) = delete; @@ -90,12 +96,6 @@ class boundedBackwardFaDdtScheme void operator=(const boundedBackwardFaDdtScheme&) = delete; -public: - - //- Runtime type information - TypeName("boundedBackward"); - - // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.C b/src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.C index 9c18bf8f16cb844c3cb2406c95f68ef963eed936..d8f2c6550568cae43fe5da3a2082e9fc881654d0 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.C +++ b/src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.C @@ -27,7 +27,6 @@ License \*---------------------------------------------------------------------------*/ #include "fa.H" -#include "HashTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.H b/src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.H index 3415c5332e504da32faec6b90b42d7897cfb043d..1cbaa58008fbe814dff19df2776cddc35a38132f 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.H +++ b/src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.H @@ -37,11 +37,9 @@ SourceFiles #ifndef faDdtScheme_H #define faDdtScheme_H -#include "tmp.H" #include "dimensionedType.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" -#include "typeInfo.H" #include "runTimeSelectionTables.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -49,6 +47,7 @@ SourceFiles namespace Foam { +// Forward Declarations template<class Type> class faMatrix; @@ -68,23 +67,14 @@ class faDdtScheme : public refCount { - protected: - // Protected data + // Protected Data + //- Reference to mesh const faMesh& mesh_; - // Private Member Functions - - //- No copy construct - faDdtScheme(const faDdtScheme&) = delete; - - //- No copy assignment - void operator=(const faDdtScheme&) = delete; - - public: //- Runtime type information @@ -103,6 +93,15 @@ public: ); + // Generated Methods + + //- No copy construct + faDdtScheme(const faDdtScheme&) = delete; + + //- No copy assignment + void operator=(const faDdtScheme&) = delete; + + // Constructors //- Construct from mesh @@ -135,10 +134,7 @@ public: // Member Functions //- Return mesh reference - const faMesh& mesh() const - { - return mesh_; - } + const faMesh& mesh() const noexcept { return mesh_; } virtual tmp<GeometricField<Type, faPatchField, areaMesh>> facDdt ( diff --git a/src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.C b/src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.C index d430680d880aeecced441eb6fc6c7147a27bf460..c562a9b2401f63c55ba24dbd8b639de583da9590 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.C +++ b/src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.C @@ -48,16 +48,13 @@ steadyStateFaDdtScheme<Type>::facDdt const dimensioned<Type> dt ) { - return tmp<GeometricField<Type, faPatchField, areaMesh>>::New + return GeometricField<Type, faPatchField, areaMesh>::New ( - IOobject - ( - "ddt("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb() - ), + "ddt("+dt.name()+')', + IOobject::REGISTER, mesh(), - dimensioned<Type>(dt.dimensions()/dimTime, Zero) + Foam::zero{}, + dt.dimensions()/dimTime ); } @@ -69,16 +66,13 @@ steadyStateFaDdtScheme<Type>::facDdt0 const dimensioned<Type> dt ) { - return tmp<GeometricField<Type, faPatchField, areaMesh>>::New + return GeometricField<Type, faPatchField, areaMesh>::New ( - IOobject - ( - "ddt("+dt.name()+')', - mesh().time().timeName(), - mesh().thisDb() - ), + "ddt("+dt.name()+')', + IOobject::REGISTER, mesh(), - dimensioned<Type>(dt.dimensions()/dimTime, Zero) + Foam::zero{}, + dt.dimensions()/dimTime ); } @@ -90,16 +84,13 @@ steadyStateFaDdtScheme<Type>::facDdt const GeometricField<Type, faPatchField, areaMesh>& vf ) { - return tmp<GeometricField<Type, faPatchField, areaMesh>>::New + return GeometricField<Type, faPatchField, areaMesh>::New ( - IOobject - ( - "ddt("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb() - ), + "ddt("+vf.name()+')', + IOobject::REGISTER, mesh(), - dimensioned<Type>(vf.dimensions()/dimTime, Zero) + Foam::zero{}, + vf.dimensions()/dimTime ); } @@ -111,16 +102,13 @@ steadyStateFaDdtScheme<Type>::facDdt0 const GeometricField<Type, faPatchField, areaMesh>& vf ) { - return tmp<GeometricField<Type, faPatchField, areaMesh>>::New + return GeometricField<Type, faPatchField, areaMesh>::New ( - IOobject - ( - "ddt0("+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb() - ), + "ddt0("+vf.name()+')', + IOobject::REGISTER, mesh(), - dimensioned<Type>(vf.dimensions()/dimTime, Zero) + Foam::zero{}, + vf.dimensions()/dimTime ); } @@ -133,16 +121,13 @@ steadyStateFaDdtScheme<Type>::facDdt const GeometricField<Type, faPatchField, areaMesh>& vf ) { - return tmp<GeometricField<Type, faPatchField, areaMesh>>::New + return GeometricField<Type, faPatchField, areaMesh>::New ( - IOobject - ( - "ddt("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb() - ), + "ddt("+rho.name()+','+vf.name()+')', + IOobject::REGISTER, mesh(), - dimensioned<Type>(rho.dimensions()*vf.dimensions()/dimTime, Zero) + Foam::zero{}, + rho.dimensions()*vf.dimensions()/dimTime ); } @@ -154,16 +139,13 @@ steadyStateFaDdtScheme<Type>::facDdt0 const GeometricField<Type, faPatchField, areaMesh>& vf ) { - return tmp<GeometricField<Type, faPatchField, areaMesh>>::New + return GeometricField<Type, faPatchField, areaMesh>::New ( - IOobject - ( - "ddt0("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb() - ), + "ddt0("+rho.name()+','+vf.name()+')', + IOobject::REGISTER, mesh(), - dimensioned<Type>(rho.dimensions()*vf.dimensions()/dimTime, Zero) + Foam::zero{}, + rho.dimensions()*vf.dimensions()/dimTime ); } @@ -176,16 +158,13 @@ steadyStateFaDdtScheme<Type>::facDdt const GeometricField<Type, faPatchField, areaMesh>& vf ) { - return tmp<GeometricField<Type, faPatchField, areaMesh>>::New + return GeometricField<Type, faPatchField, areaMesh>::New ( - IOobject - ( - "ddt("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb() - ), + "ddt("+rho.name()+','+vf.name()+')', + IOobject::REGISTER, mesh(), - dimensioned<Type>(rho.dimensions()*vf.dimensions()/dimTime, Zero) + Foam::zero{}, + rho.dimensions()*vf.dimensions()/dimTime ); } @@ -198,16 +177,13 @@ steadyStateFaDdtScheme<Type>::facDdt0 const GeometricField<Type, faPatchField, areaMesh>& vf ) { - return tmp<GeometricField<Type, faPatchField, areaMesh>>::New + return GeometricField<Type, faPatchField, areaMesh>::New ( - IOobject - ( - "ddt0("+rho.name()+','+vf.name()+')', - mesh().time().timeName(), - mesh().thisDb() - ), + "ddt0("+rho.name()+','+vf.name()+')', + IOobject::REGISTER, mesh(), - dimensioned<Type>(rho.dimensions()*vf.dimensions()/dimTime, Zero) + Foam::zero{}, + rho.dimensions()*vf.dimensions()/dimTime ); } diff --git a/src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.H b/src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.H index af83dcc556cd5f9cbb8d02a01a00d7b45e7aefd9..48704d0d192c0b8f7ee6db32c2a78cdbd5ded426 100644 --- a/src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.H +++ b/src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.H @@ -58,7 +58,13 @@ class steadyStateFaDdtScheme : public fa::faDdtScheme<Type> { - // Private Member Functions +public: + + //- Runtime type information + TypeName("steadyState"); + + + // Generated Methods //- No copy construct steadyStateFaDdtScheme(const steadyStateFaDdtScheme&) = delete; @@ -67,12 +73,6 @@ class steadyStateFaDdtScheme void operator=(const steadyStateFaDdtScheme&) = delete; -public: - - //- Runtime type information - TypeName("steadyState"); - - // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.C b/src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.C index 6d85dfafd9b09ec162499269709a87872e4197c1..d2fdc7ca4340634e243c74356b0dcedf00bff7a6 100644 --- a/src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.C +++ b/src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.C @@ -27,8 +27,6 @@ License \*---------------------------------------------------------------------------*/ #include "fa.H" -#include "HashTable.H" -#include "linearEdgeInterpolation.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.H b/src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.H index 47414a91231ad19cf6aff89bf50e02f4606b3131..8fac369c6aaad11c53f09f9a2f8959ab4870e8cc 100644 --- a/src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.H +++ b/src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.H @@ -38,11 +38,9 @@ SourceFiles #ifndef Foam_faDivScheme_H #define Foam_faDivScheme_H -#include "tmp.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" #include "linearEdgeInterpolation.H" -#include "typeInfo.H" #include "runTimeSelectionTables.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -72,20 +70,13 @@ protected: // Protected Data + //- Reference to mesh const faMesh& mesh_; + //- Edge interpolation scheme tmp<edgeInterpolationScheme<Type>> tinterpScheme_; - // Private Member Functions - - //- No copy construct - divScheme(const divScheme&) = delete; - - //- No copy assignment - void operator=(const divScheme&) = delete; - - public: // Declare run-time constructor selection tables @@ -100,6 +91,15 @@ public: ); + // Generated Methods + + //- No copy construct + divScheme(const divScheme&) = delete; + + //- No copy assignment + void operator=(const divScheme&) = delete; + + // Constructors //- Construct from mesh @@ -148,10 +148,7 @@ public: // Member Functions //- Return mesh reference - const faMesh& mesh() const - { - return mesh_; - } + const faMesh& mesh() const noexcept { return mesh_; } virtual tmp < diff --git a/src/finiteArea/finiteArea/divSchemes/gaussFaDivScheme/gaussFaDivScheme.H b/src/finiteArea/finiteArea/divSchemes/gaussFaDivScheme/gaussFaDivScheme.H index 98e834128fec5c4f7643625a0af22e8ab2c9598d..7217f80acc2506033cffe7acb5699569062b5a8d 100644 --- a/src/finiteArea/finiteArea/divSchemes/gaussFaDivScheme/gaussFaDivScheme.H +++ b/src/finiteArea/finiteArea/divSchemes/gaussFaDivScheme/gaussFaDivScheme.H @@ -59,7 +59,13 @@ class gaussDivScheme : public fa::divScheme<Type> { - // Private Member Functions +public: + + //- Runtime type information + TypeName("Gauss"); + + + // Generated Methods //- No copy construct gaussDivScheme(const gaussDivScheme&) = delete; @@ -68,12 +74,6 @@ class gaussDivScheme void operator=(const gaussDivScheme&) = delete; -public: - - //- Runtime type information - TypeName("Gauss"); - - // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/faSchemes/faSchemes.H b/src/finiteArea/finiteArea/faSchemes/faSchemes.H index 8647069ad3c13e8883eacda1890341bc345f105b..0d666c3c968ca44bc476c99c96f48512b0c090d4 100644 --- a/src/finiteArea/finiteArea/faSchemes/faSchemes.H +++ b/src/finiteArea/finiteArea/faSchemes/faSchemes.H @@ -61,11 +61,13 @@ class faSchemes { public: - //- No copy construct - faSchemes(const faSchemes&) = delete; + // Generated Methods - //- No copy assignment - void operator=(const faSchemes&) = delete; + //- No copy construct + faSchemes(const faSchemes&) = delete; + + //- No copy assignment + void operator=(const faSchemes&) = delete; // Constructors diff --git a/src/finiteArea/finiteArea/fac/facAverage.H b/src/finiteArea/finiteArea/fac/facAverage.H index 5ff0a1993af14114a13ccc8d68d649e674c53d12..1aac0cdb2728235835baa8b8c247ae3dfe5e4f8f 100644 --- a/src/finiteArea/finiteArea/fac/facAverage.H +++ b/src/finiteArea/finiteArea/fac/facAverage.H @@ -34,7 +34,6 @@ SourceFiles \*---------------------------------------------------------------------------*/ - #ifndef facAverage_H #define facAverage_H diff --git a/src/finiteArea/finiteArea/fac/facDdt.H b/src/finiteArea/finiteArea/fac/facDdt.H index 64c6d35d7605cf9bea99fbf7bc2b2e54f9e0e5af..2b9c872477b36a1673f6d4fcaaf655b1dcc0062f 100644 --- a/src/finiteArea/finiteArea/fac/facDdt.H +++ b/src/finiteArea/finiteArea/fac/facDdt.H @@ -37,7 +37,6 @@ Author \*---------------------------------------------------------------------------*/ - #ifndef facDdt_H #define facDdt_H diff --git a/src/finiteArea/finiteArea/fac/facDiv.H b/src/finiteArea/finiteArea/fac/facDiv.H index d98e2d4ca7b0e28ac0caf7d5f16fdcbcdbb9a237..b3f4ecadba7581ae4eaa51754c4849e9b819c635 100644 --- a/src/finiteArea/finiteArea/fac/facDiv.H +++ b/src/finiteArea/finiteArea/fac/facDiv.H @@ -34,7 +34,6 @@ SourceFiles \*---------------------------------------------------------------------------*/ - #ifndef facDiv_H #define facDiv_H diff --git a/src/finiteArea/finiteArea/fac/facEdgeIntegrate.H b/src/finiteArea/finiteArea/fac/facEdgeIntegrate.H index d7acc4231c2fcaa1a4c234416605770ce7965f94..b9a1d887c7a1ad498e7d24f591df599b6d9b2c76 100644 --- a/src/finiteArea/finiteArea/fac/facEdgeIntegrate.H +++ b/src/finiteArea/finiteArea/fac/facEdgeIntegrate.H @@ -35,7 +35,6 @@ SourceFiles \*---------------------------------------------------------------------------*/ - #ifndef facEdgeIntegrate_H #define facEdgeIntegrate_H diff --git a/src/finiteArea/finiteArea/fac/facGrad.H b/src/finiteArea/finiteArea/fac/facGrad.H index 29c9d4ef0c8b4d3d864be1625702014bac3d1f1b..89e60708343309da5288feacb7460ecad3b7f8e4 100644 --- a/src/finiteArea/finiteArea/fac/facGrad.H +++ b/src/finiteArea/finiteArea/fac/facGrad.H @@ -34,7 +34,6 @@ SourceFiles \*---------------------------------------------------------------------------*/ - #ifndef facGrad_H #define facGrad_H diff --git a/src/finiteArea/finiteArea/fac/facLaplacian.H b/src/finiteArea/finiteArea/fac/facLaplacian.H index 0e29d7c97dbdb274a6c5845f222f21e6afa57c98..53697dcdce6a9461904fab99a9b53c7568824a2b 100644 --- a/src/finiteArea/finiteArea/fac/facLaplacian.H +++ b/src/finiteArea/finiteArea/fac/facLaplacian.H @@ -34,7 +34,6 @@ SourceFiles \*---------------------------------------------------------------------------*/ - #ifndef facLaplacian_H #define facLaplacian_H diff --git a/src/finiteArea/finiteArea/fac/facLnGrad.H b/src/finiteArea/finiteArea/fac/facLnGrad.H index 8a136ed844aab1d6a7eeba5bfb4e7bca9c0bc6a7..cfc3cbb11182a64dafbc14e0d9bfe31693fcf993 100644 --- a/src/finiteArea/finiteArea/fac/facLnGrad.H +++ b/src/finiteArea/finiteArea/fac/facLnGrad.H @@ -34,7 +34,6 @@ SourceFiles \*---------------------------------------------------------------------------*/ - #ifndef facLnGrad_H #define facLnGrad_H diff --git a/src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.C b/src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.C index 597355f7147a9c85d94e382339238fbefcf1b15c..e008472d0b464883efb47cff0a988c71b67723d8 100644 --- a/src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.C +++ b/src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.C @@ -27,7 +27,6 @@ License \*---------------------------------------------------------------------------*/ #include "fa.H" -#include "HashTable.H" #include "objectRegistry.H" #include "solution.H" diff --git a/src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.H b/src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.H index e6f2bac9c1eb773d2885a0ce87dead960037651b..9cd17ef905eca93c73fc1587ef147f3e8d88c13f 100644 --- a/src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.H +++ b/src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.H @@ -39,17 +39,15 @@ SourceFiles #ifndef faGradScheme_H #define faGradScheme_H -#include "tmp.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" -#include "typeInfo.H" -#include "runTimeSelectionTables.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { +// Forward Declarations class faMesh; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -66,20 +64,12 @@ class gradScheme : public refCount { - // Private data + // Private Data + //- Reference to mesh const faMesh& mesh_; - // Private Member Functions - - //- No copy construct - gradScheme(const gradScheme&) = delete; - - //- No copy assignment - void operator=(const gradScheme&) = delete; - - public: // Declare run-time constructor selection tables @@ -94,6 +84,15 @@ public: ); + // Generated Methods + + //- No copy construct + gradScheme(const gradScheme&) = delete; + + //- No copy assignment + void operator=(const gradScheme&) = delete; + + // Constructors //- Construct from mesh @@ -120,7 +119,7 @@ public: // Member Functions //- Return mesh reference - const faMesh& mesh() const { return mesh_; } + const faMesh& mesh() const noexcept { return mesh_; } //- Calculate and return the grad of the given field. // Used by grad either to recalculate the cached gradient when it is diff --git a/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.C b/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.C index af88fa2cf92cf63c90af1f84b4e978ec3b08a305..f83661c1bd05e2273a018bdc101827273fd1ab79 100644 --- a/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.C +++ b/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.C @@ -28,8 +28,6 @@ License #include "gaussFaGrad.H" #include "facGrad.H" -#include "areaFields.H" -#include "edgeFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.H b/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.H index 59fc08d91d46ff7e2b5f16808fdcbf86f5189d37..9b008cabed64610e0fb0fe8403b7f62f904cccd8 100644 --- a/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.H +++ b/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.H @@ -69,7 +69,13 @@ class gaussGrad tmp<edgeInterpolationScheme<Type>> tinterpScheme_; - // Private Member Functions +public: + + //- Runtime type information + TypeName("Gauss"); + + + // Generated Methods //- No copy construct gaussGrad(const gaussGrad&) = delete; @@ -78,12 +84,6 @@ class gaussGrad void operator=(const gaussGrad&) = delete; -public: - - //- Runtime type information - TypeName("Gauss"); - - // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrads.C b/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrads.C index 7780036413cbe893b8139925aebb6645a0cdd522..479ec97c5ac1e45a6ce64f47ce8fb1fe141f2fb3 100644 --- a/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrads.C +++ b/src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrads.C @@ -26,7 +26,6 @@ License \*---------------------------------------------------------------------------*/ #include "gaussFaGrad.H" -#include "faMesh.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C index ea983b89750369520d4cd6eeb121964eac4786ff..118c60e9f2cd367e3b493a31ba36e86e5c8d3345 100644 --- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C +++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C @@ -29,11 +29,6 @@ License #include "leastSquaresFaGrad.H" #include "leastSquaresFaVectors.H" #include "gaussFaGrad.H" -#include "faMesh.H" -#include "areaFaMesh.H" -#include "edgeFaMesh.H" -#include "GeometricField.H" -#include "zeroGradientFaPatchField.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -96,10 +91,10 @@ leastSquaresFaGrad<Type>::calcGrad forAll(own, edgei) { - label ownEdgeI = own[edgei]; - label neiEdgeI = nei[edgei]; + const label ownEdgeI = own[edgei]; + const label neiEdgeI = nei[edgei]; - Type deltaVsf = vsf[neiEdgeI] - vsf[ownEdgeI]; + const Type deltaVsf(vsf[neiEdgeI] - vsf[ownEdgeI]); lsGrad[ownEdgeI] += ownLs[edgei]*deltaVsf; lsGrad[neiEdgeI] -= neiLs[edgei]*deltaVsf; @@ -108,35 +103,23 @@ leastSquaresFaGrad<Type>::calcGrad // Boundary edges forAll(vsf.boundaryField(), patchi) { - const faePatchVectorField& patchOwnLs = ownLs.boundaryField()[patchi]; + const faPatchField<Type>& bf = vsf.boundaryField()[patchi]; + const Field<Type>& vsfp = + ( + bf.coupled() + ? bf.patchNeighbourField().cref() + : const_cast<faPatchField<Type>&>(bf) + ); + + const faePatchVectorField& ownLsp = ownLs.boundaryField()[patchi]; const labelUList& edgeFaces = lsGrad.boundaryField()[patchi].patch().edgeFaces(); - if (vsf.boundaryField()[patchi].coupled()) - { - Field<Type> neiVsf - ( - vsf.boundaryField()[patchi].patchNeighbourField() - ); - - forAll(neiVsf, patchEdgeI) - { - lsGrad[edgeFaces[patchEdgeI]] += - patchOwnLs[patchEdgeI] - *(neiVsf[patchEdgeI] - vsf[edgeFaces[patchEdgeI]]); - } - } - else + forAll(vsfp, pEdgei) { - const faPatchField<Type>& patchVsf = vsf.boundaryField()[patchi]; - - forAll(patchVsf, patchEdgeI) - { - lsGrad[edgeFaces[patchEdgeI]] += - patchOwnLs[patchEdgeI] - *(patchVsf[patchEdgeI] - vsf[edgeFaces[patchEdgeI]]); - } + lsGrad[edgeFaces[pEdgei]] += + ownLsp[pEdgei]*(vsfp[pEdgei] - vsf[edgeFaces[pEdgei]]); } } diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.H b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.H index 1e3e518f76e9786bcf01da3ce8a2ff800cb44576..95612b12253399e84574b5c76509525ab2e746c5 100644 --- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.H +++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.H @@ -62,7 +62,13 @@ class leastSquaresFaGrad : public fa::gradScheme<Type> { - // Private Member Functions +public: + + //- Runtime type information + TypeName("leastSquares"); + + + // Generated Methods //- No copy construct leastSquaresFaGrad(const leastSquaresFaGrad&) = delete; @@ -71,12 +77,6 @@ class leastSquaresFaGrad void operator=(const leastSquaresFaGrad&) = delete; -public: - - //- Runtime type information - TypeName("leastSquares"); - - // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrads.C b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrads.C index b593bbde114dedbde4c8f0d5b5a731230f839f62..04927b53994f99c2c84ff50943ef0156076cb709 100644 --- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrads.C +++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrads.C @@ -25,7 +25,6 @@ License \*---------------------------------------------------------------------------*/ -#include "faMesh.H" #include "leastSquaresFaGrad.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C index 3421ea637968a7f2a22ed691b7494f15173d473f..f0718e17e182ead406236680cf5822aac5ee5c72 100644 --- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C +++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C @@ -29,7 +29,6 @@ License #include "leastSquaresFaVectors.H" #include "edgeFields.H" #include "areaFields.H" -#include "mapPolyMesh.H" #include "demandDrivenData.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -44,21 +43,10 @@ namespace Foam Foam::leastSquaresFaVectors::leastSquaresFaVectors(const faMesh& mesh) : - MeshObject<faMesh, Foam::MoveableMeshObject, leastSquaresFaVectors>(mesh), - pVectorsPtr_(nullptr), - nVectorsPtr_(nullptr) + MeshObject<faMesh, Foam::MoveableMeshObject, leastSquaresFaVectors>(mesh) {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::leastSquaresFaVectors::~leastSquaresFaVectors() -{ - deleteDemandDrivenData(pVectorsPtr_); - deleteDemandDrivenData(nVectorsPtr_); -} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // void Foam::leastSquaresFaVectors::makeLeastSquaresVectors() const @@ -67,7 +55,7 @@ void Foam::leastSquaresFaVectors::makeLeastSquaresVectors() const << "Constructing finite area (invDist) least square gradient vectors" << nl; - pVectorsPtr_ = new edgeVectorField + pVectorsPtr_ = std::make_unique<edgeVectorField> ( IOobject ( @@ -83,7 +71,7 @@ void Foam::leastSquaresFaVectors::makeLeastSquaresVectors() const ); auto& lsP = *pVectorsPtr_; - nVectorsPtr_ = new edgeVectorField + nVectorsPtr_ = std::make_unique<edgeVectorField> ( IOobject ( @@ -237,8 +225,8 @@ bool Foam::leastSquaresFaVectors::movePoints() DebugInFunction << "Clearing least square data" << nl; - deleteDemandDrivenData(pVectorsPtr_); - deleteDemandDrivenData(nVectorsPtr_); + pVectorsPtr_.reset(nullptr); + nVectorsPtr_.reset(nullptr); return true; } diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H index db963c6786fa5553dbd2c3011fb785b9f58f6df2..701dcf29aead100f6f3d3237791eee7b3af92f4d 100644 --- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H +++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H @@ -43,7 +43,6 @@ SourceFiles #include "MeshObject.H" #include "faMesh.H" #include "edgeFieldsFwd.H" -#include "labelPair.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -58,14 +57,14 @@ class leastSquaresFaVectors : public MeshObject<faMesh, Foam::MoveableMeshObject, leastSquaresFaVectors> { - // Private data + // Private Data //- Least-squares gradient vectors - mutable edgeVectorField* pVectorsPtr_; - mutable edgeVectorField* nVectorsPtr_; + mutable std::unique_ptr<edgeVectorField> pVectorsPtr_; + mutable std::unique_ptr<edgeVectorField> nVectorsPtr_; - // Private member functions + // Private Member Functions //- Construct Least-squares gradient vectors void makeLeastSquaresVectors() const; @@ -84,7 +83,7 @@ public: //- Destructor - virtual ~leastSquaresFaVectors(); + virtual ~leastSquaresFaVectors() = default; // Member functions diff --git a/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrad.H b/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrad.H index 1d4ca927fdfe61cdfebb273941d144916ad0d75d..4eef13831fa8447716c2ebf5b90631af3c0ba0dd 100644 --- a/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrad.H +++ b/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrad.H @@ -66,6 +66,7 @@ class edgeLimitedGrad { // Private Data + //- Basic gradient scheme tmp<fa::gradScheme<Type>> basicGradScheme_; //- Limiter coefficient @@ -83,6 +84,14 @@ class edgeLimitedGrad ) const; +public: + + //- RunTime type information + TypeName("edgeLimited"); + + + // Generated Methods + //- No copy construct edgeLimitedGrad(const edgeLimitedGrad&) = delete; @@ -90,12 +99,6 @@ class edgeLimitedGrad void operator=(const edgeLimitedGrad&) = delete; -public: - - //- RunTime type information - TypeName("edgeLimited"); - - // Constructors //- Construct from mesh and schemeData diff --git a/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrads.C b/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrads.C index d86270a326c1b718a69821a924142eb4dd4c2547..a68d4f63ec717ad2578af29e386c879b88dc9d5c 100644 --- a/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrads.C +++ b/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrads.C @@ -28,11 +28,6 @@ License #include "edgeLimitedFaGrad.H" #include "gaussFaGrad.H" -#include "faMesh.H" -#include "areaFaMesh.H" -#include "edgeFaMesh.H" -#include "areaFields.H" -#include "fixedValueFaPatchFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -96,22 +91,22 @@ tmp<areaVectorField> edgeLimitedGrad<scalar>::calcGrad const areaVectorField& C = mesh.areaCentres(); const edgeVectorField& Cf = mesh.edgeCentres(); - // create limiter + // Create limiter field scalarField limiter(vsf.internalField().size(), 1.0); - scalar rk = (1.0/k_ - 1.0); + const scalar rk = (1.0/k_ - 1.0); forAll(owner, edgei) { - label own = owner[edgei]; - label nei = neighbour[edgei]; + const label own = owner[edgei]; + const label nei = neighbour[edgei]; - scalar vsfOwn = vsf[own]; - scalar vsfNei = vsf[nei]; + const scalar vsfOwn = vsf[own]; + const scalar vsfNei = vsf[nei]; scalar maxEdge = max(vsfOwn, vsfNei); scalar minEdge = min(vsfOwn, vsfNei); - scalar maxMinEdge = rk*(maxEdge - minEdge); + const scalar maxMinEdge = rk*(maxEdge - minEdge); maxEdge += maxMinEdge; minEdge -= maxMinEdge; @@ -119,7 +114,8 @@ tmp<areaVectorField> edgeLimitedGrad<scalar>::calcGrad limitEdge ( limiter[own], - maxEdge - vsfOwn, minEdge - vsfOwn, + maxEdge - vsfOwn, + minEdge - vsfOwn, (Cf[edgei] - C[own]) & g[own] ); @@ -127,67 +123,53 @@ tmp<areaVectorField> edgeLimitedGrad<scalar>::calcGrad limitEdge ( limiter[nei], - maxEdge - vsfNei, minEdge - vsfNei, + maxEdge - vsfNei, + minEdge - vsfNei, (Cf[edgei] - C[nei]) & g[nei] ); } - const areaScalarField::Boundary& bsf = vsf.boundaryField(); + // Lambda expression to update limiter for boundary edges + auto updateLimiter = [&](const label patchi, const scalarField& fld) -> void + { + const labelUList& pOwner = mesh.boundary()[patchi].edgeFaces(); + const vectorField& pCf = Cf.boundaryField()[patchi]; + + forAll(pOwner, edgei) + { + const label own = pOwner[edgei]; + + const scalar vsfOwn = vsf[own]; + const scalar vsfNei = fld[edgei]; + + scalar maxEdge = max(vsfOwn, vsfNei); + scalar minEdge = min(vsfOwn, vsfNei); + const scalar maxMinEdge = rk*(maxEdge - minEdge); + maxEdge += maxMinEdge; + minEdge -= maxMinEdge; + + limitEdge + ( + limiter[own], + maxEdge - vsfOwn, + minEdge - vsfOwn, + (pCf[edgei] - C[own]) & g[own] + ); + } + }; + const areaScalarField::Boundary& bsf = vsf.boundaryField(); forAll(bsf, patchi) { const faPatchScalarField& psf = bsf[patchi]; - const labelUList& pOwner = mesh.boundary()[patchi].edgeFaces(); - const vectorField& pCf = Cf.boundaryField()[patchi]; - if (psf.coupled()) { - const scalarField psfNei(psf.patchNeighbourField()); - - forAll(pOwner, pEdgei) - { - label own = pOwner[pEdgei]; - - scalar vsfOwn = vsf[own]; - scalar vsfNei = psfNei[pEdgei]; - - scalar maxEdge = max(vsfOwn, vsfNei); - scalar minEdge = min(vsfOwn, vsfNei); - scalar maxMinEdge = rk*(maxEdge - minEdge); - maxEdge += maxMinEdge; - minEdge -= maxMinEdge; - - limitEdge - ( - limiter[own], - maxEdge - vsfOwn, minEdge - vsfOwn, - (pCf[pEdgei] - C[own]) & g[own] - ); - } + updateLimiter(patchi, psf.patchNeighbourField()); } else if (psf.fixesValue()) { - forAll(pOwner, pEdgei) - { - label own = pOwner[pEdgei]; - - scalar vsfOwn = vsf[own]; - scalar vsfNei = psf[pEdgei]; - - scalar maxEdge = max(vsfOwn, vsfNei); - scalar minEdge = min(vsfOwn, vsfNei); - scalar maxMinEdge = rk*(maxEdge - minEdge); - maxEdge += maxMinEdge; - minEdge -= maxMinEdge; - - limitEdge - ( - limiter[own], - maxEdge - vsfOwn, minEdge - vsfOwn, - (pCf[pEdgei] - C[own]) & g[own] - ); - } + updateLimiter(patchi, psf); } } @@ -231,35 +213,33 @@ tmp<areaTensorField> edgeLimitedGrad<vector>::calcGrad const areaVectorField& C = mesh.areaCentres(); const edgeVectorField& Cf = mesh.edgeCentres(); - // create limiter + // Create limiter scalarField limiter(vvf.internalField().size(), 1.0); - scalar rk = (1.0/k_ - 1.0); + const scalar rk = (1.0/k_ - 1.0); forAll(owner, edgei) { - label own = owner[edgei]; - label nei = neighbour[edgei]; - - vector vvfOwn = vvf[own]; - vector vvfNei = vvf[nei]; + const label own = owner[edgei]; + const label nei = neighbour[edgei]; // owner side - vector gradf = (Cf[edgei] - C[own]) & g[own]; + vector gradf((Cf[edgei] - C[own]) & g[own]); - scalar vsfOwn = gradf & vvfOwn; - scalar vsfNei = gradf & vvfNei; + scalar vsfOwn = gradf & vvf[own]; + scalar vsfNei = gradf & vvf[nei]; scalar maxEdge = max(vsfOwn, vsfNei); scalar minEdge = min(vsfOwn, vsfNei); - scalar maxMinEdge = rk*(maxEdge - minEdge); + const scalar maxMinEdge = rk*(maxEdge - minEdge); maxEdge += maxMinEdge; minEdge -= maxMinEdge; limitEdge ( limiter[own], - maxEdge - vsfOwn, minEdge - vsfOwn, + maxEdge - vsfOwn, + minEdge - vsfOwn, magSqr(gradf) ); @@ -267,8 +247,8 @@ tmp<areaTensorField> edgeLimitedGrad<vector>::calcGrad // neighbour side gradf = (Cf[edgei] - C[nei]) & g[nei]; - vsfOwn = gradf & vvfOwn; - vsfNei = gradf & vvfNei; + vsfOwn = gradf & vvf[own]; + vsfNei = gradf & vvf[nei]; maxEdge = max(vsfOwn, vsfNei); minEdge = min(vsfOwn, vsfNei); @@ -276,78 +256,57 @@ tmp<areaTensorField> edgeLimitedGrad<vector>::calcGrad limitEdge ( limiter[nei], - maxEdge - vsfNei, minEdge - vsfNei, + maxEdge - vsfNei, + minEdge - vsfNei, magSqr(gradf) ); } - const areaVectorField::Boundary& bvf = vvf.boundaryField(); - - forAll(bvf, patchi) + // Lambda expression to update limiter for boundary edges + auto updateLimiter = [&](const label patchi, const vectorField& fld) -> void { - const faPatchVectorField& psf = bvf[patchi]; - const labelUList& pOwner = mesh.boundary()[patchi].edgeFaces(); const vectorField& pCf = Cf.boundaryField()[patchi]; - if (psf.coupled()) + forAll(pOwner, edgei) { - const vectorField psfNei(psf.patchNeighbourField()); - - forAll(pOwner, pEdgei) - { - label own = pOwner[pEdgei]; - - vector vvfOwn = vvf[own]; - vector vvfNei = psfNei[pEdgei]; - - vector gradf = (pCf[pEdgei] - C[own]) & g[own]; + const label own = pOwner[edgei]; + + const vector gradf((pCf[edgei] - C[own]) & g[own]); + + const scalar vsfOwn = gradf & vvf[own]; + const scalar vsfNei = gradf & fld[edgei]; + + scalar maxEdge = max(vsfOwn, vsfNei); + scalar minEdge = min(vsfOwn, vsfNei); + const scalar maxMinEdge = rk*(maxEdge - minEdge); + maxEdge += maxMinEdge; + minEdge -= maxMinEdge; + + limitEdge + ( + limiter[own], + maxEdge - vsfOwn, + minEdge - vsfOwn, + magSqr(gradf) + ); + } + }; - scalar vsfOwn = gradf & vvfOwn; - scalar vsfNei = gradf & vvfNei; - scalar maxEdge = max(vsfOwn, vsfNei); - scalar minEdge = min(vsfOwn, vsfNei); - scalar maxMinEdge = rk*(maxEdge - minEdge); - maxEdge += maxMinEdge; - minEdge -= maxMinEdge; + const areaVectorField::Boundary& bvf = vvf.boundaryField(); + forAll(bvf, patchi) + { + const faPatchVectorField& psf = bvf[patchi]; - limitEdge - ( - limiter[own], - maxEdge - vsfOwn, minEdge - vsfOwn, - magSqr(gradf) - ); - } + if (psf.coupled()) + { + updateLimiter(patchi, psf.patchNeighbourField()); } else if (psf.fixesValue()) { - forAll(pOwner, pEdgei) - { - label own = pOwner[pEdgei]; - - vector vvfOwn = vvf[own]; - vector vvfNei = psf[pEdgei]; - - vector gradf = (pCf[pEdgei] - C[own]) & g[own]; - - scalar vsfOwn = gradf & vvfOwn; - scalar vsfNei = gradf & vvfNei; - - scalar maxEdge = max(vsfOwn, vsfNei); - scalar minEdge = min(vsfOwn, vsfNei); - scalar maxMinEdge = rk*(maxEdge - minEdge); - maxEdge += maxMinEdge; - minEdge -= maxMinEdge; - - limitEdge - ( - limiter[own], - maxEdge - vsfOwn, minEdge - vsfOwn, - magSqr(gradf) - ); - } + updateLimiter(patchi, psf); } } diff --git a/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrad.H b/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrad.H index 16f503326422caa36d639a7d22f15580f15941be..006280d2656d7a492bf7455c27756dab903742d3 100644 --- a/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrad.H +++ b/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrad.H @@ -69,13 +69,20 @@ class faceLimitedGrad { // Private Data + //- Basic gradient scheme tmp<fa::gradScheme<Type>> basicGradScheme_; //- Limiter coefficient scalar k_; - // Private Member Functions +public: + + //- RunTime type information + TypeName("faceLimited"); + + + // Generated Methods //- No copy construct faceLimitedGrad(const faceLimitedGrad&) = delete; @@ -84,12 +91,6 @@ class faceLimitedGrad void operator=(const faceLimitedGrad&) = delete; -public: - - //- RunTime type information - TypeName("faceLimited"); - - // Constructors //- Construct from mesh and schemeData diff --git a/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrads.C b/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrads.C index c32dda42fe48a3cab5dfcec663bb5a576b8a0b14..eb0cc9bcbd05eaf9f37004519f3e0f0d54db7ef6 100644 --- a/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrads.C +++ b/src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrads.C @@ -28,11 +28,6 @@ License #include "faceLimitedFaGrad.H" #include "gaussFaGrad.H" -#include "faMesh.H" -#include "areaFaMesh.H" -#include "edgeFaMesh.H" -#include "areaFields.H" -#include "fixedValueFaPatchFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -123,11 +118,11 @@ tmp<areaVectorField> faceLimitedGrad<scalar>::calcGrad forAll(owner, facei) { - label own = owner[facei]; - label nei = neighbour[facei]; + const label own = owner[facei]; + const label nei = neighbour[facei]; - scalar vsfOwn = vsf[own]; - scalar vsfNei = vsf[nei]; + const scalar vsfOwn = vsf[own]; + const scalar vsfNei = vsf[nei]; maxVsf[own] = max(maxVsf[own], vsfNei); minVsf[own] = min(minVsf[own], vsfNei); @@ -137,37 +132,33 @@ tmp<areaVectorField> faceLimitedGrad<scalar>::calcGrad } - const areaScalarField::Boundary& bsf = vsf.boundaryField(); + // Lambda expression to update limiter for boundary edges + auto updateLimiter = [&](const label patchi, const scalarField& fld) -> void + { + const labelUList& pOwner = mesh.boundary()[patchi].edgeFaces(); + + forAll(pOwner, facei) + { + const label own = pOwner[facei]; + const scalar vsf = fld[facei]; + + maxVsf[own] = max(maxVsf[own], vsf); + minVsf[own] = min(minVsf[own], vsf); + } + }; + const areaScalarField::Boundary& bsf = vsf.boundaryField(); forAll(bsf, patchi) { const faPatchScalarField& psf = bsf[patchi]; - const labelUList& pOwner = mesh.boundary()[patchi].edgeFaces(); - if (psf.coupled()) { - scalarField psfNei(psf.patchNeighbourField()); - - forAll(pOwner, pFacei) - { - label own = pOwner[pFacei]; - scalar vsfNei = psfNei[pFacei]; - - maxVsf[own] = max(maxVsf[own], vsfNei); - minVsf[own] = min(minVsf[own], vsfNei); - } + updateLimiter(patchi, psf.patchNeighbourField()); } else { - forAll(pOwner, pFacei) - { - label own = pOwner[pFacei]; - scalar vsfNei = psf[pFacei]; - - maxVsf[own] = max(maxVsf[own], vsfNei); - minVsf[own] = min(minVsf[own], vsfNei); - } + updateLimiter(patchi, psf); } } @@ -176,19 +167,19 @@ tmp<areaVectorField> faceLimitedGrad<scalar>::calcGrad if (k_ < 1.0) { - scalarField maxMinVsf((1.0/k_ - 1.0)*(maxVsf - minVsf)); + const scalarField maxMinVsf((1.0/k_ - 1.0)*(maxVsf - minVsf)); maxVsf += maxMinVsf; minVsf -= maxMinVsf; } - // create limiter + // Create limiter scalarField limiter(vsf.internalField().size(), 1.0); forAll(owner, facei) { - label own = owner[facei]; - label nei = neighbour[facei]; + const label own = owner[facei]; + const label nei = neighbour[facei]; // owner side limitEdge @@ -216,7 +207,7 @@ tmp<areaVectorField> faceLimitedGrad<scalar>::calcGrad forAll(pOwner, pFacei) { - label own = pOwner[pFacei]; + const label own = pOwner[pFacei]; limitEdge ( @@ -273,8 +264,8 @@ tmp<areaTensorField> faceLimitedGrad<vector>::calcGrad forAll(owner, facei) { - label own = owner[facei]; - label nei = neighbour[facei]; + const label own = owner[facei]; + const label nei = neighbour[facei]; const vector& vsfOwn = vsf[own]; const vector& vsfNei = vsf[nei]; @@ -287,36 +278,33 @@ tmp<areaTensorField> faceLimitedGrad<vector>::calcGrad } - const areaVectorField::Boundary& bsf = vsf.boundaryField(); + // Lambda expression to update limiter for boundary edges + auto updateLimiter = [&](const label patchi, const vectorField& fld) -> void + { + const labelUList& pOwner = mesh.boundary()[patchi].edgeFaces(); + forAll(pOwner, facei) + { + const label own = pOwner[facei]; + const vector& vsf = fld[facei]; + + maxVsf[own] = max(maxVsf[own], vsf); + minVsf[own] = min(minVsf[own], vsf); + } + }; + + const areaVectorField::Boundary& bsf = vsf.boundaryField(); forAll(bsf, patchi) { const faPatchVectorField& psf = bsf[patchi]; - const labelUList& pOwner = mesh.boundary()[patchi].edgeFaces(); if (psf.coupled()) { - vectorField psfNei(psf.patchNeighbourField()); - - forAll(pOwner, pFacei) - { - label own = pOwner[pFacei]; - const vector& vsfNei = psfNei[pFacei]; - - maxVsf[own] = max(maxVsf[own], vsfNei); - minVsf[own] = min(minVsf[own], vsfNei); - } + updateLimiter(patchi, psf.patchNeighbourField()); } else { - forAll(pOwner, pFacei) - { - label own = pOwner[pFacei]; - const vector& vsfNei = psf[pFacei]; - - maxVsf[own] = max(maxVsf[own], vsfNei); - minVsf[own] = min(minVsf[own], vsfNei); - } + updateLimiter(patchi, psf); } } @@ -325,7 +313,7 @@ tmp<areaTensorField> faceLimitedGrad<vector>::calcGrad if (k_ < 1.0) { - vectorField maxMinVsf((1.0/k_ - 1.0)*(maxVsf - minVsf)); + const vectorField maxMinVsf((1.0/k_ - 1.0)*(maxVsf - minVsf)); maxVsf += maxMinVsf; minVsf -= maxMinVsf; @@ -334,13 +322,13 @@ tmp<areaTensorField> faceLimitedGrad<vector>::calcGrad } - // create limiter + // Create limiter vectorField limiter(vsf.internalField().size(), vector::one); forAll(owner, facei) { - label own = owner[facei]; - label nei = neighbour[facei]; + const label own = owner[facei]; + const label nei = neighbour[facei]; // owner side limitEdge @@ -368,7 +356,7 @@ tmp<areaTensorField> faceLimitedGrad<vector>::calcGrad forAll(pOwner, pFacei) { - label own = pOwner[pFacei]; + const label own = pOwner[pFacei]; limitEdge ( diff --git a/src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.C b/src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.C index 821f2c74e3d79514f132f4309c2516c86f3d6d89..af560bc7dbd227ffe4c8e078b91cd8c056dc4a92 100644 --- a/src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.C +++ b/src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.C @@ -27,8 +27,6 @@ License \*---------------------------------------------------------------------------*/ #include "fa.H" -#include "HashTable.H" -#include "linearEdgeInterpolation.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.H b/src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.H index 009d2a8001487124a050166cfa0d7fd7176456b3..63c76b9f92f3ff85890340f6f4630dcbf2b99e0f 100644 --- a/src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.H +++ b/src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.H @@ -38,12 +38,9 @@ SourceFiles #ifndef Foam_faLaplacianScheme_H #define Foam_faLaplacianScheme_H -#include "tmp.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" -#include "linearEdgeInterpolation.H" #include "correctedLnGrad.H" -#include "typeInfo.H" #include "runTimeSelectionTables.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -79,15 +76,6 @@ protected: tmp<lnGradScheme<Type>> tlnGradScheme_; - // Private Member Functions - - //- No copy construct - laplacianScheme(const laplacianScheme&) = delete; - - //- No copy assignment - void operator=(const laplacianScheme&) = delete; - - public: // Declare run-time constructor selection tables @@ -102,6 +90,15 @@ public: ); + // Generated Methods + + //- No copy construct + laplacianScheme(const laplacianScheme&) = delete; + + //- No copy assignment + void operator=(const laplacianScheme&) = delete; + + // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C b/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C index 46e7d4bb4f3502bb177523dc985d30905cc2b5d1..b5236b2369e9787d3ef4f1d3bcc829751914c503 100644 --- a/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C +++ b/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C @@ -82,8 +82,10 @@ gaussLaplacianScheme<Type>::famLaplacian { if (this->mesh().fluxRequired(vf.name())) { - fam.faceFluxCorrectionPtr() = new - GeometricField<Type, faePatchField, edgeMesh> + fam.faceFluxCorrectionPtr() = std::make_unique + < + GeometricField<Type, faePatchField, edgeMesh> + > ( gammaMagSf*this->tlnGradScheme_().correction(vf) ); diff --git a/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.H b/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.H index 7da23957004659a9fae23dc5c21288ba1a016b4c..86130d54b5328efddfc0d84b7a18d0378ad2f5db 100644 --- a/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.H +++ b/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.H @@ -59,7 +59,13 @@ class gaussLaplacianScheme : public fa::laplacianScheme<Type> { - // Private Member Functions +public: + + //- Runtime type information + TypeName("Gauss"); + + + // Generated Methods //- No copy construct gaussLaplacianScheme(const gaussLaplacianScheme&) = delete; @@ -68,12 +74,6 @@ class gaussLaplacianScheme void operator=(const gaussLaplacianScheme&) = delete; -public: - - //- Runtime type information - TypeName("Gauss"); - - // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C b/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C index 808fd89648f635540ed85a66f4abf2ff8dac62f1..53805d07aed14bb407a9f821944d8ebaa4054c20 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C +++ b/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C @@ -25,10 +25,8 @@ License \*---------------------------------------------------------------------------*/ -#include "correctedLnGrad.H" #include "areaFields.H" #include "edgeFields.H" -#include "linearEdgeInterpolation.H" #include "gaussFaGrad.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.H b/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.H index b7128c00a6cb91b6f9a79f6ff09941cf14099385..74bcf22ba19b4c06c7d2734b5f34bf4a9b9fbd1e 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.H +++ b/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.H @@ -58,18 +58,21 @@ class correctedLnGrad : public lnGradScheme<Type> { - // Private Member Functions - - //- No copy assignment - void operator=(const correctedLnGrad&) = delete; - - public: //- Runtime type information TypeName("corrected"); + // Generated Methods + + //- No copy construct + correctedLnGrad(const correctedLnGrad&) = delete; + + //- No copy assignment + void operator=(const correctedLnGrad&) = delete; + + // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.C b/src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.C index b8cef6777752dd7a6ee573cd9466558b33fdb90d..425891626aa9677ffea6d00c8625f019736c18a3 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.C +++ b/src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.C @@ -29,7 +29,6 @@ License #include "areaFields.H" #include "edgeFields.H" #include "correctedLnGrad.H" -#include "linearEdgeInterpolation.H" #include "gaussFaGrad.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.H b/src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.H index 97a250e9c6e672a27805b3b514a56281199d0abb..6a9ad2331ad539f101a558eb1a8a82c20d925773 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.H +++ b/src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.H @@ -58,18 +58,21 @@ class fourthLnGrad : public lnGradScheme<Type> { - // Private Member Functions - - //- No copy assignment - void operator=(const fourthLnGrad&) = delete; - - public: //- Runtime type information TypeName("fourth"); + // Generated Methods + + //- No copy construct + fourthLnGrad(const fourthLnGrad&) = delete; + + //- No copy assignment + void operator=(const fourthLnGrad&) = delete; + + // Constructors //- Construct from mesh @@ -102,10 +105,7 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const - { - return true; - } + virtual bool corrected() const { return true; } //- Return the explicit correction to the fourthLnGrad // for the given field diff --git a/src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.C b/src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.C index 8c3f93a3f6f064b38428f2d0baa1051084854f86..d8857d4e1f62f578a69bf3c2e89e25d9b0afcd0d 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.C +++ b/src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.C @@ -72,7 +72,7 @@ limitedLnGrad<Type>::correction (1 - limitCoeff_)*mag(corr) + dimensionedScalar("small", corr.dimensions(), SMALL) ), - dimensionedScalar("one", dimless, 1.0) + dimensionedScalar(dimless, Foam::one{}) ) ); diff --git a/src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.H b/src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.H index 1e0a6d7720e34a81f4c45d959cbef19d4ca8c58e..eef75a51f8ac1494f071af06f85844e13127f190 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.H +++ b/src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.H @@ -68,24 +68,27 @@ class limitedLnGrad : public lnGradScheme<Type> { - // Private data + // Private Data //- Limiter. 0 = no limiting, 1 = full limiting scalar limitCoeff_; - // Private Member Functions - - //- No copy assignment - void operator=(const limitedLnGrad&) = delete; - - public: //- Runtime type information TypeName("limited"); + // Generated Methods + + //- No copy construct + limitedLnGrad(const limitedLnGrad&) = delete; + + //- No copy assignment + void operator=(const limitedLnGrad&) = delete; + + // Constructors //- Construct from mesh diff --git a/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.C b/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.C index 2fbc4fbc81bdfcae9ca5ae23f78a43d622fcbadd..1e073adb513d22d5333d7f139c38f1137b9338d7 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.C +++ b/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.C @@ -30,7 +30,6 @@ License #include "lnGradScheme.H" #include "areaFields.H" #include "edgeFields.H" -#include "HashTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.H b/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.H index 63adf7ea78a15263e6614fc3e9e7877fe9d4d7ff..a1692f0d8d806bb48b4a48fae2125b30aa84a584 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.H +++ b/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.H @@ -37,10 +37,8 @@ SourceFiles #ifndef lnGradScheme_H #define lnGradScheme_H -#include "tmp.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" -#include "typeInfo.H" #include "runTimeSelectionTables.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -48,6 +46,7 @@ SourceFiles namespace Foam { +// Forward Declarations class faMesh; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -64,18 +63,12 @@ class lnGradScheme : public refCount { - // Private data + // Private Data //- Hold reference to mesh const faMesh& mesh_; - // Private Member Functions - - //- No copy assignment - void operator=(const lnGradScheme&) = delete; - - public: // Declare run-time constructor selection tables @@ -90,6 +83,15 @@ public: ); + // Generated Methods + + //- No copy construct + lnGradScheme(const lnGradScheme&) = delete; + + //- No copy assignment + void operator=(const lnGradScheme&) = delete; + + // Constructors //- Construct from mesh @@ -116,10 +118,7 @@ public: // Member Functions //- Return mesh reference - const faMesh& mesh() const - { - return mesh_; - } + const faMesh& mesh() const noexcept { return mesh_; } //- Return the lnGrad of the given cell field // with the given weighting factors @@ -138,10 +137,7 @@ public: ) const = 0; //- Return true if this scheme uses an explicit correction - virtual bool corrected() const - { - return false; - } + virtual bool corrected() const { return false; } //- Return the explicit correction to the lnGrad // for the given field diff --git a/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradSchemes.C b/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradSchemes.C index 65acc733043f383cff3c285cbff79c082e1f0b0d..49ae846a8b65f6293134da7be8ee054aa5001c80 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradSchemes.C +++ b/src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradSchemes.C @@ -26,7 +26,6 @@ License \*---------------------------------------------------------------------------*/ #include "lnGradScheme.H" -#include "HashTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/finiteArea/lnGradSchemes/uncorrectedLnGrad/uncorrectedLnGrad.H b/src/finiteArea/finiteArea/lnGradSchemes/uncorrectedLnGrad/uncorrectedLnGrad.H index 8ff48692cecadb96f9ce608b8fd407be67e90096..ecda9a6e1fc858ed703caee0d2366fce1e5c7f3e 100644 --- a/src/finiteArea/finiteArea/lnGradSchemes/uncorrectedLnGrad/uncorrectedLnGrad.H +++ b/src/finiteArea/finiteArea/lnGradSchemes/uncorrectedLnGrad/uncorrectedLnGrad.H @@ -58,18 +58,21 @@ class uncorrectedLnGrad : public lnGradScheme<Type> { - // Private Member Functions - - //- No copy assignment - void operator=(const uncorrectedLnGrad&) = delete; - - public: //- Runtime type information TypeName("uncorrected"); + // Generated Methods + + //- No copy construct + uncorrectedLnGrad(const uncorrectedLnGrad&) = delete; + + //- No copy assignment + void operator=(const uncorrectedLnGrad&) = delete; + + // Constructors //- Construct from mesh @@ -101,10 +104,7 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const - { - return false; - } + virtual bool corrected() const { return false; } //- Return the explicit correction to the uncorrectedLnGrad //- for the given field diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C index 54dcd271b1460ce156813086109b87c999756221..2fcbe116a1a743c73c4935647750dca34d1f57e5 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C +++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C @@ -100,14 +100,14 @@ Foam::fac::interpolate Istream& schemeData ) { -# ifdef DEBUGInterpolations + #ifdef DEBUGInterpolations if (edgeInterpolation::debug) { InfoInFunction << "interpolating GeometricField<Type, faPatchField, areaMesh> " << endl; } -# endif + #endif return scheme<Type>(faceFlux, schemeData)().interpolate(vf); } @@ -122,7 +122,7 @@ Foam::fac::interpolate const word& name ) { -# ifdef DEBUGInterpolations + #ifdef DEBUGInterpolations if (edgeInterpolation::debug) { InfoInFunction @@ -130,7 +130,7 @@ Foam::fac::interpolate << "using " << name << endl; } -# endif + #endif return scheme<Type>(faceFlux, name)().interpolate(vf); } @@ -199,14 +199,14 @@ Foam::fac::interpolate Istream& schemeData ) { -# ifdef DEBUGInterpolations + #ifdef DEBUGInterpolations if (edgeInterpolation::debug) { InfoInFunction << "interpolating GeometricField<Type, faPatchField, areaMesh> " << endl; } -# endif + #endif return scheme<Type>(vf.mesh(), schemeData)().interpolate(vf); } @@ -220,7 +220,7 @@ Foam::fac::interpolate const word& name ) { -# ifdef DEBUGInterpolations + #ifdef DEBUGInterpolations if (edgeInterpolation::debug) { InfoInFunction @@ -228,7 +228,7 @@ Foam::fac::interpolate << "using " << name << endl; } -# endif + #endif return scheme<Type>(vf.mesh(), name)().interpolate(vf); } @@ -257,7 +257,7 @@ Foam::fac::interpolate const GeometricField<Type, faPatchField, areaMesh>& vf ) { -# ifdef DEBUGInterpolations + #ifdef DEBUGInterpolations if (edgeInterpolation::debug) { InfoInFunction @@ -265,7 +265,7 @@ Foam::fac::interpolate << "using run-time selected scheme" << endl; } -# endif + #endif return interpolate(vf, "interpolate(" + vf.name() + ')'); } diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.H b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.H index 2b38213350c98911c47bc6e079d9d860d60787a4..a9a974ad01ce23f01352c3ce3add69b83cc2fee2 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.H +++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.H @@ -36,7 +36,6 @@ SourceFiles #ifndef edgeInterpolate_H #define edgeInterpolate_H -#include "tmp.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" #include "edgeInterpolationScheme.H" diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C index be58b303255f51cdc2438f97d97426555712919c..5da45321ce37f7a182ec8c9334cdb16b2d9560ae 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C +++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C @@ -29,8 +29,6 @@ License #include "faMesh.H" #include "areaFields.H" #include "edgeFields.H" -#include "demandDrivenData.H" -#include "faPatchFields.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -39,79 +37,55 @@ namespace Foam defineTypeNameAndDebug(edgeInterpolation, 0); } -// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // - -void Foam::edgeInterpolation::clearOut() -{ - deleteDemandDrivenData(lPN_); - deleteDemandDrivenData(weightingFactors_); - deleteDemandDrivenData(differenceFactors_); - deleteDemandDrivenData(correctionVectors_); - deleteDemandDrivenData(skewCorrectionVectors_); -} - // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::edgeInterpolation::edgeInterpolation(const faMesh& fam) : faMesh_(fam), - lPN_(nullptr), - weightingFactors_(nullptr), - differenceFactors_(nullptr), - correctionVectors_(nullptr), - skewCorrectionVectors_(nullptr), orthogonal_(false), skew_(true) {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::edgeInterpolation::~edgeInterpolation() -{ - clearOut(); -} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // const Foam::edgeScalarField& Foam::edgeInterpolation::lPN() const { - if (!lPN_) + if (!lPNptr_) { makeLPN(); } - return (*lPN_); + return (*lPNptr_); } const Foam::edgeScalarField& Foam::edgeInterpolation::weights() const { - if (!weightingFactors_) + if (!weightingFactorsPtr_) { makeWeights(); } - return (*weightingFactors_); + return (*weightingFactorsPtr_); } const Foam::edgeScalarField& Foam::edgeInterpolation::deltaCoeffs() const { - if (!differenceFactors_) + if (!differenceFactorsPtr_) { makeDeltaCoeffs(); } - return (*differenceFactors_); + return (*differenceFactorsPtr_); } bool Foam::edgeInterpolation::orthogonal() const { - if (orthogonal_ == false && !correctionVectors_) + if (orthogonal_ == false && !correctionVectorsPtr_) { makeCorrectionVectors(); } @@ -129,13 +103,13 @@ const Foam::edgeVectorField& Foam::edgeInterpolation::correctionVectors() const << abort(FatalError); } - return (*correctionVectors_); + return (*correctionVectorsPtr_); } bool Foam::edgeInterpolation::skew() const { - if (skew_ == true && !skewCorrectionVectors_) + if (skew_ == true && !skewCorrectionVectorsPtr_) { makeSkewCorrectionVectors(); } @@ -154,21 +128,21 @@ Foam::edgeInterpolation::skewCorrectionVectors() const << abort(FatalError); } - return (*skewCorrectionVectors_); + return (*skewCorrectionVectorsPtr_); } bool Foam::edgeInterpolation::movePoints() const { - deleteDemandDrivenData(lPN_); - deleteDemandDrivenData(weightingFactors_); - deleteDemandDrivenData(differenceFactors_); + lPNptr_.reset(nullptr); + weightingFactorsPtr_.reset(nullptr); + differenceFactorsPtr_.reset(nullptr); orthogonal_ = false; - deleteDemandDrivenData(correctionVectors_); + correctionVectorsPtr_.reset(nullptr); skew_ = true; - deleteDemandDrivenData(skewCorrectionVectors_); + skewCorrectionVectorsPtr_.reset(nullptr); return true; } @@ -180,14 +154,14 @@ const Foam::vector& Foam::edgeInterpolation::skewCorr(const label edgeI) const return ( - skewCorrectionVectors_ - ? (*skewCorrectionVectors_)[edgeI] + skewCorrectionVectorsPtr_ + ? (*skewCorrectionVectorsPtr_)[edgeI] : pTraits<vector>::zero ); #else - return (*skewCorrectionVectors_)[edgeI]; + return (*skewCorrectionVectorsPtr_)[edgeI]; #endif } @@ -200,7 +174,7 @@ void Foam::edgeInterpolation::makeLPN() const << endl; - lPN_ = new edgeScalarField + lPNptr_ = std::make_unique<edgeScalarField> ( IOobject ( @@ -214,7 +188,7 @@ void Foam::edgeInterpolation::makeLPN() const mesh(), dimLength ); - edgeScalarField& lPN = *lPN_; + edgeScalarField& lPN = *lPNptr_; // Set local references to mesh data const edgeVectorField& edgeCentres = mesh().edgeCentres(); @@ -281,7 +255,7 @@ void Foam::edgeInterpolation::makeWeights() const << endl; - weightingFactors_ = new edgeScalarField + weightingFactorsPtr_ = std::make_unique<edgeScalarField> ( IOobject ( @@ -295,7 +269,7 @@ void Foam::edgeInterpolation::makeWeights() const mesh(), dimensionedScalar(dimless, 1) ); - edgeScalarField& weightingFactors = *weightingFactors_; + edgeScalarField& weightingFactors = *weightingFactorsPtr_; // Set local references to mesh data @@ -361,11 +335,11 @@ void Foam::edgeInterpolation::makeDeltaCoeffs() const // needed to make sure deltaCoeffs are calculated for parallel runs. weights(); - differenceFactors_ = new edgeScalarField + differenceFactorsPtr_ = std::make_unique<edgeScalarField> ( IOobject ( - "differenceFactors_", + "differenceFactors", mesh().pointsInstance(), mesh().thisDb(), IOobject::NO_READ, @@ -375,7 +349,7 @@ void Foam::edgeInterpolation::makeDeltaCoeffs() const mesh(), dimensionedScalar(dimless/dimLength, SMALL) ); - edgeScalarField& DeltaCoeffs = *differenceFactors_; + edgeScalarField& DeltaCoeffs = *differenceFactorsPtr_; scalarField& dc = DeltaCoeffs.primitiveFieldRef(); // Set local references to mesh data @@ -455,7 +429,7 @@ void Foam::edgeInterpolation::makeCorrectionVectors() const << "Constructing non-orthogonal correction vectors" << endl; - correctionVectors_ = new edgeVectorField + correctionVectorsPtr_ = std::make_unique<edgeVectorField> ( IOobject ( @@ -469,7 +443,7 @@ void Foam::edgeInterpolation::makeCorrectionVectors() const mesh(), dimless ); - edgeVectorField& CorrVecs = *correctionVectors_; + edgeVectorField& CorrVecs = *correctionVectorsPtr_; // Set local references to mesh data const areaVectorField& faceCentres = mesh().areaCentres(); @@ -543,7 +517,7 @@ void Foam::edgeInterpolation::makeCorrectionVectors() const if (NonOrthogCoeff < 0.1) { orthogonal_ = true; - deleteDemandDrivenData(correctionVectors_); + correctionVectorsPtr_.reset(nullptr); } else { @@ -562,7 +536,7 @@ void Foam::edgeInterpolation::makeSkewCorrectionVectors() const << "Constructing skew correction vectors" << endl; - skewCorrectionVectors_ = new edgeVectorField + skewCorrectionVectorsPtr_ = std::make_unique<edgeVectorField> ( IOobject ( @@ -576,7 +550,7 @@ void Foam::edgeInterpolation::makeSkewCorrectionVectors() const mesh(), dimensionedVector(dimless, Zero) ); - edgeVectorField& SkewCorrVecs = *skewCorrectionVectors_; + edgeVectorField& SkewCorrVecs = *skewCorrectionVectorsPtr_; // Set local references to mesh data const areaVectorField& C = mesh().areaCentres(); @@ -700,12 +674,12 @@ void Foam::edgeInterpolation::makeSkewCorrectionVectors() const if (skewCoeff < maxSkewRatio) { - deleteDemandDrivenData(skewCorrectionVectors_); + skewCorrectionVectorsPtr_.reset(nullptr); } #endif - skew_ = bool(skewCorrectionVectors_); + skew_ = bool(skewCorrectionVectorsPtr_); DebugInFunction diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H index ff84b3c7420a893d3d025e3ef7610ccfa9b71496..689b1384d47faed7db87878bbe078dc8d5ef9c0b 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H +++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H @@ -42,11 +42,8 @@ SourceFiles #ifndef Foam_edgeInterpolation_H #define Foam_edgeInterpolation_H -#include "tmp.H" -#include "scalar.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" -#include "className.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -71,19 +68,19 @@ class edgeInterpolation // Demand-driven data //- Geodesic distance between centroids of neighbour finite areas - mutable edgeScalarField* lPN_; + mutable std::unique_ptr<edgeScalarField> lPNptr_; //- Central-differencing weighting factors - mutable edgeScalarField* weightingFactors_; + mutable std::unique_ptr<edgeScalarField> weightingFactorsPtr_; //- Face-gradient difference factors - mutable edgeScalarField* differenceFactors_; + mutable std::unique_ptr<edgeScalarField> differenceFactorsPtr_; //- Non-orthogonality correction vectors - mutable edgeVectorField* correctionVectors_; + mutable std::unique_ptr<edgeVectorField> correctionVectorsPtr_; //- Skew correction vectors - mutable edgeVectorField* skewCorrectionVectors_; + mutable std::unique_ptr<edgeVectorField> skewCorrectionVectorsPtr_; //- Is mesh orthogonal mutable bool orthogonal_; @@ -113,20 +110,19 @@ class edgeInterpolation void makeSkewCorrectionVectors() const; -protected: +public: - // Protected Member Functions + // Declare name of the class and it's debug switch + ClassName("edgeInterpolation"); - // Storage Management - //- Clear all geometry and addressing - void clearOut(); + // Generated Methods + //- No copy construct + edgeInterpolation(const edgeInterpolation&) = delete; -public: - - // Declare name of the class and it's debug switch - ClassName("edgeInterpolation"); + //- No copy assignment + void operator=(const edgeInterpolation&) = delete; // Constructors @@ -136,16 +132,13 @@ public: //- Destructor - ~edgeInterpolation(); + ~edgeInterpolation() = default; // Member Functions //- Return mesh reference - const faMesh& mesh() const noexcept - { - return faMesh_; - } + const faMesh& mesh() const noexcept { return faMesh_; } //- Return reference to PN geodesic distance const edgeScalarField& lPN() const; @@ -178,7 +171,7 @@ public: // Storage Management //- True if weights exist - bool hasWeights() const noexcept { return bool(weightingFactors_); } + bool hasWeights() const noexcept { return bool(weightingFactorsPtr_); } }; diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C index b348c7ca0f2e8639c020fe1c89427f6d55dc3838..5d4ead9d021700a377a7f3ae902d09e662e30ae0 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C +++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C @@ -29,9 +29,7 @@ License #include "edgeInterpolationScheme.H" #include "areaFields.H" #include "edgeFields.H" -#include "faPatchFields.H" #include "coupledFaPatchField.H" -#include "transform.H" // * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * // diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.H b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.H index 64bc2a9cef82885f52ff49a0f0f99fd650418a47..bc4a12f06f6f60e95d32be50a111fa5a952f3304 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.H +++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.H @@ -37,10 +37,8 @@ SourceFiles #ifndef edgeInterpolationScheme_H #define edgeInterpolationScheme_H -#include "tmp.H" #include "areaFieldsFwd.H" #include "edgeFieldsFwd.H" -#include "typeInfo.H" #include "runTimeSelectionTables.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -59,18 +57,12 @@ class edgeInterpolationScheme : public refCount { - // Private data + // Private Data - //- Hold reference to mesh + //- Reference to mesh const faMesh& mesh_; - // Private Member Functions - - //- No copy assignment - void operator=(const edgeInterpolationScheme&) = delete; - - public: // Declare run-time constructor selection tables @@ -101,6 +93,15 @@ public: ); + // Private Member Functions + + //- No copy construct + edgeInterpolationScheme(const edgeInterpolationScheme&) = delete; + + //- No copy assignment + void operator=(const edgeInterpolationScheme&) = delete; + + // Constructors //- Construct from mesh @@ -179,10 +180,7 @@ public: ) const = 0; //- Return true if this scheme uses an explicit correction - virtual bool corrected() const - { - return false; - } + virtual bool corrected() const { return false; } //- Return the explicit correction to the face-interpolate // for the given field diff --git a/src/finiteArea/interpolation/edgeInterpolation/schemes/Gamma/Gamma.H b/src/finiteArea/interpolation/edgeInterpolation/schemes/Gamma/Gamma.H index 39b547745ded6de2c0db3d8090505a664721a361..6b3eb5f3be418dd0054f5aac358063c7f4dfd4a3 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/schemes/Gamma/Gamma.H +++ b/src/finiteArea/interpolation/edgeInterpolation/schemes/Gamma/Gamma.H @@ -54,7 +54,11 @@ namespace Foam class GammaWeight { - scalar k_; + // Private Data + + //- Model coefficient [0,1] + scalar k_; + public: @@ -72,7 +76,7 @@ public: // Rescale k_ to be >= 0 and <= 0.5 (TVD conformant) // and avoid the /0 when k_ = 0 - k_ = max(k_/2.0, SMALL); + k_ = max(0.5*k_, SMALL); } @@ -87,30 +91,19 @@ public: const vector& d ) const { - scalar magd = mag(d); - vector dHat = d/mag(d); - - scalar gradf = (phiN - phiP)/magd; + const vector dHat(normalised(d)); - scalar gradcf; - scalar udWeight; - - if (faceFlux > 0) - { - gradcf = dHat & gradcP; - udWeight = 1; - } - else - { - gradcf = dHat & gradcN; - udWeight = 0; - } + // Choose gradc based on faceFlux + const vector& gradcPN = (faceFlux > 0) ? gradcP : gradcN; + const scalar udWeight = (faceFlux > 0) ? 1 : 0; // Stabilise for division - gradcf = stabilise(gradcf, SMALL); + const scalar gradcf = stabilise(dHat & gradcPN, SMALL); + + const scalar gradf = (phiN - phiP)/mag(d); - scalar phict = 1 - 0.5*gradf/gradcf; - scalar limiter = clamp(phict/k_, zero_one{}); + const scalar phict = 1 - 0.5*gradf/gradcf; + const scalar limiter = clamp(phict/k_, zero_one{}); return lerp(udWeight, cdWeight, limiter); } diff --git a/src/finiteArea/interpolation/edgeInterpolation/schemes/NVDscheme/faNVDscheme.H b/src/finiteArea/interpolation/edgeInterpolation/schemes/NVDscheme/faNVDscheme.H index b6ad35709a3d049f462b842736bd23e9e65ceae9..442d045698c63f6781aa14e7e2f8fd5fe376884a 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/schemes/NVDscheme/faNVDscheme.H +++ b/src/finiteArea/interpolation/edgeInterpolation/schemes/NVDscheme/faNVDscheme.H @@ -72,14 +72,6 @@ protected: const edgeScalarField& edgeFlux_; - // Protected Member Functions - - //- No copy construct - faNVDscheme(const faNVDscheme&) = delete; - - //- No copy assignment - void operator=(const faNVDscheme&) = delete; - public: @@ -91,6 +83,15 @@ public: TypeName("faNVDscheme"); + // Generated Methods + + //- No copy construct + faNVDscheme(const faNVDscheme&) = delete; + + //- No copy assignment + void operator=(const faNVDscheme&) = delete; + + // Constructors //- Construct from mesh and edgeFlux and blendingFactor diff --git a/src/finiteArea/interpolation/edgeInterpolation/schemes/blended/blendedEdgeInterpolation.H b/src/finiteArea/interpolation/edgeInterpolation/schemes/blended/blendedEdgeInterpolation.H index 5e3bfc513a793a40a517b8a87ce7b5b700c88cd2..f4a027d4a21a43f0f92c405784b2237d6281bc58 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/schemes/blended/blendedEdgeInterpolation.H +++ b/src/finiteArea/interpolation/edgeInterpolation/schemes/blended/blendedEdgeInterpolation.H @@ -56,12 +56,19 @@ class blendedEdgeInterpolation public linearEdgeInterpolation<Type>, public upwindEdgeInterpolation<Type> { - // Private data + // Private Data + //- Blending factor const scalar blendingFactor_; - // Private Member Functions +public: + + //- Runtime type information + TypeName("blended"); + + + // Generated Methods //- No copy construct blendedEdgeInterpolation(const blendedEdgeInterpolation&) = delete; @@ -70,12 +77,6 @@ class blendedEdgeInterpolation void operator=(const blendedEdgeInterpolation&) = delete; -public: - - //- Runtime type information - TypeName("blended"); - - // Constructors //- Construct from mesh, faceFlux and blendingFactor diff --git a/src/finiteArea/interpolation/edgeInterpolation/schemes/leastSquares/leastSquaresEdgeInterpolation.H b/src/finiteArea/interpolation/edgeInterpolation/schemes/leastSquares/leastSquaresEdgeInterpolation.H index fd261bae448323c9c9b55b64f08ce35032782e73..6ccff4b7956aa52851317ecfcc6e2cef1a393a7c 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/schemes/leastSquares/leastSquaresEdgeInterpolation.H +++ b/src/finiteArea/interpolation/edgeInterpolation/schemes/leastSquares/leastSquaresEdgeInterpolation.H @@ -67,18 +67,22 @@ class leastSquaresEdgeInterpolation : virtual public edgeInterpolationScheme<Type> { - // Private Member Functions - - //- No copy assignment - void operator=(const leastSquaresEdgeInterpolation&) = delete; - - public: //- Runtime type information TypeName("leastSquares"); + // Generated Methods + + //- No copy construct + leastSquaresEdgeInterpolation(const leastSquaresEdgeInterpolation&) + = delete; + + //- No copy assignment + void operator=(const leastSquaresEdgeInterpolation&) = delete; + + // Constructors //- Construct from mesh diff --git a/src/finiteArea/interpolation/edgeInterpolation/schemes/linear/linearEdgeInterpolation.H b/src/finiteArea/interpolation/edgeInterpolation/schemes/linear/linearEdgeInterpolation.H index 9a1c99c3d2e2cfbc14b53f82c385560aef11c051..e4ce7041bd393da7a8d09d75af584287372729c9 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/schemes/linear/linearEdgeInterpolation.H +++ b/src/finiteArea/interpolation/edgeInterpolation/schemes/linear/linearEdgeInterpolation.H @@ -54,17 +54,21 @@ class linearEdgeInterpolation : virtual public edgeInterpolationScheme<Type> { - // Private Member Functions - - //- No copy assignment - void operator=(const linearEdgeInterpolation&) = delete; - public: //- Runtime type information TypeName("linear"); + // Generated Methods + + //- No copy construct + linearEdgeInterpolation(const linearEdgeInterpolation&) = delete; + + //- No copy assignment + void operator=(const linearEdgeInterpolation&) = delete; + + // Constructors //- Construct from mesh diff --git a/src/finiteArea/interpolation/edgeInterpolation/schemes/linearUpwind/linearUpwind.H b/src/finiteArea/interpolation/edgeInterpolation/schemes/linearUpwind/linearUpwind.H index da9b6bdfc7e5cfb0e23724b62e9c726a9c895aa6..5ac45a791306a011dcedc55dc3db1d9a898bed5e 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/schemes/linearUpwind/linearUpwind.H +++ b/src/finiteArea/interpolation/edgeInterpolation/schemes/linearUpwind/linearUpwind.H @@ -58,9 +58,17 @@ namespace Foam class linearUpwindWeight { - public: + // Generated Methods + + //- No copy construct + linearUpwindWeight(const linearUpwindWeight&) = delete; + + //- No copy assignment + void operator=(const linearUpwindWeight&) = delete; + + linearUpwindWeight(Istream&) {} diff --git a/src/finiteArea/interpolation/edgeInterpolation/schemes/skewCorrected/skewCorrectedEdgeInterpolation.H b/src/finiteArea/interpolation/edgeInterpolation/schemes/skewCorrected/skewCorrectedEdgeInterpolation.H index da63c64444d2a01ba880adde40e7eb974dfec6de..a725730e359a29767359c0a1bc238778e4d720f1 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/schemes/skewCorrected/skewCorrectedEdgeInterpolation.H +++ b/src/finiteArea/interpolation/edgeInterpolation/schemes/skewCorrected/skewCorrectedEdgeInterpolation.H @@ -39,10 +39,8 @@ SourceFiles #define skewCorrectedEdgeInterpolation_H #include "edgeInterpolationScheme.H" -#include "linearEdgeInterpolation.H" #include "gaussFaGrad.H" #include "areaFields.H" -#include "zeroGradientFaPatchFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -60,6 +58,7 @@ class skewCorrectedEdgeInterpolation { // Private Data + //- Edge-interpolation scheme tmp<edgeInterpolationScheme<Type>> tScheme_; @@ -69,6 +68,16 @@ public: TypeName("skewCorrected"); + // Generated Methods + + //- No copy construct + skewCorrectedEdgeInterpolation(const skewCorrectedEdgeInterpolation&) + = delete; + + //- No copy assignment + void operator=(const skewCorrectedEdgeInterpolation&) = delete; + + // Constructors //- Construct from Istream @@ -96,13 +105,6 @@ public: ) {} - //- No copy construct - skewCorrectedEdgeInterpolation(const skewCorrectedEdgeInterpolation&) = - delete; - - //- No copy assignment - void operator=(const skewCorrectedEdgeInterpolation&) = delete; - // Member Functions @@ -115,7 +117,7 @@ public: return tScheme_().weights(vf); } - //- Return true if this scheme uses an explicit correction + //- Return true if this scheme uses an explicit correction virtual bool corrected() const { return diff --git a/src/finiteArea/interpolation/edgeInterpolation/schemes/upwind/upwindEdgeInterpolation.H b/src/finiteArea/interpolation/edgeInterpolation/schemes/upwind/upwindEdgeInterpolation.H index 7384f19d5e91613b47787ec8e2de9665e0028837..fbafdcb4e813eb3124d05a79af5333a7f1f55719 100644 --- a/src/finiteArea/interpolation/edgeInterpolation/schemes/upwind/upwindEdgeInterpolation.H +++ b/src/finiteArea/interpolation/edgeInterpolation/schemes/upwind/upwindEdgeInterpolation.H @@ -55,23 +55,27 @@ class upwindEdgeInterpolation : virtual public edgeInterpolationScheme<Type> { - // Private data + // Private Data + //- Face flux const edgeScalarField& faceFlux_; - // Private Member Functions - - //- No copy assignment - void operator=(const upwindEdgeInterpolation&) = delete; - - public: //- Runtime type information TypeName("upwind"); + // Generated Methods + + //- No copy construct + upwindEdgeInterpolation(const upwindEdgeInterpolation&) = delete; + + //- No copy assignment + void operator=(const upwindEdgeInterpolation&) = delete; + + // Constructors //- Construct from faceFlux diff --git a/src/finiteArea/output/ensight/ensightFaMesh.H b/src/finiteArea/output/ensight/ensightFaMesh.H index ce3deb7534a5307dc37a111154ac09f02110b91f..ae30d33ea76eeb33ec02b63bd6aed66ae01ac9ff 100644 --- a/src/finiteArea/output/ensight/ensightFaMesh.H +++ b/src/finiteArea/output/ensight/ensightFaMesh.H @@ -85,6 +85,11 @@ class ensightFaMesh //- Enforce consistent index/part numbering void renumber(); + +public: + + // Generated Methods + //- No copy construct ensightFaMesh(const ensightFaMesh&) = delete; @@ -92,8 +97,6 @@ class ensightFaMesh void operator=(const ensightFaMesh&) = delete; -public: - // Constructors //- Construct from mesh with all default options diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C index 20f20e80e1b4df8b11b79b96804819de65f402b7..27f420f72eeba9c31b0b1c91e72ca8afb0c16ca0 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C @@ -194,7 +194,7 @@ gaussLaplacianScheme<Type, GType>::fvmLaplacian if (mesh.fluxRequired(vf.name())) { - fvm.faceFluxCorrectionPtr() = tfaceFluxCorrection.ptr(); + fvm.faceFluxCorrectionPtr(tfaceFluxCorrection.ptr()); } return tfvm; diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianSchemes.C b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianSchemes.C index 1201bad1fe2f66ae24587653e2da1b8d49d94a6b..7d19f5b2656c2fb8c48e39e67aa6cb57466516f6 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianSchemes.C +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianSchemes.C @@ -61,8 +61,10 @@ Foam::fv::gaussLaplacianScheme<Foam::Type, Foam::scalar>::fvmLaplacian \ { \ if (mesh.fluxRequired(vf.name())) \ { \ - fvm.faceFluxCorrectionPtr() = new \ - GeometricField<Type, fvsPatchField, surfaceMesh> \ + fvm.faceFluxCorrectionPtr() = std::make_unique \ + < \ + GeometricField<Type, fvsPatchField, surfaceMesh> \ + > \ ( \ gammaMagSf*this->tsnGradScheme_().correction(vf) \ ); \ diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.C b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.C index ef0efdb299fe2026b77b40934784c78cc711ef12..44e554ad400a705d89ec7e3409296bbc805de612 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.C +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.C @@ -222,7 +222,7 @@ relaxedNonOrthoGaussLaplacianScheme<Type, GType>::fvmLaplacian if (mesh.fluxRequired(vf.name())) { - fvm.faceFluxCorrectionPtr() = trelaxedCorrection.ptr(); + fvm.faceFluxCorrectionPtr(trelaxedCorrection.ptr()); } return tfvm; diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianSchemes.C b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianSchemes.C index ce32fd20fbbb7f9b4ed3f2494365640e9b1db887..662e909dd5095c1b86164aa9966a11b07e7b8c31 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianSchemes.C +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianSchemes.C @@ -98,7 +98,7 @@ fvmLaplacian \ \ if (mesh.fluxRequired(vf.name())) \ { \ - fvm.faceFluxCorrectionPtr() = trelaxedCorrection.ptr(); \ + fvm.faceFluxCorrectionPtr(trelaxedCorrection.ptr()); \ } \ } \ \ diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C index bf2ab42635a6bee80179197d9f820be4fd526238..254436784f3e1c4e492f68a249b335a9b81dc0f1 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C @@ -369,8 +369,7 @@ Foam::fvMatrix<Type>::fvMatrix dimensions_(ds), source_(psi.size(), Zero), internalCoeffs_(psi.mesh().boundary().size()), - boundaryCoeffs_(psi.mesh().boundary().size()), - faceFluxCorrectionPtr_(nullptr) + boundaryCoeffs_(psi.mesh().boundary().size()) { DebugInFunction << "Constructing fvMatrix<Type> for field " << psi_.name() << endl; @@ -410,19 +409,17 @@ Foam::fvMatrix<Type>::fvMatrix(const fvMatrix<Type>& fvm) dimensions_(fvm.dimensions_), source_(fvm.source_), internalCoeffs_(fvm.internalCoeffs_), - boundaryCoeffs_(fvm.boundaryCoeffs_), - faceFluxCorrectionPtr_(nullptr) + boundaryCoeffs_(fvm.boundaryCoeffs_) { DebugInFunction << "Copying fvMatrix<Type> for field " << psi_.name() << endl; if (fvm.faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = - new GeometricField<Type, fvsPatchField, surfaceMesh> - ( - *(fvm.faceFluxCorrectionPtr_) - ); + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> + ( + *(fvm.faceFluxCorrectionPtr_) + ); } } @@ -438,8 +435,7 @@ Foam::fvMatrix<Type>::fvMatrix(const tmp<fvMatrix<Type>>& tmat) dimensions_(tmat().dimensions_), source_(tmat.constCast().source_, tmat.movable()), internalCoeffs_(tmat.constCast().internalCoeffs_, tmat.movable()), - boundaryCoeffs_(tmat.constCast().boundaryCoeffs_, tmat.movable()), - faceFluxCorrectionPtr_(nullptr) + boundaryCoeffs_(tmat.constCast().boundaryCoeffs_, tmat.movable()) { DebugInFunction << "Copy/move fvMatrix<Type> for field " << psi_.name() << endl; @@ -448,16 +444,15 @@ Foam::fvMatrix<Type>::fvMatrix(const tmp<fvMatrix<Type>>& tmat) { if (tmat.movable()) { - faceFluxCorrectionPtr_ = tmat().faceFluxCorrectionPtr_; - tmat().faceFluxCorrectionPtr_ = nullptr; + faceFluxCorrectionPtr_ = + std::move(tmat.constCast().faceFluxCorrectionPtr_); } - else + else if (tmat().faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = - new GeometricField<Type, fvsPatchField, surfaceMesh> - ( - *(tmat().faceFluxCorrectionPtr_) - ); + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> + ( + *(tmat().faceFluxCorrectionPtr_) + ); } } @@ -473,7 +468,6 @@ Foam::fvMatrix<Type>::~fvMatrix() DebugInFunction << "Destroying fvMatrix<Type> for field " << psi_.name() << endl; - deleteDemandDrivenData(faceFluxCorrectionPtr_); subMatrices_.clear(); } @@ -1577,9 +1571,10 @@ void Foam::fvMatrix<Type>::operator=(const fvMatrix<Type>& fvmv) } else if (fvmv.faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = - new GeometricField<Type, fvsPatchField, surfaceMesh> - (*fvmv.faceFluxCorrectionPtr_); + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> + ( + *fvmv.faceFluxCorrectionPtr_ + ); } useImplicit_ = fvmv.useImplicit_; @@ -1631,8 +1626,7 @@ void Foam::fvMatrix<Type>::operator+=(const fvMatrix<Type>& fvmv) } else if (fvmv.faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = new - GeometricField<Type, fvsPatchField, surfaceMesh> + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> ( *fvmv.faceFluxCorrectionPtr_ ); @@ -1669,9 +1663,10 @@ void Foam::fvMatrix<Type>::operator-=(const fvMatrix<Type>& fvmv) } else if (fvmv.faceFluxCorrectionPtr_) { - faceFluxCorrectionPtr_ = - new GeometricField<Type, fvsPatchField, surfaceMesh> - (-*fvmv.faceFluxCorrectionPtr_); + faceFluxCorrectionPtr_ = std::make_unique<faceFluxFieldType> + ( + -*fvmv.faceFluxCorrectionPtr_ + ); } } @@ -2002,7 +1997,7 @@ Foam::tmp<Foam::fvMatrix<Type>> Foam::correction // Delete the faceFluxCorrection from the correction matrix // as it does not have a clear meaning or purpose - deleteDemandDrivenData(tAcorr.ref().faceFluxCorrectionPtr()); + tAcorr.ref().faceFluxCorrectionPtr(nullptr); return tAcorr; } @@ -2018,7 +2013,7 @@ Foam::tmp<Foam::fvMatrix<Type>> Foam::correction // Delete the faceFluxCorrection from the correction matrix // as it does not have a clear meaning or purpose - deleteDemandDrivenData(tAcorr.ref().faceFluxCorrectionPtr()); + tAcorr.ref().faceFluxCorrectionPtr(nullptr); return tAcorr; } diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H index c00236f7c9f8a5da6539e4fefb304872df54a5f9..78f18d22c3e97b8dc76dc7efc3928b50320a7f70 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H @@ -172,7 +172,7 @@ private: FieldField<Field, Type> boundaryCoeffs_; //- Face flux field for non-orthogonal correction - mutable faceFluxFieldType* faceFluxCorrectionPtr_; + mutable std::unique_ptr<faceFluxFieldType> faceFluxCorrectionPtr_; protected: @@ -494,8 +494,7 @@ public: } //- Declare return type of the faceFluxCorrectionPtr() function - typedef GeometricField<Type, fvsPatchField, surfaceMesh> - *faceFluxFieldPtrType; + typedef std::unique_ptr<faceFluxFieldType> faceFluxFieldPtrType; //- Return pointer to face-flux non-orthogonal correction field faceFluxFieldPtrType& faceFluxCorrectionPtr() @@ -503,6 +502,12 @@ public: return faceFluxCorrectionPtr_; } + //- Set pointer to face-flux non-orthogonal correction field + void faceFluxCorrectionPtr(faceFluxFieldType* flux) + { + faceFluxCorrectionPtr_.reset(flux); + } + //- True if face-flux non-orthogonal correction field exists bool hasFaceFluxCorrection() const noexcept {