/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . Class Foam::fvFieldReconstructor Description Finite volume reconstructor for volume and surface fields. SourceFiles fvFieldReconstructor.C fvFieldReconstructorReconstructFields.C \*---------------------------------------------------------------------------*/ #ifndef fvFieldReconstructor_H #define fvFieldReconstructor_H #include "PtrList.H" #include "surfaceFields.H" #include "IOobjectList.H" #include "fvPatchFieldMapper.H" #include "setSizeFieldMapper.H" #include "labelIOList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class fvFieldReconstructor Declaration \*---------------------------------------------------------------------------*/ class fvFieldReconstructor { // Private Data //- Reconstructed mesh reference const fvMesh& completeMesh_; //- List of processor meshes const PtrList& procMeshes_; //- List of processor face addressing lists const labelListList& faceProcAddressing_; //- List of processor cell addressing lists const labelListList& cellProcAddressing_; //- Boundary field of face addressing const PtrList& faceProcAddressingBf_; //- Number of fields reconstructed label nReconstructed_; // Private Member Functions //- Convert a processor patch to the corresponding complete patch index label completePatchID(const label proci, const label procPatchi) const; //- ... template static void rmapFaceToFace ( Field& toField, const Field& fromField, const labelUList& addressing, const bool isFlux ); public: //- Mapper for sizing only - does not do any actual mapping. class fvPatchFieldReconstructor : public fvPatchFieldMapper, public setSizeFieldMapper { public: // Constructors //- Construct given size fvPatchFieldReconstructor(const label size) : setSizeFieldMapper(size) {} }; // Constructors //- Construct from components fvFieldReconstructor ( const fvMesh& mesh, const PtrList& procMeshes, const labelListList& faceProcAddressing, const labelListList& cellProcAddressing, const PtrList& faceProcAddressingBf ); //- Disallow default bitwise copy construction fvFieldReconstructor(const fvFieldReconstructor&) = delete; // Member Functions //- Return number of fields reconstructed label nReconstructed() const { return nReconstructed_; } //- Reconstruct volume internal field template tmp> reconstructFvVolumeInternalField ( const IOobject& fieldIoObject, const PtrList>& procFields ) const; //- Read and reconstruct volume internal field template tmp> reconstructFvVolumeInternalField(const IOobject& fieldIoObject) const; //- Reconstruct volume field template tmp> reconstructFvVolumeField ( const IOobject& fieldIoObject, const PtrList>& ) const; //- Read and reconstruct volume field template tmp> reconstructFvVolumeField(const IOobject& fieldIoObject) const; //- Reconstruct surface field template tmp> reconstructFvSurfaceField ( const IOobject& fieldIoObject, const PtrList>& ) const; //- Read and reconstruct surface field template tmp> reconstructFvSurfaceField(const IOobject& fieldIoObject) const; //- Read, reconstruct and write all/selected volume internal fields template void reconstructFvVolumeInternalFields ( const IOobjectList& objects, const HashSet& selectedFields ); //- Read, reconstruct and write all/selected volume fields template void reconstructFvVolumeFields ( const IOobjectList& objects, const HashSet& selectedFields ); //- Read, reconstruct and write all/selected surface fields template void reconstructFvSurfaceFields ( const IOobjectList& objects, const HashSet& selectedFields ); // Member Operators //- Disallow default bitwise assignment void operator=(const fvFieldReconstructor&) = delete; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository #include "fvFieldReconstructorReconstructFields.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //