From fc63e09f66053fdfd81ed4b8fa277f67859e6a1e Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 9 Aug 2018 19:04:36 +0200 Subject: [PATCH] GIT: remove editor backup files --- .../dynamicOversetFvMesh.C.orig | 404 ------------------ .../dynamicOversetFvMesh.H.orig | 331 -------------- 2 files changed, 735 deletions(-) delete mode 100644 src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.C.orig delete mode 100644 src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.H.orig diff --git a/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.C.orig b/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.C.orig deleted file mode 100644 index b9d7a816f6..0000000000 --- a/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.C.orig +++ /dev/null @@ -1,404 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2014-2017 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify i - 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 . - -\*---------------------------------------------------------------------------*/ - -#include "dynamicOversetFvMesh.H" -#include "addToRunTimeSelectionTable.H" -#include "cellCellStencilObject.H" -#include "zeroGradientFvPatchFields.H" -#include "lduPrimitiveProcessorInterface.H" -#include "globalIndex.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(dynamicOversetFvMesh, 0); - addToRunTimeSelectionTable(dynamicFvMesh, dynamicOversetFvMesh, IOobject); -} - - -// * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * * // - -bool Foam::dynamicOversetFvMesh::updateAddressing() const -{ - const cellCellStencilObject& overlap = Stencil::New(*this); - - // The (processor-local part of the) stencil determines the local - // faces to add to the matrix. tbd: parallel - const labelListList& stencil = overlap.cellStencil(); - - // Get the base addressing - const lduAddressing& baseAddr = dynamicMotionSolverFvMesh::lduAddr(); - - // Add to the base addressing - labelList lowerAddr; - labelList upperAddr; - label nExtraFaces; - - const globalIndex globalNumbering(baseAddr.size()); - labelListList localFaceCells; - labelListList remoteFaceCells; - - labelList globalCellIDs(overlap.cellInterpolationMap().constructSize()); - forAll(baseAddr, cellI) - { - globalCellIDs[cellI] = globalNumbering.toGlobal(cellI); - } - overlap.cellInterpolationMap().distribute(globalCellIDs); - - - reverseFaceMap_ = fvMeshPrimitiveLduAddressing::addAddressing - ( - baseAddr, - stencil, - nExtraFaces, - lowerAddr, - upperAddr, - stencilFaces_, - globalNumbering, - globalCellIDs, - localFaceCells, - remoteFaceCells - ); - - if (debug) - { - Pout<< "dynamicOversetFvMesh::update() : extended addressing from" - << " nFaces:" << baseAddr.lowerAddr().size() - << " to nFaces:" << lowerAddr.size() - << " nExtraFaces:" << nExtraFaces << endl; - } - - // Extract relevant remote processors - labelList nbrProcs(localFaceCells.size()); - { - label nbrI = 0; - forAll(localFaceCells, procI) - { - if (localFaceCells[procI].size()) - { - //Pout<< " from proc:" << procI - // << " want its local cells " << remoteFaceCells[procI] - // << " to add to my local cells:" << localFaceCells[procI] - // << endl; - nbrProcs[nbrI++] = procI; - } - } - nbrProcs.setSize(nbrI); - } - - // Construct interfaces - remoteStencilInterfaces_.setSize(nbrProcs.size()); - forAll(nbrProcs, i) - { - label procI = nbrProcs[i]; - remoteStencilInterfaces_.set - ( - i, - new lduPrimitiveProcessorInterface - ( - localFaceCells[procI], - Pstream::myProcNo(), - procI, - tensorField(0), - Pstream::msgType() - ) - ); - } - - - // Get addressing and interfaces of all interfaces - - - List patchAddr; - { - const fvBoundaryMesh& fvp = boundary(); - - patchAddr.setSize(fvp.size() + remoteStencilInterfaces_.size()); - - allInterfaces_ = dynamicMotionSolverFvMesh::interfaces(); - allInterfaces_.setSize(patchAddr.size()); - - forAll(fvp, patchI) - { - patchAddr[patchI] = &fvp[patchI].faceCells(); - } - forAll(remoteStencilInterfaces_, i) - { - label patchI = fvp.size()+i; - const lduPrimitiveProcessorInterface& pp = - remoteStencilInterfaces_[i]; - - //Pout<< "at patch:" << patchI - // << " have procPatch:" << pp.type() - // << " from:" << pp.myProcNo() - // << " to:" << pp.neighbProcNo() - // << " with fc:" << pp.faceCells().size() << endl; - - patchAddr[patchI] = &pp.faceCells(); - allInterfaces_.set(patchI, &pp); - } - } - const lduSchedule ps - ( - lduPrimitiveMesh::nonBlockingSchedule - ( - allInterfaces_ - ) - ); - - lduPtr_.reset - ( - new fvMeshPrimitiveLduAddressing - ( - nCells(), - std::move(lowerAddr), - std::move(upperAddr), - patchAddr, - ps - ) - ); - - - // Check - if (debug) - { - const lduAddressing& addr = lduPtr_(); //this->lduAddr(); - - Pout<< "Adapted addressing:" - << " lower:" << addr.lowerAddr().size() - << " upper:" << addr.upperAddr().size() << endl; - - lduInterfacePtrsList iFaces = this->interfaces(); - // Using lduAddressing::patch - forAll(patchAddr, patchI) - { - Pout<< " " << patchI << "\tpatchAddr:" - << addr.patchAddr(patchI).size() - << endl; - } - - // Using interfaces - Pout<< "iFaces:" << iFaces.size() << endl; - forAll(iFaces, patchI) - { - if (iFaces.set(patchI)) - { - Pout<< " " << patchI << "\tiFace:" << iFaces[patchI].type() - << endl; - } - } - - Pout<< "end of printing." << endl; - } - - return true; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dynamicOversetFvMesh::dynamicOversetFvMesh(const IOobject& io) -: - dynamicMotionSolverFvMesh(io), - active_(false) -{ - // Load stencil (but do not update) - (void)Stencil::New(*this, false); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dynamicOversetFvMesh::~dynamicOversetFvMesh() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -const Foam::lduAddressing& Foam::dynamicOversetFvMesh::lduAddr() const -{ - if (!active_) - { - return dynamicMotionSolverFvMesh::lduAddr(); - } - if (lduPtr_.empty()) - { - // Build extended addressing - updateAddressing(); - } - return *lduPtr_; -} - - -const Foam::fvMeshPrimitiveLduAddressing& -Foam::dynamicOversetFvMesh::primitiveLduAddr() const -{ - if (lduPtr_.empty()) - { - FatalErrorInFunction - << "Extended addressing not allocated" << abort(FatalError); - } - - return *lduPtr_; -} - - -bool Foam::dynamicOversetFvMesh::update() -{ - if (dynamicMotionSolverFvMesh::update()) - { - // Calculate the local extra faces for the interpolation. Note: could - // let demand-driven lduAddr() trigger it but just to make sure. - updateAddressing(); - - // This should be done when there is actually a changed in - // the new addressing. This sshould no update old fields. - interpolateFields(); - - return true; - } - - return false; -} - - -bool Foam::dynamicOversetFvMesh::interpolateFields() -{ - { - auto flds(this->lookupClass()); - for (auto fldPtr : flds) - { - auto& fld = *fldPtr; - if - ( - fld.name() != "cellMask" - && fld.name() != "cellMask_0" - && fld.name() != "interpolatedCells" - && fld.name() != "k_0" - && fld.name() != "epsilon_0" - && fld.name() != "alpha.water_0" - && fld.name() != "rho_0" - ) - { - Pout << "Interpolating : " << fld.name() << endl; - interpolate(fld.primitiveFieldRef()); - } - } - } - - { - auto flds(this->lookupClass()); - for (auto fldPtr : flds) - { - auto& fld = *fldPtr; - if - ( - fld.name() != "cellDisplacement" - && fld.name() != "U_0" - ) - { - Pout << "Interpolating : " << fld.name() << endl; - interpolate(fld.primitiveFieldRef()); - } - } - } - - return true; -} - - - -bool Foam::dynamicOversetFvMesh::writeObject -( - IOstream::streamFormat fmt, - IOstream::versionNumber ver, - IOstream::compressionType cmp, - const bool valid -) const -{ - bool ok = dynamicMotionSolverFvMesh::writeObject(fmt, ver, cmp, valid); - - // For postprocessing : write cellTypes and zoneID - { - const cellCellStencilObject& overlap = Stencil::New(*this); - - const labelUList& cellTypes = overlap.cellTypes(); - - volScalarField volTypes - ( - IOobject - ( - "cellTypes", - this->time().timeName(), - *this, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - *this, - dimensionedScalar(dimless, Zero), - zeroGradientFvPatchScalarField::typeName - ); - - forAll(volTypes.internalField(), cellI) - { - volTypes[cellI] = cellTypes[cellI]; - } - volTypes.correctBoundaryConditions(); - volTypes.writeObject(fmt, ver, cmp, valid); - } - { - volScalarField volZoneID - ( - IOobject - ( - "zoneID", - this->time().timeName(), - *this, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - *this, - dimensionedScalar(dimless, Zero), - zeroGradientFvPatchScalarField::typeName - ); - - const cellCellStencilObject& overlap = Stencil::New(*this); - const labelIOList& zoneID = overlap.zoneID(); - - forAll(zoneID, cellI) - { - volZoneID[cellI] = zoneID[cellI]; - } - volZoneID.correctBoundaryConditions(); - volZoneID.writeObject(fmt, ver, cmp, valid); - } - return ok; -} - - -// ************************************************************************* // diff --git a/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.H.orig b/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.H.orig deleted file mode 100644 index e040617884..0000000000 --- a/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.H.orig +++ /dev/null @@ -1,331 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2015-2017 OpenCFD Ltd. - \\/ 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::dynamicOversetFvMesh - -Description - dynamicFvMesh with support for overset meshes. - -SourceFiles - dynamicOversetFvMesh.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dynamicOversetFvMesh_H -#define dynamicOversetFvMesh_H - -#include "dynamicMotionSolverFvMesh.H" -#include "labelIOList.H" -#include "fvMeshPrimitiveLduAddressing.H" -#include "lduInterfaceFieldPtrsList.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -class mapDistribute; -class lduPrimitiveProcessorInterface; - -/*---------------------------------------------------------------------------*\ - Class dynamicOversetFvMesh Declaration -\*---------------------------------------------------------------------------*/ - -class dynamicOversetFvMesh -: - public dynamicMotionSolverFvMesh -{ -protected: - - // Protected data - - //- Select base addressing (false) or locally stored extended - // lduAddressing (true) - mutable bool active_; - - //- Extended addressing (extended with local interpolation stencils) - mutable autoPtr lduPtr_; - - //- Added (processor)lduInterfaces for remote bits of stencil. - //PtrList remoteStencilInterfaces_; - mutable PtrList - remoteStencilInterfaces_; - - //- Interfaces for above mesh. Contains both original and - // above added processorLduInterfaces - mutable lduInterfacePtrsList allInterfaces_; - - //- Corresponding faces (in above lduPtr) to the stencil - mutable labelListList stencilFaces_; - - //- From old to new face labels - mutable labelList reverseFaceMap_; - - - // Protected Member Functions - - //- Calculate the extended lduAddressing - virtual bool updateAddressing() const; - - //- Debug: print matrix - template - void write(Ostream&, const fvMatrix&, const lduAddressing&) const; - - //- Explicit interpolation of acceptor cells from donor cells - template - void interpolate(Field& psi) const; - - //- Explicit interpolation of acceptor cells from donor cells with - // boundary condition handling - template - void interpolate(GeoField& psi) const; - - //- Freeze values at holes - template - void freezeHoles(fvMatrix&) const; - - //- Get scalar interfaces of certain type - template - lduInterfaceFieldPtrsList scalarInterfaces(const GeoField& psi) const; - - //- Add interpolation to matrix (coefficients) - template - void addInterpolation(fvMatrix&) const; - - //- Solve given dictionary with settings - template - SolverPerformance solve(fvMatrix&, const dictionary&) const; - - //- Debug: correct coupled bc - template - static void correctCoupledBoundaryConditions(GeoField& fld); - - -private: - - // Private Member Functions - - //- No copy construct - dynamicOversetFvMesh(const dynamicOversetFvMesh&) = delete; - - //- No copy assignment - void operator=(const dynamicOversetFvMesh&) = delete; - - -public: - - //- Runtime type information - TypeName("dynamicOversetFvMesh"); - - - // Constructors - - //- Construct from IOobject - dynamicOversetFvMesh(const IOobject& io); - - - //- Destructor - virtual ~dynamicOversetFvMesh(); - - - // Member Functions - - - // Extended addressing - - //- Return extended ldu addressing - const fvMeshPrimitiveLduAddressing& primitiveLduAddr() const; - - //- Return ldu addressing. If active: is (extended) - // primitiveLduAddr - virtual const lduAddressing& lduAddr() const; - - //- Return old to new face addressing - const labelList& reverseFaceMap() const - { - return reverseFaceMap_; - } - - //- Return true if using extended addressing - bool active() const - { - return active_; - } - - //- Enable/disable extended addressing - void active(const bool f) const - { - active_ = f; - - if (active_) - { - DebugInfo<< "Switching to extended addressing with nFaces:" - << primitiveLduAddr().lowerAddr().size() - << endl; - } - else - { - DebugInfo<< "Switching to base addressing with nFaces:" - << fvMesh::lduAddr().lowerAddr().size() - << endl; - } - } - - - // Overset - - // Explicit interpolation - - virtual void interpolate(scalarField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(vectorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(sphericalTensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(symmTensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(tensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volScalarField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volVectorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volSphericalTensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volSymmTensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volTensorField& psi) const - { - interpolate(psi); - } - - - // Implicit interpolation (matrix manipulation) - - //- Solve returning the solution statistics given convergence - // tolerance. Use the given solver controls - virtual SolverPerformance solve - ( - fvMatrix& m, - const dictionary& dict - ) const - { - return solve(m, dict); - } - - //- Solve returning the solution statistics given convergence - // tolerance. Use the given solver controls - virtual SolverPerformance solve - ( - fvMatrix& m, - const dictionary& dict - ) const - { - return solve(m, dict); - } - - //- Solve returning the solution statistics given convergence - // tolerance. Use the given solver controls - virtual SolverPerformance solve - ( - fvMatrix& m, - const dictionary& dict - ) const - { - return solve(m, dict); - } - - //- Solve returning the solution statistics given convergence - // tolerance. Use the given solver controls - virtual SolverPerformance solve - ( - fvMatrix& m, - const dictionary& dict - ) const - { - return solve(m, dict); - } - - - //- Update the mesh for both mesh motion and topology change - virtual bool update(); - - //- Write using given format, version and compression - virtual bool writeObject - ( - IOstream::streamFormat, - IOstream::versionNumber, - IOstream::compressionType, - const bool valid - ) const; - - //- Debug: check halo swap is ok - template - static void checkCoupledBC(const GeoField& fld); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "dynamicOversetFvMeshTemplates.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* //