Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
37297583
Commit
37297583
authored
Aug 07, 2008
by
Mattijs Janssens
Browse files
new utility - like autoPatch but for surfaces
parent
6ac27012
Changes
3
Hide whitespace changes
Inline
Side-by-side
applications/utilities/surface/surfaceAutoPatch/Make/files
0 → 100644
View file @
37297583
surfaceAutoPatch.C
EXE = $(FOAM_APPBIN)/surfaceAutoPatch
applications/utilities/surface/surfaceAutoPatch/Make/options
0 → 100644
View file @
37297583
EXE_INC = \
/* -I$(LIB_SRC)/cfdTools/general/lnInclude */ \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
-lmeshTools \
-ltriSurface
applications/utilities/surface/surfaceAutoPatch/surfaceAutoPatch.C
0 → 100644
View file @
37297583
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2008 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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application
surfaceAutoPatch
Description
Patches surface according to feature angle. Like autoPatch.
\*---------------------------------------------------------------------------*/
#include
"triangle.H"
#include
"triSurface.H"
#include
"argList.H"
#include
"surfaceFeatures.H"
#include
"treeBoundBox.H"
#include
"meshTools.H"
#include
"OFstream.H"
using
namespace
Foam
;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Main program:
int
main
(
int
argc
,
char
*
argv
[])
{
argList
::
noParallel
();
argList
::
validArgs
.
clear
();
argList
::
validArgs
.
append
(
"input surface file"
);
argList
::
validArgs
.
append
(
"output surface file"
);
argList
::
validArgs
.
append
(
"included angle [0..180]"
);
argList
args
(
argc
,
argv
);
fileName
inFileName
(
args
.
additionalArgs
()[
0
]);
fileName
outFileName
(
args
.
additionalArgs
()[
1
]);
scalar
includedAngle
(
readScalar
(
IStringStream
(
args
.
additionalArgs
()[
2
])()));
Pout
<<
"Surface : "
<<
inFileName
<<
nl
<<
endl
;
// Read
// ~~~~
Info
<<
"Reading : "
<<
inFileName
<<
endl
;
triSurface
surf
(
inFileName
);
Info
<<
"Read surface:"
<<
endl
;
surf
.
writeStats
(
Info
);
Info
<<
endl
;
// Construct features from surface&featureangle
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Info
<<
"Constructing feature set from included angle "
<<
includedAngle
<<
endl
;
surfaceFeatures
set
(
surf
,
includedAngle
);
Pout
<<
nl
<<
"Feature set:"
<<
nl
<<
" feature points : "
<<
set
.
featurePoints
().
size
()
<<
nl
<<
" feature edges : "
<<
set
.
featureEdges
().
size
()
<<
nl
<<
" of which"
<<
nl
<<
" region edges : "
<<
set
.
nRegionEdges
()
<<
nl
<<
" external edges : "
<<
set
.
nExternalEdges
()
<<
nl
<<
" internal edges : "
<<
set
.
nInternalEdges
()
<<
nl
<<
endl
;
// Get per-edge status.
boolList
borderEdge
(
surf
.
nEdges
(),
false
);
forAll
(
set
.
featureEdges
(),
i
)
{
borderEdge
[
set
.
featureEdges
()[
i
]]
=
true
;
}
labelList
faceRegion
(
surf
.
size
());
label
nRegions
=
surf
.
markZones
(
borderEdge
,
faceRegion
);
// Reregion triangles.
forAll
(
surf
,
i
)
{
surf
[
i
].
region
()
=
faceRegion
[
i
];
}
// Create some patches
surf
.
patches
().
setSize
(
nRegions
);
forAll
(
surf
.
patches
(),
patchI
)
{
surf
.
patches
()[
patchI
].
name
()
=
"patch"
+
Foam
::
name
(
patchI
);
surf
.
patches
()[
patchI
].
geometricType
()
=
"empty"
;
}
Info
<<
"Writing : "
<<
outFileName
<<
endl
;
surf
.
write
(
outFileName
,
true
);
Info
<<
"End
\n
"
<<
endl
;
return
0
;
}
// ************************************************************************* //
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment