Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
gmsh
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Romin Tomasetti
gmsh
Commits
a2bcf80a
Commit
a2bcf80a
authored
4 years ago
by
Christophe Geuzaine
Browse files
Options
Downloads
Patches
Plain Diff
added some doc on boundary layers (cf. #1291)
(cherry picked from commit
60b75951
)
parent
7dc0bc28
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/texinfo/gmsh.texi
+44
-23
44 additions, 23 deletions
doc/texinfo/gmsh.texi
with
44 additions
and
23 deletions
doc/texinfo/gmsh.texi
+
44
−
23
View file @
a2bcf80a
...
...
@@ -2977,13 +2977,13 @@ triangles any quadrangles on boundary surfaces shared with tetrahedral
volumes. (They have no effect for 1D or 2D extrusions.)
@code
{
QuadTriNoNewVerts
}
subdivides any of the region's quad-faced 3D
elements that touch these boundary triangles into pyramids, prisms, or
tetrahedra as necessary, all
WITHOUT
adding new
nodes. @code
{
QuadTriAddVerts
}
works in a simular way, but subdivides
3D
elements touching the boundary triangles by adding a new node
inside
each element at the node-based centroid. Either method results
in a
structured extrusion with an outer layer of subdivided elements
that
interface the inner, unmodified elements to the triangle-meshed
region
boundaries.
tetrahedra as necessary, all
wiothout
adding new
nodes. @code
{
QuadTriAddVerts
}
works in a simular way, but subdivides
3D
elements touching the boundary triangles by adding a new node
inside
each element at the node-based centroid. Either method results
in a
structured extrusion with an outer layer of subdivided elements
that
interface the inner, unmodified elements to the triangle-meshed
region
boundaries.
In some rare cases, due to certain lateral boundary conditions, it may
not be possible make a valid element subdivision with
...
...
@@ -3036,22 +3036,43 @@ smaller than Pi. With the OpenCASCADE kernel the angle should be
strictly smaller than 2 Pi.
@item Extrude @
{
Surface @
{
@var
{
expression-list
}
@
}
; @var
{
layers
}
< Using Index[@var
{
expr
}
]; > < Using View[@var
{
expr
}
]; > < ScaleLastLayer; > @
}
Extrudes a boundary layer from the specified surfaces. If no view is
specified, the boundary layer is created using gouraud-shaped (smoothed)
normal field. Specifying a boundary layer index allows to extrude
several independent boundary layers (with independent normal smoothing).
@code
{
ScaleLastLayer
}
scales the height of the last (top) layer of each
normal's extrusion by the average length of the edges in all the source
elements that contain the source node (actually, the average of the
averages for each element--edges actually touching the source node are
counted twice). This allows the height of the last layer to vary along
with the size of the source elements in order to achieve better element
quality. For example, in a boundary layer extruded with the Layers
definition 'Layers@
{
@
{
1,4,2@
}
, @
{
0.5, 0.6, 1.6@
}
@
}
,' a source node
adjacent to elements with an overall average edge length of 5.0 will
extrude to have a last layer height = (1.6-0.6) * 5.0 = 5.0.
Extrudes a ``topological'' boundary layer from the specified
surfaces. If no view is specified, the mesh of the boundary layer
entities is created using a gouraud-shaded (smoothed) normal field. If a
scalar view is specified, it locally prescribes the thickness of the
layer. If a vector-valued view is specified it locally prescribes both
the extrusion direction and the thickness. Specifying a boundary layer
index allows to extrude several independent boundary layers (with
independent normal smoothing). @code
{
ScaleLastLayer
}
scales the height
of the last (top) layer of each normal's extrusion by the average length
of the edges in all the source elements that contain the source node
(actually, the average of the averages for each element--edges actually
touching the source node are counted twice). This allows the height of
the last layer to vary along with the size of the source elements in
order to achieve better element quality. For example, in a boundary
layer extruded with the Layers definition 'Layers@
{
@
{
1,4,2@
}
, @
{
0.5,
0.6, 1.6@
}
@
}
,' a source node adjacent to elements with an overall
average edge length of 5.0 will extrude to have a last layer height =
(1.6-0.6) * 5.0 = 5.0. Topological boundary layers are only available
with the built-in kernel. See
@url
{
@value
{
GITLAB-PREFIX
}
/benchmarks/extrude/sphere
_
boundary
_
layer.geo,sphere
_
boundary
_
layer.geo
}
or
@url
{
@value
{
GITLAB-PREFIX
}
/benchmarks/extrude/sphere
_
boundary
_
layer
_
from
_
view.geo,sphere
_
boundary
_
layer
_
from
_
view.geo
}
for @code
{
.geo
}
file examples, and
@url
{
@value
{
GITLAB-PREFIX
}
/demos/api/aneurysm.py,aneurysm.py
}
for an API
example.
The advantage of this approach is that it provides a topological
description of the boundary layer, which means that it can be connected
to other geometrical entities. The disadvantage is that the mesh is just
a ``simple'' extrusion: no fans, no special treatments of reentrant
corners, etc. Another boundary layer algorithm is currently available
through the @code
{
BoundaryLayer
}
field (@pxref
{
Specifying mesh element
sizes
}
). It only works in 2D however, and is a meshing constraint: it
works directly at the mesh level, without creating geometrical
entities. See
e.g. @url
{
@value
{
GITLAB-PREFIX
}
/benchmarks/2d/BL0.geo,BL0.geo
}
or
@url
{
@value
{
GITLAB-PREFIX
}
/benchmarks/2d/naca12
_
2d.geo,naca12
_
2d.geo
}
.
@item Transfinite Curve @
{
@var
{
expression-list-or-all
}
@
}
= @var
{
expression
}
< Using Progression | Bump @var
{
expression
}
>;
Selects the curves in @var
{
expression-list
}
to be meshed with the 1D
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment