mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: added updateMesh(mpm) callback for surfaceInterpolation/fvGeometryScheme
This commit is contained in:
committed by
Andrew Heather
parent
823641ab9b
commit
2493102044
@ -145,4 +145,8 @@ void Foam::fvGeometryScheme::movePoints()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::fvGeometryScheme::updateMesh(const mapPolyMesh& mpm)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -137,6 +137,9 @@ public:
|
|||||||
//- Update basic geometric properties from provided points
|
//- Update basic geometric properties from provided points
|
||||||
virtual void movePoints();
|
virtual void movePoints();
|
||||||
|
|
||||||
|
//- Update mesh for topology changes
|
||||||
|
virtual void updateMesh(const mapPolyMesh& mpm);
|
||||||
|
|
||||||
//- Return linear difference weighting factors
|
//- Return linear difference weighting factors
|
||||||
virtual tmp<surfaceScalarField> weights() const = 0;
|
virtual tmp<surfaceScalarField> weights() const = 0;
|
||||||
|
|
||||||
|
|||||||
@ -999,7 +999,7 @@ void Foam::fvMesh::updateMesh(const mapPolyMesh& mpm)
|
|||||||
mapFields(mpm);
|
mapFields(mpm);
|
||||||
|
|
||||||
// Clear the current volume and other geometry factors
|
// Clear the current volume and other geometry factors
|
||||||
surfaceInterpolation::clearOut();
|
surfaceInterpolation::updateMesh(mpm);
|
||||||
|
|
||||||
// Clear any non-updateable addressing
|
// Clear any non-updateable addressing
|
||||||
clearAddressing(true);
|
clearAddressing(true);
|
||||||
|
|||||||
@ -48,6 +48,8 @@ namespace Foam
|
|||||||
|
|
||||||
void Foam::surfaceInterpolation::clearOut()
|
void Foam::surfaceInterpolation::clearOut()
|
||||||
{
|
{
|
||||||
|
// TBD: potential to apply partial clear out only?
|
||||||
|
// Move to fvGeometryScheme?
|
||||||
weights_.clear();
|
weights_.clear();
|
||||||
deltaCoeffs_.clear();
|
deltaCoeffs_.clear();
|
||||||
nonOrthDeltaCoeffs_.clear();
|
nonOrthDeltaCoeffs_.clear();
|
||||||
@ -161,10 +163,7 @@ bool Foam::surfaceInterpolation::movePoints()
|
|||||||
// Do any primitive geometry calculation
|
// Do any primitive geometry calculation
|
||||||
const_cast<fvGeometryScheme&>(geometry()).movePoints();
|
const_cast<fvGeometryScheme&>(geometry()).movePoints();
|
||||||
|
|
||||||
weights_.clear();
|
clearOut();
|
||||||
deltaCoeffs_.clear();
|
|
||||||
nonOrthDeltaCoeffs_.clear();
|
|
||||||
nonOrthCorrectionVectors_.clear();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -179,6 +178,22 @@ void Foam::surfaceInterpolation::updateGeom()
|
|||||||
}
|
}
|
||||||
|
|
||||||
const_cast<fvGeometryScheme&>(geometry()).movePoints();
|
const_cast<fvGeometryScheme&>(geometry()).movePoints();
|
||||||
|
|
||||||
|
clearOut();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::surfaceInterpolation::updateMesh(const mapPolyMesh& mpm)
|
||||||
|
{
|
||||||
|
if (debug)
|
||||||
|
{
|
||||||
|
Pout<< "surfaceInterpolation::updateMesh() : "
|
||||||
|
<< "Updating geometric properties" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
const_cast<fvGeometryScheme&>(geometry()).updateMesh(mpm);
|
||||||
|
|
||||||
|
clearOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011 OpenFOAM Foundation
|
Copyright (C) 2011 OpenFOAM Foundation
|
||||||
Copyright (C) 2020 OpenCFD Ltd.
|
Copyright (C) 2020-2022 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -52,6 +52,7 @@ namespace Foam
|
|||||||
// Forward Declarations
|
// Forward Declarations
|
||||||
class fvMesh;
|
class fvMesh;
|
||||||
class fvGeometryScheme;
|
class fvGeometryScheme;
|
||||||
|
class mapPolyMesh;
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class surfaceInterpolation Declaration
|
Class surfaceInterpolation Declaration
|
||||||
@ -141,6 +142,9 @@ public:
|
|||||||
|
|
||||||
//- Has weights
|
//- Has weights
|
||||||
bool hasWeights() const noexcept { return bool(weights_); }
|
bool hasWeights() const noexcept { return bool(weights_); }
|
||||||
|
|
||||||
|
//- Update mesh for topology changes
|
||||||
|
virtual void updateMesh(const mapPolyMesh& mpm);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user