mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: propogate face area support into surface-type meshes (issue #266)
* MeshedSurface / surfMesh / triSurface
- use shorter method names similar to those from volume meshes:
Sf(), magSf(), Cf()
instead of the longer ones from PrimitivePatch:
faceAreas(), magFaceAreas(), faceCentres()
- similar names throughout to ease switching between triSurface and
MeshedSurface storage.
This commit is contained in:
@ -161,7 +161,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
Info<< "Read surface:" << endl;
|
||||
surf.writeStats(Info);
|
||||
Info<< endl;
|
||||
Info<< "Area : " << sum(surf.magSf()) << nl
|
||||
<< endl;
|
||||
|
||||
// check: output to ostream, construct from istream
|
||||
{
|
||||
@ -205,7 +206,8 @@ int main(int argc, char *argv[])
|
||||
Info<< " with scaling " << scaleFactor << endl;
|
||||
surf.scalePoints(scaleFactor);
|
||||
surf.writeStats(Info);
|
||||
Info<< endl;
|
||||
Info<< "Area : " << sum(surf.magSf()) << nl
|
||||
<< endl;
|
||||
}
|
||||
|
||||
if (optStdout)
|
||||
@ -224,7 +226,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
Info<< "Read surface:" << endl;
|
||||
surf.writeStats(Info);
|
||||
Info<< endl;
|
||||
Info<< "Area : " << sum(surf.magSf()) << nl
|
||||
<< endl;
|
||||
|
||||
// check: output to ostream, construct from istream
|
||||
{
|
||||
@ -268,7 +271,8 @@ int main(int argc, char *argv[])
|
||||
Info<< " with scaling " << scaleFactor << endl;
|
||||
surf.scalePoints(scaleFactor);
|
||||
surf.writeStats(Info);
|
||||
Info<< endl;
|
||||
Info<< "Area : " << sum(surf.magSf()) << nl
|
||||
<< endl;
|
||||
}
|
||||
|
||||
if (optStdout)
|
||||
@ -286,7 +290,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
Info<< "Read surface:" << endl;
|
||||
surf.writeStats(Info);
|
||||
Info<< endl;
|
||||
Info<< "Area : " << sum(surf.magSf()) << nl
|
||||
<< endl;
|
||||
|
||||
// check: output to ostream, construct from istream
|
||||
{
|
||||
@ -330,7 +335,8 @@ int main(int argc, char *argv[])
|
||||
Info<< " with scaling " << scaleFactor << endl;
|
||||
surf.scalePoints(scaleFactor);
|
||||
surf.writeStats(Info);
|
||||
Info<< endl;
|
||||
Info<< "Area : " << sum(surf.magSf()) << nl
|
||||
<< endl;
|
||||
}
|
||||
|
||||
if (optStdout)
|
||||
@ -348,7 +354,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
Info<< "Read surface:" << endl;
|
||||
surf.writeStats(Info);
|
||||
Info<< endl;
|
||||
Info<< "Area : " << sum(surf.magSf()) << nl
|
||||
<< endl;
|
||||
|
||||
// check: output to ostream, construct from istream
|
||||
{
|
||||
@ -392,7 +399,8 @@ int main(int argc, char *argv[])
|
||||
Info<< " with scaling " << scaleFactor << endl;
|
||||
surf.scalePoints(scaleFactor);
|
||||
surf.writeStats(Info);
|
||||
Info<< endl;
|
||||
Info<< "Area : " << sum(surf.magSf()) << nl
|
||||
<< endl;
|
||||
}
|
||||
|
||||
if (optStdout)
|
||||
|
||||
@ -431,7 +431,9 @@ Foam::MeshedSurface<Face>::MeshedSurface
|
||||
|
||||
template<class Face>
|
||||
Foam::MeshedSurface<Face>::~MeshedSurface()
|
||||
{}
|
||||
{
|
||||
clear();
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||
@ -500,6 +502,9 @@ void Foam::MeshedSurface<Face>::clear()
|
||||
template<class Face>
|
||||
void Foam::MeshedSurface<Face>::movePoints(const pointField& newPoints)
|
||||
{
|
||||
// Changes areas, normals etc.
|
||||
ParentType::clearGeom();
|
||||
|
||||
// Adapt for new point position
|
||||
ParentType::movePoints(newPoints);
|
||||
|
||||
@ -511,9 +516,12 @@ void Foam::MeshedSurface<Face>::movePoints(const pointField& newPoints)
|
||||
template<class Face>
|
||||
void Foam::MeshedSurface<Face>::scalePoints(const scalar scaleFactor)
|
||||
{
|
||||
// avoid bad scaling
|
||||
// Avoid bad scaling
|
||||
if (scaleFactor > 0 && scaleFactor != 1.0)
|
||||
{
|
||||
// Changes areas, normals etc.
|
||||
ParentType::clearGeom();
|
||||
|
||||
pointField newPoints(scaleFactor*this->points());
|
||||
|
||||
// Adapt for new point position
|
||||
@ -586,7 +594,7 @@ void Foam::MeshedSurface<Face>::reset
|
||||
template<class Face>
|
||||
void Foam::MeshedSurface<Face>::cleanup(const bool verbose)
|
||||
{
|
||||
// merge points (already done for STL, TRI)
|
||||
// Merge points (already done for STL, TRI)
|
||||
stitchFaces(SMALL, verbose);
|
||||
|
||||
checkFaces(verbose);
|
||||
@ -943,8 +951,6 @@ Foam::label Foam::MeshedSurface<Face>::triangulate
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
template<class Face>
|
||||
Foam::MeshedSurface<Face> Foam::MeshedSurface<Face>::subsetMesh
|
||||
(
|
||||
|
||||
@ -339,6 +339,31 @@ public:
|
||||
return zones_;
|
||||
}
|
||||
|
||||
//- Face area vectors (normals)
|
||||
inline const vectorField& Sf() const
|
||||
{
|
||||
return ParentType::faceAreas();
|
||||
}
|
||||
|
||||
//- Face area magnitudes
|
||||
inline const scalarField& magSf() const
|
||||
{
|
||||
return ParentType::magFaceAreas();
|
||||
}
|
||||
|
||||
//- Face centres
|
||||
inline const vectorField& Cf() const
|
||||
{
|
||||
return ParentType::faceCentres();
|
||||
}
|
||||
|
||||
|
||||
// Edit
|
||||
|
||||
//- Clear all storage
|
||||
virtual void clear();
|
||||
|
||||
|
||||
//- Add surface zones
|
||||
virtual void addZones
|
||||
(
|
||||
@ -365,11 +390,6 @@ public:
|
||||
virtual void removeZones();
|
||||
|
||||
|
||||
// Edit
|
||||
|
||||
//- Clear all storage
|
||||
virtual void clear();
|
||||
|
||||
//- Move points
|
||||
virtual void movePoints(const pointField&);
|
||||
|
||||
|
||||
@ -233,6 +233,25 @@ public:
|
||||
//- Check the surface zone definitions
|
||||
void checkZones();
|
||||
|
||||
|
||||
//- Return face area vectors (normals)
|
||||
inline const vectorField& Sf() const
|
||||
{
|
||||
return MeshReference::faceAreas();
|
||||
}
|
||||
|
||||
//- Return face area magnitudes
|
||||
inline const scalarField& magSf() const
|
||||
{
|
||||
return MeshReference::magFaceAreas();
|
||||
}
|
||||
|
||||
//- Face centres
|
||||
inline const vectorField& Cf() const
|
||||
{
|
||||
return MeshReference::faceCentres();
|
||||
}
|
||||
|
||||
//- Add surface zones
|
||||
void addZones
|
||||
(
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -69,6 +69,8 @@ void Foam::surfMesh::clearAddressing()
|
||||
|
||||
void Foam::surfMesh::clearOut()
|
||||
{
|
||||
MeshReference::clearOut();
|
||||
|
||||
clearGeom();
|
||||
clearAddressing();
|
||||
}
|
||||
|
||||
@ -168,7 +168,7 @@ Foam::surfMesh::readUpdateState Foam::surfMesh::readUpdate()
|
||||
Info<< "Point motion" << endl;
|
||||
}
|
||||
|
||||
clearGeom();
|
||||
clearOut();
|
||||
storedIOPoints().instance() = pointsInst;
|
||||
|
||||
storedIOPoints() = pointIOField
|
||||
|
||||
@ -335,6 +335,25 @@ public:
|
||||
const labelList& edgeOwner() const;
|
||||
|
||||
|
||||
//- Face area vectors (normals)
|
||||
inline const vectorField& Sf() const
|
||||
{
|
||||
return ParentType::faceAreas();
|
||||
}
|
||||
|
||||
//- Face area magnitudes
|
||||
inline const scalarField& magSf() const
|
||||
{
|
||||
return ParentType::magFaceAreas();
|
||||
}
|
||||
|
||||
//- Face centres
|
||||
inline const vectorField& Cf() const
|
||||
{
|
||||
return ParentType::faceCentres();
|
||||
}
|
||||
|
||||
|
||||
// Edit
|
||||
|
||||
//- Move points
|
||||
|
||||
Reference in New Issue
Block a user