mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: cvMesh.org : moved to nonRelease
This commit is contained in:
166
doc/cvMesh.org
166
doc/cvMesh.org
@ -1,166 +0,0 @@
|
|||||||
# -*- mode: org; -*-
|
|
||||||
#
|
|
||||||
#+TITLE: cvMesh usage
|
|
||||||
#+AUTHOR: OpenCFD Ltd.
|
|
||||||
#+DATE: June 2011
|
|
||||||
#+LINK: http://www.OpenFOAM.com
|
|
||||||
#+OPTIONS: author:nil ^:{}
|
|
||||||
#+STARTUP: hidestars
|
|
||||||
#+STARTUP: odd
|
|
||||||
|
|
||||||
* Method
|
|
||||||
+ initial point seeding. These are the background points to
|
|
||||||
- start the triangulation from (a subset)
|
|
||||||
- do cellsize and alignment queries on
|
|
||||||
+ mesh movement based on cell size and alignment
|
|
||||||
+ surface conformation by introducing duplicate points
|
|
||||||
+ do final simplification by face filtering
|
|
||||||
|
|
||||||
|
|
||||||
* Typical work flow
|
|
||||||
+ clean surfaces (surfaceClean, surfaceOrient)
|
|
||||||
+ set in system/controlDict
|
|
||||||
- startTime to latestTime
|
|
||||||
- endTime to number of meshing iterations
|
|
||||||
- writeInterval to large value
|
|
||||||
+ select defaultCellSize [m]
|
|
||||||
+ select refinement patterns based on e.g. surface
|
|
||||||
(cellSizeControlGeometry)
|
|
||||||
+ select autoDensity initial point seeding
|
|
||||||
+ force output of unfiltered mesh (to save time) by specifying unobtainable
|
|
||||||
mesh quality:
|
|
||||||
continueFilteringOnBadInitialPolyMesh false;
|
|
||||||
maxNonOrtho 1;
|
|
||||||
+ check visually
|
|
||||||
- features resolved?
|
|
||||||
- cell size ok? Load in targetCellSize volScalarField.
|
|
||||||
- if any surface protusions that are unacceptable
|
|
||||||
- lower targetCellSize
|
|
||||||
- lower maxSurfaceProtrusionCoeff (usually 0.1 of targetCellSize)
|
|
||||||
+ restart. Repeat until surface good enough.
|
|
||||||
+ produce final mesh
|
|
||||||
- set initialPointsMethod to pointFile so it reuses the Delaunay vertices
|
|
||||||
- re-enable mesh filtering
|
|
||||||
continueFilteringOnBadInitialPolyMesh true;
|
|
||||||
maxNonOrtho 65; //or whatever;
|
|
||||||
|
|
||||||
|
|
||||||
* Debugging
|
|
||||||
+ run surfaceFeatureExtract with -writeObj to dump all features
|
|
||||||
+ set initialPointsMethod to pointFile
|
|
||||||
+ set writeInterval to 1
|
|
||||||
+ run e.g. topoSet to create slices
|
|
||||||
|
|
||||||
|
|
||||||
* Annotated output
|
|
||||||
#+BEGIN_EXAMPLE
|
|
||||||
Create time
|
|
||||||
|
|
||||||
Reading geometryToConformTo
|
|
||||||
|
|
||||||
Reading cellSizeControlGeometry
|
|
||||||
|
|
||||||
Selecting initialPointsMethod autoDensity
|
|
||||||
|
|
||||||
Selecting relaxationModel adaptiveLinear
|
|
||||||
|
|
||||||
Selecting faceAreaWeightModel piecewiseLinearRamp
|
|
||||||
|
|
||||||
Conforming to feature points
|
|
||||||
Inserted 32 feature vertices
|
|
||||||
|
|
||||||
#+END_EXAMPLE
|
|
||||||
In this particular case there are 8 straight corners so these can be recreated
|
|
||||||
with a triplet each.
|
|
||||||
|
|
||||||
#+BEGIN_EXAMPLE
|
|
||||||
Inserting initial points
|
|
||||||
|
|
||||||
autoDensity
|
|
||||||
6922 points placed
|
|
||||||
9139 locations queried
|
|
||||||
0.7574132837 success rate
|
|
||||||
#+END_EXAMPLE
|
|
||||||
The initial points get created by the =autoDensity= method. It will accept only
|
|
||||||
part (75% in this cae) of the initial points to create randomly distributed locations.
|
|
||||||
#+BEGIN_EXAMPLE
|
|
||||||
|
|
||||||
6922 points to insert...
|
|
||||||
6922 points inserted
|
|
||||||
|
|
||||||
Build coarse surface conformation
|
|
||||||
|
|
||||||
Initial conformation
|
|
||||||
Number of vertices 6962
|
|
||||||
Number of surface hits 2245
|
|
||||||
Number of edge hits 238
|
|
||||||
#+END_EXAMPLE
|
|
||||||
The initial points get inserted into the triangulation and it detects the number
|
|
||||||
of surface pierces (surface hits) and the number of XXX (edge hits).
|
|
||||||
#+BEGIN_EXAMPLE
|
|
||||||
|
|
||||||
Stopping iterations when:
|
|
||||||
total number of hits drops below 0.001 of initial hits (2)
|
|
||||||
or
|
|
||||||
maximum number of iterations (15) is reached
|
|
||||||
#+END_EXAMPLE
|
|
||||||
It will introduce additional duplicate vertices on either side of the surface
|
|
||||||
pierce to conform to the geometry. This needs to repeated until the number of
|
|
||||||
pierces is low enough.
|
|
||||||
#+BEGIN_EXAMPLE
|
|
||||||
|
|
||||||
Conformation iteration 0
|
|
||||||
Number of vertices 12166
|
|
||||||
Number of surface hits 234
|
|
||||||
Number of edge hits 38
|
|
||||||
|
|
||||||
..
|
|
||||||
|
|
||||||
Conformation iteration 4
|
|
||||||
Number of vertices 12908
|
|
||||||
Number of surface hits 0
|
|
||||||
Number of edge hits 0
|
|
||||||
|
|
||||||
--- [ cpuTime 5.46 s, delta 0.8 s, "Conformation iteration 4" ] ---
|
|
||||||
--- [ 5.46 s, mem size 114228 kB, mem peak 114228 kB, mem rss 28712 kB ] ---
|
|
||||||
|
|
||||||
Total hits (0) less than limit (2), stopping iterations
|
|
||||||
|
|
||||||
Storing surface conformation
|
|
||||||
Stored 5946 vertices
|
|
||||||
Store size and alignment
|
|
||||||
|
|
||||||
#+END_EXAMPLE
|
|
||||||
The vertices needed to create the conformation are stored together with the size
|
|
||||||
and alignment.
|
|
||||||
#+BEGIN_EXAMPLE
|
|
||||||
Time = 1
|
|
||||||
|
|
||||||
Relaxation = 1
|
|
||||||
|
|
||||||
Looking up target cell alignment and size
|
|
||||||
|
|
||||||
Determining vertex displacements
|
|
||||||
|
|
||||||
Reinserting stored feature points
|
|
||||||
Reinserted 32 vertices
|
|
||||||
|
|
||||||
Inserting displaced tessellation
|
|
||||||
4328 points to insert...
|
|
||||||
4328 points inserted
|
|
||||||
|
|
||||||
Reinserting stored surface conformation
|
|
||||||
Reinserted 5946 vertices
|
|
||||||
|
|
||||||
Total displacement = (0.03629314022 0.1324815449 -0.2774017193)
|
|
||||||
Total distance = 159.3482907
|
|
||||||
|
|
||||||
ExecutionTime = 8.16 s ClockTime = 8 s
|
|
||||||
|
|
||||||
|
|
||||||
Time = 2
|
|
||||||
|
|
||||||
Relaxation = 0.9875
|
|
||||||
|
|
||||||
#+END_EXAMPLE
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user